From 36fed23c7b7f61b03f5660b43eee2fe127d1a151 Mon Sep 17 00:00:00 2001
From: bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>
Date: Wed, 14 Jun 2006 23:09:51 +0000
Subject: [PATCH] 2006-06-14  Ami Tavory  <atavory@gmail.com> 	    Benjamin
 Kosnik  <bkoz@redhat.com>

	* include/ext/pb_assoc: Delete.
	* include/ext/pb_ds: Add.
	* docs/html/ext/pb_assoc: Delete.
	* docs/html/ext/pb_ds: Add.
	* testsuite/ext/pb_assoc: Delete.
	* testsuite/ext/pb_ds: Add.
	* testsuite/performance/ext: Add.
	* testsuite/performance/ext/pb_ds: Add.

	* testsuite/util/regression: New.
	* testsuite/util/rng: New.
	* testsuite/util/native_type: New.
	* testsuite/util/common_type: New.
	* testsuite/util/performance: New.
	* testsuite/util/hash_fn: New.
	* testsuite/util/io: New.
	* testsuite/util/statistic: New.

	* scripts/make_graph.py: New.
	* scripts/make_graphs.py: New.
	* testsuite/data/thirty_years_among_the_dead_preproc.txt: Add.
	* testsuite/data/make_graph_htmls.xml: Add.
	* testsuite/data/make_graph_test_infos.xml: Add.

	* testsuite/lib/libstdc++.exp (v3-build_support): Add in new
	object files for regression testing.
	* docs/html/documentation.html: Adjust links.
	* include/Makefile.am (install-headers): Update for new sources,
	directories.
	* include/Makefine.in: Regenerate.
	* scripts/testsuite_flags.in: Adjust to testsuite/util path.
	* scripts/check_performance: Simplify, adjust for new testsuite output.
	* testsuite/Makefile.am (check-performance): Adjust.
	(doc-performance): New.
	* testsuite/Makefile.in: Regenerate.

	* include/ext/pb_ds: New.
	* include/ext/pb_ds/assoc_container.hpp: Same.
	* include/ext/pb_ds/detail: New.
	* include/ext/pb_ds/detail/binomial_heap_base_: New.
	* include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy: New.
	* include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp: Same.
	* include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp: Same.
	* include/ext/pb_ds/detail/container_base_dispatch.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_: New.
	* include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/typelist_assoc_container.hpp: Same.
	* include/ext/pb_ds/detail/tree_trace_base.hpp: Same.
	* include/ext/pb_ds/detail/unordered_iterator: New.
	* include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Same.
	* include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp: Same.
	* include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp: Same.
	* include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp: Same.
	* include/ext/pb_ds/detail/typelist.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_: New.
	* include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/head.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/traits.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/leaf.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/node_base.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/internal_node.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp: Same.
	* include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_: New.
	* include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_: New.
	* include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/standard_policies.hpp: Same.
	* include/ext/pb_ds/detail/typelist: New.
	* include/ext/pb_ds/detail/typelist/typelist_flatten.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_contains.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_apply.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_append.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_transform.hpp: Same.
	* include/ext/pb_ds/detail/typelist/typelist_at_index.hpp: Same.
	* include/ext/pb_ds/detail/tree_policy: New.
	* include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp: Same.
	* include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Same.
	* include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp: Same.
	* include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp: Same.
	* include/ext/pb_ds/detail/basic_tree_policy: New.
	* include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp: Same.
	* include/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp: Same.
	* include/ext/pb_ds/detail/basic_tree_policy/traits.hpp: Same.
	* include/ext/pb_ds/detail/types_traits.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_: New.
	* include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy: New.
	* include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Same.
	* include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp: Same.
	* include/ext/pb_ds/detail/cond_dealtor.hpp: Same.
	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Same.
	* include/ext/pb_ds/detail/pairing_heap_: Name.
	* include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Same.
	* include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_: New.
	* include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp: Same.
	* include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/type_utils.hpp: Same.
	* include/ext/pb_ds/detail/eq_fn: New.
	* include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp: Same.
	* include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp: Same.
	* include/ext/pb_ds/detail/basic_types.hpp: Same.
	* include/ext/pb_ds/detail/list_update_policy: New.
	* include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp: Same.
	* include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp: Same.
	* include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp: Same.
	* include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_: New.
	* include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_: New.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_: New.
	* include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/traits.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/map_debug_base.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn: New.
	* include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp: Same.
	* include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_: New.
	* include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/node.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/traits.hpp: Same.
	* include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_: New.
	* include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_: New.
	* include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Same.
	* include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_: New.
	* include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/node.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/traits.hpp: Same.
	* include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp: Same.
	* include/ext/pb_ds/list_update_policy.hpp: Same.
	* include/ext/pb_ds/exception.hpp: Same.
	* include/ext/pb_ds/tree_policy.hpp: Same.
	* include/ext/pb_ds/tag_and_trait.hpp: Same.
	* include/ext/pb_ds/hash_policy.hpp: Same.
	* include/ext/pb_ds/trie_policy.hpp: Same.
	* include/ext/pb_ds/priority_queue.hpp: Same.

	* docs/html/ext/pb_ds: New.
	* docs/html/ext/pb_ds/container_tag.html: Same.
	* docs/html/ext/pb_ds/trivial_iterator_tag.html: Same.
	* docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png
	* docs/html/ext/pb_ds/sample_trie_e_access_traits.html: Same.
	* docs/html/ext/pb_ds/gp_hash_table.html: Same.
	* docs/html/ext/pb_ds/priority_queue_tag_cd.svg
	* docs/html/ext/pb_ds/container_cd.svg
	* docs/html/ext/pb_ds/linear_probe_fn.html: Same.
	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png
	* docs/html/ext/pb_ds/quadratic_probe_fn.html: Same.
	* docs/html/ext/pb_ds/assoc_regression_tests.html: Same.
	* docs/html/ext/pb_ds/tree_tag.html: Same.
	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html: Same.
	* docs/html/ext/pb_ds/interface.html: Same.
	* docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png
	* docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html: Same.
	* docs/html/ext/pb_ds/lu_based_containers.html: Same.
	* docs/html/ext/pb_ds/embedded_lists_3.png
	* docs/html/ext/pb_ds/tree_text_find_find_timing_test.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png
	* docs/html/ext/pb_ds/assoc_performance_tests.html: Same.
	* docs/html/ext/pb_ds/list_update.html: Same.
	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png
	* docs/html/ext/pb_ds/point_iterators_range_ops_1.png
	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png
	* docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png
	* docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html: Same.
	* docs/html/ext/pb_ds/move_to_front_lu_policy.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png
	* docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html: Same.
	* docs/html/ext/pb_ds/string_trie_e_access_traits.html: Same.
	* docs/html/ext/pb_ds/prerequisites.html: Same.
	* docs/html/ext/pb_ds/gp_hash_tag.html: Same.
	* docs/html/ext/pb_ds/priority_queue_tag_cd.png
	* docs/html/ext/pb_ds/container_cd.png
	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png
	* docs/html/ext/pb_ds/container_base.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png
	* docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html: Same.
	* docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png
	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png
	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png
	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png
	* docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png
	* docs/html/ext/pb_ds/text_find_timing_test_hash_local.png
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png
	* docs/html/ext/pb_ds/ov_tree_tag.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png
	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png
	* docs/html/ext/pb_ds/list_update_tag.html: Same.
	* docs/html/ext/pb_ds/balls_and_bins.png
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png
	* docs/html/ext/pb_ds/disclaimer.html: Same.
	* docs/html/ext/pb_ds/insert_error.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png
	* docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png
	* docs/html/ext/pb_ds/examples.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html: Same.
	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png
	* docs/html/ext/pb_ds/sample_probe_fn.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png
	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html: Same.
	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png
	* docs/html/ext/pb_ds/null_mapped_type.html: Same.
	* docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png
	* docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png
	* docs/html/ext/pb_ds/associative_container_tag.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png
	* docs/html/ext/pb_ds/design.html: Same.
	* docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html: Same.
	* docs/html/ext/pb_ds/pairing_heap_tag.html: Same.
	* docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png
	* docs/html/ext/pb_ds/references.html: Same.
	* docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png
	* docs/html/ext/pb_ds/hash_load_check_resize_trigger.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png
	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png
	* docs/html/ext/pb_ds/pq_different_underlying_dss.png
	* docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png
	* docs/html/ext/pb_ds/pq_regression_tests.html: Same.
	* docs/html/ext/pb_ds/sample_tree_node_update.html: Same.
	* docs/html/ext/pb_ds/invalidation_guarantee_erase.png
	* docs/html/ext/pb_ds/basic_invalidation_guarantee.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png
	* docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png
	* docs/html/ext/pb_ds/point_iterators_range_ops_2.png
	* docs/html/ext/pb_ds/null_probe_fn.html: Same.
	* docs/html/ext/pb_ds/hash_prime_size_policy.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png
	* docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html: Same.
	* docs/html/ext/pb_ds/sample_resize_policy.html: Same.
	* docs/html/ext/pb_ds/binomial_heap_tag.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png
	* docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png
	* docs/html/ext/pb_ds/trie_based_containers.html: Same.
	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png
	* docs/html/ext/pb_ds/tree_split_join_timing_test_local.png
	* docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png
	* docs/html/ext/pb_ds/motivation.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png
	* docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png
	* docs/html/ext/pb_ds/tree.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png
	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png
	* docs/html/ext/pb_ds/invalidation_guarantee_cd.png
	* docs/html/ext/pb_ds/tutorial.html: Same.
	* docs/html/ext/pb_ds/null_trie_node_update.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png
	* docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png
	* docs/html/ext/pb_ds/point_iterators_cd.png
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png
	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png
	* docs/html/ext/pb_ds/rb_tree_tag.html: Same.
	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png
	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png
	* docs/html/ext/pb_ds/exceptions.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png
	* docs/html/ext/pb_ds/hash_policy_cd.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html: Same.
	* docs/html/ext/pb_ds/ds_gen.html: Same.
	* docs/html/ext/pb_ds/hash_exponential_size_policy.html: Same.
	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png
	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png
	* docs/html/ext/pb_ds/index.html: Same.
	* docs/html/ext/pb_ds/binary_heap_tag.html: Same.
	* docs/html/ext/pb_ds/basic_hash_tag.html: Same.
	* docs/html/ext/pb_ds/trie_order_statistics_node_update.html: Same.
	* docs/html/ext/pb_ds/sample_resize_trigger.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png
	* docs/html/ext/pb_ds/hash_text_find_find_timing_test.html: Same.
	* docs/html/ext/pb_ds/tree_text_insert_timing_test.html: Same.
	* docs/html/ext/pb_ds/trie_tag.html: Same.
	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png
	* docs/html/ext/pb_ds/pq_tests.html: Same.
	* docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png
	* docs/html/ext/pb_ds/node_invariant_invalidations.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png
	* docs/html/ext/pb_ds/resize_policy_cd.png
	* docs/html/ext/pb_ds/embedded_lists_1.png
	* docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png
	* docs/html/ext/pb_ds/null_lu_metadata.html: Same.
	* docs/html/ext/pb_ds/tree_order_statistics_timing_test.html: Same.
	* docs/html/ext/pb_ds/trie_prefix_search_node_update.html: Same.
	* docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png
	* docs/html/ext/pb_ds/point_invalidation_guarantee.html: Same.
	* docs/html/ext/pb_ds/direct_mod_range_hashing.html: Same.
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png
	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png
	* docs/html/ext/pb_ds/misc.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png
	* docs/html/ext/pb_ds/counter_lu_policy.html: Same.
	* docs/html/ext/pb_ds/different_underlying_dss.png
	* docs/html/ext/pb_ds/restoring_node_invariants.png
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html: Same.
	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png
	* docs/html/ext/pb_ds/sample_update_policy.html: Same.
	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png
	* docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png
	* docs/html/ext/pb_ds/simple_list.png
	* docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png
	* docs/html/ext/pb_ds/assoc_examples.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png
	* docs/html/ext/pb_ds/hash_based_containers.html: Same.
	* docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png
	* docs/html/ext/pb_ds/tree_node_iterator.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png
	* docs/html/ext/pb_ds/trie_node_iterator.html: Same.
	* docs/html/ext/pb_ds/tree_based_containers.html: Same.
	* docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png
	* docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png
	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png
	* docs/html/ext/pb_ds/rationale_null_node_updator.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png
	* docs/html/ext/pb_ds/lu.png
	* docs/html/ext/pb_ds/assoc_container_traits.html: Same.
	* docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png
	* docs/html/ext/pb_ds/assoc_design.html: Same.
	* docs/html/ext/pb_ds/splay_tree_tag.html: Same.
	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png
	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html: Same.
	* docs/html/ext/pb_ds/assoc_container_tag_cd.svg
	* docs/html/ext/pb_ds/resize_error.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png
	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html: Same.
	* docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html: Same.
	* docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png
	* docs/html/ext/pb_ds/trie_const_node_iterator.html: Same.
	* docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png
	* docs/html/ext/pb_ds/sample_size_policy.html: Same.
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png
	* docs/html/ext/pb_ds/cc_hash_table.html: Same.
	* docs/html/ext/pb_ds/node_invariants.png
	* docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png
	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html: Same.
	* docs/html/ext/pb_ds/tree_order_statistics_node_update.html: Same.
	* docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png
	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png
	* docs/html/ext/pb_ds/priority_queue.html: Same.
	* docs/html/ext/pb_ds/assoc_tests.html: Same.
	* docs/html/ext/pb_ds/assoc_container_tag_cd.png
	* docs/html/ext/pb_ds/basic_hash_table.html: Same.
	* docs/html/ext/pb_ds/basic_tree_tag.html: Same.
	* docs/html/ext/pb_ds/tree_split_join_timing_test.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png
	* docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png
	* docs/html/ext/pb_ds/embedded_lists_2.png
	* docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png
	* docs/html/ext/pb_ds/sample_ranged_probe_fn.html: Same.
	* docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png
	* docs/html/ext/pb_ds/sample_trie_node_update.html: Same.
	* docs/html/ext/pb_ds/introduction.html: Same.
	* docs/html/ext/pb_ds/pq_performance_tests.html: Same.
	* docs/html/ext/pb_ds/pat_trie.png
	* docs/html/ext/pb_ds/range_invalidation_guarantee.html: Same.
	* docs/html/ext/pb_ds/contact.html: Same.
	* docs/html/ext/pb_ds/sample_range_hashing.html: Same.
	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png
	* docs/html/ext/pb_ds/update_seq_diagram.png
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png
	* docs/html/ext/pb_ds/direct_mask_range_hashing.html: Same.
	* docs/html/ext/pb_ds/tests.html: Same.
	* docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png
	* docs/html/ext/pb_ds/tree_node_updator_policy_cd.png
	* docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html: Same.
	* docs/html/ext/pb_ds/trie_node_updator_policy_cd.png
	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png
	* docs/html/ext/pb_ds/concepts.html: Same.
	* docs/html/ext/pb_ds/pq_examples.html: Same.
	* docs/html/ext/pb_ds/priority_queue_tag.html: Same.
	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html: Same.
	* docs/html/ext/pb_ds/update_policy_cd.png
	* docs/html/ext/pb_ds/thin_heap_tag.html: Same.
	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png
	* docs/html/ext/pb_ds/basic_tree.html: Same.
	* docs/html/ext/pb_ds/null_hash_fn.html: Same.
	* docs/html/ext/pb_ds/null_tree_node_update.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png
	* docs/html/ext/pb_ds/trie.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png
	* docs/html/ext/pb_ds/rc_binomial_heap_tag.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png
	* docs/html/ext/pb_ds/pq_container_traits.html: Same.
	* docs/html/ext/pb_ds/pq_design.html: Same.
	* docs/html/ext/pb_ds/checked_by_tidy.gif
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png
	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png
	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html: Same.
	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png
	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png
	* docs/html/ext/pb_ds/acks.html: Same.
	* docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png
	* docs/html/ext/pb_ds/cc_hash_tag.html: Same.
	* docs/html/ext/pb_ds/sample_ranged_hash_fn.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png
	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html: Same.
	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html: Same.
	* docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png
	* docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png
	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png
	* docs/html/ext/pb_ds/PythonPoweredSmall.gif
	* docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png
	* docs/html/ext/pb_ds/pat_trie_tag.html: Same.
	* docs/html/ext/pb_ds/hash_standard_resize_policy.html: Same.
	* docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png
	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png
	* docs/html/ext/pb_ds/join_error.html: Same.
	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png
	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png

	* testsuite/ext/pb_ds: New.
	* testsuite/ext/pb_ds/regression: New.
	* testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/associative_containers.cc: Same.
	* testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/priority_queues.cc: Same.
	* testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same.
	* testsuite/ext/pb_ds/example: New.
	* testsuite/ext/pb_ds/example/hash_shift_mask.cc: Same.
	* testsuite/ext/pb_ds/example/basic_set.cc: Same.
	* testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Same.
	* testsuite/ext/pb_ds/example/hash_resize_neg.cc: Same.
	* testsuite/ext/pb_ds/example/store_hash.cc: Same.
	* testsuite/ext/pb_ds/example/assoc_container_traits.cc: Same.
	* testsuite/ext/pb_ds/example/hash_load_set_change.cc: Same.
	* testsuite/ext/pb_ds/example/ranged_hash.cc: Same.
	* testsuite/ext/pb_ds/example/hash_resize.cc: Same.
	* testsuite/ext/pb_ds/example/tree_order_statistics.cc: Same.
	* testsuite/ext/pb_ds/example/trie_prefix_search.cc: Same.
	* testsuite/ext/pb_ds/example/basic_multiset.cc: Same.
	* testsuite/ext/pb_ds/example/priority_queue_xref.cc: Same.
	* testsuite/ext/pb_ds/example/hash_find_neg.cc: Same.
	* testsuite/ext/pb_ds/example/erase_if.cc: Same.
	* testsuite/ext/pb_ds/example/priority_queue_container_traits.cc: Same.
	* testsuite/ext/pb_ds/example/tree_join.cc: Same.
	* testsuite/ext/pb_ds/example/basic_map.cc: Same.
	* testsuite/ext/pb_ds/example/trie_split.cc: Same.
	* testsuite/ext/pb_ds/example/priority_queue_split_join.cc: Same.
	* testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc: Same.
	* testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: Same.
	* testsuite/ext/pb_ds/example/hash_mod.cc: Same.
	* testsuite/ext/pb_ds/example/tree_order_statistics_join.cc: Same.
	* testsuite/ext/pb_ds/example/trie_dna.cc: Same.
	* testsuite/ext/pb_ds/example/hash_initial_size.cc: Same.
	* testsuite/ext/pb_ds/example/basic_priority_queue.cc: Same.
	* testsuite/ext/pb_ds/example/tree_intervals.cc: Same.
	* testsuite/ext/pb_ds/example/basic_multimap.cc: Same.
	* testsuite/performance/ext: New.
	* testsuite/performance/ext/pb_ds: New.
	* testsuite/performance/ext/pb_ds/multimap_text_find_timing_small.cc: Same.
	* testsuite/performance/ext/pb_ds/text_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc: Same.
	* testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/random_int_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing_large.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp: Same.
	* testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_find_timing_large.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing_small.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp: Same.
	* testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc: Same.
	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc: Same.
	* testsuite/data/make_graph_test_infos.xml: Same.
	* testsuite/data/thirty_years_among_the_dead_preproc.txt: New.
	* testsuite/data/make_graph_htmls.xml: Same.
	* testsuite/util/regression: New.
	* testsuite/util/regression/trait: New.
	* testsuite/util/regression/trait/priority_queue: New.
	* testsuite/util/regression/trait/priority_queue/trait.hpp: Same.
	* testsuite/util/regression/trait/erase_if_fn.hpp: Same.
	* testsuite/util/regression/trait/assoc: New.
	* testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/node_update_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/get_set_load_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/resize_trait.hpp: Same.
	* testsuite/util/regression/trait/assoc/to_string.hpp: Same.
	* testsuite/util/regression/rand: New.
	* testsuite/util/regression/rand/priority_queue: New.
	* testsuite/util/regression/rand/priority_queue/detail: New.
	* testsuite/util/regression/rand/priority_queue/detail/erase_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/cmp_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/policy_access_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/defs_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/insert_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/clear_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/modify_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/split_join_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/detail/operator_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp: Same.
	* testsuite/util/regression/rand/priority_queue/container_rand_regression_test.hpp: Same.
	* testsuite/util/regression/rand/io: New.
	* testsuite/util/regression/rand/io/priority_queue: New.
	* testsuite/util/regression/rand/io/priority_queue/xml_formatter.hpp: Same.
	* testsuite/util/regression/rand/io/assoc: New.
	* testsuite/util/regression/rand/io/assoc/xml_formatter.hpp: Same.
	* testsuite/util/regression/rand/io/xml_formatter.hpp: Same.
	* testsuite/util/regression/rand/assoc: New.
	* testsuite/util/regression/rand/assoc/detail: New.
	* testsuite/util/regression/rand/assoc/detail/subscript_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/cmp_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/policy_access_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/it_conversion_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/diagnostic_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/clear_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/get_set_load_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/operator_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/erase_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/resize_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/insert_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/split_join_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/detail/get_set_loads_fn_imps.hpp: Same.
	* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same.
	* testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp: Same.
	* testsuite/util/regression/priority_queue: New.
	* testsuite/util/regression/priority_queue/common_type.hpp: Same.
	* testsuite/util/regression/basic_type.hpp: Same.
	* testsuite/util/regression/assoc: New.
	* testsuite/util/regression/assoc/common_type.hpp: Same.
	* testsuite/util/regression/res_mng: New.
	* testsuite/util/regression/res_mng/forced_exception.hpp: Same.
	* testsuite/util/regression/res_mng/dbg_ex_allocator_base.cc: Same.
	* testsuite/util/regression/res_mng/dbg_ex_allocator_base.hpp: Same.
	* testsuite/util/regression/res_mng/dbg_ex_allocator.hpp: Same.
	* testsuite/util/rng: New.
	* testsuite/util/rng/twister_rand_gen.cc: Same.
	* testsuite/util/rng/twister_rand_gen.hpp: Same.
	* testsuite/util/native_type: New.
	* testsuite/util/native_type/priority_queue: New.
	* testsuite/util/native_type/priority_queue/native_priority_queue.hpp: Same.
	* testsuite/util/native_type/priority_queue/native_pq_tag.hpp: Same.
	* testsuite/util/native_type/assoc: New.
	* testsuite/util/native_type/assoc/native_multimap.hpp: Same.
	* testsuite/util/native_type/assoc/native_tree_tag.hpp: Same.
	* testsuite/util/native_type/assoc/native_set.hpp: Same.
	* testsuite/util/native_type/assoc/native_hash_multimap.hpp: Same.
	* testsuite/util/native_type/assoc/native_map.hpp: Same.
	* testsuite/util/native_type/assoc/native_hash_tag.hpp: Same.
	* testsuite/util/native_type/assoc/native_hash_set.hpp: Same.
	* testsuite/util/native_type/assoc/native_hash_map.hpp: Same.
	* testsuite/util/common_type: New.
	* testsuite/util/common_type/priority_queue
	* testsuite/util/common_type/priority_queue/common_type.hpp: Same.
	* testsuite/util/common_type/priority_queue/string_form.hpp: Same.
	* testsuite/util/common_type/priority_queue/detail
	* testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp: Same.
	* testsuite/util/common_type/assoc: New.
	* testsuite/util/common_type/assoc/common_type.hpp: Same.
	* testsuite/util/common_type/assoc/string_form.hpp: Same.
	* testsuite/util/common_type/assoc/template_policy.hpp: Same.
	* testsuite/util/common_type/assoc/detail: New.
	* testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp: Same.
	* testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp: Same.
	* testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp: Same.
	* testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp: Same.
	* testsuite/util/common_type/assoc/native_set.hpp: Same.
	* testsuite/util/performance: New.
	* testsuite/util/performance/priority_queue: New.
	* testsuite/util/performance/priority_queue/mem_usage: New.
	* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp: Same.
	* testsuite/util/performance/priority_queue/timing: New.
	* testsuite/util/performance/priority_queue/timing/push_pop_test.hpp: Same.
	* testsuite/util/performance/priority_queue/timing/push_test.hpp: Same.
	* testsuite/util/performance/priority_queue/timing/join_test.hpp: Same.
	* testsuite/util/performance/priority_queue/timing/modify_test.hpp: Same.
	* testsuite/util/performance/io: New.
	* testsuite/util/performance/io/xml_formatter.hpp: Same.
	* testsuite/util/performance/assoc: New.
	* testsuite/util/performance/assoc/mem_usage: New.
	* testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp: Same.
	* testsuite/util/performance/assoc/mem_usage/erase_test.hpp: Same.
	* testsuite/util/performance/assoc/multimap_common_type.hpp: Same.
	* testsuite/util/performance/assoc/timing: New.
	* testsuite/util/performance/assoc/timing/common_type.hpp: Same.
	* testsuite/util/performance/assoc/timing/multimap_insert_test.hpp: Same.
	* testsuite/util/performance/assoc/timing/subscript_find_test.hpp: Same.
	* testsuite/util/performance/assoc/timing/find_test.hpp: Same.
	* testsuite/util/performance/assoc/timing/subscript_insert_test.hpp: Same.
	* testsuite/util/performance/assoc/timing/insert_test.hpp: Same.
	* testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp: Same.
	* testsuite/util/performance/assoc/timing/multimap_find_test.hpp: Same.
	* testsuite/util/performance/assoc/timing/tree_split_join_test.hpp: Same.
	* testsuite/util/performance/time: New.
	* testsuite/util/performance/time/elapsed_timer.cc: Same.
	* testsuite/util/performance/time/elapsed_timer.hpp: Same.
	* testsuite/util/performance/time/timing_test_base.hpp: Same.
	* testsuite/util/performance/mem: New.
	* testsuite/util/performance/mem/mem_track_allocator_base.hpp: Same.
	* testsuite/util/performance/mem/mem_track_allocator.hpp: Same.
	* testsuite/util/hash_fn: New.
	* testsuite/util/hash_fn/limit_string_hash_fn.hpp: Same.
	* testsuite/util/hash_fn/string_ranged_hash_fn.hpp: Same.
	* testsuite/util/hash_fn/string_hash_fn.hpp: Same.
	* testsuite/util/hash_fn/string_ranged_probe_fn.hpp: Same.
	* testsuite/util/hash_fn/dna_str_limit.hpp: Same.
	* testsuite/util/io: New.
	* testsuite/util/io/prog_bar.cc: Same.
	* testsuite/util/io/prog_bar.hpp: Same.
	* testsuite/util/io/text_populate.hpp: Same.
	* testsuite/util/io/xml.hpp: Same.
	* testsuite/util/io/illegal_input_error.hpp: Same.
	* testsuite/util/io/xml_test_formatter.hpp: Same.
	* testsuite/util/io/verified_cmd_line_input.cc: Same.
	* testsuite/util/io/verified_cmd_line_input.hpp: Same.
	* testsuite/util/statistic: New.
	* testsuite/util/statistic/sample_var.hpp: Same.
	* testsuite/util/statistic/res_recorder.hpp: Same.
	* testsuite/util/statistic/sample_mean.hpp: Same.
	* testsuite/util/statistic/sample_mean_confidence_checker.hpp: Same.




git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@114659 138bc75d-0d04-0410-961f-82ee72b054a4
---
 libstdc++-v3/ChangeLog                        |    876 +
 libstdc++-v3/docs/html/documentation.html     |      2 +-
 .../html/ext/pb_assoc/Std_hash_set_impl.jpg   |    Bin 51488 -> 0 bytes
 libstdc++-v3/docs/html/ext/pb_assoc/acks.html |     46 -
 .../docs/html/ext/pb_assoc/balls_and_bins.jpg |    Bin 18512 -> 0 bytes
 .../html/ext/pb_assoc/basic_assoc_cntnr.html  |   1229 -
 .../basic_assoc_cntnr_compound_data.html      |   1244 -
 .../pb_assoc/basic_assoc_cntnr_no_data.html   |   1046 -
 .../docs/html/ext/pb_assoc/basic_ds_tag.html  |     41 -
 .../ext/pb_assoc/basic_hash_assoc_cntnr.html  |    609 -
 .../html/ext/pb_assoc/basic_hash_ds_tag.html  |     74 -
 .../basic_invalidation_guarantee.html         |     41 -
 .../docs/html/ext/pb_assoc/basic_ms_tag.html  |     41 -
 .../ext/pb_assoc/basic_tree_assoc_cntnr.html  |    940 -
 ..._tree_assoc_cntnr_const_node_iterator.html |    488 -
 .../basic_tree_assoc_cntnr_node_iterator.html |    250 -
 .../pb_assoc/basic_tree_assoc_cntnr_rev.html  |    771 -
 .../basic_tree_assoc_cntnr_rev_it.html        |    771 -
 .../html/ext/pb_assoc/basic_tree_ds_tag.html  |     74 -
 .../ext/pb_assoc/cc_hash_assoc_cntnr.html     |    679 -
 .../html/ext/pb_assoc/cc_hash_ds_tag.html     |     74 -
 ...sh_max_collision_check_resize_trigger.html |    701 -
 .../html/ext/pb_assoc/cc_hash_policy_cd.jpg   |    Bin 27118 -> 0 bytes
 libstdc++-v3/docs/html/ext/pb_assoc/cd.jpg    |    Bin 58234 -> 0 bytes
 .../ext/pb_assoc/component_requirements.html  |     51 -
 .../compound_data_enabled_ms_tag.html         |     41 -
 .../html/ext/pb_assoc/compound_data_type.html |    128 -
 .../html/ext/pb_assoc/compound_ds_tag.html    |     77 -
 .../docs/html/ext/pb_assoc/concepts.html      |    124 -
 .../docs/html/ext/pb_assoc/contact.html       |     19 -
 .../ext/pb_assoc/counter_update_metadata.html |    101 -
 .../ext/pb_assoc/counter_update_policy.html   |    380 -
 .../ext/pb_assoc/data_enabled_ms_tag.html     |     41 -
 .../docs/html/ext/pb_assoc/design.html        |     23 -
 .../ext/pb_assoc/different_underlying_dss.jpg |    Bin 34944 -> 0 bytes
 .../pb_assoc/direct_mask_range_hashing.html   |    251 -
 .../pb_assoc/direct_mod_range_hashing.html    |    228 -
 .../docs/html/ext/pb_assoc/disclaimer.html    |     25 -
 .../docs/html/ext/pb_assoc/ds_gen.html        |    368 -
 .../docs/html/ext/pb_assoc/ds_tag_cd.jpg      |    Bin 54661 -> 0 bytes
 .../docs/html/ext/pb_assoc/ds_traits.html     |     41 -
 .../html/ext/pb_assoc/embedded_lists_1.jpg    |    Bin 24191 -> 0 bytes
 .../html/ext/pb_assoc/embedded_lists_2.jpg    |    Bin 23766 -> 0 bytes
 .../docs/html/ext/pb_assoc/examples.html      |    185 -
 .../exception_guarantees_specifics.html       |     31 -
 .../pb_assoc/find_invalidation_guarantee.html |     74 -
 .../html/ext/pb_assoc/find_iterators_cd.jpg   |    Bin 48752 -> 0 bytes
 .../pb_assoc/find_iterators_range_ops_1.jpg   |    Bin 18521 -> 0 bytes
 .../pb_assoc/find_iterators_range_ops_2.jpg   |    Bin 25683 -> 0 bytes
 .../docs/html/ext/pb_assoc/generics.html      |     25 -
 .../ext/pb_assoc/gp_hash_assoc_cntnr.html     |    816 -
 .../html/ext/pb_assoc/gp_hash_ds_tag.html     |     74 -
 .../html/ext/pb_assoc/gp_hash_policy_cd.jpg   |    Bin 39817 -> 0 bytes
 .../ext/pb_assoc/hash_and_probe_general.html  |     45 -
 .../ext/pb_assoc/hash_based_containers.html   |   1056 -
 .../docs/html/ext/pb_assoc/hash_cd.jpg        |    Bin 54780 -> 0 bytes
 .../hash_exponential_size_policy.html         |    267 -
 .../docs/html/ext/pb_assoc/hash_fn.html       |     25 -
 .../hash_load_check_resize_trigger.html       |    744 -
 .../docs/html/ext/pb_assoc/hash_policies.html |    375 -
 .../docs/html/ext/pb_assoc/hash_policy_cd.jpg |    Bin 59739 -> 0 bytes
 .../ext/pb_assoc/hash_prime_size_policy.html  |    211 -
 .../hash_range_hashing_seq_diagram.jpg        |    Bin 30271 -> 0 bytes
 .../hash_range_hashing_seq_diagram2.jpg       |    Bin 20756 -> 0 bytes
 .../hash_ranged_hash_range_hashing_fns.jpg    |    Bin 35579 -> 0 bytes
 .../pb_assoc/hash_standard_resize_policy.html |    986 -
 libstdc++-v3/docs/html/ext/pb_assoc/home.html |     56 -
 .../docs/html/ext/pb_assoc/index.html         |     12 -
 .../insert_resize_sequence_diagram1.jpg       |    Bin 66060 -> 0 bytes
 .../insert_resize_sequence_diagram2.jpg       |    Bin 43557 -> 0 bytes
 .../insert_resize_sequence_diagram3.jpg       |    Bin 39549 -> 0 bytes
 .../ext/pb_assoc/insert_type_methods.html     |     42 -
 .../docs/html/ext/pb_assoc/interface.html     |    342 -
 .../ext/pb_assoc/interval_node_invariants.jpg |    Bin 31555 -> 0 bytes
 .../docs/html/ext/pb_assoc/introduction.html  |     31 -
 .../pb_assoc/invalidation_guarantee_cd.jpg    |    Bin 23162 -> 0 bytes
 .../pb_assoc/invalidation_guarantee_erase.jpg |    Bin 56109 -> 0 bytes
 .../docs/html/ext/pb_assoc/lib_download.html  |     47 -
 .../html/ext/pb_assoc/linear_probe_fn.html    |    238 -
 .../docs/html/ext/pb_assoc/list_updates.html  |    138 -
 .../html/ext/pb_assoc/lu_assoc_cntnr.html     |    570 -
 .../ext/pb_assoc/lu_based_containers.html     |    225 -
 libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpg |    Bin 60906 -> 0 bytes
 .../docs/html/ext/pb_assoc/lu_ds_tag.html     |     74 -
 .../docs/html/ext/pb_assoc/lu_ops.jpg         |    Bin 36112 -> 0 bytes
 .../html/ext/pb_assoc/mmap_value_utils.html   |    128 -
 .../docs/html/ext/pb_assoc/motivation.html    |    281 -
 .../move_to_front_update_metadata.html        |     41 -
 .../pb_assoc/move_to_front_update_policy.html |    256 -
 libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpg |    Bin 61973 -> 0 bytes
 .../docs/html/ext/pb_assoc/ms_gen.html        |    440 -
 .../docs/html/ext/pb_assoc/ms_tag_cd.jpg      |    Bin 21009 -> 0 bytes
 .../docs/html/ext/pb_assoc/ms_traits.html     |    131 -
 .../pb_assoc/node_invariant_invalidations.jpg |    Bin 43521 -> 0 bytes
 .../html/ext/pb_assoc/node_invariants.html    |    154 -
 .../html/ext/pb_assoc/node_invariants.jpg     |    Bin 32622 -> 0 bytes
 .../html/ext/pb_assoc/non_unique_mapping.html |    404 -
 .../non_unique_mapping_containers.jpg         |    Bin 19257 -> 0 bytes
 .../html/ext/pb_assoc/null_data_type.html     |     41 -
 .../docs/html/ext/pb_assoc/null_hash_fn.html  |     44 -
 .../docs/html/ext/pb_assoc/null_probe_fn.html |     44 -
 .../docs/html/ext/pb_assoc/order_by_key.html  |    254 -
 .../ext/pb_assoc/order_statistics_key.html    |    373 -
 .../pb_assoc/order_statistics_key_cmp.html    |    422 -
 .../order_statistics_node_updator.html        |    278 -
 .../html/ext/pb_assoc/ov_tree_ds_tag.html     |     74 -
 .../docs/html/ext/pb_assoc/overview.html      |    139 -
 .../docs/html/ext/pb_assoc/pb_assoc_ex.html   |     74 -
 .../docs/html/ext/pb_assoc/portability.html   |     26 -
 .../html/ext/pb_assoc/quadratic_probe_fn.html |    238 -
 .../range_invalidation_guarantee.html         |     74 -
 .../ext/pb_assoc/rank_node_invariants.jpg     |    Bin 28798 -> 0 bytes
 .../pb_assoc/rationale_null_node_updator.jpg  |    Bin 27057 -> 0 bytes
 .../html/ext/pb_assoc/rb_tree_ds_tag.html     |     74 -
 .../html/ext/pb_assoc/reference_iterator.jpg  |    Bin 32467 -> 0 bytes
 .../docs/html/ext/pb_assoc/references.html    |     94 -
 .../html/ext/pb_assoc/regression_tests.html   |     25 -
 .../html/ext/pb_assoc/resize_general.html     |     28 -
 .../html/ext/pb_assoc/resize_policies.html    |    487 -
 .../html/ext/pb_assoc/resize_policy_cd.jpg    |    Bin 58948 -> 0 bytes
 .../pb_assoc/restoring_node_invariants.jpg    |    Bin 26335 -> 0 bytes
 .../html/ext/pb_assoc/sample_node_updator.hpp |    116 -
 .../html/ext/pb_assoc/sample_probe_fn.hpp     |    121 -
 .../html/ext/pb_assoc/sample_probe_fn.html    |    177 -
 .../ext/pb_assoc/sample_range_hashing.hpp     |    147 -
 .../ext/pb_assoc/sample_range_hashing.html    |    213 -
 .../ext/pb_assoc/sample_ranged_hash_fn.hpp    |    141 -
 .../ext/pb_assoc/sample_ranged_hash_fn.html   |    129 -
 .../ext/pb_assoc/sample_ranged_probe_fn.hpp   |    143 -
 .../ext/pb_assoc/sample_ranged_probe_fn.html  |    129 -
 .../ext/pb_assoc/sample_resize_policy.hpp     |    310 -
 .../ext/pb_assoc/sample_resize_policy.html    |    536 -
 .../ext/pb_assoc/sample_resize_trigger.hpp    |    341 -
 .../html/ext/pb_assoc/sample_size_policy.hpp  |    140 -
 .../ext/pb_assoc/sample_update_policy.hpp     |    171 -
 .../ext/pb_assoc/size_policies_general.html   |     22 -
 .../html/ext/pb_assoc/splay_tree_ds_tag.html  |     74 -
 .../docs/html/ext/pb_assoc/timing_tests.html  |     60 -
 libstdc++-v3/docs/html/ext/pb_assoc/toc.html  |     35 -
 .../html/ext/pb_assoc/tree_assoc_cntnr.html   |    493 -
 .../tree_assoc_cntnr_const_node_iterator.html |    488 -
 .../tree_assoc_cntnr_node_iterator.html       |    250 -
 .../ext/pb_assoc/tree_based_containers.html   |    246 -
 .../docs/html/ext/pb_assoc/tree_cd.jpg        |    Bin 60672 -> 0 bytes
 .../pb_assoc/trigger_policies_general.html    |     23 -
 .../docs/html/ext/pb_assoc/tutorial.html      |     66 -
 .../html/ext/pb_assoc/update_seq_diagram.jpg  |    Bin 23396 -> 0 bytes
 .../html/ext/pb_ds/PythonPoweredSmall.gif     |    Bin 0 -> 361 bytes
 libstdc++-v3/docs/html/ext/pb_ds/acks.html    |     65 +
 .../html/ext/pb_ds/assoc_container_tag_cd.png |    Bin 0 -> 21668 bytes
 .../html/ext/pb_ds/assoc_container_tag_cd.svg |    491 +
 .../ext/pb_ds/assoc_container_traits.html     |    170 +
 .../docs/html/ext/pb_ds/assoc_design.html     |     46 +
 .../docs/html/ext/pb_ds/assoc_examples.html   |    174 +
 .../ext/pb_ds/assoc_performance_tests.html    |    345 +
 .../ext/pb_ds/assoc_regression_tests.html     |     96 +
 .../docs/html/ext/pb_ds/assoc_tests.html      |     24 +
 .../ext/pb_ds/associative_container_tag.html  |     47 +
 .../docs/html/ext/pb_ds/balls_and_bins.png    |    Bin 0 -> 10139 bytes
 .../docs/html/ext/pb_ds/basic_hash_table.html |    436 +
 .../docs/html/ext/pb_ds/basic_hash_tag.html   |     47 +
 .../pb_ds/basic_invalidation_guarantee.html   |     26 +
 .../docs/html/ext/pb_ds/basic_tree.html       |    660 +
 ...e_assoc_container_const_node_iterator.html |    383 +
 .../docs/html/ext/pb_ds/basic_tree_tag.html   |     47 +
 .../docs/html/ext/pb_ds/binary_heap_tag.html  |     47 +
 ..._queue_random_int_push_timing_test_gcc.png |    Bin 0 -> 5357 bytes
 ...ueue_random_int_push_timing_test_local.png |    Bin 0 -> 6710 bytes
 ...queue_random_int_push_timing_test_msvc.png |    Bin 0 -> 5373 bytes
 .../html/ext/pb_ds/binomial_heap_tag.html     |     47 +
 ...sh_max_collision_check_resize_trigger.html |    532 +
 ...c_hash_random_int_find_timing_test_gcc.png |    Bin 0 -> 7074 bytes
 ...hash_random_int_find_timing_test_local.png |    Bin 0 -> 8534 bytes
 ..._hash_random_int_find_timing_test_msvc.png |    Bin 0 -> 7235 bytes
 ...dom_int_subscript_timing_test_find_gcc.png |    Bin 0 -> 6811 bytes
 ...m_int_subscript_timing_test_find_local.png |    Bin 0 -> 8445 bytes
 ...om_int_subscript_timing_test_find_msvc.png |    Bin 0 -> 7230 bytes
 ...m_int_subscript_timing_test_insert_gcc.png |    Bin 0 -> 7636 bytes
 ...int_subscript_timing_test_insert_local.png |    Bin 0 -> 9396 bytes
 ..._int_subscript_timing_test_insert_msvc.png |    Bin 0 -> 6840 bytes
 .../docs/html/ext/pb_ds/cc_hash_table.html    |    724 +
 .../docs/html/ext/pb_ds/cc_hash_tag.html      |     47 +
 ...m_int_subscript_timing_test_insert_gcc.png |    Bin 0 -> 7355 bytes
 ...int_subscript_timing_test_insert_local.png |    Bin 0 -> 9557 bytes
 ..._int_subscript_timing_test_insert_msvc.png |    Bin 0 -> 7572 bytes
 .../docs/html/ext/pb_ds/checked_by_tidy.gif   |    Bin 0 -> 1367 bytes
 .../docs/html/ext/pb_ds/concepts.html         |    118 +
 libstdc++-v3/docs/html/ext/pb_ds/contact.html |     22 +
 .../docs/html/ext/pb_ds/container_base.html   |   1063 +
 .../docs/html/ext/pb_ds/container_cd.png      |    Bin 0 -> 11884 bytes
 .../docs/html/ext/pb_ds/container_cd.svg      |    418 +
 .../docs/html/ext/pb_ds/container_tag.html    |     24 +
 .../html/ext/pb_ds/counter_lu_policy.html     |    259 +
 libstdc++-v3/docs/html/ext/pb_ds/design.html  |     96 +
 .../ext/pb_ds/different_underlying_dss.png    |    Bin 0 -> 31858 bytes
 .../ext/pb_ds/direct_mask_range_hashing.html  |    167 +
 .../ext/pb_ds/direct_mod_range_hashing.html   |    144 +
 .../docs/html/ext/pb_ds/disclaimer.html       |     34 +
 libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html  |    344 +
 .../docs/html/ext/pb_ds/embedded_lists_1.png  |    Bin 0 -> 16350 bytes
 .../docs/html/ext/pb_ds/embedded_lists_2.png  |    Bin 0 -> 18206 bytes
 .../docs/html/ext/pb_ds/embedded_lists_3.png  |    Bin 0 -> 5612 bytes
 .../docs/html/ext/pb_ds/examples.html         |     24 +
 .../docs/html/ext/pb_ds/exceptions.html       |     46 +
 ...p_hash_random_int_find_timing_test_gcc.png |    Bin 0 -> 6194 bytes
 ...hash_random_int_find_timing_test_local.png |    Bin 0 -> 7916 bytes
 ..._hash_random_int_find_timing_test_msvc.png |    Bin 0 -> 6140 bytes
 ...dom_int_subscript_timing_test_find_gcc.png |    Bin 0 -> 6110 bytes
 ...m_int_subscript_timing_test_find_local.png |    Bin 0 -> 7570 bytes
 ...om_int_subscript_timing_test_find_msvc.png |    Bin 0 -> 6314 bytes
 ...m_int_subscript_timing_test_insert_gcc.png |    Bin 0 -> 6763 bytes
 ...int_subscript_timing_test_insert_local.png |    Bin 0 -> 8499 bytes
 ..._int_subscript_timing_test_insert_msvc.png |    Bin 0 -> 6721 bytes
 .../docs/html/ext/pb_ds/gp_hash_table.html    |    891 +
 .../docs/html/ext/pb_ds/gp_hash_tag.html      |     47 +
 .../html/ext/pb_ds/hash_based_containers.html |    835 +
 .../pb_ds/hash_exponential_size_policy.html   |    183 +
 .../pb_ds/hash_load_check_resize_trigger.html |    583 +
 .../docs/html/ext/pb_ds/hash_policy_cd.png    |    Bin 0 -> 25302 bytes
 .../ext/pb_ds/hash_prime_size_policy.html     |    149 +
 .../hash_random_int_erase_mem_usage_test.html |    173 +
 ...sh_random_int_erase_mem_usage_test_gcc.png |    Bin 0 -> 6356 bytes
 ..._random_int_erase_mem_usage_test_local.png |    Bin 0 -> 7405 bytes
 ...h_random_int_erase_mem_usage_test_msvc.png |    Bin 0 -> 6401 bytes
 ...hash_random_int_find_find_timing_test.html |    247 +
 ...random_int_subscript_find_timing_test.html |    220 +
 ...ndom_int_subscript_insert_timing_test.html |    365 +
 .../pb_ds/hash_range_hashing_seq_diagram.png  |    Bin 0 -> 12962 bytes
 .../pb_ds/hash_range_hashing_seq_diagram2.png |    Bin 0 -> 8918 bytes
 .../hash_ranged_hash_range_hashing_fns.png    |    Bin 0 -> 19773 bytes
 .../pb_ds/hash_standard_resize_policy.html    |    795 +
 .../hash_text_find_find_timing_test.html      |    164 +
 ...zlob_random_int_find_find_timing_test.html |    163 +
 ...h_zlob_random_int_find_timing_test_gcc.png |    Bin 0 -> 6910 bytes
 ...zlob_random_int_find_timing_test_local.png |    Bin 0 -> 8436 bytes
 ..._zlob_random_int_find_timing_test_msvc.png |    Bin 0 -> 7204 bytes
 libstdc++-v3/docs/html/ext/pb_ds/index.html   |    146 +
 .../docs/html/ext/pb_ds/insert_error.html     |     53 +
 .../pb_ds/insert_resize_sequence_diagram1.png |    Bin 0 -> 25834 bytes
 .../pb_ds/insert_resize_sequence_diagram2.png |    Bin 0 -> 25522 bytes
 .../pb_ds/insert_resize_sequence_diagram3.png |    Bin 0 -> 24542 bytes
 .../docs/html/ext/pb_ds/interface.html        |    446 +
 .../docs/html/ext/pb_ds/introduction.html     |    120 +
 .../ext/pb_ds/invalidation_guarantee_cd.png   |    Bin 0 -> 8331 bytes
 .../pb_ds/invalidation_guarantee_erase.png    |    Bin 0 -> 25884 bytes
 .../docs/html/ext/pb_ds/join_error.html       |     48 +
 .../docs/html/ext/pb_ds/linear_probe_fn.html  |    140 +
 .../docs/html/ext/pb_ds/list_update.html      |    316 +
 .../docs/html/ext/pb_ds/list_update_tag.html  |     47 +
 libstdc++-v3/docs/html/ext/pb_ds/lu.png       |    Bin 0 -> 20987 bytes
 .../html/ext/pb_ds/lu_based_containers.html   |    229 +
 libstdc++-v3/docs/html/ext/pb_ds/misc.html    |     26 +
 .../docs/html/ext/pb_ds/motivation.html       |    993 +
 .../ext/pb_ds/move_to_front_lu_policy.html    |    194 +
 .../multimap_text_find_timing_test_large.html |    215 +
 ...xt_find_timing_test_large_s2p_hash_gcc.png |    Bin 0 -> 6323 bytes
 ..._find_timing_test_large_s2p_hash_local.png |    Bin 0 -> 7299 bytes
 ...t_find_timing_test_large_s2p_hash_msvc.png |    Bin 0 -> 6490 bytes
 ...xt_find_timing_test_large_s2p_tree_gcc.png |    Bin 0 -> 6284 bytes
 ..._find_timing_test_large_s2p_tree_local.png |    Bin 0 -> 6706 bytes
 ...t_find_timing_test_large_s2p_tree_msvc.png |    Bin 0 -> 6204 bytes
 .../multimap_text_find_timing_test_small.html |    215 +
 ...xt_find_timing_test_small_s2p_hash_gcc.png |    Bin 0 -> 6237 bytes
 ..._find_timing_test_small_s2p_hash_local.png |    Bin 0 -> 6732 bytes
 ...t_find_timing_test_small_s2p_hash_msvc.png |    Bin 0 -> 6268 bytes
 ...xt_find_timing_test_small_s2p_tree_gcc.png |    Bin 0 -> 6064 bytes
 ..._find_timing_test_small_s2p_tree_local.png |    Bin 0 -> 6396 bytes
 ...t_find_timing_test_small_s2p_tree_msvc.png |    Bin 0 -> 6012 bytes
 ...imap_text_insert_mem_usage_test_large.html |    210 +
 ...sert_mem_usage_test_large_s2p_hash_gcc.png |    Bin 0 -> 6835 bytes
 ...rt_mem_usage_test_large_s2p_hash_local.png |    Bin 0 -> 7275 bytes
 ...ert_mem_usage_test_large_s2p_hash_msvc.png |    Bin 0 -> 6588 bytes
 ...sert_mem_usage_test_large_s2p_tree_gcc.png |    Bin 0 -> 6778 bytes
 ...rt_mem_usage_test_large_s2p_tree_local.png |    Bin 0 -> 7191 bytes
 ...ert_mem_usage_test_large_s2p_tree_msvc.png |    Bin 0 -> 6535 bytes
 ...imap_text_insert_mem_usage_test_small.html |    212 +
 ...sert_mem_usage_test_small_s2p_hash_gcc.png |    Bin 0 -> 6449 bytes
 ...rt_mem_usage_test_small_s2p_hash_local.png |    Bin 0 -> 6845 bytes
 ...ert_mem_usage_test_small_s2p_hash_msvc.png |    Bin 0 -> 6570 bytes
 ...sert_mem_usage_test_small_s2p_tree_gcc.png |    Bin 0 -> 6419 bytes
 ...rt_mem_usage_test_small_s2p_tree_local.png |    Bin 0 -> 6925 bytes
 ...ert_mem_usage_test_small_s2p_tree_msvc.png |    Bin 0 -> 6569 bytes
 ...ultimap_text_insert_timing_test_large.html |    212 +
 ..._insert_timing_test_large_s2p_hash_gcc.png |    Bin 0 -> 6380 bytes
 ...nsert_timing_test_large_s2p_hash_local.png |    Bin 0 -> 7000 bytes
 ...insert_timing_test_large_s2p_hash_msvc.png |    Bin 0 -> 6460 bytes
 ..._insert_timing_test_large_s2p_tree_gcc.png |    Bin 0 -> 6204 bytes
 ...nsert_timing_test_large_s2p_tree_local.png |    Bin 0 -> 6764 bytes
 ...insert_timing_test_large_s2p_tree_msvc.png |    Bin 0 -> 6357 bytes
 ...ultimap_text_insert_timing_test_small.html |    217 +
 ..._insert_timing_test_small_s2p_hash_gcc.png |    Bin 0 -> 6456 bytes
 ...nsert_timing_test_small_s2p_hash_local.png |    Bin 0 -> 7035 bytes
 ...insert_timing_test_small_s2p_hash_msvc.png |    Bin 0 -> 6547 bytes
 ..._insert_timing_test_small_s2p_tree_gcc.png |    Bin 0 -> 6111 bytes
 ...nsert_timing_test_small_s2p_tree_local.png |    Bin 0 -> 6853 bytes
 ...insert_timing_test_small_s2p_tree_msvc.png |    Bin 0 -> 6430 bytes
 .../pb_ds/node_invariant_invalidations.png    |    Bin 0 -> 32276 bytes
 .../docs/html/ext/pb_ds/node_invariants.png   |    Bin 0 -> 16553 bytes
 .../docs/html/ext/pb_ds/null_hash_fn.html     |     32 +
 .../docs/html/ext/pb_ds/null_lu_metadata.html |     25 +
 .../docs/html/ext/pb_ds/null_mapped_type.html |     25 +
 .../docs/html/ext/pb_ds/null_probe_fn.html    |     29 +
 .../html/ext/pb_ds/null_tree_node_update.html |    101 +
 .../html/ext/pb_ds/null_trie_node_update.html |    102 +
 .../docs/html/ext/pb_ds/ov_tree_tag.html      |     47 +
 .../docs/html/ext/pb_ds/pairing_heap_tag.html |     47 +
 ...ty_queue_text_push_pop_timing_test_gcc.png |    Bin 0 -> 5395 bytes
 ..._queue_text_push_pop_timing_test_local.png |    Bin 0 -> 6892 bytes
 ...y_queue_text_push_pop_timing_test_msvc.png |    Bin 0 -> 5514 bytes
 ...iority_queue_text_push_timing_test_gcc.png |    Bin 0 -> 5678 bytes
 ...rity_queue_text_push_timing_test_local.png |    Bin 0 -> 6760 bytes
 ...ority_queue_text_push_timing_test_msvc.png |    Bin 0 -> 5878 bytes
 libstdc++-v3/docs/html/ext/pb_ds/pat_trie.png |    Bin 0 -> 26182 bytes
 .../docs/html/ext/pb_ds/pat_trie_tag.html     |     47 +
 .../pb_ds/point_invalidation_guarantee.html   |     51 +
 .../html/ext/pb_ds/point_iterators_cd.png     |    Bin 0 -> 20307 bytes
 .../ext/pb_ds/point_iterators_range_ops_1.png |    Bin 0 -> 14206 bytes
 .../ext/pb_ds/point_iterators_range_ops_2.png |    Bin 0 -> 12876 bytes
 .../html/ext/pb_ds/pq_container_traits.html   |    132 +
 .../docs/html/ext/pb_ds/pq_design.html        |    381 +
 .../ext/pb_ds/pq_different_underlying_dss.png |    Bin 0 -> 15660 bytes
 .../docs/html/ext/pb_ds/pq_examples.html      |     60 +
 .../html/ext/pb_ds/pq_performance_tests.html  |    332 +
 .../html/ext/pb_ds/pq_regression_tests.html   |     52 +
 .../docs/html/ext/pb_ds/pq_tests.html         |     24 +
 .../docs/html/ext/pb_ds/prerequisites.html    |     46 +
 .../docs/html/ext/pb_ds/priority_queue.html   |    995 +
 ...queue_random_int_push_pop_timing_test.html |    161 +
 ...ue_random_int_push_pop_timing_test_gcc.png |    Bin 0 -> 7350 bytes
 ..._random_int_push_pop_timing_test_local.png |    Bin 0 -> 9275 bytes
 ...e_random_int_push_pop_timing_test_msvc.png |    Bin 0 -> 7065 bytes
 ...ity_queue_random_int_push_timing_test.html |    200 +
 ..._queue_random_int_push_timing_test_gcc.png |    Bin 0 -> 7021 bytes
 ...ueue_random_int_push_timing_test_local.png |    Bin 0 -> 8986 bytes
 ...queue_random_int_push_timing_test_msvc.png |    Bin 0 -> 7100 bytes
 .../html/ext/pb_ds/priority_queue_tag.html    |     47 +
 .../html/ext/pb_ds/priority_queue_tag_cd.png  |    Bin 0 -> 10845 bytes
 .../html/ext/pb_ds/priority_queue_tag_cd.svg  |    368 +
 .../priority_queue_text_join_timing_test.html |    141 +
 ...iority_queue_text_join_timing_test_gcc.png |    Bin 0 -> 6458 bytes
 ...rity_queue_text_join_timing_test_local.png |    Bin 0 -> 7989 bytes
 ...ority_queue_text_join_timing_test_msvc.png |    Bin 0 -> 6461 bytes
 ...ty_queue_text_modify_down_timing_test.html |    204 +
 ...queue_text_modify_down_timing_test_gcc.png |    Bin 0 -> 6788 bytes
 ...eue_text_modify_down_timing_test_local.png |    Bin 0 -> 7633 bytes
 ...ueue_text_modify_down_timing_test_msvc.png |    Bin 0 -> 6956 bytes
 ...dify_down_timing_test_pairing_thin_gcc.png |    Bin 0 -> 5007 bytes
 ...fy_down_timing_test_pairing_thin_local.png |    Bin 0 -> 5878 bytes
 ...ify_down_timing_test_pairing_thin_msvc.png |    Bin 0 -> 4996 bytes
 ...rity_queue_text_modify_up_timing_test.html |    222 +
 ...y_queue_text_modify_up_timing_test_gcc.png |    Bin 0 -> 6950 bytes
 ...queue_text_modify_up_timing_test_local.png |    Bin 0 -> 7748 bytes
 ..._queue_text_modify_up_timing_test_msvc.png |    Bin 0 -> 6983 bytes
 ...modify_up_timing_test_pairing_thin_gcc.png |    Bin 0 -> 4867 bytes
 ...dify_up_timing_test_pairing_thin_local.png |    Bin 0 -> 6105 bytes
 ...odify_up_timing_test_pairing_thin_msvc.png |    Bin 0 -> 5216 bytes
 ...riority_queue_text_pop_mem_usage_test.html |    143 +
 ...rity_queue_text_pop_mem_usage_test_gcc.png |    Bin 0 -> 6582 bytes
 ...ty_queue_text_pop_mem_usage_test_local.png |    Bin 0 -> 7424 bytes
 ...ity_queue_text_pop_mem_usage_test_msvc.png |    Bin 0 -> 6849 bytes
 ...ority_queue_text_push_pop_timing_test.html |    209 +
 ...ty_queue_text_push_pop_timing_test_gcc.png |    Bin 0 -> 7072 bytes
 ..._queue_text_push_pop_timing_test_local.png |    Bin 0 -> 9006 bytes
 ...y_queue_text_push_pop_timing_test_msvc.png |    Bin 0 -> 7289 bytes
 .../priority_queue_text_push_timing_test.html |    219 +
 ...iority_queue_text_push_timing_test_gcc.png |    Bin 0 -> 6832 bytes
 ...rity_queue_text_push_timing_test_local.png |    Bin 0 -> 8477 bytes
 ...ority_queue_text_push_timing_test_msvc.png |    Bin 0 -> 7266 bytes
 .../html/ext/pb_ds/quadratic_probe_fn.html    |    141 +
 ...dom_int_find_find_timing_test_tree_gcc.png |    Bin 0 -> 5960 bytes
 ...m_int_find_find_timing_test_tree_local.png |    Bin 0 -> 7377 bytes
 ...om_int_find_find_timing_test_tree_msvc.png |    Bin 0 -> 5636 bytes
 .../pb_ds/range_invalidation_guarantee.html   |     52 +
 .../ext/pb_ds/rationale_null_node_updator.png |    Bin 0 -> 25097 bytes
 .../docs/html/ext/pb_ds/rb_tree_tag.html      |     47 +
 .../html/ext/pb_ds/rc_binomial_heap_tag.html  |     47 +
 .../docs/html/ext/pb_ds/references.html       |    258 +
 .../docs/html/ext/pb_ds/resize_error.html     |     50 +
 .../docs/html/ext/pb_ds/resize_policy_cd.png  |    Bin 0 -> 20806 bytes
 .../ext/pb_ds/restoring_node_invariants.png   |    Bin 0 -> 14432 bytes
 .../docs/html/ext/pb_ds/sample_probe_fn.html  |    152 +
 .../html/ext/pb_ds/sample_range_hashing.html  |    172 +
 .../html/ext/pb_ds/sample_ranged_hash_fn.html |    171 +
 .../ext/pb_ds/sample_ranged_probe_fn.html     |    178 +
 .../html/ext/pb_ds/sample_resize_policy.html  |    413 +
 .../html/ext/pb_ds/sample_resize_trigger.html |    462 +
 .../html/ext/pb_ds/sample_size_policy.html    |    163 +
 .../ext/pb_ds/sample_tree_node_update.html    |    193 +
 .../pb_ds/sample_trie_e_access_traits.html    |    231 +
 .../ext/pb_ds/sample_trie_node_update.html    |    194 +
 .../html/ext/pb_ds/sample_update_policy.html  |    178 +
 .../docs/html/ext/pb_ds/simple_list.png       |    Bin 0 -> 4299 bytes
 .../docs/html/ext/pb_ds/splay_tree_tag.html   |     47 +
 .../pb_ds/string_trie_e_access_traits.html    |    400 +
 libstdc++-v3/docs/html/ext/pb_ds/tests.html   |     24 +
 .../pb_ds/text_find_timing_test_hash_gcc.png  |    Bin 0 -> 7013 bytes
 .../text_find_timing_test_hash_local.png      |    Bin 0 -> 9361 bytes
 .../pb_ds/text_find_timing_test_hash_msvc.png |    Bin 0 -> 6932 bytes
 .../text_find_timing_test_tree_like_gcc.png   |    Bin 0 -> 6207 bytes
 .../text_find_timing_test_tree_like_local.png |    Bin 0 -> 7650 bytes
 .../text_find_timing_test_tree_like_msvc.png  |    Bin 0 -> 6059 bytes
 .../docs/html/ext/pb_ds/thin_heap_tag.html    |     47 +
 libstdc++-v3/docs/html/ext/pb_ds/tree.html    |    516 +
 .../html/ext/pb_ds/tree_based_containers.html |    358 +
 .../html/ext/pb_ds/tree_node_iterator.html    |    143 +
 .../ext/pb_ds/tree_node_updator_policy_cd.png |    Bin 0 -> 9236 bytes
 .../tree_order_statistics_node_update.html    |    678 +
 .../tree_order_statistics_timing_test.html    |    118 +
 .../tree_order_statistics_timing_test_gcc.png |    Bin 0 -> 5698 bytes
 ...ree_order_statistics_timing_test_local.png |    Bin 0 -> 6739 bytes
 ...tree_order_statistics_timing_test_msvc.png |    Bin 0 -> 5684 bytes
 ...tree_random_int_find_find_timing_test.html |    160 +
 .../pb_ds/tree_split_join_timing_test.html    |    143 +
 .../pb_ds/tree_split_join_timing_test_gcc.png |    Bin 0 -> 5649 bytes
 .../tree_split_join_timing_test_local.png     |    Bin 0 -> 6734 bytes
 .../tree_split_join_timing_test_msvc.png      |    Bin 0 -> 5675 bytes
 .../docs/html/ext/pb_ds/tree_tag.html         |     47 +
 .../tree_text_find_find_timing_test.html      |    162 +
 .../pb_ds/tree_text_insert_timing_test.html   |    226 +
 ..._text_insert_timing_test_node_tree_gcc.png |    Bin 0 -> 5373 bytes
 ...ext_insert_timing_test_node_tree_local.png |    Bin 0 -> 6690 bytes
 ...text_insert_timing_test_node_tree_msvc.png |    Bin 0 -> 5212 bytes
 ...e_text_insert_timing_test_pat_trie_gcc.png |    Bin 0 -> 4895 bytes
 ...text_insert_timing_test_pat_trie_local.png |    Bin 0 -> 6011 bytes
 ..._text_insert_timing_test_pat_trie_msvc.png |    Bin 0 -> 4881 bytes
 ...ext_insert_timing_test_vector_tree_gcc.png |    Bin 0 -> 5140 bytes
 ...t_insert_timing_test_vector_tree_local.png |    Bin 0 -> 6270 bytes
 ...xt_insert_timing_test_vector_tree_msvc.png |    Bin 0 -> 5131 bytes
 .../tree_text_lor_find_find_timing_test.html  |    126 +
 .../tree_text_lor_find_timing_test_gcc.png    |    Bin 0 -> 6162 bytes
 .../tree_text_lor_find_timing_test_local.png  |    Bin 0 -> 7796 bytes
 .../tree_text_lor_find_timing_test_msvc.png   |    Bin 0 -> 5831 bytes
 libstdc++-v3/docs/html/ext/pb_ds/trie.html    |    489 +
 .../html/ext/pb_ds/trie_based_containers.html |    241 +
 .../ext/pb_ds/trie_const_node_iterator.html   |    478 +
 .../html/ext/pb_ds/trie_node_iterator.html    |    235 +
 .../ext/pb_ds/trie_node_updator_policy_cd.png |    Bin 0 -> 12126 bytes
 .../trie_order_statistics_node_update.html    |    770 +
 .../pb_ds/trie_prefix_search_node_update.html |    628 +
 .../docs/html/ext/pb_ds/trie_tag.html         |     47 +
 .../html/ext/pb_ds/trivial_iterator_tag.html  |     25 +
 .../docs/html/ext/pb_ds/tutorial.html         |    670 +
 .../docs/html/ext/pb_ds/update_policy_cd.png  |    Bin 0 -> 8570 bytes
 .../html/ext/pb_ds/update_seq_diagram.png     |    Bin 0 -> 10789 bytes
 libstdc++-v3/include/Makefile.am              |    646 +-
 libstdc++-v3/include/Makefile.in              |    652 +-
 .../include/ext/pb_assoc/assoc_cntnr.hpp      |   1590 -
 .../include/ext/pb_assoc/data_type.hpp        |     60 -
 .../ext/pb_assoc/detail/assoc_cntnr_base.hpp  |    346 -
 .../constructor_destructor_fn_imps.hpp        |    164 -
 .../constructors_destructor_fn_imps.hpp       |     48 -
 .../basic_assoc_cntnr/d_extract_key.hpp       |     51 -
 .../basic_assoc_cntnr/d_find_fn_imps.hpp      |     51 -
 .../basic_assoc_cntnr/d_insert_fn_imps.hpp    |     51 -
 .../basic_assoc_cntnr/erase_fn_imps.hpp       |     68 -
 .../detail/basic_assoc_cntnr/extract_key.hpp  |     51 -
 .../detail/basic_assoc_cntnr/info_fn_imps.hpp |     67 -
 .../basic_assoc_cntnr/insert_fn_imps.hpp      |     51 -
 .../basic_assoc_cntnr/iterators_fn_imps.hpp   |     76 -
 .../constructor_destructor_fn_imps.hpp        |     50 -
 .../constructors_destructor_fn_imps.hpp       |     50 -
 .../basic_hash_assoc_cntnr/resize_fn_imps.hpp |     51 -
 .../constructor_destructor_fn_imps.hpp        |     50 -
 .../constructors_destructor_fn_imps.hpp       |     50 -
 .../basic_tree_assoc_cntnr/erase_fn_imps.hpp  |     60 -
 .../node_iteration_fn_imps.hpp                |     44 -
 .../policy_access_fn_imps.hpp                 |     76 -
 .../r_erase_fn_imps.hpp                       |     44 -
 .../r_range_iteration_fn_imps.hpp             |     43 -
 .../range_iteration_fn_imps.hpp               |     43 -
 .../split_join_fn_imps.hpp                    |     60 -
 .../bin_search_tree_/bin_search_tree_.hpp     |    525 -
 .../constructors_destructor_fn_imps.hpp       |    258 -
 .../detail/bin_search_tree_/debug_fn_imps.hpp |    278 -
 .../detail/bin_search_tree_/erase_fn_imps.hpp |    124 -
 .../detail/bin_search_tree_/find_fn_imps.hpp  |    184 -
 .../bin_search_tree_/find_iterators.hpp       |    391 -
 .../detail/bin_search_tree_/info_fn_imps.hpp  |     87 -
 .../bin_search_tree_/insert_fn_imps.hpp       |    215 -
 .../bin_search_tree_/iterators_fn_imps.hpp    |    164 -
 .../bin_search_tree_/node_iterators.hpp       |    144 -
 .../bin_search_tree_/r_erase_fn_imps.hpp      |    124 -
 .../bin_search_tree_/rotate_fn_imps.hpp       |    163 -
 .../bin_search_tree_/split_join_fn_imps.hpp   |    192 -
 .../constructor_destructor_fn_imps.hpp        |    153 -
 .../pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp |    602 -
 .../detail/cc_ht_map_/cmp_fn_imps.hpp         |     92 -
 .../cond_key_dtor_entry_dealtor.hpp           |    138 -
 .../constructor_destructor_fn_imps.hpp        |    227 -
 ...uctor_destructor_no_store_hash_fn_imps.hpp |     61 -
 ...structor_destructor_store_hash_fn_imps.hpp |     63 -
 .../detail/cc_ht_map_/debug_fn_imps.hpp       |     83 -
 .../debug_no_store_hash_fn_imps.hpp           |     54 -
 .../cc_ht_map_/debug_store_hash_fn_imps.hpp   |     59 -
 .../detail/cc_ht_map_/entry_list_fn_imps.hpp  |    111 -
 .../detail/cc_ht_map_/erase_fn_imps.hpp       |    114 -
 .../erase_no_store_hash_fn_imps.hpp           |    159 -
 .../cc_ht_map_/erase_store_hash_fn_imps.hpp   |    159 -
 .../detail/cc_ht_map_/find_fn_imps.hpp        |     83 -
 .../cc_ht_map_/find_no_store_hash_fn_imps.hpp |     86 -
 .../cc_ht_map_/find_store_hash_fn_imps.hpp    |     88 -
 .../detail/cc_ht_map_/info_fn_imps.hpp        |     68 -
 .../detail/cc_ht_map_/insert_fn_imps.hpp      |     63 -
 .../insert_no_store_hash_fn_imps.hpp          |    148 -
 .../cc_ht_map_/insert_store_hash_fn_imps.hpp  |    157 -
 .../detail/cc_ht_map_/iterators_fn_imps.hpp   |    153 -
 .../cc_ht_map_/policy_access_fn_imps.hpp      |    108 -
 .../detail/cc_ht_map_/resize_fn_imps.hpp      |    146 -
 .../resize_no_store_hash_fn_imps.hpp          |     61 -
 .../cc_ht_map_/resize_store_hash_fn_imps.hpp  |     63 -
 .../detail/cc_ht_map_/size_fn_imps.hpp        |     69 -
 .../detail/cc_ht_map_/standard_policies.hpp   |     50 -
 .../ext/pb_assoc/detail/cond_dealtor.hpp      |    129 -
 .../constructors_destructor_fn_imps.hpp       |    126 -
 .../ext/pb_assoc/detail/ds_trait_imp.hpp      |    336 -
 .../ext/pb_assoc/detail/eq_fn/eq_by_less.hpp  |     78 -
 .../ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp  |    211 -
 .../constructor_destructor_fn_imps.hpp        |    166 -
 .../constructor_destructor_fn_imps.hpp        |    255 -
 ...uctor_destructor_no_store_hash_fn_imps.hpp |     61 -
 ...structor_destructor_store_hash_fn_imps.hpp |     64 -
 .../detail/gp_ht_map_/debug_fn_imps.hpp       |     60 -
 .../debug_no_store_hash_fn_imps.hpp           |     81 -
 .../gp_ht_map_/debug_store_hash_fn_imps.hpp   |     86 -
 .../detail/gp_ht_map_/erase_fn_imps.hpp       |    110 -
 .../erase_no_store_hash_fn_imps.hpp           |    104 -
 .../gp_ht_map_/erase_store_hash_fn_imps.hpp   |    109 -
 .../detail/gp_ht_map_/find_fn_imps.hpp        |     94 -
 .../gp_ht_map_/find_no_store_hash_fn_imps.hpp |    116 -
 .../gp_ht_map_/find_store_hash_fn_imps.hpp    |    118 -
 .../pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp |    602 -
 .../detail/gp_ht_map_/info_fn_imps.hpp        |     68 -
 .../detail/gp_ht_map_/insert_fn_imps.hpp      |     67 -
 .../insert_no_store_hash_fn_imps.hpp          |    184 -
 .../gp_ht_map_/insert_store_hash_fn_imps.hpp  |    195 -
 .../detail/gp_ht_map_/iterator_fn_imps.hpp    |    181 -
 .../gp_ht_map_/policy_access_fn_imps.hpp      |    124 -
 .../detail/gp_ht_map_/resize_fn_imps.hpp      |    158 -
 .../resize_no_store_hash_fn_imps.hpp          |     84 -
 .../gp_ht_map_/resize_store_hash_fn_imps.hpp  |     93 -
 .../hash_fn/direct_mask_range_hashing_imp.hpp |     67 -
 .../hash_fn/direct_mod_range_hashing_imp.hpp  |     67 -
 .../detail/hash_fn/linear_probe_fn_imp.hpp    |     58 -
 .../hash_fn/mask_based_range_hashing.hpp      |    141 -
 .../hash_fn/mod_based_range_hashing.hpp       |    112 -
 .../pb_assoc/detail/hash_fn/probe_fn_base.hpp |     96 -
 .../detail/hash_fn/quadratic_probe_fn_imp.hpp |     57 -
 .../detail/hash_fn/ranged_hash_fn.hpp         |    459 -
 .../ext/pb_assoc/detail/hash_types_traits.hpp |     94 -
 .../constructor_destructor_fn_imps.hpp        |    121 -
 .../lu_assoc_cntnr/policy_access_fn_imps.hpp  |     77 -
 .../constructor_destructor_fn_imps.hpp        |    178 -
 .../pb_assoc/detail/lu_map_/debug_fn_imps.hpp |     66 -
 .../pb_assoc/detail/lu_map_/erase_fn_imps.hpp |    129 -
 .../pb_assoc/detail/lu_map_/find_fn_imps.hpp  |    136 -
 .../pb_assoc/detail/lu_map_/info_fn_imps.hpp  |     67 -
 .../detail/lu_map_/insert_fn_imps.hpp         |    148 -
 .../detail/lu_map_/iterators_fn_imps.hpp      |    106 -
 .../ext/pb_assoc/detail/lu_map_/lu_map_.hpp   |    464 -
 .../detail/lu_map_/policy_access_fn_imps.hpp  |     60 -
 .../lu_policy/counter_lu_metadata_imp.hpp     |     66 -
 .../lu_policy/counter_lu_policy_imp.hpp       |     74 -
 .../detail/lu_policy/mtf_lu_policy_imp.hpp    |     65 -
 .../ext/pb_assoc/detail/map_debug_base.hpp    |    248 -
 .../ext/pb_assoc/detail/mapping_level_imp.hpp |     90 -
 .../ext/pb_assoc/detail/ms_category_imp.hpp   |     81 -
 .../ext/pb_assoc/detail/ms_trait_imp.hpp      |    136 -
 .../pb_assoc/detail/order_statistics_imp.hpp  |    436 -
 .../detail/ov_tree_map_/cond_dtor.hpp         |     88 -
 .../constructors_destructor_fn_imps.hpp       |    278 -
 .../detail/ov_tree_map_/debug_fn_imps.hpp     |    101 -
 .../detail/ov_tree_map_/erase_fn_imps.hpp     |    234 -
 .../detail/ov_tree_map_/find_fn_imps.hpp      |     44 -
 .../detail/ov_tree_map_/info_fn_imps.hpp      |     95 -
 .../detail/ov_tree_map_/insert_fn_imps.hpp    |     44 -
 .../detail/ov_tree_map_/iterators_fn_imps.hpp |     44 -
 .../detail/ov_tree_map_/node_iterators.hpp    |    178 -
 .../detail/ov_tree_map_/ov_tree_map_.hpp      |    628 -
 .../ov_tree_map_/split_join_fn_imps.hpp       |    189 -
 .../constructors_destructor_fn_imps.hpp       |    116 -
 .../detail/rb_tree_map_/debug_fn_imps.hpp     |     87 -
 .../detail/rb_tree_map_/erase_fn_imps.hpp     |    403 -
 .../detail/rb_tree_map_/find_fn_imps.hpp      |     44 -
 .../detail/rb_tree_map_/info_fn_imps.hpp      |     52 -
 .../detail/rb_tree_map_/insert_fn_imps.hpp    |    176 -
 .../ext/pb_assoc/detail/rb_tree_map_/node.hpp |     89 -
 .../pb_assoc/detail/rb_tree_map_/rb_tree_.hpp |    360 -
 .../rb_tree_map_/split_join_fn_imps.hpp       |    381 -
 ..._hash_max_collision_resize_trigger_imp.hpp |    227 -
 .../hash_exponential_size_policy_imp.hpp      |    123 -
 .../hash_load_check_resize_trigger_imp.hpp    |    352 -
 .../hash_prime_size_policy_imp.hpp            |    150 -
 .../hash_standard_resize_policy_imp.hpp       |    342 -
 .../ht_prime_size_policy_imp.hpp              |     97 -
 .../detail/resize_policy/size_base.hpp        |    170 -
 .../constructors_destructor_fn_imps.hpp       |    112 -
 .../detail/splay_tree_/debug_fn_imps.hpp      |     73 -
 .../detail/splay_tree_/erase_fn_imps.hpp      |    245 -
 .../detail/splay_tree_/find_fn_imps.hpp       |    122 -
 .../detail/splay_tree_/info_fn_imps.hpp       |     43 -
 .../detail/splay_tree_/insert_fn_imps.hpp     |     89 -
 .../ext/pb_assoc/detail/splay_tree_/node.hpp  |     89 -
 .../detail/splay_tree_/splay_fn_imps.hpp      |    289 -
 .../detail/splay_tree_/splay_tree_.hpp        |    342 -
 .../detail/splay_tree_/split_join_fn_imps.hpp |    125 -
 .../ext/pb_assoc/detail/standard_policies.hpp |    181 -
 .../ext/pb_assoc/detail/standard_sizes.hpp    |     65 -
 .../constructor_destructor_fn_imps.hpp        |    130 -
 .../tree_policy/null_node_updator_imp.hpp     |     49 -
 .../tree_policy/order_statistics_imp.hpp      |    436 -
 .../ext/pb_assoc/detail/type_utils.hpp        |    449 -
 .../include/ext/pb_assoc/detail/typelist.hpp  |    220 -
 .../detail/typelist/typelist_append.hpp       |     84 -
 .../detail/typelist/typelist_apply.hpp        |     90 -
 .../detail/typelist/typelist_at_index.hpp     |     80 -
 .../detail/typelist/typelist_contains.hpp     |     99 -
 .../detail/typelist/typelist_filter.hpp       |     97 -
 .../detail/typelist/typelist_transform.hpp    |     87 -
 .../typelist/typelist_typelist_append.hpp     |     89 -
 .../ext/pb_assoc/detail/types_traits.hpp      |    295 -
 .../const_find_iterator.hpp                   |    138 -
 .../unordered_iterator/const_iterator.hpp     |    122 -
 .../unordered_iterator/find_iterator.hpp      |    147 -
 .../detail/unordered_iterator/iterator.hpp    |    139 -
 .../constructor_destructor_and_related.hpp    |    183 -
 .../value_type_adapter/erase_fn_imps.hpp      |     43 -
 .../value_type_adapter/erase_if_pred.hpp      |     72 -
 .../value_type_adapter/find_fn_imps.hpp       |     43 -
 .../value_type_adapter/info_fn_imps.hpp       |     68 -
 .../value_type_adapter/insert_fn_imps.hpp     |     44 -
 .../invalidation_guarantee_selector.hpp       |    128 -
 .../it_value_type_traits.hpp                  |    218 -
 .../detail/value_type_adapter/iterator.hpp    |    196 -
 .../value_type_adapter/iterator_fn_imps.hpp   |     44 -
 .../detail/value_type_adapter/ref_pair.hpp    |     73 -
 .../value_type_adapter/value_type_adapter.hpp |    601 -
 .../value_type_adapter/value_type_traits.hpp  |    102 -
 .../include/ext/pb_assoc/ds_trait.hpp         |    125 -
 .../include/ext/pb_assoc/exception.hpp        |     69 -
 .../include/ext/pb_assoc/hash_policy.hpp      |    717 -
 .../include/ext/pb_assoc/lu_policy.hpp        |    181 -
 .../include/ext/pb_assoc/ms_trait.hpp         |     82 -
 .../include/ext/pb_assoc/tree_policy.hpp      |    215 -
 .../ext/pb_assoc/trivial_iterator_def.hpp     |     58 -
 .../include/ext/pb_ds/assoc_container.hpp     |    690 +
 .../basic_tree_policy_base.hpp                |    179 +
 .../basic_tree_policy/null_node_metadata.hpp  |     83 +
 .../pb_ds/detail/basic_tree_policy/traits.hpp |     91 +
 .../include/ext/pb_ds/detail/basic_types.hpp  |    377 +
 .../bin_search_tree_/bin_search_tree_.hpp     |    530 +
 .../cond_dtor_entry_dealtor.hpp               |     52 +-
 .../cond_key_dtor_entry_dealtor.hpp           |     60 +-
 .../constructors_destructor_fn_imps.hpp       |    257 +
 .../detail/bin_search_tree_/debug_fn_imps.hpp |    325 +
 .../detail/bin_search_tree_/erase_fn_imps.hpp |    126 +
 .../detail/bin_search_tree_/find_fn_imps.hpp  |    188 +
 .../detail/bin_search_tree_/info_fn_imps.hpp  |     70 +
 .../bin_search_tree_/insert_fn_imps.hpp       |    217 +
 .../bin_search_tree_/iterators_fn_imps.hpp    |    142 +
 .../bin_search_tree_/node_iterators.hpp       |    243 +
 .../bin_search_tree_/point_iterators.hpp      |    461 +
 .../policy_access_fn_imps.hpp                 |     62 +
 .../bin_search_tree_/r_erase_fn_imps.hpp      |    126 +
 .../bin_search_tree_/rotate_fn_imps.hpp       |    162 +
 .../bin_search_tree_/split_join_fn_imps.hpp   |    181 +
 .../pb_ds/detail/bin_search_tree_/traits.hpp  |    256 +
 .../detail/binary_heap_/binary_heap_.hpp      |    396 +
 .../detail/binary_heap_/const_iterator.hpp    |    187 +
 .../binary_heap_/const_point_iterator.hpp     |    210 +
 .../constructors_destructor_fn_imps.hpp       |    175 +
 .../detail/binary_heap_/debug_fn_imps.hpp     |     80 +
 .../pb_ds/detail/binary_heap_/entry_cmp.hpp   |     99 +
 .../pb_ds/detail/binary_heap_/entry_pred.hpp  |     99 +
 .../detail/binary_heap_/erase_fn_imps.hpp     |    252 +
 .../detail/binary_heap_/find_fn_imps.hpp      |     97 +
 .../detail/binary_heap_/info_fn_imps.hpp      |     70 +
 .../detail/binary_heap_/insert_fn_imps.hpp    |    220 +
 .../detail/binary_heap_/iterators_fn_imps.hpp |     78 +
 .../binary_heap_/policy_access_fn_imps.hpp    |     62 +
 .../detail/binary_heap_/resize_policy.hpp     |    295 +
 .../binary_heap_/split_join_fn_imps.hpp       |    179 +
 .../detail/binary_heap_/trace_fn_imps.hpp     |     84 +
 .../detail/binomial_heap_/binomial_heap_.hpp  |    165 +
 .../constructors_destructor_fn_imps.hpp       |     74 +
 .../detail/binomial_heap_/debug_fn_imps.hpp   |     57 +
 .../binomial_heap_base_.hpp                   |    270 +
 .../constructors_destructor_fn_imps.hpp       |    103 +
 .../binomial_heap_base_/debug_fn_imps.hpp     |    108 +
 .../binomial_heap_base_/erase_fn_imps.hpp     |    198 +
 .../binomial_heap_base_/find_fn_imps.hpp      |     79 +
 .../binomial_heap_base_/insert_fn_imps.hpp    |    222 +
 .../split_join_fn_imps.hpp                    |    238 +
 .../detail/cc_hash_table_map_/cc_ht_map_.hpp  |    865 +
 .../detail/cc_hash_table_map_/cmp_fn_imps.hpp |     94 +
 .../cond_key_dtor_entry_dealtor.hpp           |    138 +
 .../constructor_destructor_fn_imps.hpp        |    239 +
 ...uctor_destructor_no_store_hash_fn_imps.hpp |     63 +
 ...structor_destructor_store_hash_fn_imps.hpp |     65 +
 .../cc_hash_table_map_/debug_fn_imps.hpp      |     86 +
 .../debug_no_store_hash_fn_imps.hpp           |     57 +
 .../debug_store_hash_fn_imps.hpp              |     62 +
 .../cc_hash_table_map_/entry_list_fn_imps.hpp |    110 +
 .../cc_hash_table_map_/erase_fn_imps.hpp      |    127 +
 .../erase_no_store_hash_fn_imps.hpp           |    139 +
 .../erase_store_hash_fn_imps.hpp              |    134 +
 .../cc_hash_table_map_/find_fn_imps.hpp       |     82 +
 .../find_store_hash_fn_imps.hpp               |     47 +
 .../cc_hash_table_map_/info_fn_imps.hpp       |    118 +
 .../cc_hash_table_map_/insert_fn_imps.hpp     |     49 +
 .../insert_no_store_hash_fn_imps.hpp          |     89 +
 .../insert_store_hash_fn_imps.hpp             |     91 +
 .../cc_hash_table_map_/iterators_fn_imps.hpp  |     97 +
 .../policy_access_fn_imps.hpp                 |    110 +
 .../cc_hash_table_map_/resize_fn_imps.hpp     |    157 +
 .../resize_no_store_hash_fn_imps.hpp          |     63 +
 .../resize_store_hash_fn_imps.hpp             |     65 +
 .../cc_hash_table_map_/size_fn_imps.hpp       |     71 +
 .../cc_hash_table_map_/standard_policies.hpp  |     52 +
 .../cc_hash_table_map_/trace_fn_imps.hpp      |     82 +
 .../include/ext/pb_ds/detail/cond_dealtor.hpp |    131 +
 .../constructors_destructor_fn_imps.hpp       |    128 +
 .../pb_ds/detail/container_base_dispatch.hpp  |    409 +
 .../ext/pb_ds/detail/eq_fn/eq_by_less.hpp     |     74 +
 .../ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp     |    211 +
 .../constructor_destructor_fn_imps.hpp        |    263 +
 ...uctor_destructor_no_store_hash_fn_imps.hpp |     63 +
 ...structor_destructor_store_hash_fn_imps.hpp |     66 +
 .../gp_hash_table_map_/debug_fn_imps.hpp      |     62 +
 .../debug_no_store_hash_fn_imps.hpp           |     84 +
 .../debug_store_hash_fn_imps.hpp              |     89 +
 .../gp_hash_table_map_/erase_fn_imps.hpp      |    126 +
 .../erase_no_store_hash_fn_imps.hpp           |    107 +
 .../erase_store_hash_fn_imps.hpp              |    107 +
 .../gp_hash_table_map_/find_fn_imps.hpp       |     83 +
 .../find_no_store_hash_fn_imps.hpp            |     52 +
 .../find_store_hash_fn_imps.hpp               |     46 +
 .../detail/gp_hash_table_map_/gp_ht_map_.hpp  |    891 +
 .../gp_hash_table_map_/info_fn_imps.hpp       |     70 +
 .../gp_hash_table_map_/insert_fn_imps.hpp     |     49 +
 .../insert_no_store_hash_fn_imps.hpp          |    140 +
 .../insert_store_hash_fn_imps.hpp             |    147 +
 .../gp_hash_table_map_/iterator_fn_imps.hpp   |     97 +
 .../policy_access_fn_imps.hpp                 |    126 +
 .../gp_hash_table_map_/resize_fn_imps.hpp     |    160 +
 .../resize_no_store_hash_fn_imps.hpp          |     87 +
 .../resize_store_hash_fn_imps.hpp             |     90 +
 .../gp_hash_table_map_/standard_policies.hpp  |     85 +
 .../gp_hash_table_map_/trace_fn_imps.hpp      |     80 +
 .../hash_fn/direct_mask_range_hashing_imp.hpp |     70 +
 .../hash_fn/direct_mod_range_hashing_imp.hpp  |     70 +
 .../detail/hash_fn/linear_probe_fn_imp.hpp    |     59 +
 .../hash_fn/mask_based_range_hashing.hpp      |    141 +
 .../hash_fn/mod_based_range_hashing.hpp       |    114 +
 .../pb_ds/detail/hash_fn/probe_fn_base.hpp    |     98 +
 .../detail/hash_fn/quadratic_probe_fn_imp.hpp |     59 +
 .../pb_ds/detail/hash_fn/ranged_hash_fn.hpp   |    478 +
 .../detail/hash_fn/ranged_probe_fn.hpp        |    376 +-
 .../pb_ds/detail/hash_fn/sample_probe_fn.hpp  |     79 +
 .../detail/hash_fn/sample_range_hashing.hpp   |     83 +
 .../detail/hash_fn/sample_ranged_hash_fn.hpp  |     83 +
 .../detail/hash_fn/sample_ranged_probe_fn.hpp |     83 +
 .../const_iterator.hpp                        |    197 +
 .../const_point_iterator.hpp                  |    188 +
 .../constructors_destructor_fn_imps.hpp       |    173 +
 .../debug_fn_imps.hpp                         |    165 +
 .../erase_fn_imps.hpp                         |    184 +
 .../info_fn_imps.hpp                          |     70 +
 .../insert_fn_imps.hpp                        |    181 +
 .../iterators_fn_imps.hpp                     |     94 +
 .../left_child_next_sibling_heap_.hpp         |    380 +
 .../left_child_next_sibling_heap_/node.hpp    |    129 +
 .../null_metadata.hpp                         |     63 +
 .../policy_access_fn_imps.hpp                 |     62 +
 .../trace_fn_imps.hpp                         |    101 +
 .../constructor_destructor_fn_imps.hpp        |    165 +
 .../detail/list_update_map_/debug_fn_imps.hpp |     66 +
 .../list_update_map_/entry_metadata_base.hpp  |     66 +
 .../detail/list_update_map_/erase_fn_imps.hpp |    162 +
 .../detail/list_update_map_/find_fn_imps.hpp  |    110 +
 .../detail/list_update_map_/info_fn_imps.hpp  |     69 +
 .../list_update_map_/insert_fn_imps.hpp       |    134 +
 .../list_update_map_/iterators_fn_imps.hpp    |     94 +
 .../pb_ds/detail/list_update_map_/lu_map_.hpp |    500 +
 .../detail/list_update_map_/trace_fn_imps.hpp |     69 +
 .../counter_lu_metadata.hpp                   |    128 +
 .../counter_lu_policy_imp.hpp                 |     62 +
 .../list_update_policy/mtf_lu_policy_imp.hpp  |     65 +
 .../sample_update_policy.hpp                  |     83 +
 .../ext/pb_ds/detail/map_debug_base.hpp       |    438 +
 .../pb_ds/detail/ov_tree_map_/cond_dtor.hpp   |     89 +
 .../constructors_destructor_fn_imps.hpp       |    325 +
 .../detail/ov_tree_map_/debug_fn_imps.hpp     |    109 +
 .../detail/ov_tree_map_/erase_fn_imps.hpp     |    242 +
 .../detail/ov_tree_map_/info_fn_imps.hpp      |     71 +
 .../detail/ov_tree_map_/insert_fn_imps.hpp    |     71 +
 .../detail/ov_tree_map_/iterators_fn_imps.hpp |    130 +
 .../detail/ov_tree_map_/node_iterators.hpp    |    348 +
 .../detail/ov_tree_map_/ov_tree_map_.hpp      |    696 +
 .../ov_tree_map_/policy_access_fn_imps.hpp    |     61 +
 .../ov_tree_map_/split_join_fn_imps.hpp       |    179 +
 .../ext/pb_ds/detail/ov_tree_map_/traits.hpp  |    189 +
 .../constructors_destructor_fn_imps.hpp       |     97 +
 .../detail/pairing_heap_/debug_fn_imps.hpp    |     60 +
 .../detail/pairing_heap_/erase_fn_imps.hpp    |    302 +
 .../detail/pairing_heap_/find_fn_imps.hpp     |     56 +
 .../detail/pairing_heap_/insert_fn_imps.hpp   |    107 +
 .../detail/pairing_heap_/pairing_heap_.hpp    |    237 +
 .../pairing_heap_/split_join_fn_imps.hpp      |    146 +
 .../pb_ds/detail/pat_trie_/child_iterator.hpp |    111 +
 .../pat_trie_/cond_dtor_entry_dealtor.hpp     |     87 +
 .../detail/pat_trie_/const_child_iterator.hpp |    128 +
 .../constructors_destructor_fn_imps.hpp       |    262 +
 .../pb_ds/detail/pat_trie_/debug_fn_imps.hpp  |    144 +
 .../pb_ds/detail/pat_trie_/erase_fn_imps.hpp  |    401 +
 .../pb_ds/detail/pat_trie_/find_fn_imps.hpp   |    318 +
 .../ext/pb_ds/detail/pat_trie_/head.hpp       |    162 +
 .../pb_ds/detail/pat_trie_/info_fn_imps.hpp   |     70 +
 .../detail/pat_trie_/insert_join_fn_imps.hpp  |    665 +
 .../pb_ds/detail/pat_trie_/internal_node.hpp  |    754 +
 .../detail/pat_trie_/iterators_fn_imps.hpp    |    148 +
 .../ext/pb_ds/detail/pat_trie_/leaf.hpp       |    207 +
 .../ext/pb_ds/detail/pat_trie_/node_base.hpp  |    155 +
 .../pb_ds/detail/pat_trie_/node_iterators.hpp |    383 +
 .../detail/pat_trie_/node_metadata_base.hpp   |     92 +
 .../ext/pb_ds/detail/pat_trie_/pat_trie_.hpp  |    658 +
 .../detail/pat_trie_/point_iterators.hpp      |    574 +
 .../pat_trie_/policy_access_fn_imps.hpp       |     77 +
 .../detail/pat_trie_/r_erase_fn_imps.hpp      |    126 +
 .../pb_ds/detail/pat_trie_/rotate_fn_imps.hpp |    165 +
 .../pb_ds/detail/pat_trie_/split_fn_imps.hpp  |    336 +
 .../pat_trie_/split_join_branch_bag.hpp       |    108 +
 .../pat_trie_/synth_e_access_traits.hpp       |    243 +
 .../pb_ds/detail/pat_trie_/trace_fn_imps.hpp  |    134 +
 .../ext/pb_ds/detail/pat_trie_/traits.hpp     |    356 +
 .../pb_ds/detail/pat_trie_/update_fn_imps.hpp |     62 +
 .../detail/priority_queue_base_dispatch.hpp   |     97 +
 .../constructors_destructor_fn_imps.hpp       |    114 +
 .../detail/rb_tree_map_/debug_fn_imps.hpp     |     92 +
 .../detail/rb_tree_map_/erase_fn_imps.hpp     |    354 +
 .../detail/rb_tree_map_/find_fn_imps.hpp      |     45 +
 .../detail/rb_tree_map_/info_fn_imps.hpp      |     54 +
 .../detail/rb_tree_map_/insert_fn_imps.hpp    |    148 +
 .../ext/pb_ds/detail/rb_tree_map_/node.hpp    |    174 +
 .../pb_ds/detail/rb_tree_map_/rb_tree_.hpp    |    372 +
 .../rb_tree_map_/split_join_fn_imps.hpp       |    374 +
 .../ext/pb_ds/detail/rb_tree_map_/traits.hpp  |    131 +
 .../constructors_destructor_fn_imps.hpp       |     94 +
 .../rc_binomial_heap_/debug_fn_imps.hpp       |    138 +
 .../rc_binomial_heap_/erase_fn_imps.hpp       |    125 +
 .../rc_binomial_heap_/insert_fn_imps.hpp      |    160 +
 .../ext/pb_ds/detail/rc_binomial_heap_/rc.hpp |    313 +
 .../rc_binomial_heap_/rc_binomial_heap_.hpp   |    236 +
 .../rc_binomial_heap_/split_join_fn_imps.hpp  |     87 +
 .../rc_binomial_heap_/trace_fn_imps.hpp       |     59 +
 ...max_collision_check_resize_trigger_imp.hpp |    253 +
 .../hash_exponential_size_policy_imp.hpp      |    106 +
 .../hash_load_check_resize_trigger_imp.hpp    |    359 +
 ...sh_load_check_resize_trigger_size_base.hpp |    172 +
 .../hash_prime_size_policy_imp.hpp            |    142 +
 .../hash_standard_resize_policy_imp.hpp       |    314 +
 .../resize_policy/sample_resize_policy.hpp    |    135 +
 .../resize_policy/sample_resize_trigger.hpp   |    147 +
 .../resize_policy/sample_size_policy.hpp      |     83 +
 .../constructors_destructor_fn_imps.hpp       |    116 +
 .../detail/splay_tree_/debug_fn_imps.hpp      |     86 +
 .../detail/splay_tree_/erase_fn_imps.hpp      |    202 +
 .../pb_ds/detail/splay_tree_/find_fn_imps.hpp |    117 +
 .../pb_ds/detail/splay_tree_/info_fn_imps.hpp |     45 +
 .../detail/splay_tree_/insert_fn_imps.hpp     |    124 +
 .../ext/pb_ds/detail/splay_tree_/node.hpp     |    171 +
 .../detail/splay_tree_/splay_fn_imps.hpp      |    297 +
 .../pb_ds/detail/splay_tree_/splay_tree_.hpp  |    396 +
 .../detail/splay_tree_/split_join_fn_imps.hpp |    127 +
 .../ext/pb_ds/detail/splay_tree_/traits.hpp   |    131 +
 .../ext/pb_ds/detail/standard_policies.hpp    |    163 +
 .../constructors_destructor_fn_imps.hpp       |    122 +
 .../pb_ds/detail/thin_heap_/debug_fn_imps.hpp |    127 +
 .../pb_ds/detail/thin_heap_/erase_fn_imps.hpp |    302 +
 .../pb_ds/detail/thin_heap_/find_fn_imps.hpp  |     57 +
 .../detail/thin_heap_/insert_fn_imps.hpp      |    332 +
 .../detail/thin_heap_/split_join_fn_imps.hpp  |    132 +
 .../pb_ds/detail/thin_heap_/thin_heap_.hpp    |    392 +
 .../pb_ds/detail/thin_heap_/trace_fn_imps.hpp |     61 +
 .../tree_policy/node_metadata_selector.hpp    |    122 +
 .../tree_policy/null_node_update_imp.hpp      |     56 +
 .../tree_policy/order_statistics_imp.hpp      |    147 +
 .../tree_policy/sample_tree_node_update.hpp   |     78 +
 .../ext/pb_ds/detail/tree_trace_base.hpp      |    215 +
 .../trie_policy/node_metadata_selector.hpp    |    122 +
 .../trie_policy/null_node_update_imp.hpp      |     56 +
 .../trie_policy/order_statistics_imp.hpp      |    189 +
 .../prefix_search_node_update_imp.hpp         |    157 +
 .../sample_trie_e_access_traits.hpp           |     95 +
 .../trie_policy/sample_trie_node_update.hpp   |     78 +
 .../string_trie_e_access_traits_imp.hpp       |    105 +
 .../detail/trie_policy/trie_policy_base.hpp   |    255 +
 .../include/ext/pb_ds/detail/type_utils.hpp   |    177 +
 .../include/ext/pb_ds/detail/typelist.hpp     |    296 +
 .../pb_ds/detail/typelist/typelist_append.hpp |     84 +
 .../pb_ds/detail/typelist/typelist_apply.hpp  |     79 +
 .../typelist_assoc_container_find.hpp         |     74 +
 .../detail/typelist/typelist_at_index.hpp     |     72 +
 .../detail/typelist/typelist_contains.hpp     |     87 +
 .../pb_ds/detail/typelist/typelist_filter.hpp |     80 +
 .../detail/typelist/typelist_flatten.hpp      |     73 +
 .../detail/typelist/typelist_transform.hpp    |     75 +
 .../typelist/typelist_typelist_append.hpp     |     87 +
 .../pb_ds/detail/typelist_assoc_container.hpp |     91 +
 .../include/ext/pb_ds/detail/types_traits.hpp |    113 +
 .../unordered_iterator/const_iterator.hpp     |    135 +
 .../const_point_iterator.hpp                  |    157 +
 .../detail/unordered_iterator/iterator.hpp    |    156 +
 .../unordered_iterator/point_iterator.hpp     |    149 +
 libstdc++-v3/include/ext/pb_ds/exception.hpp  |     73 +
 .../include/ext/pb_ds/hash_policy.hpp         |    624 +
 .../include/ext/pb_ds/list_update_policy.hpp  |    138 +
 .../include/ext/pb_ds/priority_queue.hpp      |    131 +
 .../include/ext/pb_ds/tag_and_trait.hpp       |    357 +
 .../include/ext/pb_ds/tree_policy.hpp         |    168 +
 .../include/ext/pb_ds/trie_policy.hpp         |    366 +
 libstdc++-v3/scripts/check_performance        |     26 +-
 libstdc++-v3/scripts/make_graph.py            |    576 +
 libstdc++-v3/scripts/make_graphs.py           |    160 +
 libstdc++-v3/scripts/testsuite_flags.in       |      2 +-
 libstdc++-v3/testsuite/Makefile.am            |     20 +-
 libstdc++-v3/testsuite/Makefile.in            |     20 +-
 .../testsuite/data/make_graph_htmls.xml       |     60 +
 .../testsuite/data/make_graph_test_infos.xml  |    313 +
 .../thirty_years_among_the_dead_preproc.txt   | 187586 +++++++++++++++
 .../ext/pb_assoc/example/basic_map.cc         |    122 -
 .../ext/pb_assoc/example/basic_multimap.cc    |    110 -
 .../ext/pb_assoc/example/basic_set.cc         |    120 -
 .../ext/pb_assoc/example/ds_traits.cc         |    262 -
 .../ext/pb_assoc/example/erase_if.cc          |    133 -
 .../ext/pb_assoc/example/extract_key.cc       |    132 -
 .../ext/pb_assoc/example/hash_find_neg.cc     |     73 -
 .../pb_assoc/example/hash_illegal_resize.cc   |    148 -
 .../ext/pb_assoc/example/hash_initial_size.cc |    122 -
 .../pb_assoc/example/hash_load_set_change.cc  |    152 -
 .../ext/pb_assoc/example/hash_mod.cc          |     89 -
 .../ext/pb_assoc/example/hash_resize.cc       |    146 -
 .../ext/pb_assoc/example/hash_resize_neg.cc   |     73 -
 .../ext/pb_assoc/example/hash_shift_mask.cc   |    130 -
 .../ext/pb_assoc/example/mapping_level.cc     |    150 -
 .../ext/pb_assoc/example/mapping_level_neg.cc |     83 -
 .../ext/pb_assoc/example/ms_traits.cc         |    121 -
 .../ext/pb_assoc/example/ranged_hash.cc       |    193 -
 .../ext/pb_assoc/example/store_hash.cc        |    111 -
 .../ext/pb_assoc/example/tree_intervals.cc    |    260 -
 .../ext/pb_assoc/example/tree_join.cc         |    127 -
 .../pb_assoc/example/tree_order_statistics.cc |    133 -
 .../example/tree_order_statistics_join.cc     |    106 -
 .../ext/pb_assoc/example/tree_split.cc        |     90 -
 .../pb_ds/example/assoc_container_traits.cc   |    241 +
 .../testsuite/ext/pb_ds/example/basic_map.cc  |    130 +
 .../ext/pb_ds/example/basic_multimap.cc       |    162 +
 .../ext/pb_ds/example/basic_multiset.cc       |    175 +
 .../ext/pb_ds/example/basic_priority_queue.cc |    130 +
 .../testsuite/ext/pb_ds/example/basic_set.cc  |    137 +
 .../testsuite/ext/pb_ds/example/erase_if.cc   |    133 +
 .../ext/pb_ds/example/hash_find_neg.cc        |     79 +
 .../ext/pb_ds/example/hash_illegal_resize.cc  |    137 +
 .../ext/pb_ds/example/hash_initial_size.cc    |    120 +
 .../ext/pb_ds/example/hash_load_set_change.cc |    141 +
 .../testsuite/ext/pb_ds/example/hash_mod.cc   |     96 +
 .../ext/pb_ds/example/hash_resize.cc          |    135 +
 .../ext/pb_ds/example/hash_resize_neg.cc      |     74 +
 .../ext/pb_ds/example/hash_shift_mask.cc      |    118 +
 .../priority_queue_container_traits.cc        |    211 +
 .../pb_ds/example/priority_queue_dijkstra.cc  |    164 +
 .../pb_ds/example/priority_queue_erase_if.cc  |     78 +
 .../example/priority_queue_split_join.cc      |    135 +
 .../ext/pb_ds/example/priority_queue_xref.cc  |    221 +
 .../ext/pb_ds/example/ranged_hash.cc          |    162 +
 .../testsuite/ext/pb_ds/example/store_hash.cc |    107 +
 .../ext/pb_ds/example/tree_intervals.cc       |    223 +
 .../testsuite/ext/pb_ds/example/tree_join.cc  |    129 +
 .../pb_ds/example/tree_order_statistics.cc    |    135 +
 .../example/tree_order_statistics_join.cc     |    104 +
 .../testsuite/ext/pb_ds/example/trie_dna.cc   |    127 +
 .../ext/pb_ds/example/trie_prefix_search.cc   |    121 +
 .../testsuite/ext/pb_ds/example/trie_split.cc |     95 +
 .../regression/associative_containers.cc      |    175 +
 .../pb_ds/regression/hash_data_map_rand.cc    |     61 +
 .../pb_ds/regression/hash_no_data_map_rand.cc |     61 +
 .../regression/list_update_data_map_rand.cc   |     61 +
 .../list_update_no_data_map_rand.cc           |     61 +
 .../pb_ds/regression/priority_queue_rand.cc   |     59 +
 .../ext/pb_ds/regression/priority_queues.cc   |    194 +
 .../pb_ds/regression/tree_data_map_rand.cc    |     61 +
 .../pb_ds/regression/tree_no_data_map_rand.cc |     61 +
 .../pb_ds/regression/trie_data_map_rand.cc    |     61 +
 .../pb_ds/regression/trie_no_data_map_rand.cc |     61 +
 libstdc++-v3/testsuite/lib/libstdc++.exp      |     33 +-
 .../pb_ds/hash_random_int_erase_mem_usage.cc  |    138 +
 .../pb_ds/hash_zlob_random_int_find_timing.cc |    130 +
 .../ext/pb_ds/multimap_text_find_timing.hpp   |    148 +
 .../pb_ds/multimap_text_find_timing_large.cc  |     51 +
 .../pb_ds/multimap_text_find_timing_small.cc  |     52 +
 .../pb_ds/multimap_text_insert_mem_usage.hpp  |    166 +
 .../multimap_text_insert_mem_usage_large.cc   |     51 +
 .../multimap_text_insert_mem_usage_small.cc   |     51 +
 .../ext/pb_ds/multimap_text_insert_timing.hpp |    148 +
 .../multimap_text_insert_timing_large.cc      |     51 +
 .../multimap_text_insert_timing_small.cc      |     51 +
 ...iority_queue_random_int_push_pop_timing.cc |    129 +
 .../priority_queue_random_int_push_timing.cc  |    127 +
 .../pb_ds/priority_queue_text_join_timing.cc  |    123 +
 .../priority_queue_text_modify_down_timing.cc |     47 +
 .../priority_queue_text_modify_timing.hpp     |    138 +
 .../priority_queue_text_modify_up_timing.cc   |     47 +
 .../priority_queue_text_pop_mem_usage.cc      |    129 +
 .../priority_queue_text_push_pop_timing.cc    |    127 +
 .../pb_ds/priority_queue_text_push_timing.cc  |    128 +
 .../ext/pb_ds/random_int_find_timing.cc       |    137 +
 .../pb_ds/random_int_subscript_find_timing.cc |    137 +
 .../random_int_subscript_insert_timing.cc     |    134 +
 .../performance/ext/pb_ds/text_find_timing.cc |    159 +
 .../ext/pb_ds/tree_order_statistics_timing.cc |    116 +
 .../ext/pb_ds/tree_split_join_timing.cc       |    118 +
 .../ext/pb_ds/tree_text_insert_timing.cc      |    127 +
 .../ext/pb_ds/tree_text_lor_find_timing.cc    |    126 +
 .../util/common_type/assoc/common_type.hpp    |    847 +
 .../assoc/detail/comb_hash_fn_string_form.hpp |    122 +
 .../assoc/detail/ds_string_form.hpp           |    304 +
 .../detail/list_update_policy_string_form.hpp |    113 +
 .../assoc/detail/probe_fn_string_form.hpp     |    128 +
 .../detail/resize_policy_string_form.hpp      |    106 +
 .../assoc/detail/size_policy_string_form.hpp  |    110 +
 .../assoc/detail/store_hash_string_form.hpp   |    103 +
 .../detail/tree_supports_order_statistics.hpp |     83 +
 .../detail/trie_supports_order_statistics.hpp |     83 +
 .../detail/trie_supports_prefix_search.hpp    |     83 +
 .../detail/trigger_policy_string_form.hpp     |    153 +
 .../util/common_type/assoc/native_set.hpp     |    111 +
 .../util/common_type/assoc/string_form.hpp    |    238 +
 .../common_type/assoc/template_policy.hpp     |    176 +
 .../priority_queue/common_type.hpp            |     87 +
 .../priority_queue/detail/ds_string_form.hpp  |    128 +
 .../priority_queue/string_form.hpp            |    109 +
 .../testsuite/util/hash_fn/dna_str_limit.hpp  |     72 +
 .../util/hash_fn/limit_string_hash_fn.hpp     |     82 +
 .../testsuite/util/hash_fn/string_hash_fn.hpp |     78 +
 .../util/hash_fn/string_ranged_hash_fn.hpp    |    109 +
 .../util/hash_fn/string_ranged_probe_fn.hpp   |    113 +
 .../testsuite/util/io/illegal_input_error.hpp |     63 +
 libstdc++-v3/testsuite/util/io/prog_bar.cc    |     92 +
 libstdc++-v3/testsuite/util/io/prog_bar.hpp   |     96 +
 .../testsuite/util/io/text_populate.hpp       |    163 +
 .../util/io/verified_cmd_line_input.cc        |    131 +
 .../util/io/verified_cmd_line_input.hpp       |     77 +
 libstdc++-v3/testsuite/util/io/xml.hpp        |    131 +
 .../testsuite/util/io/xml_test_formatter.hpp  |     88 +
 .../native_type/assoc/native_hash_map.hpp     |    137 +
 .../assoc/native_hash_multimap.hpp            |    253 +
 .../native_type/assoc/native_hash_set.hpp     |    159 +
 .../native_type/assoc/native_hash_tag.hpp     |     58 +
 .../util/native_type/assoc/native_map.hpp     |    110 +
 .../native_type/assoc/native_multimap.hpp     |    231 +
 .../util/native_type/assoc/native_set.hpp     |    111 +
 .../native_type/assoc/native_tree_tag.hpp     |     63 +
 .../priority_queue/native_pq_tag.hpp          |     63 +
 .../priority_queue/native_priority_queue.hpp  |    280 +
 .../assoc/mem_usage/erase_test.hpp            |    145 +
 .../assoc/mem_usage/multimap_insert_test.hpp  |    188 +
 .../assoc/multimap_common_type.hpp            |    260 +
 .../performance/assoc/timing/common_type.hpp  |    113 +
 .../performance/assoc/timing/find_test.hpp    |    219 +
 .../performance/assoc/timing/insert_test.hpp  |    182 +
 .../assoc/timing/multimap_find_test.hpp       |    253 +
 .../assoc/timing/multimap_insert_test.hpp     |    194 +
 .../assoc/timing/subscript_find_test.hpp      |    185 +
 .../assoc/timing/subscript_insert_test.hpp    |    176 +
 .../timing/tree_order_statistics_test.hpp     |    225 +
 .../assoc/timing/tree_split_join_test.hpp     |    192 +
 .../util/performance/io/xml_formatter.hpp     |     88 +
 .../performance/mem/mem_track_allocator.hpp   |    189 +
 .../mem/mem_track_allocator_base.hpp          |    116 +
 .../priority_queue/mem_usage/pop_test.hpp     |    148 +
 .../priority_queue/timing/join_test.hpp       |    174 +
 .../priority_queue/timing/modify_test.hpp     |    387 +
 .../priority_queue/timing/push_pop_test.hpp   |    185 +
 .../priority_queue/timing/push_test.hpp       |    182 +
 .../util/performance/time/elapsed_timer.cc    |     78 +
 .../util/performance/time/elapsed_timer.hpp   |     77 +
 .../performance/time/timing_test_base.hpp     |    127 +
 .../util/regression/assoc/common_type.hpp     |    261 +
 .../testsuite/util/regression/basic_type.hpp  |    118 +
 .../regression/priority_queue/common_type.hpp |     78 +
 .../assoc/container_rand_regression_test.hpp  |    530 +
 .../rand/assoc/detail/clear_fn_imps.hpp       |     58 +
 .../rand/assoc/detail/cmp_fn_imps.hpp         |    601 +
 .../detail/constructor_destructor_fn_imps.hpp |    521 +
 .../rand/assoc/detail/defs_fn_imps.hpp        |    248 +
 .../rand/assoc/detail/diagnostic_fn_imps.hpp  |     79 +
 .../rand/assoc/detail/erase_fn_imps.hpp       |    319 +
 .../assoc/detail/get_set_load_fn_imps.hpp     |    102 +
 .../assoc/detail/get_set_loads_fn_imps.hpp    |    122 +
 .../rand/assoc/detail/insert_fn_imps.hpp      |     89 +
 .../assoc/detail/it_conversion_fn_imps.hpp    |    307 +
 .../rand/assoc/detail/operator_fn_imps.hpp    |    249 +
 .../assoc/detail/policy_access_fn_imps.hpp    |    184 +
 .../rand/assoc/detail/resize_fn_imps.hpp      |    125 +
 .../rand/assoc/detail/split_join_fn_imps.hpp  |    149 +
 .../rand/assoc/detail/subscript_fn_imps.hpp   |    127 +
 .../rand/assoc/rand_regression_test.hpp       |    206 +
 .../rand/io/assoc/xml_formatter.hpp           |     81 +
 .../rand/io/priority_queue/xml_formatter.hpp  |     82 +
 .../util/regression/rand/io/xml_formatter.hpp |     87 +
 .../container_rand_regression_test.hpp        |    334 +
 .../priority_queue/detail/clear_fn_imps.hpp   |     60 +
 .../priority_queue/detail/cmp_fn_imps.hpp     |    108 +
 .../detail/constructor_destructor_fn_imps.hpp |    235 +
 .../priority_queue/detail/defs_fn_imps.hpp    |    111 +
 .../detail/diagnostic_fn_imps.hpp             |     73 +
 .../priority_queue/detail/erase_fn_imps.hpp   |    178 +
 .../priority_queue/detail/insert_fn_imps.hpp  |     93 +
 .../detail/it_conversion_fn_imps.hpp          |    190 +
 .../priority_queue/detail/modify_fn_imps.hpp  |     96 +
 .../detail/operator_fn_imps.hpp               |    227 +
 .../detail/policy_access_fn_imps.hpp          |     66 +
 .../detail/split_join_fn_imps.hpp             |    120 +
 .../priority_queue/rand_regression_test.hpp   |    210 +
 .../regression/res_mng/dbg_ex_allocator.hpp   |    206 +
 .../res_mng/dbg_ex_allocator_base.cc          |    210 +
 .../res_mng/dbg_ex_allocator_base.hpp         |    187 +
 .../regression/res_mng/forced_exception.hpp   |     64 +
 .../trait/assoc/get_set_load_trait.hpp        |    100 +
 .../trait/assoc/get_set_loads_trait.hpp       |    100 +
 .../trait/assoc/native_type_trait.hpp         |    195 +
 .../trait/assoc/node_update_trait.hpp         |    134 +
 .../regression/trait/assoc/resize_trait.hpp   |    100 +
 .../util/regression/trait/assoc/to_string.hpp |     91 +
 .../util/regression/trait/assoc/trait.hpp     |    289 +
 .../regression/trait/assoc/type_trait.hpp     |    161 +
 .../util/regression/trait/erase_if_fn.hpp     |    111 +
 .../regression/trait/priority_queue/trait.hpp |    133 +
 .../testsuite/util/rng/twister_rand_gen.cc    |    203 +
 .../testsuite/util/rng/twister_rand_gen.hpp   |    110 +
 .../testsuite/util/statistic/res_recorder.hpp |    143 +
 .../testsuite/util/statistic/sample_mean.hpp  |     87 +
 .../sample_mean_confidence_checker.hpp        |     98 +
 .../testsuite/util/statistic/sample_var.hpp   |    102 +
 1143 files changed, 294917 insertions(+), 61306 deletions(-)
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/Std_hash_set_impl.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/acks.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/balls_and_bins.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_policy_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/concepts.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/contact.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/design.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/different_underlying_dss.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ds_tag_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_1.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_2.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/examples.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_1.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_2.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/generics.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_policy_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_policy_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram2.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_ranged_hash_range_hashing_fns.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/home.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/index.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram1.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram2.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram3.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/interface.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/interval_node_invariants.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/introduction.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_erase.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/lu_ops.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/motivation.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ms_tag_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/node_invariant_invalidations.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping_containers.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/overview.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/portability.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/rank_node_invariants.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/rationale_null_node_updator.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/reference_iterator.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/references.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/resize_policy_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/restoring_node_invariants.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/toc.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/tree_cd.jpg
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html
 delete mode 100644 libstdc++-v3/docs/html/ext/pb_assoc/update_seq_diagram.jpg
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/PythonPoweredSmall.gif
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/acks.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/balls_and_bins.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/checked_by_tidy.gif
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/concepts.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/contact.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/container_base.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/container_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/container_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/design.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/different_underlying_dss.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_1.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_2.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_3.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/examples.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/exceptions.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_policy_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/index.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/insert_error.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/interface.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/introduction.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_erase.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/join_error.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/list_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/lu.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/misc.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/motivation.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/node_invariant_invalidations.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/node_invariants.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pat_trie.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/point_iterators_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_1.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_2.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pq_design.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pq_different_underlying_dss.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/rationale_null_node_updator.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/references.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/resize_error.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/resize_policy_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/restoring_node_invariants.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/simple_list.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tests.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_node_updator_policy_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie_node_updator_policy_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/tutorial.html
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/update_policy_cd.png
 create mode 100644 libstdc++-v3/docs/html/ext/pb_ds/update_seq_diagram.png
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/assoc_cntnr.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/data_type.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/assoc_cntnr_base.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/cond_dealtor.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ds_trait_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/hash_types_traits.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/map_debug_base.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/mapping_level_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ms_category_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ms_trait_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/order_statistics_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/node.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/size_base.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/node.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/standard_policies.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/standard_sizes.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/type_utils.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_append.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_apply.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_contains.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_filter.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_transform.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/types_traits.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/ds_trait.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/exception.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/hash_policy.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/lu_policy.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/ms_trait.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/tree_policy.hpp
 delete mode 100644 libstdc++-v3/include/ext/pb_assoc/trivial_iterator_def.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
 rename libstdc++-v3/include/ext/{pb_assoc => pb_ds}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp (50%)
 rename libstdc++-v3/include/ext/{pb_assoc => pb_ds}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp (51%)
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
 rename libstdc++-v3/include/ext/{pb_assoc => pb_ds}/detail/hash_fn/ranged_probe_fn.hpp (50%)
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/map_debug_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/head.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/internal_node.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/leaf.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/exception.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
 create mode 100644 libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
 create mode 100755 libstdc++-v3/scripts/make_graph.py
 create mode 100755 libstdc++-v3/scripts/make_graphs.py
 create mode 100644 libstdc++-v3/testsuite/data/make_graph_htmls.xml
 create mode 100644 libstdc++-v3/testsuite/data/make_graph_test_infos.xml
 create mode 100644 libstdc++-v3/testsuite/data/thirty_years_among_the_dead_preproc.txt
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/basic_map.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/basic_multimap.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/basic_set.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/ds_traits.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/erase_if.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/extract_key.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_find_neg.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_illegal_resize.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_initial_size.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_load_set_change.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_mod.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize_neg.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/hash_shift_mask.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level_neg.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/ms_traits.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/ranged_hash.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/store_hash.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/tree_intervals.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/tree_join.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics_join.cc
 delete mode 100644 libstdc++-v3/testsuite/ext/pb_assoc/example/tree_split.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_large.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_small.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_large.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_small.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc
 create mode 100644 libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
 create mode 100644 libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
 create mode 100644 libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
 create mode 100644 libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
 create mode 100644 libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
 create mode 100644 libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
 create mode 100644 libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
 create mode 100644 libstdc++-v3/testsuite/util/io/prog_bar.cc
 create mode 100644 libstdc++-v3/testsuite/util/io/prog_bar.hpp
 create mode 100644 libstdc++-v3/testsuite/util/io/text_populate.hpp
 create mode 100644 libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
 create mode 100644 libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
 create mode 100644 libstdc++-v3/testsuite/util/io/xml.hpp
 create mode 100644 libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp
 create mode 100644 libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator_base.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
 create mode 100644 libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
 create mode 100644 libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/basic_type.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/clear_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/cmp_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/diagnostic_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_load_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_loads_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/it_conversion_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/operator_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/resize_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/detail/subscript_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/io/assoc/xml_formatter.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/io/priority_queue/xml_formatter.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/io/xml_formatter.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/clear_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/cmp_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/defs_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/erase_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/insert_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/modify_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/operator_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/policy_access_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/split_join_fn_imps.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.cc
 create mode 100644 libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/res_mng/forced_exception.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
 create mode 100644 libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
 create mode 100644 libstdc++-v3/testsuite/util/rng/twister_rand_gen.cc
 create mode 100644 libstdc++-v3/testsuite/util/rng/twister_rand_gen.hpp
 create mode 100644 libstdc++-v3/testsuite/util/statistic/res_recorder.hpp
 create mode 100644 libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
 create mode 100644 libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
 create mode 100644 libstdc++-v3/testsuite/util/statistic/sample_var.hpp

diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index f1c463207ae5..008f1d8b16d7 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,879 @@
+2006-06-14  Ami Tavory  <atavory@gmail.com>
+	    Benjamin Kosnik  <bkoz@redhat.com>
+
+	* include/ext/pb_assoc: Delete.
+	* include/ext/pb_ds: Add.
+	* docs/html/ext/pb_assoc: Delete.
+	* docs/html/ext/pb_ds: Add.
+	* testsuite/ext/pb_assoc: Delete.
+	* testsuite/ext/pb_ds: Add.
+	* testsuite/performance/ext: Add.
+	* testsuite/performance/ext/pb_ds: Add.	
+
+	* testsuite/util/regression: New.
+	* testsuite/util/rng: New.
+	* testsuite/util/native_type: New.
+	* testsuite/util/common_type: New.
+	* testsuite/util/performance: New.
+	* testsuite/util/hash_fn: New.
+	* testsuite/util/io: New.
+	* testsuite/util/statistic: New.
+
+	* scripts/make_graph.py: New.
+	* scripts/make_graphs.py: New.
+	* testsuite/data/thirty_years_among_the_dead_preproc.txt: Add.
+	* testsuite/data/make_graph_htmls.xml: Add.
+	* testsuite/data/make_graph_test_infos.xml: Add.	
+
+	* testsuite/lib/libstdc++.exp (v3-build_support): Add in new
+	object files for regression testing.
+	* docs/html/documentation.html: Adjust links.
+	* include/Makefile.am (install-headers): Update for new sources,
+	directories.
+	* include/Makefine.in: Regenerate.
+	* scripts/testsuite_flags.in: Adjust to testsuite/util path.
+	* scripts/check_performance: Simplify, adjust for new testsuite output.
+	* testsuite/Makefile.am (check-performance): Adjust.
+	(doc-performance): New.
+	* testsuite/Makefile.in: Regenerate.
+
+	* include/ext/pb_ds: New.
+	* include/ext/pb_ds/assoc_container.hpp: Same.
+	* include/ext/pb_ds/detail: New.
+	* include/ext/pb_ds/detail/binomial_heap_base_: New.
+	* include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy: New.
+	* include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp: Same.
+	* include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp: Same.
+	* include/ext/pb_ds/detail/container_base_dispatch.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_: New.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/typelist_assoc_container.hpp: Same.
+	* include/ext/pb_ds/detail/tree_trace_base.hpp: Same.
+	* include/ext/pb_ds/detail/unordered_iterator: New.
+	* include/ext/pb_ds/detail/unordered_iterator/iterator.hpp: Same.
+	* include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/typelist.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_: New.
+	* include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/head.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/traits.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/leaf.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/node_base.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/internal_node.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp: Same.
+	* include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_: New.
+	* include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/traits.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_: New.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp: Same.
+	* include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/standard_policies.hpp: Same.
+	* include/ext/pb_ds/detail/typelist: New.
+	* include/ext/pb_ds/detail/typelist/typelist_flatten.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_contains.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_apply.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_filter.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_append.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_transform.hpp: Same.
+	* include/ext/pb_ds/detail/typelist/typelist_at_index.hpp: Same.
+	* include/ext/pb_ds/detail/tree_policy: New.
+	* include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp: Same.
+	* include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp: Same.
+	* include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp: Same.
+	* include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp: Same.
+	* include/ext/pb_ds/detail/basic_tree_policy: New.
+	* include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp: Same.
+	* include/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp: Same.
+	* include/ext/pb_ds/detail/basic_tree_policy/traits.hpp: Same.
+	* include/ext/pb_ds/detail/types_traits.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_: New.
+	* include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy: New.
+	* include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp: Same.
+	* include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp: Same.
+	* include/ext/pb_ds/detail/cond_dealtor.hpp: Same.
+	* include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp: Same.
+	* include/ext/pb_ds/detail/pairing_heap_: Name.
+	* include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp: Same.
+	* include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_: New.
+	* include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp: Same.
+	* include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/type_utils.hpp: Same.
+	* include/ext/pb_ds/detail/eq_fn: New.
+	* include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp: Same.
+	* include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp: Same.
+	* include/ext/pb_ds/detail/basic_types.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_policy: New.
+	* include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_: New.
+	* include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_: New.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_: New.
+	* include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/traits.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/map_debug_base.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn: New.
+	* include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp: Same.
+	* include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_: New.
+	* include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/node.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/traits.hpp: Same.
+	* include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_: New.
+	* include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_: New.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp: Same.
+	* include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_: New.
+	* include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/node.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/traits.hpp: Same.
+	* include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp: Same.
+	* include/ext/pb_ds/list_update_policy.hpp: Same.
+	* include/ext/pb_ds/exception.hpp: Same.
+	* include/ext/pb_ds/tree_policy.hpp: Same.
+	* include/ext/pb_ds/tag_and_trait.hpp: Same.
+	* include/ext/pb_ds/hash_policy.hpp: Same.
+	* include/ext/pb_ds/trie_policy.hpp: Same.
+	* include/ext/pb_ds/priority_queue.hpp: Same.
+
+	* docs/html/ext/pb_ds: New.
+	* docs/html/ext/pb_ds/container_tag.html: Same.
+	* docs/html/ext/pb_ds/trivial_iterator_tag.html: Same.
+	* docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png
+	* docs/html/ext/pb_ds/sample_trie_e_access_traits.html: Same.
+	* docs/html/ext/pb_ds/gp_hash_table.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_tag_cd.svg
+	* docs/html/ext/pb_ds/container_cd.svg
+	* docs/html/ext/pb_ds/linear_probe_fn.html: Same.
+	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png
+	* docs/html/ext/pb_ds/quadratic_probe_fn.html: Same.
+	* docs/html/ext/pb_ds/assoc_regression_tests.html: Same.
+	* docs/html/ext/pb_ds/tree_tag.html: Same.
+	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html: Same.
+	* docs/html/ext/pb_ds/interface.html: Same.
+	* docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png
+	* docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html: Same.
+	* docs/html/ext/pb_ds/lu_based_containers.html: Same.
+	* docs/html/ext/pb_ds/embedded_lists_3.png
+	* docs/html/ext/pb_ds/tree_text_find_find_timing_test.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png
+	* docs/html/ext/pb_ds/assoc_performance_tests.html: Same.
+	* docs/html/ext/pb_ds/list_update.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png
+	* docs/html/ext/pb_ds/point_iterators_range_ops_1.png
+	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png
+	* docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png
+	* docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html: Same.
+	* docs/html/ext/pb_ds/move_to_front_lu_policy.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png
+	* docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html: Same.
+	* docs/html/ext/pb_ds/string_trie_e_access_traits.html: Same.
+	* docs/html/ext/pb_ds/prerequisites.html: Same.
+	* docs/html/ext/pb_ds/gp_hash_tag.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_tag_cd.png
+	* docs/html/ext/pb_ds/container_cd.png
+	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png
+	* docs/html/ext/pb_ds/container_base.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png
+	* docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html: Same.
+	* docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png
+	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png
+	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png
+	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png
+	* docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png
+	* docs/html/ext/pb_ds/text_find_timing_test_hash_local.png
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png
+	* docs/html/ext/pb_ds/ov_tree_tag.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png
+	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png
+	* docs/html/ext/pb_ds/list_update_tag.html: Same.
+	* docs/html/ext/pb_ds/balls_and_bins.png
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png
+	* docs/html/ext/pb_ds/disclaimer.html: Same.
+	* docs/html/ext/pb_ds/insert_error.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png
+	* docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png
+	* docs/html/ext/pb_ds/examples.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html: Same.
+	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png
+	* docs/html/ext/pb_ds/sample_probe_fn.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png
+	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png
+	* docs/html/ext/pb_ds/null_mapped_type.html: Same.
+	* docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png
+	* docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png
+	* docs/html/ext/pb_ds/associative_container_tag.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png
+	* docs/html/ext/pb_ds/design.html: Same.
+	* docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html: Same.
+	* docs/html/ext/pb_ds/pairing_heap_tag.html: Same.
+	* docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png
+	* docs/html/ext/pb_ds/references.html: Same.
+	* docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png
+	* docs/html/ext/pb_ds/hash_load_check_resize_trigger.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png
+	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png
+	* docs/html/ext/pb_ds/pq_different_underlying_dss.png
+	* docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png
+	* docs/html/ext/pb_ds/pq_regression_tests.html: Same.
+	* docs/html/ext/pb_ds/sample_tree_node_update.html: Same.
+	* docs/html/ext/pb_ds/invalidation_guarantee_erase.png
+	* docs/html/ext/pb_ds/basic_invalidation_guarantee.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png
+	* docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png
+	* docs/html/ext/pb_ds/point_iterators_range_ops_2.png
+	* docs/html/ext/pb_ds/null_probe_fn.html: Same.
+	* docs/html/ext/pb_ds/hash_prime_size_policy.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png
+	* docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html: Same.
+	* docs/html/ext/pb_ds/sample_resize_policy.html: Same.
+	* docs/html/ext/pb_ds/binomial_heap_tag.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png
+	* docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png
+	* docs/html/ext/pb_ds/trie_based_containers.html: Same.
+	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png
+	* docs/html/ext/pb_ds/tree_split_join_timing_test_local.png
+	* docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png
+	* docs/html/ext/pb_ds/motivation.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png
+	* docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png
+	* docs/html/ext/pb_ds/tree.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png
+	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png
+	* docs/html/ext/pb_ds/invalidation_guarantee_cd.png
+	* docs/html/ext/pb_ds/tutorial.html: Same.
+	* docs/html/ext/pb_ds/null_trie_node_update.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png
+	* docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png
+	* docs/html/ext/pb_ds/point_iterators_cd.png
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png
+	* docs/html/ext/pb_ds/rb_tree_tag.html: Same.
+	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png
+	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png
+	* docs/html/ext/pb_ds/exceptions.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png
+	* docs/html/ext/pb_ds/hash_policy_cd.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html: Same.
+	* docs/html/ext/pb_ds/ds_gen.html: Same.
+	* docs/html/ext/pb_ds/hash_exponential_size_policy.html: Same.
+	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png
+	* docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png
+	* docs/html/ext/pb_ds/index.html: Same.
+	* docs/html/ext/pb_ds/binary_heap_tag.html: Same.
+	* docs/html/ext/pb_ds/basic_hash_tag.html: Same.
+	* docs/html/ext/pb_ds/trie_order_statistics_node_update.html: Same.
+	* docs/html/ext/pb_ds/sample_resize_trigger.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png
+	* docs/html/ext/pb_ds/hash_text_find_find_timing_test.html: Same.
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test.html: Same.
+	* docs/html/ext/pb_ds/trie_tag.html: Same.
+	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png
+	* docs/html/ext/pb_ds/pq_tests.html: Same.
+	* docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png
+	* docs/html/ext/pb_ds/node_invariant_invalidations.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png
+	* docs/html/ext/pb_ds/resize_policy_cd.png
+	* docs/html/ext/pb_ds/embedded_lists_1.png
+	* docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png
+	* docs/html/ext/pb_ds/null_lu_metadata.html: Same.
+	* docs/html/ext/pb_ds/tree_order_statistics_timing_test.html: Same.
+	* docs/html/ext/pb_ds/trie_prefix_search_node_update.html: Same.
+	* docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png
+	* docs/html/ext/pb_ds/point_invalidation_guarantee.html: Same.
+	* docs/html/ext/pb_ds/direct_mod_range_hashing.html: Same.
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png
+	* docs/html/ext/pb_ds/misc.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png
+	* docs/html/ext/pb_ds/counter_lu_policy.html: Same.
+	* docs/html/ext/pb_ds/different_underlying_dss.png
+	* docs/html/ext/pb_ds/restoring_node_invariants.png
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html: Same.
+	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png
+	* docs/html/ext/pb_ds/sample_update_policy.html: Same.
+	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png
+	* docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png
+	* docs/html/ext/pb_ds/simple_list.png
+	* docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png
+	* docs/html/ext/pb_ds/assoc_examples.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png
+	* docs/html/ext/pb_ds/hash_based_containers.html: Same.
+	* docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png
+	* docs/html/ext/pb_ds/tree_node_iterator.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png
+	* docs/html/ext/pb_ds/trie_node_iterator.html: Same.
+	* docs/html/ext/pb_ds/tree_based_containers.html: Same.
+	* docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png
+	* docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png
+	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png
+	* docs/html/ext/pb_ds/rationale_null_node_updator.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png
+	* docs/html/ext/pb_ds/lu.png
+	* docs/html/ext/pb_ds/assoc_container_traits.html: Same.
+	* docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png
+	* docs/html/ext/pb_ds/assoc_design.html: Same.
+	* docs/html/ext/pb_ds/splay_tree_tag.html: Same.
+	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html: Same.
+	* docs/html/ext/pb_ds/assoc_container_tag_cd.svg
+	* docs/html/ext/pb_ds/resize_error.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png
+	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html: Same.
+	* docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html: Same.
+	* docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png
+	* docs/html/ext/pb_ds/trie_const_node_iterator.html: Same.
+	* docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png
+	* docs/html/ext/pb_ds/sample_size_policy.html: Same.
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png
+	* docs/html/ext/pb_ds/cc_hash_table.html: Same.
+	* docs/html/ext/pb_ds/node_invariants.png
+	* docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png
+	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html: Same.
+	* docs/html/ext/pb_ds/tree_order_statistics_node_update.html: Same.
+	* docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png
+	* docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png
+	* docs/html/ext/pb_ds/priority_queue.html: Same.
+	* docs/html/ext/pb_ds/assoc_tests.html: Same.
+	* docs/html/ext/pb_ds/assoc_container_tag_cd.png
+	* docs/html/ext/pb_ds/basic_hash_table.html: Same.
+	* docs/html/ext/pb_ds/basic_tree_tag.html: Same.
+	* docs/html/ext/pb_ds/tree_split_join_timing_test.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png
+	* docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png
+	* docs/html/ext/pb_ds/embedded_lists_2.png
+	* docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png
+	* docs/html/ext/pb_ds/sample_ranged_probe_fn.html: Same.
+	* docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png
+	* docs/html/ext/pb_ds/sample_trie_node_update.html: Same.
+	* docs/html/ext/pb_ds/introduction.html: Same.
+	* docs/html/ext/pb_ds/pq_performance_tests.html: Same.
+	* docs/html/ext/pb_ds/pat_trie.png
+	* docs/html/ext/pb_ds/range_invalidation_guarantee.html: Same.
+	* docs/html/ext/pb_ds/contact.html: Same.
+	* docs/html/ext/pb_ds/sample_range_hashing.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png
+	* docs/html/ext/pb_ds/update_seq_diagram.png
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png
+	* docs/html/ext/pb_ds/direct_mask_range_hashing.html: Same.
+	* docs/html/ext/pb_ds/tests.html: Same.
+	* docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png
+	* docs/html/ext/pb_ds/tree_node_updator_policy_cd.png
+	* docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html: Same.
+	* docs/html/ext/pb_ds/trie_node_updator_policy_cd.png
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png
+	* docs/html/ext/pb_ds/concepts.html: Same.
+	* docs/html/ext/pb_ds/pq_examples.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_tag.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html: Same.
+	* docs/html/ext/pb_ds/update_policy_cd.png
+	* docs/html/ext/pb_ds/thin_heap_tag.html: Same.
+	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png
+	* docs/html/ext/pb_ds/basic_tree.html: Same.
+	* docs/html/ext/pb_ds/null_hash_fn.html: Same.
+	* docs/html/ext/pb_ds/null_tree_node_update.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png
+	* docs/html/ext/pb_ds/trie.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png
+	* docs/html/ext/pb_ds/rc_binomial_heap_tag.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png
+	* docs/html/ext/pb_ds/pq_container_traits.html: Same.
+	* docs/html/ext/pb_ds/pq_design.html: Same.
+	* docs/html/ext/pb_ds/checked_by_tidy.gif
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png
+	* docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png
+	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png
+	* docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png
+	* docs/html/ext/pb_ds/acks.html: Same.
+	* docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png
+	* docs/html/ext/pb_ds/cc_hash_tag.html: Same.
+	* docs/html/ext/pb_ds/sample_ranged_hash_fn.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png
+	* docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html: Same.
+	* docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html: Same.
+	* docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png
+	* docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png
+	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png
+	* docs/html/ext/pb_ds/PythonPoweredSmall.gif
+	* docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png
+	* docs/html/ext/pb_ds/pat_trie_tag.html: Same.
+	* docs/html/ext/pb_ds/hash_standard_resize_policy.html: Same.
+	* docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png
+	* docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png
+	* docs/html/ext/pb_ds/join_error.html: Same.
+	* docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png
+	* docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png
+
+	* testsuite/ext/pb_ds: New.
+	* testsuite/ext/pb_ds/regression: New.
+	* testsuite/ext/pb_ds/regression/trie_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/hash_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/associative_containers.cc: Same.
+	* testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/priority_queues.cc: Same.
+	* testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/priority_queue_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/regression/tree_data_map_rand.cc: Same.
+	* testsuite/ext/pb_ds/example: New.
+	* testsuite/ext/pb_ds/example/hash_shift_mask.cc: Same.
+	* testsuite/ext/pb_ds/example/basic_set.cc: Same.
+	* testsuite/ext/pb_ds/example/hash_illegal_resize.cc: Same.
+	* testsuite/ext/pb_ds/example/hash_resize_neg.cc: Same.
+	* testsuite/ext/pb_ds/example/store_hash.cc: Same.
+	* testsuite/ext/pb_ds/example/assoc_container_traits.cc: Same.
+	* testsuite/ext/pb_ds/example/hash_load_set_change.cc: Same.
+	* testsuite/ext/pb_ds/example/ranged_hash.cc: Same.
+	* testsuite/ext/pb_ds/example/hash_resize.cc: Same.
+	* testsuite/ext/pb_ds/example/tree_order_statistics.cc: Same.
+	* testsuite/ext/pb_ds/example/trie_prefix_search.cc: Same.
+	* testsuite/ext/pb_ds/example/basic_multiset.cc: Same.
+	* testsuite/ext/pb_ds/example/priority_queue_xref.cc: Same.
+	* testsuite/ext/pb_ds/example/hash_find_neg.cc: Same.
+	* testsuite/ext/pb_ds/example/erase_if.cc: Same.
+	* testsuite/ext/pb_ds/example/priority_queue_container_traits.cc: Same.
+	* testsuite/ext/pb_ds/example/tree_join.cc: Same.
+	* testsuite/ext/pb_ds/example/basic_map.cc: Same.
+	* testsuite/ext/pb_ds/example/trie_split.cc: Same.
+	* testsuite/ext/pb_ds/example/priority_queue_split_join.cc: Same.
+	* testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc: Same.
+	* testsuite/ext/pb_ds/example/priority_queue_erase_if.cc: Same.
+	* testsuite/ext/pb_ds/example/hash_mod.cc: Same.
+	* testsuite/ext/pb_ds/example/tree_order_statistics_join.cc: Same.
+	* testsuite/ext/pb_ds/example/trie_dna.cc: Same.
+	* testsuite/ext/pb_ds/example/hash_initial_size.cc: Same.
+	* testsuite/ext/pb_ds/example/basic_priority_queue.cc: Same.
+	* testsuite/ext/pb_ds/example/tree_intervals.cc: Same.
+	* testsuite/ext/pb_ds/example/basic_multimap.cc: Same.
+	* testsuite/performance/ext: New.
+	* testsuite/performance/ext/pb_ds: New.
+	* testsuite/performance/ext/pb_ds/multimap_text_find_timing_small.cc: Same.
+	* testsuite/performance/ext/pb_ds/text_find_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc: Same.
+	* testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/tree_split_join_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/random_int_find_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing_large.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp: Same.
+	* testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_find_timing_large.cc: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing_small.cc: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp: Same.
+	* testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc: Same.
+	* testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc: Same.
+	* testsuite/data/make_graph_test_infos.xml: Same.
+	* testsuite/data/thirty_years_among_the_dead_preproc.txt: New.
+	* testsuite/data/make_graph_htmls.xml: Same.
+	* testsuite/util/regression: New.
+	* testsuite/util/regression/trait: New.
+	* testsuite/util/regression/trait/priority_queue: New.
+	* testsuite/util/regression/trait/priority_queue/trait.hpp: Same.
+	* testsuite/util/regression/trait/erase_if_fn.hpp: Same.
+	* testsuite/util/regression/trait/assoc: New.
+	* testsuite/util/regression/trait/assoc/native_type_trait.hpp: Same.
+	* testsuite/util/regression/trait/assoc/node_update_trait.hpp: Same.
+	* testsuite/util/regression/trait/assoc/get_set_load_trait.hpp: Same.
+	* testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp: Same.
+	* testsuite/util/regression/trait/assoc/trait.hpp: Same.
+	* testsuite/util/regression/trait/assoc/type_trait.hpp: Same.
+	* testsuite/util/regression/trait/assoc/resize_trait.hpp: Same.
+	* testsuite/util/regression/trait/assoc/to_string.hpp: Same.
+	* testsuite/util/regression/rand: New.
+	* testsuite/util/regression/rand/priority_queue: New.
+	* testsuite/util/regression/rand/priority_queue/detail: New.
+	* testsuite/util/regression/rand/priority_queue/detail/erase_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/cmp_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/policy_access_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/defs_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/insert_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/clear_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/modify_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/split_join_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/detail/operator_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp: Same.
+	* testsuite/util/regression/rand/priority_queue/container_rand_regression_test.hpp: Same.
+	* testsuite/util/regression/rand/io: New.
+	* testsuite/util/regression/rand/io/priority_queue: New.
+	* testsuite/util/regression/rand/io/priority_queue/xml_formatter.hpp: Same.
+	* testsuite/util/regression/rand/io/assoc: New.
+	* testsuite/util/regression/rand/io/assoc/xml_formatter.hpp: Same.
+	* testsuite/util/regression/rand/io/xml_formatter.hpp: Same.
+	* testsuite/util/regression/rand/assoc: New.
+	* testsuite/util/regression/rand/assoc/detail: New.
+	* testsuite/util/regression/rand/assoc/detail/subscript_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/cmp_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/policy_access_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/it_conversion_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/diagnostic_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/clear_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/get_set_load_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/operator_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/erase_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/resize_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/insert_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/split_join_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/detail/get_set_loads_fn_imps.hpp: Same.
+	* testsuite/util/regression/rand/assoc/rand_regression_test.hpp: Same.
+	* testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp: Same.
+	* testsuite/util/regression/priority_queue: New.
+	* testsuite/util/regression/priority_queue/common_type.hpp: Same.
+	* testsuite/util/regression/basic_type.hpp: Same.
+	* testsuite/util/regression/assoc: New.
+	* testsuite/util/regression/assoc/common_type.hpp: Same.
+	* testsuite/util/regression/res_mng: New.
+	* testsuite/util/regression/res_mng/forced_exception.hpp: Same.
+	* testsuite/util/regression/res_mng/dbg_ex_allocator_base.cc: Same.
+	* testsuite/util/regression/res_mng/dbg_ex_allocator_base.hpp: Same.
+	* testsuite/util/regression/res_mng/dbg_ex_allocator.hpp: Same.
+	* testsuite/util/rng: New.
+	* testsuite/util/rng/twister_rand_gen.cc: Same.
+	* testsuite/util/rng/twister_rand_gen.hpp: Same.
+	* testsuite/util/native_type: New.
+	* testsuite/util/native_type/priority_queue: New.
+	* testsuite/util/native_type/priority_queue/native_priority_queue.hpp: Same.
+	* testsuite/util/native_type/priority_queue/native_pq_tag.hpp: Same.
+	* testsuite/util/native_type/assoc: New.
+	* testsuite/util/native_type/assoc/native_multimap.hpp: Same.
+	* testsuite/util/native_type/assoc/native_tree_tag.hpp: Same.
+	* testsuite/util/native_type/assoc/native_set.hpp: Same.
+	* testsuite/util/native_type/assoc/native_hash_multimap.hpp: Same.
+	* testsuite/util/native_type/assoc/native_map.hpp: Same.
+	* testsuite/util/native_type/assoc/native_hash_tag.hpp: Same.
+	* testsuite/util/native_type/assoc/native_hash_set.hpp: Same.
+	* testsuite/util/native_type/assoc/native_hash_map.hpp: Same.
+	* testsuite/util/common_type: New.
+	* testsuite/util/common_type/priority_queue
+	* testsuite/util/common_type/priority_queue/common_type.hpp: Same.
+	* testsuite/util/common_type/priority_queue/string_form.hpp: Same.
+	* testsuite/util/common_type/priority_queue/detail
+	* testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc: New.
+	* testsuite/util/common_type/assoc/common_type.hpp: Same.
+	* testsuite/util/common_type/assoc/string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/template_policy.hpp: Same.
+	* testsuite/util/common_type/assoc/detail: New.
+	* testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/ds_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp: Same.
+	* testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp: Same.
+	* testsuite/util/common_type/assoc/native_set.hpp: Same.
+	* testsuite/util/performance: New.
+	* testsuite/util/performance/priority_queue: New.
+	* testsuite/util/performance/priority_queue/mem_usage: New.
+	* testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp: Same.
+	* testsuite/util/performance/priority_queue/timing: New.
+	* testsuite/util/performance/priority_queue/timing/push_pop_test.hpp: Same.
+	* testsuite/util/performance/priority_queue/timing/push_test.hpp: Same.
+	* testsuite/util/performance/priority_queue/timing/join_test.hpp: Same.
+	* testsuite/util/performance/priority_queue/timing/modify_test.hpp: Same.
+	* testsuite/util/performance/io: New.
+	* testsuite/util/performance/io/xml_formatter.hpp: Same.
+	* testsuite/util/performance/assoc: New.
+	* testsuite/util/performance/assoc/mem_usage: New.
+	* testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp: Same.
+	* testsuite/util/performance/assoc/mem_usage/erase_test.hpp: Same.
+	* testsuite/util/performance/assoc/multimap_common_type.hpp: Same.
+	* testsuite/util/performance/assoc/timing: New.
+	* testsuite/util/performance/assoc/timing/common_type.hpp: Same.
+	* testsuite/util/performance/assoc/timing/multimap_insert_test.hpp: Same.
+	* testsuite/util/performance/assoc/timing/subscript_find_test.hpp: Same.
+	* testsuite/util/performance/assoc/timing/find_test.hpp: Same.
+	* testsuite/util/performance/assoc/timing/subscript_insert_test.hpp: Same.
+	* testsuite/util/performance/assoc/timing/insert_test.hpp: Same.
+	* testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp: Same.
+	* testsuite/util/performance/assoc/timing/multimap_find_test.hpp: Same.
+	* testsuite/util/performance/assoc/timing/tree_split_join_test.hpp: Same.
+	* testsuite/util/performance/time: New.
+	* testsuite/util/performance/time/elapsed_timer.cc: Same.
+	* testsuite/util/performance/time/elapsed_timer.hpp: Same.
+	* testsuite/util/performance/time/timing_test_base.hpp: Same.
+	* testsuite/util/performance/mem: New.
+	* testsuite/util/performance/mem/mem_track_allocator_base.hpp: Same.
+	* testsuite/util/performance/mem/mem_track_allocator.hpp: Same.
+	* testsuite/util/hash_fn: New.
+	* testsuite/util/hash_fn/limit_string_hash_fn.hpp: Same.
+	* testsuite/util/hash_fn/string_ranged_hash_fn.hpp: Same.
+	* testsuite/util/hash_fn/string_hash_fn.hpp: Same.
+	* testsuite/util/hash_fn/string_ranged_probe_fn.hpp: Same.
+	* testsuite/util/hash_fn/dna_str_limit.hpp: Same.
+	* testsuite/util/io: New.
+	* testsuite/util/io/prog_bar.cc: Same.
+	* testsuite/util/io/prog_bar.hpp: Same.
+	* testsuite/util/io/text_populate.hpp: Same.
+	* testsuite/util/io/xml.hpp: Same.
+	* testsuite/util/io/illegal_input_error.hpp: Same.
+	* testsuite/util/io/xml_test_formatter.hpp: Same.
+	* testsuite/util/io/verified_cmd_line_input.cc: Same.
+	* testsuite/util/io/verified_cmd_line_input.hpp: Same.
+	* testsuite/util/statistic: New.
+	* testsuite/util/statistic/sample_var.hpp: Same.
+	* testsuite/util/statistic/res_recorder.hpp: Same.
+	* testsuite/util/statistic/sample_mean.hpp: Same.
+	* testsuite/util/statistic/sample_mean_confidence_checker.hpp: Same.
+	
 2006-06-12  Paolo Carlini  <pcarlini@suse.de>
 
 	PR libstdc++/26970
diff --git a/libstdc++-v3/docs/html/documentation.html b/libstdc++-v3/docs/html/documentation.html
index f45bde8df950..f211165cca7a 100644
--- a/libstdc++-v3/docs/html/documentation.html
+++ b/libstdc++-v3/docs/html/documentation.html
@@ -224,7 +224,7 @@
 
    <li>Extensions to the Standard Library
    <ul>
-     <li><a href="ext/pb_assoc/index.html">Policy Based Associative Containers</a></li>
+     <li><a href="ext/pb_ds/index.html">Policy Based Data Structures</a></li>
      <li><a href="ext/howto.html#1">Ropes and trees and hashes, oh my!</a></li>
      <li><a href="ext/howto.html#2">Added members and types</a></li>
      <li><a href="ext/mt_allocator.html"><code>__mt_alloc</code> </a></li>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/Std_hash_set_impl.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/Std_hash_set_impl.jpg
deleted file mode 100644
index ff7bae0eec3a485702e94e8f52fad533720095f2..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 51488
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
O*YBvG0W7or-vj`ck><Jp

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/acks.html b/libstdc++-v3/docs/html/ext/pb_assoc/acks.html
deleted file mode 100644
index a4971d120c3e..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/acks.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>Acknowledgements</title>
-		<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-	</head>
-<body>
-<h1>Acknowledgements</h1>
-
-
-<ol>
-	<li>This library was written at the <a href = "http://www.haifa.il.ibm.com/dept/storage/network.html">Network Storage Technologies</a> Group of
-<a href = "http://www.haifa.il.ibm.com/">IBM's Haifa Research Labs</a>.</li>
-	<li>The library is based heavily on policy-based design and uses many useful
-techniques from [<a href="references.html#knuth98sorting">alexandrescu01modern</a>].
-	</li>
-	<li> Two ideas are borrowed from the SGI-STL implementation [<a href = "references.html#sgi_stl">sgi_stl</a>]:
-	<ol>
-		<li>
-			The prime-based resize policies use a list of primes taken from the SGI-STL implementation.
-		</li>
-		<li> The red-black trees contain both a root node and a header
-	node (containing metadata), connected in a way
-	that forward and reverse iteration can be performed efficiently.
-		</li>
-	</ol>
-	</li>
-	<li> Some test utilities borrow ideas from [<a href = "references.html#boost_timer">boost_timer</a>].
-	</li>
-	<li> We would like to thank Scott Meyers for useful comments (without attributing to him
-	any flaws in the design or implementation of the library).
-	</li>
-	<li> Much of the documentation is
-<a href = "http://www.python.org/">
-<img src="PythonPoweredSmall.gif" align=top width=55
-     height=22 alt="[Python Powered]" border=0>
-</a>.
-	</li>
-</ol>
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/balls_and_bins.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/balls_and_bins.jpg
deleted file mode 100644
index d9f7e8bb04808af6b8155b314a145a7203fdca27..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18512
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
T4VwWikLA~xJKzl_?6>~|!K%eP

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html
deleted file mode 100644
index ca91c332eda6..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr.html
+++ /dev/null
@@ -1,1229 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic associative container, specialized for the &quot;map&quot; case.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Categories.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Data-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Value-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link9">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Information methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Insert methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Find methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link14">Iteration methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Policy_Tl3735929470">Policy_Tl</a></pre>
-
-
-</td>
-
-<td>
-<p>Policy typelist.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::difference_type</pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Categories.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "ds_category3735929731">ds_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>The underlying data-structure tag of the container. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "ms_category3735929740">ms_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "data_enabled_ms_tag.html"><tt>data_enabled_ms_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>The mapping-semantics category of the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_pointer3735929752">key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Data-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "data_type3735929514">data_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Data3735928937">Data</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_reference3735930007">data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Data3735928937">Data</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_reference3735929597">const_data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Data3735928937">Data</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_pointer3735929833">data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Data3735928937">Data</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_pointer3735929517">const_data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Data3735928937">Data</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Value-type definitions.
-</a>
-
-</h2>
-
-<p><p>Types pertaining to the <b>domain</b> of the relationships of the table.</p> <p>This is explained in <a href = "concepts.html#concepts_types">Data Types, Value Types, Mapped Data Types, and Mapped Value Types</a> and <a href = "non_unique_mapping.html#types">Mapped Data Types and Mapped Value Types</a>.</p></p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#data_type3735929514">data_type</a>&gt; &gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_find_iterator3735929537">const_find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "find_iterator3735929945">find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~basic_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects the container object is storing.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  max_size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns an upper bound on the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects this container can store.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  empty
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns whether the container object is not storing any <a href = "#value_type3735929645"><tt>value_type</tt></a> objects.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> static <a href = "#const_key_reference3735929552">const_key_reference</a>
-  extract_key
-  (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Extracts a key from a <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Insert methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;<a href = "#find_iterator3735929945">find_iterator</a>, <b>bool</b>&gt;
-  insert
-  (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts a <a href = "#value_type3735929645"><tt>value_type</tt></a> object. If no <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_val</tt></font>'s key was in the container object, inserts and returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>, <tt><b>true</b></tt>); otherwise just returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>'s key, <tt><b>false</b></tt>).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#data_reference3735930007">data_reference</a>
-  <b>operator</b>[]
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Find methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#find_iterator3735929945">find_iterator</a>
-  find
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_find_iterator3735929537">const_find_iterator</a>
-  find
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_data_reference3735929597">const_data_reference</a>
-  <b>operator</b>[]
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the <a href = "#value_type3735929645"><tt>value_type</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-  <b>class</b> Pred&gt;
-<b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase_if
-  (Pred prd)</pre>
-
-
-</td>
-
-<td>
-<p>Erases any <a href = "#value_type3735929645"><tt>value_type</tt></a> satisfying the predicate <font color = "#666666"><tt>prd</tt></font> (this is transactional, either all matching <a href = "#value_type3735929645"><tt>value_type</tt></a>s are erased, or, if an exception is thrown (for types whose erase can throw an exception) none); returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  clear
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Clears the container object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link14">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  begin
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
-  begin
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
-  end
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html
deleted file mode 100644
index 4cde4dbb8b1d..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_compound_data.html
+++ /dev/null
@@ -1,1244 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic associative container specialized for the &quot;multimap&quot; case.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Categories.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Data-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Value-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Iterator definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Mapping-level definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link10">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Information methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Insert methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Find methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link14">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link15">Iteration methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>(Associative) container to which each data is mapped.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Policy_Tl3735929470">Policy_Tl</a></pre>
-
-
-</td>
-
-<td>
-<p>Policy typelist.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::difference_type</pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Categories.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "ds_category3735929731">ds_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>The underlying data-structure tag of the container. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "ms_category3735929740">ms_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "compound_data_enabled_ms_tag.html"><tt>compound_data_enabled_ms_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>The mapping-semantics category of the container. override_from = </p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_pointer3735929752">key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Data-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "data_type3735929514">data_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_reference3735930007">data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_reference3735929597">const_data_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const data reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "data_pointer3735929833">data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_data_pointer3735929517">const_data_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const data pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Value-type definitions.
-</a>
-
-</h2>
-
-<p><p>Types pertaining to the <b>domain</b> of the relationships of the table.</p> <p>This is explained in <a href = "concepts.html#concepts_types">Data Types, Value Types, Mapped Data Types, and Mapped Value Types</a> and <a href = "non_unique_mapping.html#types">Mapped Data Types and Mapped Value Types</a>.</p></p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    std::pair&lt;<b>const</b> <a href = "#key_type3735929433">key_type</a>, <a href = "#Cntnr3735929076">Cntnr</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_find_iterator3735929537">const_find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "find_iterator3735929945">find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Mapping-level definitions.
-</a>
-
-</h2>
-
-<p>See <a href = "ms_gen.html">Mapping-Semantics</a>.</p>
-
-
-<h2>
-<a name = "link10">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~basic_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects the container object is storing.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  max_size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns an upper bound on the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects this container can store.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  empty
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns whether the container object is not storing any <a href = "#value_type3735929645"><tt>value_type</tt></a> objects.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> static <a href = "#const_key_reference3735929552">const_key_reference</a>
-  extract_key
-  (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Extracts a key from a <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Insert methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;<a href = "#find_iterator3735929945">find_iterator</a>, <b>bool</b>&gt;
-  insert
-  (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts a <a href = "#value_type3735929645"><tt>value_type</tt></a> object. If no <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_val</tt></font>'s key was in the container object, inserts and returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>, <tt><b>true</b></tt>); otherwise just returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>'s key, <tt><b>false</b></tt>).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#data_reference3735930007">data_reference</a>
-  <b>operator</b>[]
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Find methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#find_iterator3735929945">find_iterator</a>
-  find
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_find_iterator3735929537">const_find_iterator</a>
-  find
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_data_reference3735929597">const_data_reference</a>
-  <b>operator</b>[]
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Inserts (if necessary) a <a href = "#value_type3735929645"><tt>value_type</tt></a> object associated with <font color = "#666666"><tt>r_key</tt></font>. Returns a <a href = "#data_reference3735930007"><tt>data_reference</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link14">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the <a href = "#value_type3735929645"><tt>value_type</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-  <b>class</b> Pred&gt;
-<b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase_if
-  (Pred prd)</pre>
-
-
-</td>
-
-<td>
-<p>Erases any <a href = "#value_type3735929645"><tt>value_type</tt></a> satisfying the predicate <font color = "#666666"><tt>prd</tt></font> (this is transactional, either all matching <a href = "#value_type3735929645"><tt>value_type</tt></a>s are erased, or, if an exception is thrown (for types whose erase can throw an exception) none); returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  clear
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Clears the container object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link15">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  begin
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
-  begin
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
-  end
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html
deleted file mode 100644
index 8dd0a39a51e9..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_assoc_cntnr_no_data.html
+++ /dev/null
@@ -1,1046 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic associative container specialized for the &quot;set&quot; case.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Categories.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Value-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link8">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Information methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Insert methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Find methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Iteration methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Policy_Tl3735929470">Policy_Tl</a></pre>
-
-
-</td>
-
-<td>
-<p>Policy typelist.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::difference_type</pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Categories.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "ds_category3735929731">ds_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>The underlying data-structure tag of the container. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "ms_category3735929740">ms_category</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_ms_tag.html"><tt>basic_ms_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>The mapping-semantics category of the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_pointer3735929752">key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const key pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Value-type definitions.
-</a>
-
-</h2>
-
-<p><p>Types pertaining to the <b>domain</b> of the relationships of the table.</p> <p>This is explained in <a href = "concepts.html#concepts_types">Data Types, Value Types, Mapped Data Types, and Mapped Value Types</a> and <a href = "non_unique_mapping.html#types">Mapped Data Types and Mapped Value Types</a>.</p></p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    <a href = "#key_type3735929433">key_type</a>&gt;::other::value_type</pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    <a href = "#key_type3735929433">key_type</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    <a href = "#key_type3735929433">key_type</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const value reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    <a href = "#key_type3735929433">key_type</a>&gt; &gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::rebind&lt;
-    <a href = "#key_type3735929433">key_type</a>&gt; &gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Const Value pointer type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_find_iterator3735929537">const_find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "find_iterator3735929945">find_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's find-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Find-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~basic_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects the container object is storing.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  max_size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns an upper bound on the number of distinct <a href = "#value_type3735929645"><tt>value_type</tt></a> objects this container can store.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  empty
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns whether the container object is not storing any <a href = "#value_type3735929645"><tt>value_type</tt></a> objects.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> static <a href = "#const_key_reference3735929552">const_key_reference</a>
-  extract_key
-  (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Extracts a key from a <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Insert methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;<a href = "#find_iterator3735929945">find_iterator</a>, <b>bool</b>&gt;
-  insert
-  (<a href = "#const_reference3735930148">const_reference</a> r_val)</pre>
-
-
-</td>
-
-<td>
-<p>Inserts a <a href = "#value_type3735929645"><tt>value_type</tt></a> object. If no <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_val</tt></font>'s key was in the container object, inserts and returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>, <tt><b>true</b></tt>); otherwise just returns (<a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> object associated with <font color = "#666666"><tt>r_val</tt></font>'s key, <tt><b>false</b></tt>).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Find methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#find_iterator3735929945">find_iterator</a>
-  find
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#find_iterator3735929945"><tt>find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_find_iterator3735929537">const_find_iterator</a>
-  find
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the <a href = "#value_type3735929645"><tt>value_type</tt></a> with <font color = "#666666"><tt>r_key</tt></font> as its key, or the <a href = "#const_find_iterator3735929537"><tt>const_find_iterator</tt></a> corresponding to the just-after-last entry if no such <a href = "#value_type3735929645"><tt>value_type</tt></a>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the <a href = "#value_type3735929645"><tt>value_type</tt></a> associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-  <b>class</b> Pred&gt;
-<b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase_if
-  (Pred prd)</pre>
-
-
-</td>
-
-<td>
-<p>Erases any <a href = "#value_type3735929645"><tt>value_type</tt></a> satisfying the predicate <font color = "#666666"><tt>prd</tt></font> (this is transactional, either all matching <a href = "#value_type3735929645"><tt>value_type</tt></a>s are erased, or, if an exception is thrown (for types whose erase can throw an exception) none); returns the number of <a href = "#value_type3735929645"><tt>value_type</tt></a>s erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  clear
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Clears the container object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  begin
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
-  begin
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the first <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns an <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_iterator3735930079">const_iterator</a>
-  end
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_iterator3735930079"><tt>const_iterator</tt></a> corresponding to the just-after_last <a href = "#value_type3735929645"><tt>value_type</tt></a> in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html
deleted file mode 100644
index ca10f35de56b..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ds_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html
deleted file mode 100644
index 94939ab30d8d..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_assoc_cntnr.html
+++ /dev/null
@@ -1,609 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_hash_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_hash_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic hash-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link6">Resize methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether the hash value will be stored along with each key.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag,3735929133">DS_Tag,</a></pre>
-
-
-</td>
-
-<td>
-<p>Data-structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>Depending on <a href = "#Data3735928937">Data</a>:<ol>	<li> <a href = "null_data_type.html"><tt>null_data_type</tt></a> - <a href = "basic_assoc_cntnr_no_data.html"><tt>basic_assoc_cntnr</tt></a> &quot;set&quot; specialization </li>	<li> <a href = "compound_data_type.html"><tt>compound_data_type</tt></a><tt>&lt;Container&gt;</tt> - <a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a> &quot;multimap&quot; specialization </li>	<li> Other - <a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> &quot;map&quot; specialization </li></ol></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "hash_fn3735929286">hash_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "eq_fn3735929080">eq_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "resize_policy3735929968">resize_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "store_hash3735929631">store_hash</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether a hash value is stored with each entry.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~basic_hash_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#hash_fn3735929286">hash_fn</a> &amp;
-  get_hash_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#hash_fn3735929286"><tt>hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#hash_fn3735929286">hash_fn</a> &amp;
-  get_hash_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#hash_fn3735929286"><tt>hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#eq_fn3735929080">eq_fn</a> &amp;
-  get_eq_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#eq_fn3735929080">eq_fn</a> &amp;
-  get_eq_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;
-  get_resize_policy
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#resize_policy3735929968"><tt>resize_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#resize_policy3735929968">resize_policy</a> &amp;
-  get_resize_policy
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#resize_policy3735929968"><tt>resize_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Resize methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b> <b>void</b>
-  do_resize
-  (size_type new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Resizes the container object to <font color = "#666666"><tt>new_size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html
deleted file mode 100644
index af421d813a42..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_hash_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_hash_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_hash_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic hash data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html
deleted file mode 100644
index 8bba96c22a81..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_invalidation_guarantee.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_invalidation_guarantee Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_invalidation_guarantee
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies a basic invalidation guarantee that any iterator, pointer, or reference to a container object's mapped value type is valid as long as the container is not modified.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html
deleted file mode 100644
index a4e7dd078bdf..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_ms_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_ms_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_ms_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic mapping-semantics tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html
deleted file mode 100644
index 73595b788ab4..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr.html
+++ /dev/null
@@ -1,940 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic tree-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link7">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Node-Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Split and join methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag,3735929133">DS_Tag,</a></pre>
-
-
-</td>
-
-<td>
-<p>Data-structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reverse_iterator3735929745">const_reverse_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const reverse range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const reverse range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reverse_iterator3735929420">reverse_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's reverse range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Reverse range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_const_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Const node iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_iterator3735929950">node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Node iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~basic_tree_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#node_updator3735929843">node_updator</a> &amp;
-  get_node_updator
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &amp;
-  get_node_updator
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of value_types erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  erase
-  (<a href = "#iterator3735929433">iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#iterator3735929433"><tt>iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the next value_type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
-  erase
-  (<a href = "#reverse_iterator3735929420">reverse_iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the previous value_type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
-  rbegin
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the last value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
-  rbegin
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_reverse_iterator3735929745"><tt>const_reverse_iterator</tt></a> corresponding to the last value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#reverse_iterator3735929420">reverse_iterator</a>
-  rend
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#reverse_iterator3735929420"><tt>reverse_iterator</tt></a> corresponding to the just-before-first value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_reverse_iterator3735929745">const_reverse_iterator</a>
-  rend
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_reverse_iterator3735929745"><tt>const_reverse_iterator</tt></a> corresponding to the just-before-first value_type in the container.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Node-Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
-  node_begin
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
-  node_begin
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
-  node_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
-  node_end
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Split and join methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  join
-  (<font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-<p>When calling this function, <font color = "#666666"><tt>r_other</tt></font>'s keys must be all larger or all smaller than this object's keys. </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  split
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
-    <font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html
deleted file mode 100644
index 47095a62ae5b..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_const_node_iterator.html
+++ /dev/null
@@ -1,488 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr::const_node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Const node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">Iterator definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Value-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Movement methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Comparison methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "iterator_category3735929377">iterator_category</a></pre>
-
-
-</td>
-
-<td>
-<pre>trivial_iterator_tag</pre>
-
-
-</td>
-
-<td>
-<p>Category. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>void</b></pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Value-type definitions.
-</a>
-
-</h2>
-
-<p>Note that a node iterator's value type is actually a tree iterator.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>Iterator's value type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>const</b> <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
-  const_node_iterator
-  (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a>
-  <b>operator</b>*
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
-  l_child
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
-  r_child
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Comparison methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  <b>operator</b>==
-  (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content to a different <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  <b>operator</b>!=
-  (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content (negatively) to a different <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html
deleted file mode 100644
index c9f4fb703c0e..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_node_iterator.html
+++ /dev/null
@@ -1,250 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr::node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Movement methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
-  node_iterator
-  (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a>
-  <b>operator</b>*
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
-  l_child
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
-  r_child
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/basic_tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html
deleted file mode 100644
index b9596f388dc5..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev.html
+++ /dev/null
@@ -1,771 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic tree-based associative container specialized for underlying data-structure which do not support reverse iteration.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link7">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Node-Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Split and join methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_const_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Const node iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_iterator3735929950">node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Node iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~basic_tree_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#node_updator3735929843">node_updator</a> &amp;
-  get_node_updator
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &amp;
-  get_node_updator
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of value_types erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  erase
-  (<a href = "#iterator3735929433">iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#iterator3735929433"><tt>iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the next value_type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Node-Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
-  node_begin
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
-  node_begin
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
-  node_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
-  node_end
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Split and join methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  join
-  (<font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  split
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
-    <font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html
deleted file mode 100644
index b9596f388dc5..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_assoc_cntnr_rev_it.html
+++ /dev/null
@@ -1,771 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A basic tree-based associative container specialized for underlying data-structure which do not support reverse iteration.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General container definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Iterator definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link7">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Erase methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Node-Iteration methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Split and join methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#Key3735928856">Key</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's const range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Const range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "iterator3735929433">iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre>Underlying data-structure's range-type iterator.</pre>
-
-
-</td>
-
-<td>
-<p>Range-type iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_const_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::const_node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Const node iterator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_iterator3735929950">node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "basic_tree_assoc_cntnr_node_iterator.html"><tt><font color = "olive">basic_tree_assoc_cntnr</font>::node_iterator</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Node iterator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~basic_tree_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#cmp_fn3735929186"><tt>cmp_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#node_updator3735929843">node_updator</a> &amp;
-  get_node_updator
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#node_updator3735929843">node_updator</a> &amp;
-  get_node_updator
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#node_updator3735929843"><tt>node_updator</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Erase methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  erase
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type associated with <font color = "#666666"><tt>r_key</tt></font>; returns the number of value_types erased (0 or 1).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#iterator3735929433">iterator</a>
-  erase
-  (<a href = "#iterator3735929433">iterator</a> it)</pre>
-
-
-</td>
-
-<td>
-<p>Erases the value_type corresponding to the <a href = "#iterator3735929433"><tt>iterator</tt></a> <font color = "#666666"><tt>it</tt></font>. Returns the <a href = "#iterator3735929433"><tt>iterator</tt></a> corresponding to the next value_type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Node-Iteration methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
-  node_begin
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
-  node_begin
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to the value_type at the root of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#node_iterator3735929950">node_iterator</a>
-  node_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#node_iterator3735929950"><tt>node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#const_node_iterator3735929535">const_node_iterator</a>
-  node_end
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a <a href = "#const_node_iterator3735929535"><tt>const_node_iterator</tt></a> corresponding to a value_type just after a leaf of the tree.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Split and join methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  join
-  (<font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  split
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key,
-    <font color = "olive">basic_tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Joins two trees. When this function returns, <font color = "#666666"><tt>r_other</tt></font> will be empty.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html
deleted file mode 100644
index e28c0b35c172..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/basic_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>basic_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>basic_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Basic tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html
deleted file mode 100644
index 8124e4bcb20a..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_assoc_cntnr.html
+++ /dev/null
@@ -1,679 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>cc_hash_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>cc_hash_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A collision-chaining hash-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor.</p>
-
-
-</td>
-
-<td>
-<pre>__gnu_cxx::hash&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using gcc;<pre>stdext::hash_value&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using Visual C++ .net
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::equal_to&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Comb_Hash_Fn3735929702">Comb_Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining hash functor.</p>
-
-
-<p>If <a href = "#Hash_Fn3735929222">Hash_Fn</a> is not <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>, then this is the <a href = "concepts.html#concepts_hash_fns">range_hashing function</a> functor; otherwise, this is the <a href = "concepts.html#concepts_hash_fns">ranged_hash function</a> functor.</p>
-
-
-</td>
-
-<td>
-<pre><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;
-  <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy.</p>
-
-
-</td>
-
-<td>
-If <tt><a href = "#comb_hash_fn3735929798">comb_hash_fn</a></tt> is <tt><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing&lt;&gt;</a></tt>, then <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
-  <a href = "hash_exponential_size_policy.html">hash_exponential_size_policy</a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <a href = "hash_load_check_resize_trigger.html">hash_load_check_resize_trigger</a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <b>false</b>,
-  <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>otherwise, <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
-  <a href = "hash_exponential_size_policy.html"><tt>hash_prime_size_policy</tt></a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <b>false</b>,
-  <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether the hash value will be stored along with each key.</p>
-
-
-<p>If <tt><a href = "#hash_fn3735929286">hash_fn</a></tt> is <tt><a href = "null_hash_fn.html">null_hash_fn</a></tt>, then the container will not compile if this value is <tt><b>true</b></tt></p>
-
-
-</td>
-
-<td>
-<pre><tt><b>false</b></tt></pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "basic_hash_assoc_cntnr.html"<tt>basic_hash_assoc_cntnr</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "comb_hash_fn3735929798">comb_hash_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining hash functor type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  cc_hash_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  cc_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  cc_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  cc_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  cc_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn,
-    <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  cc_hash_assoc_cntnr
-  (It first_it,
-    It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  cc_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  cc_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  cc_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  cc_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Hash_Fn3735929702">Comb_Hash_Fn</a> &amp;r_comb_hash_fn,
-    <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_hash_fn</tt></font> will be copied by the <a href = "#Comb_Hash_Fn3735929702"><tt>Comb_Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  cc_hash_assoc_cntnr
-  (<b>const</b> <font color = "olive">cc_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~cc_hash_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">cc_hash_assoc_cntnr</font> &amp;
-  <b>operator</b>=
-  (<b>const</b> <font color = "olive">cc_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">cc_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#comb_hash_fn3735929798">comb_hash_fn</a> &amp;
-  get_comb_hash_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#comb_hash_fn3735929798"><tt>comb_hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a> &amp;
-  get_comb_hash_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#comb_hash_fn3735929798"><tt>comb_hash_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html
deleted file mode 100644
index 87b724ef0560..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>cc_hash_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>cc_hash_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Collision-chaining hash data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_hash_ds_tag.html"><tt>basic_hash_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html
deleted file mode 100644
index 0b19045d274b..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_max_collision_check_resize_trigger.html
+++ /dev/null
@@ -1,701 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>cc_hash_max_collision_check_resize_trigger Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>cc_hash_max_collision_check_resize_trigger
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A resize trigger policy based on collision checks. It keeps the simulated load factor lower than some given load factor.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Load access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Specifies whether the load factor can be accessed externally. The two options have different tradeoffs in terms of flexibility, genericity, and encapsulation.</p>
-
-
-</td>
-
-<td>
-<tt><b>false</b></tt>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "external_load_access3735929604">external_load_access</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether loads can be accessed externally</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  cc_hash_max_collision_check_resize_trigger
-  (float load = 0.5)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or constructor taking <font color = "#666666"><tt>load</tt></font>, a load factor which it will attempt to maintain.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">cc_hash_max_collision_check_resize_trigger</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Load access methods.
-</a>
-
-</h2>
-
-<p> These methods are only available if the external access parameter is set.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> float
-  get_load
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a pair of the minimal and maximal loads, respectively.</p>
-
-
-<p>Calling this method will not compile when <a href = "#External_Load_Access3735929540"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_inserted
-  (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erased
-  (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_cleared
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_resized
-  (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized as a result of this object's signifying that a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_externally_resized
-  (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized externally.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_resize_needed
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_grow_needed
-  (<a href = "#size_type3735929547">size_type</a> size, <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a grow is needed.</p>
-
-
-<p>This method is called only if this object indicated is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_shrink_needed
-  (<a href = "#size_type3735929547">size_type</a> size, <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a shrink is needed.</p>
-
-
-<p>This method is called only if this object indicated is needed.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/cc_hash_policy_cd.jpg
deleted file mode 100644
index 63891a851b341ba8d07123db8dcf394343b31fc1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 27118
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
LEr<yP{_Xz*FMbb0

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/cd.jpg
deleted file mode 100644
index 1b5554484e3f406fca6399db67fc51e5a31619cd..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 58234
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html b/libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html
deleted file mode 100644
index 703e4e0f6d49..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/component_requirements.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>Component Requirements</title>
-	</head>
-	<body bgcolor = "white">
-		<h1>Component Requirements</h1>
-		<h2>Functional Requirements</h2>
-		<ol>
-			<li>
-		Keys:
-		<ol>
-			<li>
-			Key objects must be copy-constructible (they need not support assignment).
-			<li>
-				Key objects must be destructible.</li>
-		</ol>
-		<li>
-			Data:
-			<ol>
-		<li>
-		Data objects must be copy-constructible (they need not support assignment).
-		<LI>
-		Data objects must be default constructible.
-		<li>
-			Data objects must be destructible.</li>
-		</ol></li> </ol> <a name="exception_requirements">
-			<h2>Exception Requirements</h2>
-		</a>
-		<ol>
-			<li>
-		Keys:
-		<ol>
-			<li>
-			Key objects must not throw exceptions when destructed.
-			<li>
-				Key objects may throw exceptions when copy constructed.</li>
-		</ol>
-		<li>
-			Data:
-			<ol>
-		<li>
-		Data objects must must not throw exceptions when destructed.
-		<li>
-			Data objects may throw exceptions when copy constructed.</li>
-		</ol></li> </ol>
-		<HR>
-
-	</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html
deleted file mode 100644
index 6b70c3fceba3..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_enabled_ms_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>compound_data_enabled_ms_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>compound_data_enabled_ms_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Mapping-semantics tag indicating that the container objects maps each key to some compound datum.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html b/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html
deleted file mode 100644
index c9fd7e0f4812..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/compound_data_type.html
+++ /dev/null
@@ -1,128 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>compound_data_type Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>compound_data_type
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A data-policy indicating that an associative container has multiple mapping levels.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/data_type.hpp"><tt>data_type.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>(Associative) container type to which every key in the container maps.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cntnr3735929108">cntnr</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>The type of container which is the actual data type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html
deleted file mode 100644
index c1cb9ce3ceb1..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/compound_ds_tag.html
+++ /dev/null
@@ -1,77 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>compound_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>compound_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Compound data-structure tag.
-</p>
-
-<p>Indicates that the underlying data-structure is a composition of other data structures.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/concepts.html b/libstdc++-v3/docs/html/ext/pb_assoc/concepts.html
deleted file mode 100644
index cd7295891e86..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/concepts.html
+++ /dev/null
@@ -1,124 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Concepts</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Concepts</h1>
-
-<p>
-Following are some concepts used throughout the documentation.
-</p>
-
-<ol>
-    <li><a href = "#concepts_null_policies">Null Policy Classes</a></li>
-    <li><a href = "#concepts_find_and_range_iterators">Find and Range Iterators</a></li>
-    <li><a href = "#concepts_mapping_levels">Mapping Levels</a></li>
-</ol>
-
-<h2><a name = "concepts_null_policies">Null Policy Classes</a></h2>
-
-<p>
-    Associative containers are typically parameterized by various policies.
-For example, a hash-based associative
-container is parameterized by a hash-functor, transforming each key into an non-negative numerical type. Each such value is then further mapped into a position within the table.
-The mapping of a key into a position within the table is therefore a two-step process.
-</p>
-
-<p>
-In some
-cases, instantiations are <i>redundant</i>. For example, when the keys are integers, it is possible to use a <i>redundant</i>
-hash policy, which transforms each key into its value.
-</p>
-
-<p>
-    In some other cases, these policies are <i>irrelevent</i>. For example,
-a hash-based associative container might transform keys into positions within
-a table by a different method than the two-step method described above. In such a case, the hash functor is simply irrelevent.
-</p>
-
-<p>
-	<tt>pb_assoc</tt> uses special pre-defined &quot;null policies&quot; classes
-for these cases. Some null policies in <tt>pb_assoc</tt>
-are:
-</p>
-<ol>
-	<li <a href = "null_data_type.html"><tt>null_data_type</tt></a></li>
-    <li><a href = "null_node_updator.html"><tt>null_node_updator</tt></a></li>
-    <li><a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a></li>
-    <li><a href = "null_probe_fn.html"><tt>null_probe_fn</tt></a></li>
-</ol>
-
-<p>
-A &quot;set&quot; in <tt>pb_assoc</tt> is an associative container with its <tt>Data_Parameter</tt> instantiated by
-<a href = "null_data_type.html"><tt>null_data_type</tt></a>.
-<a href = "tree_based_containers.html#node_invariants.html">Tree-Based Containers::Node Invariants</a>
-explains another case where a null policy is needed.
-</p>
-
-
-
-<h2><a name = "concepts_find_and_range_iterators">Find and Range Methods and Iterators</a></h2>
-
-<p>
-    Associative containers allow access to their elements via iterators. <i>E.g.</i>,
-<tt>find</tt> returns an iterator to an element with a given key and
-<tt>begin</tt> returns an iterator to the first element in the container.
-</p>
-
-<p>
-In general, there are two types of methods: <i>find types</i>, and <i>range types</i>.
-    Find-type
-methods return iterators corresponding to elements which have been found in some sense, as
-the container searched for them in order to access them (<i>i.e.</i>, via the
-<tt>find</tt> method) or searched for their location in order to insert them
-(<i>i.e.</i>, via the <tt>insert</tt> method). Range-type methods return iterators
-which can be used to traverse the range of all stored elements, (<i>i.e.</i>, via the
-<tt>begin</tt> and <tt>end</tt> methods).
-</p>
-
-<p>Correspondingly, in <tt>pb_assoc</tt> there are two types of iterators: <i>find type</i>
-iterators are returned by find methods, and range iterators are returned by range methods. For example,
-if <tt>T</tt> is any associative container with integer keys, and <tt>t</tt>
-is a container of type <tt>T</tt>,
-then the following snippet is valid:
-</p>
-
-<pre>
-<b>typename</b> T::find_iterator it0 = t.find(3);
-<b>typename</b> T::const_find_iterator it0 = t.find(3);
-
-<b>typename</b> T::iterator it0 = t.begin();
-<b>typename</b> T::const_iterator it0 = t.begin();
-</pre>
-
-
-<p>
-    This is motivated and explained further in
-<a href = "ds_gen.html#find_range">Data-Structure Genericity::Find-Type and Range-Type Methods and Iterators</a>, which also explains the relationship between find-type and range-type iterators.
-</p>
-
-<h2><a href = "#concepts_mapping_levels">Mapping Levels</a></h2>
-
-<p>
-	In <tt>pb_assoc</tt> &quot;multimaps&quot; are
-&quot;maps&quot; of &quot;sets&quot;. While this design allows efficient
-operations, it makes for cumbersome use at points. For example a
-&quot;multimap&quot; of integers to characters does not
-directly support <tt>inser(std::make_pair(2, 'b')</tt>, since 2 is mapped
-to a &quot;set&quot; of characters, and not to a character.
-</p>
-
-<p>
-	Consequently, <tt>pb_assoc</tt> contains a rebind-like mechanism so that
-containers can support such operations. To dispel ambiguity, container types are
-assigned mapping levels. &quot;Maps&quot; and &quot;sets&quot; have
-a mapping level 1, since they use a single association level. The &quot;multimap&quot;
-above has a mapping level 2, since it uses two association levels: one for integers, and one for characters. The rebind mechanism can be used to alter the association level. This is described in
-<a href = "ms_gen.html">Mapping Semantics</a>.
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/contact.html b/libstdc++-v3/docs/html/ext/pb_assoc/contact.html
deleted file mode 100644
index 2eb28be483bb..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/contact.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Contact</title>
-
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-
-</head>
-<body bgcolor = "white">
-<h1>Contact</h1>
-
-<p>
-For anything relevant, please write to
-<a href = "mailto:pbassoc@gmail.com">pbassoc@gmail.com</a>
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html b/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html
deleted file mode 100644
index fb56b1a0ae22..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_metadata.html
+++ /dev/null
@@ -1,101 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>counter_update_metadata Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>counter_update_metadata
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update metadata type that moves elements to the front of the list based on the counter algorithm.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/counter_update_policy.hpp"><tt>counter_update_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type which will be used for counting the number of times a node was accessed.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html
deleted file mode 100644
index c54fe3739d01..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/counter_update_policy.html
+++ /dev/null
@@ -1,380 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>counter_update_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>counter_update_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update policy that moves elements to the front of the list based on the counter algorithm.
-</p>
-
-<p>This class is likely to slightly change interface when random number generators become part of the C++ standard.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/counter_update_policy.hpp"><tt>counter_update_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Size definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Information methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link5">Metadata definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link6">Metadata operations.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata reference type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;
-  <a href = "counter_update_metadata.html"><tt>counter_update_metadata</tt></a>&gt;::
-    reference
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Size definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type used for counting the number of times each node is accessed until the count is reset to 0 and the node moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  counter_update_policy
-  (<a href = "#size_type3735929547">size_type</a> max_count = 5)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor. <font color = "#666666"><tt>max_count</tt></font> determines the the number of times each node is accessed until the count is reset to 0 and the node moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">counter_update_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Information methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
-  <a href = "#size_type3735929547">size_type</a>
-  get_max_count
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the max count of each metadata (number of times it is accessed until moved to the front of the list).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Metadata definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "metadata_type3735929937">metadata_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "counter_update_metadata.html"><tt>counter_update_metadata</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "metadata_reference3735929497">metadata_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Reference to metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Metadata operations.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#metadata_type3735929937">metadata_type</a>
-  <b>operator</b>()
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Creates a metadata object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>bool</b>
-  <b>operator</b>()
-  (<a href = "#metadata_reference3735929497">metadata_reference</a> r_data) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Decides whether a metadata object should be moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html
deleted file mode 100644
index 7ae1ac067384..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/data_enabled_ms_tag.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>data_enabled_ms_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>data_enabled_ms_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Mapping-semantics tag indicating that the container objects maps each key to some datum.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/design.html b/libstdc++-v3/docs/html/ext/pb_assoc/design.html
deleted file mode 100644
index 4eace5f70cdb..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/design.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>Design</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-<body bgcolor = "white">
-<h1>Design</h1>
-
-<ol>
-	<li> <a href = "overview.html">Overview</a> describes an overview.</li>
-	<li> <a href = "concepts.html">Concepts</a> describes some concepts. </li>
-	<li> <a href = "ds_gen.html">Data-Structure Genericity</a> discusses generic manipulation of containers based on different underlying data-structures.</li>
-	<li> <a href = "ms_gen.html">Mapping-Semantic Genericity</a> discusses generic manipulation of containers with different mapping semantics.</li>
-	<li> <a href = "hash_based_containers.html">Hash-Based Containers</a> describes the design and policies of hash-based containers.</li>
-	<li> <a href = "tree_based_containers.html">Tree-Based Containers</a> describes the design and policies of tree-based containers.</li>
-	<li> <a href = "lu_based_containers.html">List-Based Containers</a> describes the design and policies of list-based containers with update policies.</li>
-</ol>
-
-
-    </body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/different_underlying_dss.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/different_underlying_dss.jpg
deleted file mode 100644
index 2ddd25718142e0a472cebdeee291716278b425dc..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 34944
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
TNmmz&G=6R&Z=s3x-P3;oXPS!f

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html
deleted file mode 100644
index f1915c31be53..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mask_range_hashing.html
+++ /dev/null
@@ -1,251 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>direct_mask_range_hashing Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>direct_mask_range_hashing
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A mask range-hashing class (uses a bit-mask).
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Notification methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">direct_mask_range_hashing</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Notification methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_resized
-  (<a href = "#size_type3735929547">size_type</a> size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the policy object that the container's size has changed to <font color = "#666666"><tt>size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  <b>operator</b>()
-  (<a href = "#size_type3735929547">size_type</a> hash) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Transforms the hash value <font color = "#666666"><tt>hash</tt></font> into a ranged-hash value (using a bit-mask).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html
deleted file mode 100644
index b9096ccb35c5..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/direct_mod_range_hashing.html
+++ /dev/null
@@ -1,228 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>direct_mod_range_hashing Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>direct_mod_range_hashing
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A mod range-hashing class (uses the modulo function).
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Notification methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">direct_mod_range_hashing</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Notification methods.
-</a>
-
-</h2>
-
-<h2>
-<a name = "link5">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  <b>operator</b>()
-  (<a href = "#size_type3735929547">size_type</a> hash) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Transforms the hash value <font color = "#666666"><tt>hash</tt></font> into a ranged-hash value (using a modulo operation).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html b/libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html
deleted file mode 100644
index c5dcb864b4cd..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/disclaimer.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Disclaimer and Copyright</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-
-<h2>Disclaimer and Copyright</h2>
-
-<p>
-Revised 16 February, 2004
-</p>
-&copy; Copyright Ami Tavory and Vladimir Dreizin, IBM-HRL, 2004, and Benjamin Kosnik, Red Hat, 2004.
-<P>
-Permission to use, copy, modify, sell, and distribute this software is hereby granted without fee, provided that the above copyright notice appears in all copies, and that both that copyright notice and this permission notice appear in supporting documentation.
-</p>
-<P>
-None of the above authors, nor IBM Haifa Research Laboratories, Red Hat, or both, make any representation about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html b/libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html
deleted file mode 100644
index d7cc0aad22a0..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ds_gen.html
+++ /dev/null
@@ -1,368 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>Data-Structure Genericity</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-<body bgcolor = "white">
-<h1>Data-Structure Genericity</h1>
-
-<p>
-	This section describes genericity over different underlying data-structures. It is organized as follows.
-</p>
-<ol>
-	<li><a href = "#problem">The Basic Problem</a></li>
-	<li><a href = "#ds_hierarchy">Container Hierarchy</a></li>
-	<li><a href = "#ds_traits">Data-Structure Tags and Traits</a></li>
-	<li><a href = "#find_range">Find-Type and Range-Type Methods and Iterators</a></li>
-</ol>
-
-<h2><a name = "problem">The Basic Problem</a></h2>
-
-<p>
-	The design attempts to address the following problem. When writing a function manipulating a generic container object, what is the behaviour of the object? <i>E.g.</i>, suppose one writes
-</p>
-<pre>
-<b>template</b>&lt;
-    <b>class</b> Cntnr&gt;
-<b>void</b> some_op_sequence
-    (Cntnr &r_cntnr)
-{
-    ...
-}
-</pre>
-then one needs to address the following questions in the body
-of <tt>some_op_sequence</tt>:
-<ol>
-	<li> Which types and methods does <tt>Cntnr</tt> support? Containers based on hash tables can be queries for the hash-functor type and object; this is meaningless for tree-based containers. Containers based on trees can be split, joined, or can erase iterators and return the following iterator; this cannot be done by hash-based containers. </li>
-	<li>
-		What are the guarantees of <tt>Cntnr</tt>? A container based on a probing hash-table invalidates all iterators when it is modified; this is not the case for containers based on node-based trees. Containers based on a node-based tree can be split or joined without exceptions; this is not the case for containers based on vector-based trees.
-	</li>
-	<li> How does the container maintain its elements? containers based on splay trees or lists with update policies "cache" "frequently accessed" elements; containers based on most other underlying data-structures do not.</li>
-</ol>
-
-<h2><a name = "ds_hierarchy">Container Hierarchy</a></h2>
-
-<p>
-	Figure
-<a href = "#cd">Class hierarchy</a>
-	shows the container hierarchy.
-</p>
-<ol>
-	<li>
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>
-contains types and methods shared by all associative containers, <i>e.g.</i>, the type <tt>allocator</tt> and the method <tt>find</tt>.
-	</li>
-	<li><a href = "basic_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a> subclasses
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>, and contains
-types and methods shared by all hash-based containers, <i>e.g.</i>, the type <tt>hash_fn</tt>.
-	</li>
-	<ol>
-		<li>
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-and
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>
-each subclass
-<a href = "basic_hash_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a>, and encapsulate collision-chaining and (general) probing hash tables, respectively. These two types of hash tables have somewhat different policies and methods (<i>i.e.</i>, constructors and policy-access methods).
-		</li>
-	</ol>
-	<li>
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a>
-subclasses one of
-<a href = "basic_tree_assoc_cntnr.html"><tt>basic_tree_assoc_cntnr</tt></a> which
-subclasses
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>.
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a>
- encapsulates a tree-based container, and is parameterized by which underlying data-structure to use (<i>e.g.</i>, a red-black tree);
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>.
-is specialized to the capabilities of the underlying structure.
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a> contains some additional methods over
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>,
-<i>e.g.</i>, split and join methods.
-	</li>
-		<li>
-<a href = "lu_assoc_cntnr.html"><tt>lu_assoc_cntnr</tt></a>
-subclasses
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>,
-and encapsulates a list with update policies.
-	</li>
-</ol>
-
-<p>
-	The hierarchy is composed naturally, such that each container inherits
-all types and methods from its base. <a href = "#ds_traits">Data-Structure Tags and Traits</a> discusses how to query which types and methods each container supports.
-</p>
-
-
-
-<h2><a name = "ds_traits">Data-Structure Tags and Traits</a></h2>
-
-<p>
-	<tt>pb_assoc</tt> contains a tag and traits mechanism similar to that of the STL's iterators.
-</p>
-
-<p>
-	<tt>pb_assoc</tt> contains a tag hierarchy corresponding to the hierarchy
-in Figure
-<a href = "#cd">Class hierarchy</a>.
-The tag hierarchy is shown in Figure
-<a href = "#ds_tag_cd">Data-structure tag class hierarchy</a>.
-</p>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "ds_tag_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Data-structure tag class hierarchy.
-</h6>
-
-<p>
-	<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> publicly defines
-<tt>ds_category</tt> as one of the classes in Figure
-.
-Given any container <tt>Cntnr</tt>, the tag of the underlying data-structure can be found via <tt><b>typename</b> Cntnr::ds_category</tt>.
-</p>
-
-<p>
-	Additionally, a traits mechanism can be used to query a container type for its attributes. Given any container <tt>Cntnr</tt>, then
-<tt><a href = "ds_traits.html">ds_traits</a>&lt;Cntnr&gt;</tt>
-is a traits class identifying the properties of the container.
-</p>
-
-<p>
-	To find if a container can throw when a key is erased (which is true for vector-based trees, for example), one can use
-</p>
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::erase_can_throw</tt>,
-for example.
-
-<p>
-	Some of the definitions in
-<a href = "ds_traits.html"><tt>ds_traits</tt></a>
-are dependent on other definitions. <i>E.g.</i>, if
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::split_join</tt>
-is <tt><b>true</b></tt> (which is the case for containers based on trees),
-then
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
-indicates whether splits or joins can throw exceptions (which is true for vector-based trees); otherwise
-<a href = "ds_traits.html"><tt>ds_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
-will yield a compilation error. (This is somewhat similar to a compile-time
-version of the COM model
-[<a href = "references.html#mscom">mscom</a>]).
-
-
-<h2><a name = "find_range">Find-Type and Range-Type Methods and Iterators</a></h2>
-
-<p>
-	<tt>pb_assoc</tt> differentiates between two types of methods: find-type methods, and range-type methods. For example, <tt>find</tt> is a find-type method, since a container object searches for an element with a given key; <tt>insert</tt> is a find-type method, since, by STL convention, a container object returns an iterator corresponding to an element with a given key; <tt>begin</tt> and <tt>end</tt> are range-type methods, since they are not used to find a specific element, but rather to go over all elements in a container object.
-</p>
-
-<p>
-	Correspondingly, containers in <tt>pb_assoc</tt> define two families of iterators. <tt>const_find_iterator</tt> and <tt>find_iterator</tt> are the iterator types returned by find-type methods; <tt>const_iterator</tt> and <tt>iterator</tt> are the iterator types returned by range-type methods.
-</p>
-
-<p>
-	The relationship between these iterator types varies between container types. In a tree-based container, for example, <tt>const_find_iterator</tt> and <tt>const_iterator</tt> are synonymous, and <tt>find_iterator</tt> and <tt>iterator</tt> are synonymous; in a hash-based container, for example, this is not the case. Futhermore, find-type iterators in a hash-based container lack movement operators, such as
-	<tt><b>operator++</b></tt>.
-	All containers, however, maintain the invariants shown in Figure
-
-.
-</p>
-
-
-<p>
-	This distinction between find-type and range-type iterators and methods, while complicating the interface, has several advantages:
-</p>
-
-<h3>Iterators in unordered container types</h3>
-
-<p>
- Given an unordered container type, <i>e.g.</i>, a hash-based container, it makes no sense to move an iterator returned by a find-type method.
-Let <tt>cntnr</tt> be an associative-container object, and
-consider:
-</p>
-
-<pre>
-std::for_each(m.find(1), m.find(5), foo);
-</pre>
-
-<p>
-which applies <tt>foo</tt> to all elements in <tt>m</tt>
-between <tt>1</tt> and <tt>5</tt>.
-</p>
-
-<p>If <tt>cntnr</tt> is a
-tree-based container object, then an in-order walk will apply <tt>foo</tt>
-to the relevant elements, <i>e.g.</i>, as in Figure
-<a href = "#range_it_in_hts">Range iteration in different data-structures</a>
--A. If <tt>m</tt> is a
-hash-based container, then the order of elements between any two
-elements is undefined (and probably time-varying); there is no
-guarantee that the elements traversed will coincide with the
-<i>logical</i> elements between 1 and 5, <i>e.g.</i>, as in
-Figure <a href = "#range_it_in_hts">Range iteration in different data-structures</a>-B.
-</p>
-
-<p>
-The application of a
-range function <i>e.g.</i>, <tt>for_each</tt>, to a
-pair of hash-based container's iterators is possibly sensical only
-if the iterators are those returned by <tt>begin</tt> and <tt>end</tt>,
-respectively. Therefore, the iterator returned by
-<tt>m</tt>'s <tt>find</tt> method should be immovable.
-</p>
-
-<p>
-    Another point also indicates that hash-based containers'
-find-type iterators and range-type iterators should be distinct.
-Consider Figure
-<a href = "#find_its_in_hash_tables">
-Find-type iterators in hash tables</a>-A.
-An
-(immovable) find-type iterator, designed only to access an
-element, requires at most a single pointer to the element's link.
-Conversely, an iterator designed for range operations
-requires some more information <i>e.g.</i>, the bucket number),
-since a cross-list traversal might be necessary. Alternatively,
-the lists might be linked, forming a monolithic total-element
-list, as in Figure
-<a href = "#find_its_in_hash_tables">
-Find-type iterators in hash tables</a>-B (this seems
-similar to the Dinkumware design
-[<a href = "references.html#dinkumware_stl">dinkumware_stl</a>]). This,
-however, complicates the hash-table's operations.
-
-<h6 align = "center">
-<a name = "range_it_in_hts">
-<img src = "find_iterators_range_ops_1.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Range iteration in different data-structures.
-</h6>
-
-
-<h6 align = "center">
-<a name = "find_its_in_hash_tables">
-<img src = "find_iterators_range_ops_2.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Find-type iterators in hash tables.
-</h6>
-
-<p>
-	As a consequence of this design,
-</p>
-
-<pre>
-std::for_each(m.find(1), m.find(5), foo);
-</pre>
-
-<p>
-	will compile for tree-based containers, but will not compile
-for hash-tables or other types. The returned type of <tt>find</tt>
-is a find-type iterator. For tree-based containers, this is synonymous
-with a range-type iterator, and therefore supports <tt><b>operator</b>++</tt>;
-for other types of containers, a find-type iterator lacks <tt><b>operator</b>++</tt>.
-</p>
-
-<h3>Invalidation Guarantees</h3>
-
-<p>
-	Consider the following snippet:
-</p>
-
-<pre>
-it = c.find(3);
-
-c.erase(5);
-</pre>
-
-<p>
-	Following the call to <tt>erase</tt>, what is the validity
-of <tt>it</tt>: can it be dereferenced? can it be incremented?
-</p>
-
-<p>
-	The answer depends on the underlying data-structure of the container.
-Figure
-<a href = "#invalidation_guarantee_erase">Effect of erase in different underlying data-structures</a>
-shows three cases: A1 and A2 show a red-black tree;
-B1 and B2 show an ordered-vector tree; C1 and C2
-show a collision-chaining hash table.
-</p>
-
-<h6 align = "center">
-<a name = "invalidation_guarantee_erase">
-<img src = "invalidation_guarantee_erase.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Effect of erase in different underlying data-structures.
-</h6>
-
-
-<ol>
-	<li>
-		`Erasing 5 from A1 yields A2. Clearly, an iterator to 3
-	can be dereferenced and incremented.
-	</li>
-	<li>
-		Erasing 5 from B1 yields B2. Clearly, an iterator to 3 is
-	not valid at all.
-	</li>
-	<li>
-		Erasing 5 from C1 yields C2. Here the situation is more complicated.
-On the one hand, incrementing <tt>it</tt> can be undefined. On the other
-hand, there is no problem in dereferencing <tt>it</tt>. In
-classic STL, it is not possible to express whether <tt>it</tt>
-is valid or not.
-	</li>
-</ol>
-
-<p>
-	Thus again, the iterator concept seems overloaded. Distinguishing
-between find and range types allows fine-grained invalidation guarantees.
-<a href = #invalidation_guarantee_cd">Invalidation guarantees class hierarchy</a>
-shows tags corresponding to different types of invalidation guarantees.
-</p>
-
-<h6 align = "center">
-<a name = "invalidation_guarantee_cd">
-<img src = "invalidation_guarantee_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Invalidation guarantees class hierarchy.
-</h6>
-
-<ol>
-	<li> <a href = "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a> corresponds to a basic guarantee that a find-type iterator, a found pointer, or a found reference, remains valid as long as the container object is not modified.
-	</li>
-	<li> <a href = "find_invalidation_guarantee.html"><tt>find_invalidation_guarantee</tt></a> corresponds to a guarantee that a find-type iterator, a found pointer, or a found reference, remains valid even if the containter object is modified.
-	</li>
-	<li> <a href = "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a> corresponds to a guarantee that a range-type iterator remains valid even if the containter object is modified.
-	</li>
-</ol>
-
-
-<p>
-	To find the invalidation guarantee of a container, one can use
-</p>
-<pre>
-<b>typename</b> <a href = "ds_traits.html">ds_traits</a>&lt;Cntnr&gt;::invalidation_guarantee
-</pre>
-
-<p>
-	which is one of the classes in Figure
-<a href = #invalidation_guarantee_cd">Invalidation guarantees class hierarchy</a>.
-</p>
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ds_tag_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/ds_tag_cd.jpg
deleted file mode 100644
index 0526f8649fcaa6317fac3b6a1ca9493495789e9b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 54661
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
VQ_RYpoOg=lth7k+hJStk{{T-s=du6*

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html b/libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html
deleted file mode 100644
index c646af2f8835..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ds_traits.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>ds_traits Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>ds_traits
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies a basic invalidation guarantee that any iterator, pointer, or reference to a container object's mapped value type is valid as long as the container is not modified.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_1.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_1.jpg
deleted file mode 100644
index 0d6569ad56622e0aebc0383ac28d556f1bc9afa6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 24191
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
QWfoyebZ1W@IQj5@0G7k*4*&oF

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/embedded_lists_2.jpg
deleted file mode 100644
index d6e4aa10a9135a7a5895001f3e2f5952e3e46dae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 23766
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/examples.html b/libstdc++-v3/docs/html/ext/pb_assoc/examples.html
deleted file mode 100644
index af20aad5072a..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/examples.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Examples</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Examples</h1>
-
-<ol>
-	<li><a href = "#basic_usage">Basic use</a></li>
-	<li><a href = "#generics">Generics</a></li>
-	<li><a href = "#hash_based">Hash-Based Containers</a></li>
-	<li><a href = "#tree_based">Tree-Based Containers</a></li>
-</ol>
-
-<h2><a name = "basic_usage">Basic Use</a></h2>
-
-<ol>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/basic_map.cc"><tt>basic_map.cc</tt></a>- Basic use of &quot;maps&quot;.</li>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/basic_set.cc"><tt>basic_set.cc</tt></a>- Basic use of &quot;sets&quot;.
-See
-<a href = "ms_gen.html#ds_policy">Mapping Semantics::Data Types as a Policy</a>.
-	</li>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/basic_multimap.cc"><tt>basic_multimap.cc</tt></a>- Basic use of &quot;multimaps&quot;.
-See
-	<a href = "ms_gen.html#ds_policy">Mapping Semantics::Data Types as a Policy</a>.
-	</li>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/erase_if.cc"><tt>erase_if.cc</tt></a>- Conditionally
-erasing values from a container object.
-See
-<a href = "motivation.html#methods">Motivation::Choice of Methods</a>.
-	</li>
-</ol>
-
-
-
-<h2><a name = "generics">Generics</a></h2>
-
-<ol>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/ds_traits.cc"><tt>ds_traits.cc</tt></a>-
-Using
-<a href = "ds_traits.html"><tt>ds_traits</tt></a> to query about underlying
-data-structure behaviour.
-See
-<a href = "ds_gen.html#ds_traits">Data-Structure Genericity::Data-Structure Tags and Traits</a>.
-	</li>
-	<li> <a href = "../../../../testsuite/ext/pb_assoc/example/mapping_level.cc"><tt>mapping_level.cc</tt></a>-
-Rebinding a compound associative-container to different mapping levels.
-See
-<a href = "ms_gen.html#mapping_level">Mapping-Semantics::Mapping Levels</a>.
-	</li>
-	<li> <a href = "../../../../testsuite/ext/pb_assoc/example/ms_traits.cpp"><tt>ms_traits.cpp</tt></a>-
-Using <a href = "ms_traits.html"><tt>ms_traits</tt></a>
-to query about mapping semantics.
-See
-<a href = "ms_gen.html#ms_traits">Mapping-Semantics::Tags and Traits</a>.
-	</li>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/cc_ht_extract_key.cc"><tt>cc_ht_extract_key.cc</tt></a>-
-		Extracting the key from different types.
-	</li>
-</ol>
-
-
-<h2><a name = "hash_based">Hash-Based Containers</a></h2>
-
-<p>
-	See
-<a href = "hash_based_containers.html">Hash-Based Containers</a>.
-</p>
-
-<h3>General</h3>
-
-<ol>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_bad_find.cc"><tt>hash_bad_find.cc</tt></a>-
-	A non-compiling example showing wrong use of finding keys in hash-based
-	containers.
-	See
-	<a href = "ds_gen.html#find_range">Data-Structure Genericity::Find-Type and Range-Type Methods and Iterators</a>.
-	</li>
-</ol>
-
-
-<h3>Resize-Related</h3>
-
-<p>See
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_based_containers.html#resize_policies">Hash-Based Containers::Resize Policies</a>.
-</p>
-
-<ol>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_initial_size.cc"><tt>hash_initial_size.cc</tt></a>-
-	Setting the initial size of a hash-based container object.
-	</li>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_bad_resize.cc"><tt>hash_bad_resize.cc</tt></a>-
-	A non-compiling example showing how not to resize a hash-based container object.
-	</li>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_resize.cc"><tt>hash_resize.cc</tt></a>-
-	Resizing the size of a hash-based container object.
-	</li>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/hash_illegal_resize.cc"><tt>hash_illegal_resize.cc</tt></a>-
-		Showing an illegal resize of a hash-based container object.
-	</li>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_load_set_change.cc"><tt>hash_load_set_change.cc</tt></a>-
-	Changing the load factors of a hash-based container object.
-	</li>
-</ol>
-
-
-<h3>Hash-Related</h3>
-
-<p>See
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_based_containers.html#hash_policies">Hash-Based Containers::Hash Policies</a>.
-</p>
-
-<ol>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/hash_mod.cc"><tt>hash_mod.cc</tt></a>-
-Using a modulo range-hashing function.
-	</li>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/store_hash.cc"><tt>store_hash.cc</tt></a>-
-	Storing the hash value along with each key.
-	</li>
-	<li>
-	<a href = "../../../../testsuite/ext/pb_assoc/example/shift_mask.cc"><tt>shift_mask.cc</tt></a>-
-	Writing a range-hashing functor.
-	</li>
-	<li><a href = "../../../../testsuite/ext/pb_assoc/example/ranged_hash.cc"><tt>ranged_hash.cc</tt></a>-
-	Writing
-	a ranged-hash functor.</li>
-</ol>
-
-
-
-
-
-<h2><a name = "tree_based">Tree-Based Containers</a></h2>
-
-<p>
-	See
-<a href = "tree_based_containers.html">Tree-Based Containers</a>.
-</p>
-
-<h3>Node-Invariatns</h3>
-
-<p>
-	See
-<a href = "tree_based_containers.html#invariants">Tree-Based Containers::Node Invariants</a>.
-</p>
-
-<ol>
-	<li><a href="../../../../testsuite/ext/pb_assoc/example/tree_order_statistics.cc"><tt>tree_order_statistics.cc</tt></a>-
-Using trees for order statistics.
-	</li>
-	<li><a href="../../../../testsuite/ext/pb_assoc/example/tree_intervals.cc"><tt>tree_intervals.cc</tt></a>- Augmenting an
-<a href = "ov_tree_set.html"><tt>ov_tree_set</tt></a>
-to support operations on line intervals.
-	</li>
-</ol>
-
-<h3>Split and Join</h3>
-
-<p>
-	See
-<a href = "tree_based_containers.html#add_methods">Tree-Based Containers::Additional Types and Methods</a>.
-</p>
-
-<ol>
-	<li><a href="../../../../testsuite/ext/pb_assoc/example/tree_join.cc"><tt>tree_join.cc</tt></a>- Joining
-two tree-based container objects.
-	</li>
-	<li><a href="../../../../testsuite/ext/pb_assoc/example/tree_split.cc"><tt>tree_split.cc</tt></a>- Splitting
-a tree-based container object.
-	</li>
-	<li><a href="../../../../testsuite/ext/pb_assoc/example/tree_order_statistics_join.cc"><tt>tree_order_statistics_join.cc</tt></a>- Order statistics while joining two tree-based container objects.
-</ol>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html b/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html
deleted file mode 100644
index 48f12bcfbfd5..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/exception_guarantees_specifics.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
-	<title>Exception Guarantee Specifics</title>
-</head>
-<body bgcolor = "white">
-<h1>Exception Guarantee Specifics</h1>
-The following represent exception guaratee specifics, subject to the <a href="component_requirements.html#exception_requirements">component exception-requirements</a>.
-<ol>
-	<li> <a name="basic_guarantee">No</a> resources are leaked in the face of exceptions. In particular, this means:
-		 <ol>
-		 	 <li>By the time a container's destructor completes:
-      	 	 <ol>
-			  	 <li>It has returned all memory it has allocated to the appropriate deallocation function.</li>
-				 <li>The destructor has been called for all objects constructed by the container.</li>
-			</ol>
-			<li>Algorithms destroy all temporary objects and deallocate all temporary memory even if the algorithm does not complete due to an exception.</li>
-			<li>Algorithms which construct objects either complete successfully or destroy any objects they have constructed at the time of the exception.</li>
-			<li>Algorithms which destruct objects always succeed.</li>
-			<li>Containers continue to fulfill all of their requirements, even after an exception occurs during a mutating function. For example, they will never give an inaccurate report of its size, or fail to meet performance requirements because of some thrown exception.</li>
-		</ol>
-	</li>
-	<li> <a name="strong_guarantee">The</a> <i>strong guarantee</i>: If an operation on a container fails due to an exception, then, semantically, the operation is a no-op applied to the container.</li>
-	<li> <a name="cannot_throw_guarantee">The</a> operation cannot throw an exception.</li>
-</ol>
-(The phrasing of the above is based on <a href="references.html#abrahams97exception">[abrahams97exception]</a>.)
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html
deleted file mode 100644
index 38d94470bace..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/find_invalidation_guarantee.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>find_invalidation_guarantee Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>find_invalidation_guarantee
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies an invalidation guarantee that includes all those of its base, and additionally, that any find-type iterator, pointer, or reference to a container object's mapped value type is valid as long as its corresponding entry has not be erased, regardless of modifications to the container object.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_cd.jpg
deleted file mode 100644
index 5b0e80dedeab7059f34834a5906fbfc207df1b3f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 48752
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
Mq#J<%?=MsT2cZ-37XSbN

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_1.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_1.jpg
deleted file mode 100644
index 6cc788fc4fdcb3dbc7cbfc56fef24876ffc36f99..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 18521
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
K9Y(BPkNqD3YyJ)Z

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/find_iterators_range_ops_2.jpg
deleted file mode 100644
index 5e567e42cb3a6a4ce190e55eacc6beeb04eabbfa..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 25683
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/generics.html b/libstdc++-v3/docs/html/ext/pb_assoc/generics.html
deleted file mode 100644
index 5b7f2fb7fc19..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/generics.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Generics</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Generics</h1>
-
-<p>
-	Naturally, the ability to program generically different associative containers, is beneficial.
-The distinction in this library between <a href = "data_type_defs.html">data_type</a>s and
-<a href = "mapped_data_type_defs.html">mapped_data_type</a>s, and between <a href = "value_type_defs.html">value_type</a>s and
-<a href = "mapped_value_type_defs.html">mapped_value_type</a>s, somewhat complicates this.
-</p>
-
-<p>
-	The generic utility classes ease static detection of different associative-container
-types (<i>e.g.</i>, whether they are map or multimap types), and the extraction of data from iterators.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html
deleted file mode 100644
index 3451380f5ca9..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_assoc_cntnr.html
+++ /dev/null
@@ -1,816 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>gp_hash_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>gp_hash_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A general-probing hash-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Hash_Fn3735929222">Hash_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Hash functor.</p>
-
-
-</td>
-
-<td>
-<pre>__gnu_cxx::hash&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using gcc;<pre>stdext::hash_value&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>if using Visual C++ .net
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::equal_to&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Comb_Probe_Fn3735929818">Comb_Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining probe functor.</p>
-
-
-<p>If <a href = "#Hash_Fn3735929222">Hash_Fn</a> is <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>, and <a href = "#Probe_Fn3735929338">Probe_Fn</a> is <a href = "comb_probe_fn.html"><tt>comb_probe_fn</tt></a>, then this is the <a href = "concepts.html#concepts_hash_fns">ranged_hash function</a> functor; otherwise, this is the <a href = "concepts.html#concepts_hash_fns">range_hashing function</a> functor;</p>
-
-
-</td>
-
-<td>
-<pre><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;
-  <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Probe_Fn3735929338">Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Probe functor.</p>
-
-
-</td>
-
-<td>
-If <tt><a href = "#comb_hash_fn3735929798">comb_hash_fn</a></tt> is <tt><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing&lt;&gt;</a></tt>, then <pre><a href = "linear_probe_fn.html">linear_probe_fn</a>&lt;
-  <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>otherwise, <pre><a href = "quadratic_probe_fn.html">quadratic_probe_fn</a>&lt;
-  <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Resize_Policy3735929904">Resize_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Resize policy.</p>
-
-
-</td>
-
-<td>
-If <tt><a href = "#comb_hash_fn3735929798">comb_hash_fn</a></tt> is <tt><a href = "direct_mask_range_hashing.html">direct_mask_range_hashing&lt;&gt;</a></tt>, then <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
-  <a href = "hash_exponential_size_policy.html">hash_exponential_size_policy</a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <a href = "hash_load_check_resize_trigger.html">hash_load_check_resize_trigger</a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <b>false</b>,
-  <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>otherwise, <pre><a href = "hash_standard_resize_policy.html">hash_standard_resize_policy</a>&lt;
-  <a href = "hash_exponential_size_policy.html"><tt>hash_prime_size_policy</tt></a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>&lt;
-    <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;,
-  <b>false</b>,
-  <b>typename</b> <a href = "#comb_hash_fn3735929798">comb_hash_fn</a>::size_type&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Store_Hash3735929567">Store_Hash</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether the hash value will be stored along with each key.</p>
-
-
-<p>If <tt><a href = "#hash_fn3735929286">hash_fn</a></tt> is <tt><a href = "null_hash_fn.html">null_hash_fn</a></tt>, then the container will not compile if this value is <tt><b>true</b></tt></p>
-
-
-</td>
-
-<td>
-<pre><tt><b>false</b></tt></pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Probe_Fn3735929338">Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "basic_hash_assoc_cntnr.html"<tt>basic_hash_assoc_cntnr</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "comb_probe_fn3735929914">comb_probe_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Combining probe functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "probe_fn3735929402">probe_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Probe_Fn3735929338">Probe_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Probe functor type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  gp_hash_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  gp_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  gp_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  gp_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  gp_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
-    <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  gp_hash_assoc_cntnr
-  (<b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
-    <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn,
-    <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  gp_hash_assoc_cntnr
-  (It first_it,
-    It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  gp_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  gp_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  gp_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  gp_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
-    <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  gp_hash_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#Hash_Fn3735929222">Hash_Fn</a> &amp;r_hash_fn,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Comb_Probe_Fn3735929818">Comb_Probe_Fn</a> &amp;r_comb_probe_fn,
-    <b>const</b> <a href = "#Probe_Fn3735929338">Probe_Fn</a> &amp;r_probe_fn,
-    <b>const</b> <a href = "#Resize_Policy3735929904">Resize_Policy</a> &amp;r_resize_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_hash_fn</tt></font> will be copied by the <a href = "#Hash_Fn3735929222"><tt>Hash_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_comb_probe_fn</tt></font> will be copied by the <a href = "#Comb_Probe_Fn3735929818"><tt>Comb_Probe_Fn</tt></a> object of the container object, <font color = "#666666"><tt>r_probe_fn</tt></font> will be copied by the <a href = "#Probe_Fn3735929338"><tt>Probe_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_resize_policy</tt></font> will be copied by the <a href = "#Resize_Policy3735929904"><tt>Resize_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  gp_hash_assoc_cntnr
-  (<b>const</b> <font color = "olive">gp_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~gp_hash_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">gp_hash_assoc_cntnr</font> &amp;
-  <b>operator</b>=
-  (<b>const</b> <font color = "olive">gp_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">gp_hash_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#comb_probe_fn3735929914">comb_probe_fn</a> &amp;
-  get_comb_probe_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#comb_probe_fn3735929914"><tt>comb_probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#comb_probe_fn3735929914">comb_probe_fn</a> &amp;
-  get_comb_probe_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#comb_probe_fn3735929914"><tt>comb_probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#probe_fn3735929402">probe_fn</a> &amp;
-  get_probe_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#probe_fn3735929402"><tt>probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#probe_fn3735929402">probe_fn</a> &amp;
-  get_probe_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#probe_fn3735929402"><tt>probe_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html
deleted file mode 100644
index 247a193d1aee..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>gp_hash_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>gp_hash_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>General-probing hash data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_hash_ds_tag.html"><tt>basic_hash_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/gp_hash_policy_cd.jpg
deleted file mode 100644
index 395349fae8d81bb4c38e2573fd3be62657e520ea..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 39817
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%0D?VUuNAormC5{6QiISk*R3s1oC@X`*Q=_|xXcpJ
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%0DC
z%VwPnn22VOW>MWVPqDo7{S>`Uz*&)kxD+xHLDq^B-`$WRPOWp>=CrsrW9ZmYw&@v~
zsL^UNHB>>lq|Q*~6?CMVclztw42?-_*<7mj=-}2*p$<0F$E<A@jn)?Wz2Rw+H3h;)
z^su<598^0~d~Tf7&{RcI;Tc-Sh(YS}B;GI-bn=iGN2k{SzgRg9<5|z!5)+%|`jiZj
zbB6SZhxNEGDFlM3Bb1#2UY*c>>sNAcXr+b=Pjo$}6gkJz>uH?$?l?Zj8{^>cPK1p$
zxNRdq^pXIjP6mIS7UTVtX~&9HLgn;^@~P#kt9G*2prx$$U&Kd|SFpG}_GtvV$vk=I
zjpjPvntYJ6PNa(DzI&TJZ8diT_d8=9kH@D-omR@Eu0(?!QkXob$)8(0bx5y`6;-v(
zsn_0vyet53&mbi&&+ABTqP!v>#%N-)vY;?3OhFN-b9XFq57^gJcUa?6Z+{pecwlY{
zv(wKOa}4d2d`KdZ*0@H@VG%zemV>)*3XgniXb2Z~z*7z0ZMj!$FTjUFo|pVRTo%i(
z7cJ05s~ZwPyd%v$b`no~D@m%M=Bpy|yiZ>_c2v$<2vNd<q{oQ8E*D9C=fWi&hZEn0
zD2K@5$YEbBXsMSvSgazWclvl}eFab^<`<Xu=SxUdMi;JRKFz`Ygo{TQ(6I;89V+zp
zb&#I=+Mms8=j|(Y0pHIO7_aow?LM2h6lj_*laxSCE%jvPowccYrRcDB7hfP=%l|Ex
z5cvsDZ1aY}3o^cndXzl90S2o$1$l<BwYKe<iCv?(#8$?MYt#Y3lFHTW3;m(~#+b<Q
z#ZSY1;@ibc4c6eYnM;-RPpGr)<@-!>%@ck*>&=bz%36AzFZp9W-!;3?HvNqPt9S!o
zeNeg{7S}oY^1XHNH0Ty`0Qc2JK(ttoXpexAQ%v0vx{22veM!24J@LY?{RHnnC2%wI
z=C~vps6(W9^F>*!D$csk-x!c}t>EmRy<8Mdv47eqg5P0*`9)4ccH`;gSq=_XJh4}}
zDNMRJ53VL9&L&t>y|l7|>TD_b-8xE6bb~OUldBFM<nh!TVlA|fo}>r8l=d4l5aU}^
zcvK@!l$diOHY{_0-Kh=_XGdCmW~FET-q%@M-CJLKwdB+Csltb-yq|`l6)7H<S7PYT
zcbh|ubvv%Hl(^CfNKzM=lMOWi%OJ&JvMQ<LcmtsE&uQj9+I|;r@2=UDkp`g5*@?@<
zQkNJ@4~XS|-RN6nMz%*6+c2;9-7LwpUnS!#cV^POZ4z2NEJKON3H*YmARgToZ@Ims
z3bIQkh=`=MTV109E{l`km>)Hau1b0RQ~P_<C67d8_MmQ!blq<})_>8@`#FQ~M>zez
z`#E-)bp?ZRPBKemkM>vy2cCwafxq^|UG5A=+J4U0^g}hg9Ap>taWd@nzvPbo(}ALG
zKQ~I%HRZKr5=bIsj)vTVKW!bEU=d%bTjD3glro?Xkpcg9hTxMF5+Jhlh{X7he3Sn+
zLj6crmv_!U)zcXwN*`O0&^J7#ndpTG7!Wn(KYCL?@j29%*~bWRZaw=XM_VzF!d3mr
zPtO9>OEKc7GxSd_nAB8ubHawUGs6mM6B%P)qrMDEs`G5yjsm)V0%!lb82E1tiC=)q
ze_1TQ(2nwXlkJ&-Lt7Sca_&=11sXMSSG2pb6rcW|EI0k<*0@e*RhG_L8yKBu6+3f%
zSq1tzknU^*iUL^$+Fh3Jx(|~dzw|EwgMS+6KhlJMk&4Y8mS47eelJBiz_qIWpku)>
zxZrzYqx`C`XAbt!kN5oPB%*hu=fl~arOUe-Mx`tI>_S}(YUa57E$e7Z<G*kQ&_5rp
z-u|hy7b-%FG6w8$F#$f<KhXC8_uu&OT4T!?g1)*9&FOn!^4pRdsV{vJWyLPp5B^^Y
zz<(&){O!D$pGb1Q#og?-KC!I{g~ofj_o983Ol;8i>*ZK!FLl#x4QAqn0zfPKMV*TA
z_disn$X6|~&g-Dw4PQA^agb<O#rB~*YSGVcjF4n`x63A*csR9wM-3GsZIt~0@*XRI
zx<DF0EEpaq<?@p1I6*byHVv+xoW6cT@P*CwtzjPxu)RlZ0bG5}|9w?;^M#vXo5>c}
z0j}nA>*41*XXPqKB=FXYUW1u1KdGmM0bL)>QV(>4W#7dGMP(LjMv9UH0Ir+SL3i@X
zDO!inh2TO?a|3@o=N4b}^Rwc0W8JWWE%g{_k<8qL$B9_@i6jhq5yQ^DqacyU7L_u1
z*uE@u(Z@iwu$%5Q`D*rA#Dg{hYNZ0Al|--INjKs6_2>xJnYtC?P6xY^ohttd#kwbB
zBTkLdPf#}qV(@(vjMOS~ynOG$V=I=tMwGJrc^+B3uboV=w1{n3g9LDHP@nW292tn?
zg`JeU_I4|;9pN;j6)(+7C1>SI3{<-7t0^fC<MSeRmTyo{u@i(YB0WC5H?pkmBi$EQ
z`O^r&;$zj%2_AH!>)s}^Sc^L95r=-N{xHS%GadZh)A1oo7nTB%etPR;!ZaN-^bP8u
zcs1M8Bp4|TReQ?(y?K+IEVi0@!$;$>`L)XICED~sb-8U~Xhk+zw<dYqok+c?x=a}A
zEc6^I%v<e5)9;1Z5XhSFyS#}xYtO-Z^p0}#B;6|Lt!c-*@%i~devT8CM=x<DTy*!D
zx~<2(WDM_VeV!%?%&|z?tOvX|o{PY~tpq*nao#<r7WdQe{%W9P$^SXJvr4QZ4nuQ<
z#&)`N-IT&+nI^u+;c-E6cwf}RC!e==?tIDNbNPDM2@b>+SdQjU3Azxif7_UPKsQ@c
znOt==JiSiirm}8mvw4*j+v2Qrd;?g`RlX`wu@KZJ-<PGzVu0zC_$fbK%f>b|7<{X4
z>txl`!nLu`nVFMp`np;Qjph^jNjxDuth0O6>uI;nsXEse9xg<p#3Rl)gfpi64KFp+
zMV~SusU3j}J6vjeK6T@c_b+5gp6cRD6;9+pqL{Qepa;Da72Nz_N_QzgCWIqA{cN;O
zso1kMg*DPD<q;;K)GRAF(dCK_$zP&tSpa5WWP43rH_k8yNnUS2P%1tjJ0ZOxT`We&
zK%=Jf@obMYaRLu<CJ3sXCr=34d*3mA`8+ve^@#B9Dh<{(0oU{4Q;rJ^OBFtp(!NGm
zZSC!dKsnZDyh^<k<)2>cdSwx}INX^!s3@4?-biF6XMgY_yCYEI-KwN6<cMI-Yp=JX
z8720`gsEQIxLtYsW3vrXd)i0rS-`MT#dXWER%2$X)XoeN1vXaRKso)xI+}xaDFIos
zih3UEQk!(ChU{YDVon~e!=irH*<9e|yAX-A5j5oMOvcem^~wdW?P~%V!io&e@wto-
zcBLpD*kH3#4x*5_06d>=*g==d`aYYargSmdi`Ynu3)XbT#BJ|^0rTy{6S^y(e&}*`
zk>REJc%>i??q08aVux4$`*aGj1Abin8U*u%FA&S4y&G_{zGjDwMAPZTD>RHbFiq5B
zl%otm2JU^p!z58RGUv*MkW*_%^F$`HcJ5#KKAK4O;K1sgD5z_+FKYw^2fjEC*7I4<
zs+Z~b;9ZWOcM+CB`w5)zm&L=inzVG0pVqrn!Ob5|UDLs{BvkZqb8R4L->|G{?tfpP
zP($^Xv-gDriukEQvLmwapk4E)xt6&`T}V#BAntvwF3|gJTz+SlI3>xbr5Qin(o9cv
z=u9}5gXPqr!}B>8sp+Fz)6}bk#2bl=pzLj<r(KnF@)dppQ(T-Us`}hCOk}}ZQ+bAb
zAD<udc2WldM%!Ws58)GX6FIPk3<w^+^%-Scko4<@+CkjoQ)QAyG_!2saa<|!3k@{g
z0<Tn~DwxNoFiB04=tUFR<2jSrut%v+R}^%Z!@zI0NfvZp!S4)qoJor{HbJw)=q{wE
z(fIB7>vl*LsGcd*&}9U>_0ok)m&;PK_BefKZa%w62-w*u%T(`{mVmB==fb#iA0tXc
z%oUgfX7iO#U*}l?G~1h8eSJNM1lJ|u;wAeGLojQKj#5M3?I!^~nLtS^`@)b+`+*Mn
z<3!~cd=TYrPW3dp$Fh{I3{#hPPcLu;It|>lls%|axO08tPwm`kKnsInU-+fYVW|a(
z19^mL#T%fFkqT)NCi5S=%cp{yU5k@Fp1Aa=(_NRTQx81s7N?eGct3g2!gPvcDV$}d
z&^&^5JASKYlvgT%vTw}&>Xu9lEmaG2Io#7GpUStSd$Fo7&l`#Q&8MNpmmtx81nV$&
zLh><Wg%n5atTS9L4(s-2C@1%2&-<jOKr1<N|8DPd+xRYrhmSJuLT?q`ii7Tj8#KP$
z9ii__vh&Lbf8u*ii{Ls)V@~q$taSU(oQ6QWwvq^Ksz1}NC)GnNsEn$5nLSDc4B%0w
zn3tmBUp%$;`1YYKJ=$E1icP0!Qn-sxWnuyMhw#)MX=)g5G+spRScTw{$$|aktamg^
zOBwFsp(q06l`%|dWqjqe(9>Y^_(^P$f#K&=3<AQ>28^=_wa1_s+&7O*3Cp*#HJ}gW
zu@liR?>Zi8D$l=nRL^-wIz0o1&~<tHMfx?lUuegkQj6gW%S!DawI(6(A`?ca-*eXL
z+EK1@9kQgp>>(bPT8W7E4(wonIVt9iRXw*f)1ccL9-isWypMY6{vl&sU0UBgmu$Y*
z@oPqO<pOKpTA-JBwZVE8%Av7sd^IoI4wGU$DpVB5>kWCrSMV<79g2;NRdQ7%jOG~W
zM7x>ztF`y^oL!D&X{7TZPSjp@+M}HHz7Dj9I1e?WrYa7!<Oxt^_>)=RUK71>cI6ni
z>yy-9SMrlD^%7rEpE#QSY<F7DH8oY+@u9~#iV7tTgSD#dTczn=vG?Df^uUn{RSkWU
z1)9k7RiczA)fPb?3%)fFD$xt`%fa;p*uW)u`Mh^#u$-U73`b~Mu#2ED6N2`GwUuc*
z$MY{xUI)sZDoN(@ykYv<Gj{9h0(Nz<BJ8uBRR<!Cd#RW|Uszu@U4`DJ#EL9wJ{qh%
zvaV}Obw{;8zJhf1fFfBIbOnbL{SqXI&i#Dqwe;Y|`Vg&WM)o%^v4wcZusCeG_?>u^
z?2+a6{E(PoGT-YU>4&Rp3&?)?3Gk?o|1dcIk)Vw@_v&|N5_<gol3p~n`GB~=YIS_;
z$8K%nk6r}b00HlYGoC`=_2}7J)9xA3yy|Jhlx{r-?LFiJvfDJV?vMTk{OTJ_wSEx4
zBdB_3U@S-)0SDTI;PS<YuYW4H9h0R_{jugXTqRy3T0K_CFvB;aP3^nG8Xv=U%xx>C
z7|+sIf4QkX;<(2Q(@{tF*`q^y=2u{vsag`RS$sKiCMKqYMXP%296Xs8s8iIXBDMjd
za$foAt;9s8A(Gg%D3zQ7{EF@f&6gPS9HR)om9a^GdD^lef$2S42dl^8yV=!*goLa)
zlEE9`Dg5j@j0S<tqi6-d_V%rFuvIB%x~hyN><o%BJslsSr!=Tyq4sSgF<F>PK55v=
z`(pyC9i|rITfSh>npQegxJR0Vk(&v!aC(%$559dO^idvghI-vKneteY(1Mv%+qluD
z-A<n#?wReTNF~SJe4VKH*tq-O%c_n3Q*QoWm{G{Wfze7KhUHE30)#K`__}nfYJV{h
zt`5pgSI%b>?q?X}{U%oWOBF*Poo}y&Di$W|KkuPiq79SFe4yA-HxYxBKO*A`w-&HX
zI(Q{)NcUm&a$TxdO>C?9AC6#j9{X|+Dlsk|hxPZ3FCRk^JUQI56elr%BWF={tek+V
z5!A6e{}G)3?Fxck*ur%K$WqZ=oN)Zdk+Xlj!uGFk|I2E>8$bV(qlLq9dK!yEuiW9W
zlEa!tLNDc-wxTSeF8AM(QHp4p8?5t^pCssHQZt)Qhm^Iy=m=E@A<o(`M;Gp;?_@jq
z-J}Bz_$f~xU5Y_3bf)V1@9C!OQ^d}JL1`rFXd&%F%^oTo*5&dC2X#d11n&BlkGM%Z
z#eghX>NoBr{eD&mhM7ubKoi+@-2HyobhgtwuaULx<azIu@qV{01s_oYCbRQk*}g+I
zaO;GmeBQp+AZco;-f}<Ld3R%`1;?SRl+>P-Vz)HiIQR5~*7V7~N=gr7)+RyIZo8x|
z5k!hdee5|0oY0?pV0l0#<wLN!6TUhhvTP{5vrGDLlJazmM48<g9W-+HnsY)3tKX5<
zD^q%c7J~MwJ!q-U9gH}U(tLe|qI-=8qv5R+*PBMdx+iliuTWkJuyF!nX5gps!-&G*
zhPvD$oCkZ)OwA;*Dy97Lho!GwCJAQBy^bQXJJZA4UL@VEOXK=d$rQ@;@xh4w)|yI@
zn#)X%Xb)Pw$8*u>&J=^}a85e;_mdTnM1A)w(tajAqxCIs;x$<lCDvB|9dPxypGxk2
z*?z&^smO2$XTx!6GHn6)jjLGEvRA(BL|&rdkds;vBO<e?@`}oW=F#z4m?Dkc;P!=|
zDVZdNr^}k1I$pn6Q)o-ZtK@A>0#UO-0F8Xl`?T~EUL6gOCaf}^$EnP$IbF&a5<e0n
zDlf)rErqep+KK}B;Fd!qaAZ1Wd`@&zk__d+{lr;5-(9QFFsVd0!$gma`e4R05zlF7
zZPRr=<?W`w%0q4PE__JL*~vvQ?A)7!mcAt^VdvON3ok4}XS~2EKbVkn)F6(C=tohs
zCqedkQhTXrX=isKWld<fa2IRXo>nK0w@6_<h3V~?An40^R&9}W6-K@4o#}yF%p6Ad
zOUUCNWZ6p4;qNqO#>`BM*T)VO0Cf}c;x!6DKd0PxFXUq*k%+^(6nH|zj9d$hHG;lI
zTevWvbUGpFW!ERnUYMv*+8P^+3`Knek2{qrgX4*i_X*rmKVjrGncD%#RgQ^#7s0@p
zg_HGE!CMFR6jFw`^P18~=PB-rMjF~SQ4Hf%AP&&MBZm9!1<ZvQO~jtMoCeetU2c>2
zxV<^uH&HAk$h{<h>691A;k4#7>S}OxxqujRUvq<Tok8mp;PEmXEX|Cyqf<#4oHEJq
z+5yvsQgnw+S5~e@v5}#fg+jn*y7sNjylS1UK~Y``={_5hGBbMFEUOJ`1L*SYxm9hE
zod!kS$2-%fEc60~0~N&CMzkEC>(%k#@4j}nr{{*NPI)+RPfc&DeoVW+NUG8Lq><e)
z(DNw;{nQPBW-BfS`!?w*P4)r05^-2|?L{7f3@i2D<oH_ayIv3YSpK7<5J`sNYow-_
zLqstJsib}TSDT1(({p^K;(!jEHK%i6_6AtV{f}zyzg<DV^vk3-Kn_m))j2WZTxi6e
z|NATd`to0n5%`zE{-*|s7j@FA0~vGn$vx^THpKCXQEW&*1uP{FAkqZXMnktcD;D|}
zr|VJae|35J{0!G-TlCkWmvDW<8>4pEY&4K`?ZQ^+&TP3<I;w09&ceUxHYL!>^S@pP
zo~Z5+B`uJbpR<9nbfKTcKSi8yS*b)aB`JAliB4iGS;!W%Ht^|Hu2L<~+&K@x@ygm)
zX!!JM#KpE@>~pZf#Srb$d-e4zj>fz|(HXc?K{jY)?a}*Y0(I7GmN_#k@5b<B@^$15
zTq$;{6~M&gR;-Vo>a#5R@#%Z28nWR-x{~2BP%p@bC^m4odbk5mq+m9It@zc!X?bzA
zv_(WT6@ykGsZg6-zZiwsk)bpVw2YQ!(&Iy4g+*GuUFWmCJs>8lb5iGu81&iZIY#Y7
zd?eUNMbhWwtExCYnVGYkHq-34GCpY22Gj-Gy&ZAHU6!AIn@fL9c9hxgMc+l|;!G|g
z><KGhjogMwwla=>TZpC8d>?Ao%z>nq#CWxme9pU@JswNe=3>3fo!XT>Khu~xLt3=F
zvv?qFvq<IKg9NGra?HW7iq<G#-Q6@Cx=XlsI`UTCGuPI{#(~{}ipd67FZ^Ojw71n~
z+Vhe_0#-zW^MBeq>#(S{zV8nqA)V47Ap+9fAT1(@bchmC0@6cwN~55pBAp^JbTfd`
z-7s`BBb~n6bD!{>+jDO3_kNz|ectOje{jvPXD^s*?X~w>>-+nCKR-|N{Aj%N#4T@)
zCq|r?ZYSe25GoUDw*Iv@xPnG-_Q=7t50>hxnRAxlVCc#q*QL72P7P%Cp6HRpfr$+K
zX#&OO<|MRKqO`zG(mcwNUNMerFOJ}vud3s0jp&Ql5j2{eftb?I)C6Bu2|si<kMhcQ
z|I5t29}O&A?WVatsAs5k9h|lQ630^jvLmg&DCYRtAKc^c0nmYfg!yoOan6=l%UC^2
zj#9&iR!HN@0z4*i>fBK))w`Hhg6lpAi7%iB?;%mA#F5#Rj9o-LQnOV|l;o!rpaXGU
z^|DdEaege!z{5nW1{M$<*Fp12(b$Ww#S48^xVit1Q!2wfL6NBw<N@LiLT+>mqvU0B
zsAC$hUQJ@Sr#5UxqC<6<oe#+0Bea4<qNS6(b@HWCQ|{DHPh=K4e1j*QQALVi4j1Dt
zTz>}6<Eu>-)u<+oozY=?3wa&VSxl9Z2j%V9&nu}@0`i;N^@0Oniu>bZcV*9P4h~n5
z7059{15M{0ln&0NM0L%gFw%506&Iy+Q+tv9rsD?_gb8&<6=w{o(6k=JNUzDcNk%#w
zkr)9sS-I?-tjUQPUF!I5QdRm5WXu^Pv7O%OfEeN3p*pzhA>^Ea)MyIrQ}5@Yk7smV
z4O;C}wXUKyt5j-e2gKUx2H=8ry^v`BKCHEb8sp~}^RaduBOjr~zA??J-EC>yzQ`#n
zzT#-%dpNZ1-eL$GXkNzTghgddTC8yJ=R*?)>Fbiu<O5b#QR7rms7w(+F2<(juo!0E
zMo9)`s`<T|gs!bZ2+t=TE?Q3YYb&T}O%$Nrn<YGBbqb3>2zwoC0q3D4-n5SVz(sNI
zxZ(%-LMc(IQfzrIwg+wAw??kDk9w2!XAc(HGJiOGTr&)LX~tR3XoWF7O*EDTa!LGN
zaGV79b)N1f#Z!u)z!neXpgCe+d@}d>Jp<3NS*GL`?^_=bH0gH436(r2f|Y@xwwf6x
zEv2_GI>f6Fi#?hfZdHdg(_DkEhR_9{872%cCigIReF$;oWI-1@RC91lzw7J1Og!Ei
z8gu94AV`p>xL?%)?H>Aq<uK^}LvxraDR{2^h|}KEGGl5z!9754x~{?eHEY4+y7!pP
zSEake;`P{a&!t9}YHEhq`HJYFEJ;H2BadJ7iIgBJF)(r<s9!*8xI5u{G6>d_OF}Ce
zR%KDs;r)|_J~5oc=iP+)0$kDzII%r~`UvwVPsw*B;dW2??6x$y%MV#i&+gtA1z|dV
zPNei@AbW$Sl2J8>4^G$eA(#YPx8mz|<*HcOF;~|!e}sgHYHUBKew7w*4t|>rE@|iT
zlr4v+)thH;Ck!gbx>?W?AvHBIFAI0ltxgqz+;K=&D<zl_+Rt}NcEs3dVr?>Yr}^t#
z1veQgrb=d6@gwtw;`{bz;O619ZIfP;GgIu@c{$VdsRuO;%SzX3(l*?q+g#q@CX_9W
z@r^r=J1KFzuzGOYJPId=os5yRmwWuE=;~*qYkdVWh&~w#ri!|wK}$k<udMKPve~xU
z#W)Z(y1E?5eT1ZC&6^o<r6jT=NKBO`m8tFU$>-6HCXoVA8wuce_u8A9eX&6!F}kxm
zr&K-!&;#5iDSfsT%`9z^fec<GN{zz}3zX`Nx?axkYxg~QhdpK7a-{g#u%JWB!GaR1
zDb(67JBq5WXj{ow%D0>)shV>w;|ygoHYqgsYnhUjXS2r%T9;piNC(7^`ic~InXA^0
z>^kLgXzmuiq*%bu;SM2xXde)}uC<yZYQdPMHAQ7*I7Qxs!Z;Q$Cm0$6jV7A{yHL^!
z=-ldt2)1`W%Y7cf`ng+aF-C~Le@%jIWG5tS-wt0-2S;BnRFu-D=Sqv1*$Y@TwJ<rL
zlX}M&=xipLQY0il<G8ho+Hn&V4HN^Wqj@tj`5D}B-AaoV_xyUk<s`dbx_12;ODRN#
z%H-BOD*1^LtFZ9KJvQ~lwgzrsk?W-6DTf<rpS^Kp{Up1!TbF(Lk;|%ED<@6Bxs*6z
zILuB=X+hksT_h?DrdWQQG1$Vsd~jNu_cB=4B47TQND2^voSB~^-K^;gueiW6cwbhY
ztfb>sc}q5^mAa|)EEA*vikM&V6%7X@HvldEFSz?`<K;FcC^CHU@@h75G6|129JN@5
z#CESs3@o3FpPbii_f=Zm`E_>5D%d!rAWf9W$(zRV5CZYsX^N?)!v!(tk=T<Pk_<2F
zn9^Foym@`Pn8q5XpML=<FmZ-^>K0f~L<c$5-+<2U7#b*(PC#%9bF=PA!=#P%1DY18
zEl_GQswh<n!37G4?8LXn8SFQ#y$sFH*r92R52!+G!?}zdxch->8a~7TFt?_+3_avY
zKYPaD&Qir0KRkBzRW_0_ab&ovOn?+kfTN?Gx$V)l2OX#c5kHqyxsy;AvS4!*>MR+U
zaOCRl+>p%Bhu=_{lHmN9C-9~;6q8(d71g!4QGLYI#N0enN8d8xntRVu6bDDFDXCU&
zj_9k4tyo_)H(|g|)(}3=4qTtqYtTt8zXiLk<X8NriCbe@tcVXH91Deos;Ev9mm~K&
z+SB+D9JLG7Y_b&t+wn>bV2KGA#z&vdSxHpco4e*g3dBh3cRz;fhF(QeV)kX@RY%Z7
zXIgS^Btj5Off4!f#fCbNnP!7kiHcUiaOZSFPYHx`VZtGhiSfd`tQJ%&wL!dNx`S!h
zgzO##<`2V#6oP%`6QaFxbu1G5jeA8EO@pT0o`Sl4Q|xHog@X>m*<Oq}OA>!tKpi+2
zeQZOlY`3bKX9QirS89qxUUYO7+b`_FYnx^EA+ow88hJOEtOa?0W|lfqWsl|W;zu8+
z<Jo48p6wM0a^*5;cA#qJa|m>#eDP>X#~GcvBTM<AIDATPSPZ}x*y)T?G+B%$UUMM8
z@Da}56Q(+^RhoD0A}@*uV&*Kcp@op4eQD$OUb*WYnR{)L9uiMncBgu|qdUSu`{8VT
z6^)_lcV@{e;Ai8lHyW|}NLDfx!-+M~ZIQ@5Q%uANzAh5$5syZT_xlKRbjt}^J~Zd)
z?C2~p&c6l1Ya3qNQq*#Pv1O$C12W~iiah!&%bG$-+;jZ}Q5$!*P^WFZ{S5(a#8h2r
znGofovG4XH1r*xBytO0knvU~ZGq-I7Hu}GEOf7OE3Tm)iuPPoepi|4+KZMAEz=2wV
zCatuXYLk66SjXM(J_$$oRIDG5sUVDQ3+^3z=p^4s)Esh}SUz*kq>RXBAx7RH_IKIt
z<$V|rG_DUy^mFDUTzd~zX!&4;3t{8$nQpWU7v+2CYIe+-^4Md4SD(v@+f(A$Z$YV|
zs@P=EIVXH$@`Qa-R{N?9bQy_mm8|ceL^Z=#tWkHQqJ$ER4&_9PXVf#1E>p(CVmzY5
zu6=1T#IQV1Wa#7X{7KxSrP6UC?BydlNbHkP=qLL89Wsg6n}#@liM#X_wDyP3)O8_3
zpnK&!w|JzD32$ez5dg}Bd;eu0V)p`Dg!b}kCIF8g8J;TqWJ5SDA_fD+4!9Hu2-BI)
zn^&rU>?KhBE$Xxv6XTfW;x)A7&FHv3cQA}rbt;6G?*^ywc+pUHmH;UgI<M{re!_H`
zUK3fR?sz&@IUq$V25wb_yS$zEXoayeXpHi!6s*kNO~f6Y$5-Z#k8Ja-x}WBC#Z`i<
zsz1AKhz{Wz5_pO-QP5nVKo!;Ba{(O}q+^I3W8UB2xQWv4DQF|22mZ*8W~1kW;bYoa
zX?!lp`{HS+tM3$ddRtV*16g?cSYRC<tdC-il;{h{a<Vm5uitjg6@@kh-zV%D#v-J`
zqX?*-1pQ1c--7kY0ZP6|cw>3;nY<hN+rt8qp1BDyRQV)bb#y<J9m{(|xO~<1{!YvN
z^iB=6aqzNvL{G_D5&k1XZRHrk>Lrv_dnvL;^rF>D_-t`mE92eCkx!rvjTo2ty~(N`
z@_ovR8VQL2y<txc+sxjyfoU%2Zj5YL;G{G)VywcWf*5J<BKx%m`qst58TwE*q=w?1
zp9O=k(QIo=)Vv8K%bm7e-!11@Jii&6M~T}X#308Mw#Tr=Ru7Dpp$AIm3<%`8b_dI`
zM0c~Dgi38YYa+$N;!Lh5QoQB9=wk=HWeD1HMkA{Iu($7PE6bwqq)0Oj%il;L`V=G<
zw1`4yj#jHm0QS+Z8MOfj$D97pott+Fr>5J?Ag_62U!vkS#dn@+JfwwZzq46jsZ&_M
zQD?i*+-~?pIMuu?gQ^d~e-o#~OcgIhW0Yk<g9k6K365VZB3&|Uw`Z7~Ep#k*jphEh
z&7ESq8r$wJ*eWhDIVD$DTMmcyZ}05r&W9~IGM3_!Drhn0i6M^1?EX9~2C^DUv(nmw
zbktMK%Ut(!($&no>Jm_2#hh)ee<s<{xX%TY=VOik0*cm_$?C|J%Yh~p_0;#wGkaFT
zU&ZV}iOUF}qW$OudHTI`H2c<m*uhr@%(P-yCUFnv0UEgAoy+$6+Tm*pjP5<VVG<K`
z&sABTb-ky06U1<$C>|!6^>w@~%wj8V^TJBP9?_6oyIa#;BoN8txFpaWNOnCGCBpvm
z!9p&U9bT&Sop{)DtHYYiMEm4g@TeIiifZ{BM%T38)F)g51~%xNI8)u}WS(}SGW4yC
zq}Lf)Z<i9J%pd((@Og6x;Kbkz721x$R$In<3SqD@V@nOFBiSC~a>(O@;;{wIx}go4
zs}^tLq-jHKW<IirYU6b6lgthPSH&7UhkI_fATV5hcH)%!#JL_)Ujec7@06zz#EQdp
zw^#6W7OwCKPvfskYVn|kPXq?f8>{%~TXStGHUqb=bRO8X?eLPWcEnS(q?y?Dt=J~J
zJZTc68QBau_SMy@HTRK5%ws(pWR*K-YQuBtBNf70$^`*rk>2-%WYzAG$V;vGihQ+}
zTwOWGLse*=q;8J9+hv+t5_LO;P?GT7=i<1p^se9P4S>eaaB_WRmK2sTJ?E?DB`(ey
zYO7C&{bvcp;xWd0Vl}BtKi%v_I<=KdRgwcKpc3fo18ayvd-=Bn#E))LgYv%qub+Q}
ze4fLV9pMEA!N4X_mwqxdE9_#!2{|8}Ht8nj1798_C#Ux);r1saI${;xFOm6rX~^|^
zINKUQN>n^z_Nri0Gxggj_)t}=<vPGphhcMAk(U!$&K60l6ZJ%2zn1t_a&8q1y$A<+
z*@n=(cG-O?8fG`M1?5KHM5R21T*G^bVf-Ja^Q_Z96n1J<ZRms24YWcc&Sgj;_ORzC
z9Q-<BBrZ1u<MkLzt7E9>yWZPk#crorkA1z|{vFcM3+4g4p6qW8WwLG!VLCI18<z3P
z-_GUn9H*(nt^n}#I7O==ZE2#GkK_2`^;~XmNImXj7}f@q6q@_6dWp|E4J=ZXgC~jF
ziEPL(8M<!>pxC-EjS1&lu@s$S4mnMUTDN*+tC-n2qfFI&5ILBSQXuavaR(kN&!L1<
zkhZY5h|JRz2{O{qr-XC8_$r);5N-$k_>L@vd232a&gVxCmLg2OuQOHN0TrM!oX?~Q
z^Eme$dvOIFZm-k_hl3F86dw)knjW&l@q<0Qo*5WS-*S}IBy)QkkL#^YHt&42uDh0w
zm)N?1Sx4)A$xLvfl3A{;Kl{`qSJZ{5*Kx4^FdXz5Kp9Q0*E|V=%?P%o;rX45(M>tP
zucfSih!H}?nc}gpqP?tF1x?A|MNNZmuWH7(uvyH4>-NN=#bW)gy%IFVZH(sMl=X{P
zjgLaJwD>Co&p#n|u57<7erL{<wO!{*`WahHonzV7vGdeVXAT|!*1z->kUU!Z8f<n1
zz|_AUxDN~x!Jx)96q7F??;s$lRa^3RM`(XL_3yU7>zTj%>fad~-_i(wKjv&EC!5Wz
zNs0<taOzkIg%%B1bJsv`FfD%2#P`+A_rK4`_pgk8Kl1t2|KFTHKk69zFSqpkV(9#T
z{aWB&s5fR4XK3uqScbF|K|70mz>q_=r<EU-0cV(SJ9;3cw=8Q+uaI;sB;O>-vUG|3
z<NoXaj^YeI`ZrOpNm_N&ntirki5BhYJFTPI?m(DRgEt?HP|MM|e%RZ7l2Y{XRku_+
z3;fx(zr_8{bGe6qnO5{8!~cKcoU4$+<|3EbtYULDnVS;NnlHxtZo4D;NUZW_3rH)b
zOcQldm2Ne;F`yp>h%2slh>iR>gXqu4Vzm+e`lx%!b0;?CGm9OYp8Ba*ndFA8ADcT$
znD^e`=KoY24Gj*t06q2D?FW2Sc33|BXdRaqSN~D)?6=<~0Z!@9r+vi^eD$yVdf@MN
zKXu>V{qoKD=|Ct1IZ^Z8j{Dr9Q~{|Dx4?FQChMxE1O!M?xBo0|{kQTBf7$2!)9dO1
z?Fo$&?dg8q<+CwqgUfecKn%SBK$VKb^j->J*nej+z$T&Ms1jlrA{)0ZpT&0rJU{6$
z;4l4jkviJFzeH&G3utM6U-b-G86ZhkfLu=HtFt#p2d6C)mF<an`3Skx1v=}sV?<1~
zg52a1qdB%3NROYlxzs#-ZDXIap?b9y`-<^1#z<u@Y)oUaz1V)uBD?l9VfbZK155q;
zfyPn|=+Jmx{5H4j7Ko|uqk%0b!q`__Abe3wZlV6cB_SIp_ObEgsLj2F@mUpn*V?Yi
z08ttID#rLGst0`0gqsO891wU%IDM(d^G+HMwkiCNaa(6=AKPM@98(s2MXlI^MM9!0
zYHN=MZTNa_e4KR&o;y<~*VFfH?C_Nz5wA)5L`zt~3op<?FpN(s<gaVX4}ybNgHlc9
zjH~Dt@jApUP=+ju%>ggKtp*@z${mMi66!>#H#N1(+mZJCx|lh&{q&i(iqsX7=Huk{
z+3Oz=7a>9WqF9t6^`(Ny`f*LSWny&SyQ#f_qbV^YB`P8~>K`v+`Cx-H*vN0x`>mGN
zmuktz<Zwh3Dxu;!;DB8AwUaDpZXqDy&Z5ghh2<7}7owVRy>7**$ystwseOs|t}Mm-
zDxpMKwMPTIu7wjj+jCCRXzNUU13rA!Tukbn2_a+T*a}Ceo0uB9%@0Ha5MMy#;A|tp
z^J@qV*U{(Z`RhYWSqC+h%etgGmuBL_2eeD06-S{!xu}_|oCH>+6w2!a^!)9C^3smj
zvVOI0qPo6f5o+jJ0|wfmVrCu}rI{8FNg<VW!_J~Um6$s^p^t!sx3mzdlzq?xr#ZsS
zQ|;%s>Vy|^3mI+XS!kfAZ9EJg90qDig@l&yy(B@nv+vTtMK;S-Rk8HJjGT;7&+^}x
z#(98P@4y;3QkA?ZtyY?g0=<>7N<>|DZ$`P8d?mA(@F6wAzJN&Ayjk^w2ke3-r(P0r
zg$?6OK(Ub0Lb7bM<4eNplwq8pW5r}@fy0H%h1uR&%4eH3q=Ce!@oj-os&wXARt8|e
zTtNAKbHT2V*<!y>D0;>pih}%v{nwUUG&&)%_1P?>Jr!pAs#rIEW}OC*<T{f34!;2#
zul)HWpZ{m`=dX&!Ki%oys2zX#+5gQGp^u-<ZEA5g^4ay6rkY#%gI7eQXQzpV_}84&
z(EZtiR?lzxkWXF2`ADcd)KWYztM*IcklL_rI4-aQ{E+AsI@g1hZg5GVT4Vw#Bwj(T
z<!b2B;4!J8?Q^^A&CBZp#r!yEHvBdmj3I6U4s52PsI4}1i+hI!-uNHj^?gw`JD$w2
zkjuUbzwV^&B9SYx!85UiAuIDKhz?j^0id*yWce7+&TL>I2*sZqwWU9ek;{2eWjc<l
zc02Ywlcp_wFmGzyPyx;iJ*1s*)HC=3vgTzEjo6928v~P~mTIOlwKtL)kiwrtu6%}!
zLC=p$o2ByS@*}XH|9$d1Xt_?iI2!NVeqd+0GR@=3fN9ixGkI)=DtFYyyEr5iiHU;4
z$&hnqBZ6|n2TH*{TPlQX!Pe`>-~=}_wPbuMBEPOh>UuW4u@;KtuW<&6y!<IuM@ti?
zcO7<CCfd_W!Q?JbB$UQGTNWt($J%!M4e1M-Y2@_m3zQvd8``XQ<|7UZCDD(Ar(g}Q
z9btBat*$ogS>1h>B6@YDv$9*dcX<2-9prJj4|?2th>>75QSo_w@S%=}bjkP9W>*dC
z!#%8p@lX62Um}w}d=ncdX9s=<ZEc$+s)CQc&bFe3$64L?N>IjR2ha=pA(m8;Z>73W
ziN?qBfu0v$#Jf7NuJ;8L;>_--oU94ID1K36Gc;8gao8Qg#-c&@Qn&*mF=F0Q`H-*<
zG4rB<5MJA5Zb=-cQh3K)F08Yq&{(zZo}%Q1)j@vvvbl#YV6BXre}|De=1^ebFE20e
zVXB5&(RF?=Sm~0&8X-g3#h@3H8?MC6@P;`34>aTQa%&^PW~c2Ut0d={>bvxM6MVNQ
z8RG6n#zr8*L9mK5{Sf$33;g{ZD7CUGk8j`>vV^j`H-8C&b=L9#?+Tw<7hQClz|Jyp
zYC-VQ>D66}@2|80k&+VR$>JEBJ_q2n*Oq=_8B+i(;{rhcF?<9tS-Yetzb8_1-zvJ#
z9!n=x*|-6s-MCb*bN9@QhUR4Wveicx#u~K2<p*X6&DDkCS&3K2e9>X*Wb}eq&rBZh
zT$l57AdXQyzZ3m26EG8tXL2(Vw3`u!mc8bZqR}T*vQIl<&Jjz3XznEOTl?@>GTcxj
zzJ9ifzAP~Z)B4X#!xsAhx<c$Kpn8@l_pRbMk;pvg-><ij<rl^BXuKIuo8(uyS}e}%
zccOOX^rsrd-*+o~&6@-I?i>HY@7)SOso=j`mwt79e4DlZcdz~8cKJ6)%kL-M-z#Gx
zl2^b_$kjFaw`8Er!zT>>xY9tGANQZ3F&N8xWwi0ji{QCNN!JGMxhy5kodf~k#v*5=
zSJQZN7J|MaF}L_%aAReB!_)h3dXG%rg+^s?OE|_9ANLaPBkv_RFQ2^m29<u{c#LTr
zS}$HV@1<Mb4?*z$N-+l&YqyCwrxh&BTphfe6is%tb6H_Q(|-2(z5Qm_`DXqf9wDG_
z1kT@I8K<8sum7f;e{-t#&sFRHL}UM7*;Z?2q+38M-f&td3WLFt(Sf%@!!%7ih^OUp
zN@HkycPooXZ(5!yTnYm_)0D>T4YtppJ|F*u7woA)lWk;fl4LpR9=3k)d^Oa5jC@zq
zsoq?5^j)==$g;V<bx7r_Acm&}k)JxZW2MOFehWbSk6i-|_JdT3UG4h8H`Uq=A2h5(
zZ>K=1%-o>33RxiYZ`1g{&G;wz1x^2(2jJUNe_;duN%s4;D>RJ;-ZM;E(~zBTL{z-C
zfU(o=7y*-}Gml7`{i!bIuQJd#vd=FNl<&$uKSNyp<92^88yL1bUh)I8uGZ>hO*267
zj00xJpBMOSGkjK~m!^aAci-HUIqJpx=+)R#sNrxj5#99}QD--oUOPv&JDB<X#mf(H
zv3`{Yt1lET6;jbJ>p3M;_yM43F0jVgdjsrZvR3zkfBQbae6K%)oPZjb5nE|wcBI+q
z?~0RbCfE5!dA#1p_%}zqp47Lcv_(^(qS!jue3y<7exNx>;$J^g))sLOWGtcXRTjQC
zf;cCo#a-%O9pcA0SFp_CFR)yh=wqRo<MkFe0aKQxy+C?P+a`X$+z$C+vcCA`^%@;p
zZEIsLkDQ+7(-nxP(ZcgSJZl>AvWj3#h7sp0<*z<svgS|~W2|l_?FIWU&<0E59E@+9
zS62*jWK`8CgFn@D#3z89p^|z-2-Q$}glo7MiA0#ChkcHoHNoo=y@^4t4zl}I$j^|v
zpy*V4Qq;jYd0^;So3{HCKNB-EGiwUcVdtAmX0NAGOIc%M&{0=QHdR|^g&JfQJUEHl
z&8b&IVxJ^g6W(={ReMjz4QqG+bx*N3s4NvomTVKZnp;4v$<Semup~uXywO(-^lWo8
zax06<DH+TIJGNTpZTR3jC9@MQ%9js29cw|!``<ny@pVjDyd_Pyx92EDnUqkm*kjb>
zdb<98U~#Z`iz)W0pwi(>zZlrj#o*Mv?J5+S;5bQAtB1tLM)LxLTgG+iYNVsycVB<9
zjfnNfXzoN|mb}A$?htc~a!D{YSV4>s6F}=+&z|U-F5TV}T(nD!P8MF*v@I-dgkc@4
zr$0&dq=*cA=~?!wNhWSKJrd;nV5327h|gI$mGf@nC`SpZz!#9Qu6G}*sc9Ftm@lpZ
zHFzb@;5Z&iLxvy?v01>|vhI=8t|hfPRAO|HVepzI4>dc=IxY}+N74|Q$A3<NHEW`s
z)Fk*S)+FNP()CqF4{f}>@ne%Sj~3Skf`O8UqwG)6>qbnY9NwkZ))>7yVn#th0aTi-
zAxRhmP={f?=*0Za=gS`S)GDR)GCNV1FQB2j&VA$sN#@bUL!Q(NUJk1&WzV-L+S@bL
zbaP%FhFsB9HchD|>e{Ck%CeE>qm4YW^SSa-reJ((YN9(PK_Q0wiW0RX#YzTzHm|@_
z0O3`US{QuENo4R)zhymI)a2bGlraV&zydbbRp2Q*_!u%=LCvY$SP>_y{~U*(Nf4jS
z{v~6~l6jg$ilgC$+sIt|mEosv%HfsC&W;O|A+l%GBPqF+b&);XO&~z67_7%PM`0wI
zBSum%Xo$bt&(C(Osi&{6`$Wz=Fh35d!<MaYKb`1YW~`0{J?v@u1tFUwUQ#6wCN_i)
z?^Q55W*qK7-_tR>g}D<V{<$;sX`i*q5@EP@Te7$ytRdEnKj_Swd-9f6!u`owuM#Q-
z1|<KSh?I!ORSUlS2aRE_N-#-m>m=N?ME0VYtoN14q5)iwH1HL!Cz7wvkqEq9NGAom
z-m5GhVdqPp!?#LoG#`5O!IG4|>Pp(}X_#ZLIC_y|JlO7j|2Y$U>|S-y?8cm7uyrii
zEqadLC7LP}7jdED^ab|RgN7Vf3Gu|lCl8u1X9h$4rrJ!d&bPWFKB2|D(LPcZ$f6}g
z;F1>CQ_nP(XvOM5yJD@8VkZPWe_`~ID>}1-Gx_Fu6eABf@Z1~`*%<QfgD#_g=O<@(
z@;EyB`6~v5ZRtiZK#L&ROh_kO91;_Rjoa>+#C>MjEl!(MT&xJgRb=u#ImOl(IF1!#
zN0_viStYnyX3j9BpL)9N(#vk*AyxW6bC9<mHmL{MuF>$;Dc3tHA?|8bPNqd-)Wj*@
zhO%rQu6C=rkwG!UI}2w-+a&SDWHO=&EL|x0>jV9=Du#AEp=sb+!VQ-KnrWJM{0~%y
zcEucvfdpBuR{rc%ugp{iRgc_m8xCpq8$+Fj9nnTD)#5jXn%uQR7E2MFL3SAk_DpY$
z1ZC<^lsQyr5qYdK&m0fl;5~ttgcj9l!;;ypMkx5IZ|mI<=B{GWRqgj@ds01zJnmx-
z=Dp{;hFIHC>pWy(5DF|Kihu~OGP*ER7i7G_qaEr9(?9eb{xGTJ^gcrQWsINYN_2G}
zp~={Cuk`~3gm#pt&S{%Ff8}#an$%ns3l2L{b*6E!TE6=tIZ!A7ziFXxy>hRlqyEW!
zE5Ja~d1=b(5?>ES&$hA)a@o^gzhnYxQqj*|uXD!Da>y*k=(7Tiz-hxd>NMY~+WS~j
zS6rk{S8CsHn~Lv_h<M4I;=q<$j0H2S8$I<2(*m1@LP7z?ex5-dn?LVl?c}d{&0mFU
z01#br9uAQ_7{$AwdI`)>i;vT<8UW(9_&;{xKy_VYUA+u_dMQ5}pJ9;X$axlc|3ry4
z5|DPgNV-)~ZKwxsI5ULtyuIfI26+=B8HYzS6IAI3P`r-4%C;Dj>94S$;jKwKZX=6K
zOD}m-dG$&M($VhB!A#$%FIHA$(p-1262=RXn-Z|*lW55CNO<I<Fk2euNZAjp1r5U2
z9sQ2K<|h3maN>tTyN;*P=g}f~7w!*zgscHM5m>MNwjcioFYVi!;v~vC??tl1d~(82
zpKMGjqQs`wz9_bzD>BUR<*s9Sn~nq4RvAc|H{eg9XSk_STaSnjpZH!J;DwE3huL^e
zC?8k#JT>cWDPV6pG6I;h0w<XxIJY?pE2v$SJd~5&9>vIH*GTpTNuz#rC&arqQUp`M
zKDKVDv5go*h84mH$Zy-s>_(($_52RAfD~3Zd7R*pX>(0usEEDg@!&>Rw(*3RKcfM*
zNraZ&AGsGmt@rQ=b7dW^71_9X`Y^+5R%Iq}X!p=OOoz+A!`J-7@~H;MtGE6FqA%*Z
za0Uj50@FYD+P6LU@4hEl`~sr(Suy$oa$h`Q0`@R5-;;&^(_@;cf|oKPb{F1XSA?X1
PL2uLQ2Ss1WFBAU<XH^+f

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html
deleted file mode 100644
index c4b4833872d8..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_and_probe_general.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Hash and Probe Policies</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Hash and Probe Policies</h1>
-
-
-<p>
-	As mentioned in
-<a href = "hash_policies.html">Hash Policies</a>,
-some of the containers require a ranged-hash function policy for
-mapping key types into a non-negative integral type in a range.
-<i>E.g.</i>, collision-based containers
-(<a href = "cc_ht_map_interface.html"><tt>cc_ht_map</tt></a>,
-<a href = "cc_ht_set_interface.html"><tt>cc_ht_set</tt></a>,
-<a href = "cc_ht_multimap_interface.html"><tt>cc_ht_multimap</tt></a>,
-and
-<a href = "cc_ht_multiset_interface.html"><tt>cc_ht_multiset</tt></a>),
-require a ranged-hash function.
-</p>
-
-<p>
-	Similarly, some hash tables
-need a ranged-probe function policy for mapping
-key types into a sequence of non-negative integral types in a range.
-<i>E.g.</i>, probing-based containers
-(<a href = "gp_ht_map_interface.html"><tt>gp_ht_map</tt></a>,
-<a href = "gp_ht_set_interface.html"><tt>gp_ht_set</tt></a>,
-<a href = "gp_ht_multimap_interface.html"><tt>gp_ht_multimap</tt></a>,
-and
-<a href = "gp_ht_multiset_interface.html"><tt>gp_ht_multiset</tt></a>),
-require a ranged-hash function.
-</p>
-
-<p>
-	<a href = "interface.html#policy_classes">Policy Classes</a>
-contains classes for creating ranged-hash and ranged-probe function policies.
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html
deleted file mode 100644
index 527885128c87..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_based_containers.html
+++ /dev/null
@@ -1,1056 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>Hash-Based Containers</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-
-<body bgcolor = "white">
-
-<h1>Hash-Based Containers</h1>
-
-<p>
-    This section describes hash-based containers. It is organized
-as follows.
-</p>
-
-<ol>
-	<li>
-		<a href = "#overview">Overview</a> is an overview.
-	</li>
-	<li>
-		<a href = "#hash_policies">Hash Policies</a> discusses
-	hash policies.
-	</li>
-	<li>
-		<a href = "#resize_policies">Resize Policies</a> discusses
-	resize policies.
-	</li>
-	<li>
-		<a href = "#policy_interaction">Policy Interaction</a> discusses
-	interaction between policies.
-	</li>
-</ol>
-
-
-
-<h2><a name = "overview">Overview</a></h2>
-
-
-<p>
-	Figure
-<a href = "#hash_cd">Hash-based containers</a>
-	shows the container-hierarchy; the hash-based containers are circled.
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-is a collision-chaining hash-based container;
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>
-is a (general) probing hash-based container.
-</p>
-
-<h6 align = "center">
-<a name = "hash_cd">
-<img src = "hash_cd.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-Hash-based containers.
-</h6>
-
-<p>
-	The collision-chaining hash-based container has the following declaration.
-</p>
-<pre>
-<b>template</b>&lt;
-	<b>typename</b> Key,
-	<b>typename</b> Data,
-	<b>class</b> Hash_Fn = std::hash&lt;Key&gt;,
-	<b>class</b> Eq_Fn = std::equal_to&lt;Key&gt;,
-	<b>class</b> Comb_Hash_Fn =
-		<a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
-	<b>class</b> Resize_Policy = <i>default explained below.</i>
-	<b>bool</b> Store_Hash = <b>false</b>,
-	<b>class</b> Allocator =
-		std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>;
-</pre>
-
-<p>
-	The parameters have the following meaning:
-</p>
-<ol>
-	<li> <tt>Key</tt> is the key type.
-	</li>
-	<li> <tt>Data</tt> is the data-policy, and is explained in
-<a href = "ms_gen.html#ds_policy">Mapping-Semantics Genericity::Data Types as a Policy</a>.
-	</li>
-	<li> <tt>Hash_Fn</tt> is a key hashing functor.</li>
-	<li> <tt>Eq_Fn</tt> is a key equivalence functor.</li>
-	<li> <tt>Comb_Hash_Fn</tt> is a <i>range-hashing_functor</i>; it
-describes how to translate hash values into positions within the table.
-This is described in
-<a name = "#hash_policies">Hash Policies</a>.</li>
-	</li>
-	<li> <tt>Resize_Policy</tt> describes how a container object should
-change its internal size. This is described in
-<a name = #resize_policies">Resize Policies</a>.</li>
-	<li> <tt>Store_Hash</tt> indicates whether the hash value should
-be stored with each entry. This is described in
-<a name = "#policy_interaction">Policy Interaction</a>.</li>
-	<li> <tt>Allocator</tt> is (surprisingly) an allocator type.
-	</li>
-</ol>
-
-<p>
-	The probing hash-based container has the following declaration.
-</p>
-<pre>
-<b>template</b>&lt;
-	<b>typename</b> Key,
-	<b>typename</b> Data,
-	<b>class</b> Hash_Fn =
-		std::hash&lt;
-			Key&gt;,
-	<b>class</b> Eq_Fn =
-		std::equal_to&lt;
-			Key&gt;,
-	<b>class</b> Comb_Probe_Fn =
-		<a href = "direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
-	<b>class</b> Probe_Fn = <i>default explained below.</i>
-	<b>class</b> Resize_Policy = <i>default explained below.</i>
-	<b>bool</b> Store_Hash = <b>false</b>,
-	<b>class</b> Allocator =
-		std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "gp_hash_assoc_cntnr.html">gp_hash_assoc_cntnr</a>;
-</pre>
-
-<p>
-	The parameters are identical to those of the collision-chaining container, except
-for the following.
-</p>
-<ol>
-	<li> <tt>Comb_Probe_Fn</tt> describes how to transform a probe sequence into
-a sequence of positions within the table.
-	</li>
-	<li> <tt>Probe_Fn</tt> describes a probe sequence policy.</li>
-</ol>
-
-
-<p>
-	Some of the default template values depend on the values of other parameters,
-and are explained in
-<a name = "#policy_interaction">Policy Interaction</a>.
-</p>
-
-<h2><a name = "hash_policies">Hash Policies</h2></a>
-<p>
-    This subsection describes hash policies. It is organized as follows:
-</p>
-<ol>
-    <li> <a href = "#general_terms">General Terms</a>  describes
-            some general terms.
-    </li>
-    <li> <a href = "#range_hashing_fns">Range-Hashing Functions</a>
-        describes range-hasing functions.</li>
-    <li> <a href = "#hash_policies_ranged_hash_policies">Ranged-Hash Functions</a>
-        describes ranged-hash functions. </li>
-    <li> <a href = "#pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a>
-            describes the implementation of these concepts in <tt>pb_assoc</tt>.
-    </li>
-</ol>
-
-
-<h3><a name="general_terms">General Terms</a></h3>
-
-<p>
-    There
-are actually three functions involved in transforming a key into a hash-table's
-position (see Figure
-<a href = "#hash_ranged_hash_range_hashing_fns">
-Hash runctions, ranged-hash functions, and range-hashing functions
-</a>):
-</p>
-<ol>
-    <li>
-        A <i>ranged-hash</i> function, which maps keys into an interval of the
-        non-negative integrals. This is the function actually required by the
-        hash-table algorithm.
-    </li>
-    <li>
-        A hash function, which maps keys into non-negative integral types. This is
-        typically specified by the writer of the key class.
-    </li>
-    <li>
-        A <i>range-hashing</i> function, which maps non-negative integral types into an
-        interval of non-negative integral types.
-    </li>
-</ol>
-
-<h6 align = "center">
-<a name = "hash_ranged_hash_range_hashing_fns">
-<img src = "hash_ranged_hash_range_hashing_fns.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-Hash runctions, ranged-hash functions, and range-hashing functions.
-</h6>
-
-<p>
-    Let <i>U</i> be a domain (<i>e.g.</i>, the integers, or the strings of 3
-    characters). A hash-table algorithm needs to map elements of <i>U</i> "uniformly"
-    into the range <i>[0,..., m - 1]</i> (where <i>m</i> is a non-negative integral
-    value, and is, in general, time varying). <i>I.e.</i>, the algorithm needs a <i>ranged-hash</i>
-    function
-</p>
-<p>
-    <i>f : U &times; Z<sub>+</sub> &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
-    such that for any <i>u</i> in <i>U</i>
-,
-</p>
-<p>
-    <i>0 &le; f(u, m) &le; m - 1 </i>,
-</p>
-<p>
-    and which has "good uniformity" properties [<a href="references.html#knuth98sorting">knuth98sorting</a>].
-    One common solution is to use the composition of the hash function
-</p>
-<p>
-    <i>h : U &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
-    which maps elements of <i>U</i> into the non-negative integrals, and
-</p>
-<p>
-    <i>g : Z<sub>+</sub> &times; Z<sub>+</sub> &rarr; Z<sub>+</sub>, </i>
-</p>
-<p>
-    which maps a non-negative hash value, and a non-negative range upper-bound into
-    a non-negative integral in the range between 0 (inclusive) and the range upper
-    bound (exclusive), <i>i.e.</i>, for any <i>r</i> in <i>Z<sub>+</sub></i>,
-</p>
-<p>
-    <i>0 &le; g(r, m) &le; m - 1 </i>.
-</p>
-<p>
-    The resulting ranged-hash function, is
-</p>
-<p>
-    <i><a name="eqn:ranged_hash_composed_of_hash_and_range_hashing">f(u , m) = g(h(u), m) </a>
-    </i>(1) .
-</p>
-
-<p>
-    From the above, it is obvious that given <i>g</i> and <i>h</i>, <i>f</i> can
-    always be composed (however the converse is not true). The STL's hash-based
-    containers allow specifying a hash function, and use a hard-wired range-hashing function; the ranged-hash function is implicitly composed.
-</p>
-
-
-<p>
-    The above describes the case where a key is to be mapped into a <i>single
-position</i> within a hash table, <i>e.g.</i>, in a collision-chaining table.
-In other cases, a key is to be mapped into a <i>sequence of poisitions</i>
-within a table, <i>e.g.</i>, in a probing table.
-</p>
-<p>
-    Similar terms apply in this case: the table requires a <i>ranged probe</i>
-function, mapping a key into a sequence of positions withing the table. This is
-typically acheived by composing a <i>hash function</i> mapping the key
-into a non-negative integral type, a <i>probe</i> function transforming the
-hash value into a sequence of hash values, and a <i>range-hashing</i> function
-transforming the sequence of hash values into a sequence of positions.
-</p>
-
-
-<h3><a name="range_hashing_fns">Range-Hashing Functions</a></h3>
-
-<p>
-    Some common choices for range-hashing functions are the division,
-    multiplication, and middle-square methods [<a href="references.html#knuth98sorting">knuth98sorting</a>],
-    defined as
-</p>
-<p>
-    <i><a name="eqn:division_method">g(r, m) = r mod m </a></i>(2) ,
-</p>
-<p>
-    <i>g(r, m) = &lceil; u/v ( a r mod v ) &rceil; </i>,
-</p>
-<p>
-    and
-</p>
-<p>
-    <i>g(r, m) = &lceil; u/v ( r<sup>2</sup> mod v ) &rceil; </i>,
-</p>
-<p>
-respectively, for some positive integrals <i>u</i> and <i>v</i> (typically
-powers of 2), and some <i>a</i>. Each of these range-hashing functions works
-best for some different setting.
-</p>
-<p>
-    The division method <a href="#division_method">(2)</a> is a very common
-    choice. However, even this single method can be implemented in two very
-    different ways. It is possible to implement <a href="#division_method">(2)</a>
-    using the low level <i>%</i> (modulo) operation (for any <i>m</i>), or the low
-    level <i>&amp;</i> (bit-mask) operation (for the case where <i>m</i> is a power of
-    2), <i>i.e.</i>,
-</p>
-<p>
-    <i><a name="eqn:division_method_prime_mod">g(r, m) = r % m </a></i>(3) ,
-</p>
-<p>
-    and
-</p>
-<p>
-    <a name="eqn:division_method_bit_mask">
-    <i>g(r, m) = r &amp; m - 1, ( m = 2<sup>k</sup>
-    </i>
-        for some<i> k) </i></a>(4) ,
-</p>
-<p>
-    respectively.
-</p>
-<p>
-    The <i>%</i> (modulo) implementation <a href="#division_method_prime_mod">(3)</a>
-    has the advantage that for <i>m</i> a prime far from a power of 2, <i>g(r, m)</i>
-    is affected by all the bits of <i>r</i> (minimizing the chance of collision).
-    It has the disadvantage of using the costly modulo operation. This method is
-    hard-wired into SGI's implementation [<a href="references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-<p>
-    The <i>&amp;</i> (bit-mask) implementation <a href="#division_method_bit_mask">(4)</a>
-    has the advantage of relying on the fast bitwise and operation. It has the
-    disadvantage that for <i>g(r, m)</i> is affected only by the low order bits of <i>r</i>.
-    This method is hard-wired into Dinkumware's implementation [<a href="references.html#dinkumware_stl">dinkumware_stl</a>].
-</p>
-
-
-
-
-<h3><a name="hash_policies_ranged_hash_policies">Ranged-Hash Functions</a></h3>
-
-<p>
-    In some less frequent cases it is beneficial to allow the client to
-directly specify a ranged-hash hash function. It is true, that the writer of
-the ranged-hash function cannot rely on the values of <i>m</i> having specific
-numerical properties suitable for hashing (in the sense used in [<a href="references.html#knuth98sorting">knuth98sorting</a>]),
-since the values of <i>m</i> are determined by a resize policy with possibly
-orthogonal considerations.
-</p>
-
-<p>
-	There are two cases where a ranged-hash function can be superior. The firs is when using perfect hashing
-[<a href="references.html#knuth98sorting">knuth98sorting</a>]; the second
-is when the values of <i>m</i> can be used to estimate the
-"general" number of distinct values required. This is described in the following.
-</p>
-
-<p>
-    Let
-</p>
-
-<p>
-    <i>s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>] </i>
-</p>
-
-<p>
-    be a string of <i>t</i> characters, each of which is from domain <i>S</i>.
-Consider the following ranged-hash function:
-</p>
-
-<p>
-    <a name="eqn:total_string_dna_hash">
-        <i>
-            f<sub>1</sub>(s, m) =
-            &sum; <sub>i =
-            0</sub><sup>t   - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod<i> m </i>
-    </a> (5) ,
-</p>
-
-<p>
-    where <i>a</i> is some non-negative integral value. This is the standard
-string-hashing function used in SGI's implementation (with <i>a = 5</i>) [<a href="references.html#sgi_stl">sgi_stl</a>].
-Its advantage is that it takes into account all of the characters of the
-string.
-</p>
-
-<p>
-    Now assume that <i>s</i> is the string representation of a of a long DNA
-sequence (and so <i>S = {'A', 'C', 'G', 'T'}</i>). In this case, scanning the
-entire string might be prohibitively expensive. A possible alternative might be
-to use only the first <i>k</i> characters of the string, where
-</p>
-
-<p>
-    k <sup>|S|</sup> &ge; m ,
-</p>
-<p>
-    <i>i.e.</i>, using the hash function
-</p>
-<p>
-    <a name="eqn:only_k_string_dna_hash"><i>f<sub>2</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k
-                - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i></a>, (6)
-</p>
-<p>
-    requiring scanning over only
-</p>
-<p>
-    <i>k = </i>log<i><sub>4</sub>( m ) </i>
-</p>
-<p>
-    characters.
-</p>
-<p>
-    Other more elaborate hash-functions might scan <i>k</i> characters starting at
-    a random position (determined at each resize), or scanning <i>k</i> random
-    positions (determined at each resize), <i>i.e.</i>, using
-</p>
-<p>
-    <i>f<sub>3</sub>(s, m) = &sum; <sub>i = r<sub>0</sub></sub><sup>r<sub>0</sub> + k - 1</sup>
-        s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i>,
-</p>
-<p>
-    or
-</p>
-<p>
-    <i>f<sub>4</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k - 1</sup> s<sub>r<sub>i</sub></sub>
-        a<sup>r<sub>i</sub></sup> </i>mod <i>m </i>,
-</p>
-<p>
-<p>
-    respectively, for <i>r<sub>0</sub>,..., r<sub>k-1</sub></i> each in the
-    (inclusive) range <i>[0,...,t-1]</i>.
-</p>
-
-
-<h3><a name="pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a></h3>
-
-<p>
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a> is
-parameterized by <tt>Hash_Fn</tt> and <tt>Comb_Hash_Fn</tt>, a hash functor
-and a combining hash functor, respectively.
-</p>
-
-<p>
-	For any hash functor except <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>,
-one of the
-<a href = "concepts.html#concepts_null_policies">Concepts::Null Policy Classes</a>,
-then <tt>Comb_Hash_Fn</tt> is considered a range-hashing functor.
-The container will synthesize a ranged-hash functor from both. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram">
-Insert hash sequence diagram
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a non-negative integral using the hash
-functor (points B and C), and transforms the result into a position
-using the combining functor (points D and E).
-</p>
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram">
-<img src = "hash_range_hashing_seq_diagram.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram.
-</h6>
-
-
-<p>
-    <tt>pb_assoc</tt> contains the following range-hashing policies:
-</p>
-
-<ol>
-    <li>
-<a href = "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
-and
-<a href = "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
-are range-hashing functions based on a bit-mask and a modulo operation, respectively.
-    </li>
-</ol>
-
-
-<p>
-    If <tt>Comb_Hash_Fn</tt> is instantiated by
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>,
-and a combining-hash functor, the container treats
-the combining hash functor as a ranged-hash function. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram2">
-Insert hash sequence diagram with a null combination policy
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a position
-using the combining functor (points B and C).
-</p>
-
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram2">
-<img src = "hash_range_hashing_seq_diagram2.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram with a null combination policy.
-</h6>
-
-<p>
-	Similarly,
-<a href = "gp_hash_assoc_cntnr.html"></a><tt>gp_hash_assoc_cntnr</tt>
-is parameterized by <tt>Hash_Fn</tt>, <tt>Probe_Fn</tt>, and
-<tt>Comb_Probe_Fn</tt>. As before, if <tt>Probe_Fn</tt>
-and <tt>Comb_Probe_Fn</tt> are, respectively,
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a> and
-<a href = "null_probe_fn.html"><tt>null_probe_fn</tt></a>,
-then <tt>Comb_Probe_Fn</tt> is a ranged-probe functor. Otherwise, <tt>Hash_Fn</tt>
-is a hash functor, <tt>Probe_Fn</tt> is a functor for offsets from a hash value,
-and <tt>Comb_Probe_Fn</tt> transforms a probe sequence into a sequence of positions
-within the table.
-</p>
-
-<p>
-	<tt>pb_assoc</tt> contains the following probe policies:
-</p>
-
-<ol>
-    <li>
-<a href = "linear_probe_fn.html"><tt>linear_probe_fn</tt></a> is a linear probe
-function.
-    </li>
-	<li>
-<a href = "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a> is
-a quadratic probe function.
-    </li>
-</ol>
-
-
-
-
-
-
-
-
-
-<h2><a name = "resize_policies">Resize Policies</a></h2>
-
-<p>
-    This subsection describes resize policies. It is organized as follows:
-</p>
-
-<ol>
-    <li> <a href = "#general">General Terms</a> describes general
-        terms.
-    </li>
-    <li> <a href = "#size_policies">Size Policies</a>  describes size
-    policies.
-    </li>
-    <li> <a href = "#trigger_policies">Trigger Policies</a>  describes trigger
-    policies.
-    </li>   <li> <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
-         describes the implementation of these concepts in <tt>pb_assoc</tt>.
-    </li>
-</ol>
-
-
-<h3><a name = "general">General Terms</a></h3>
-
-<p>
-    Hash-tables, as opposed to trees, do not naturally grow or shrink. It
-is necessary to specify policies to determine how and when a hash table should change
-its size.
-</p>
-
-<p>
-    In general, resize policies can be decomposed into (probably orthogonal)
-policies:
-</p>
-<ol>
-    <li> A <i>size policy</i> indicating <i>how</i> a hash table should
-grow (<i>e.g.,</i> it should multiply by powers of 2).
-    </li>
-    <li> A <i>trigger policy</i> indicating <i>when</i> a hash table should
-grow (<i>e.g.,</i> a load factor is exceeded).
-    </li>
-</ol>
-
-
-
-<h3><a name = "size_policies">Size Policies</a></h3>
-
-<p>
-    Size policies determine how a hash table
-changes size. These policies are simple, and there are relatively
-few sensible options. An exponential-size policy (with the initial
-size and growth factors both powers of 2) works well with a
-mask-based range-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by Dinkumware
-[<a href = "references.html#dinkumware_stl">dinkumware_stl</a>]. A
-prime-list based policy works well with a modulo-prime range
-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by SGI's implementation
-[<a href = "references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-
-
-
-<h3><a name = "trigger_policies">Trigger Policies</a></h3>
-
-<p>
-    Trigger policies determine when a hash table changes size.
-Following is a description of two polcies: <i>load-check</i>
-policies, and a collision-check policies.
-</p>
-
-<p>
-    Load-check policies are straightforward. The user
-specifies two factors, <i>&alpha;<sub>min</sub></i> and <i>&alpha;<sub>max</sub></i>, and
-the hash table maintains the invariant that
-</p>
-<p>
-    <i>
-        <a name = "eqn:load_factor_min_max">
-        &alpha;<sub>min</sub>
-        &le;
-        (number of stored elements) / (hash-table size)
-        &le;
-        &alpha;<sub>max</sub>
-        </a>
-    </i>
-    (1)
-    .
-</p>
-
-<p>
-    Collision-check policies work in the opposite direction of
-load-check policies. They focus on keeping the number of
-collisions moderate and hoping
-that the size of the table will not grow very large,
-instead of keeping a moderate load-factor and
-hoping that the number of collisions will be small.
-A
-maximal collision-check policy resizes when the shortest
-probe-sequence grows too large.
-</p>
-
-
-<p>
-    Consider Figure
-<a href = "#balls_and_bins">Balls and bins</a>.
-    Let the size of the hash table be denoted by <i>m</i>, the
-length of a probe sequence be denoted by <i>k</i>, and some load
-factor be denoted by &alpha;. We would like to calculate the
-minimal length of <i>k</i>, such that if there were <i>&alpha; m</i> elements
-in the hash table, a probe sequence of length <i>k</i> would be found
-with probability at most <i>1/m</i>.
-</p>
-
-<h6 align = "center">
-<a name = "balls_and_bins">
-<img src = "balls_and_bins.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Balls and bins.
-</h6>
-
-
-<p>
-    Denote the probability that a probe sequence of length <i>k</i>
-appears in bin <i>i</i> by <i>p<sub>i</sub></i>, the length of the probe sequence
-of bin <i>i</i> by <i>l<sub>i</sub></i>, and assume uniform distribution.
-Then
-</p>
-    <p>
-    <a name = "eqn:prob_of_p1">
-        <i>p<sub>1</sub>
-        = </i>(3)
-    </a>
-    </p>
-    <p>
-    <i>
-    <b>P</b>(l<sub>1</sub> &ge; k)
-    =
-    </i>
-    </p>
-    <p>
-    <i><b>P</b>(l<sub>1</sub> &ge; &alpha; ( 1 + k / &alpha; - 1 )
-    &le; </i>(a)
-    </p>
-    <p>
-    <i>
-    e
-    ^
-    (
-        -
-        (
-            &alpha; ( k / &alpha; - 1 )<sup>2</sup>
-        )
-        /2
-    )
-    </i>
-    ,
-</p>
-<p>
-    where (a) follows from the Chernoff bound
-[<a href = "references.html#motwani95random">motwani95random</a>].
-To
-calculate the probability that <i>some</i> bin contains a probe
-sequence greater than <i>k</i>, we note that the <i>l<sub>i</sub></i> are
-negatively-dependent
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Let <i><b>I</b>(.)</i>
-denote the indicator function. Then
-    <p>
-    <a name = "eqn:at_least_k_i_n_some_bin">
-        <i><b>P</b>( exists<sub>i</sub> l<sub>i</sub> &ge; k )
-        = </i>(3)
-    </a>
-    </p>
-    <p>
-    <i>
-   <b>P</b>
-    (
-        &sum; <sub>i = 1</sub><sup>m</sup>
-        <b>I</b>(l<sub>i</sub> &ge; k) &ge; 1
-    )
-    =
-    </i>
-    </p>
-    <p>
-    <i>
-    <b>P</b>
-    (
-        &sum; <sub>i = 1</sub><sup>m</sup>
-        <b>I</b>
-        (
-            l<sub>i</sub> &ge; k
-        )
-        &ge;
-        m  p<sub>1</sub> ( 1 + 1 / (m p<sub>1</sub>) - 1 )
-    )
-    &le; </i>(a)
-    </p>
-    <p>
-    <i>
-    e
-    ^
-    (
-        (
-            -
-            m p<sub>1</sub>
-            (
-                1 / (m p<sub>1</sub>) - 1
-            )
-            <sup>2</sup>
-        )
-        /
-        2
-    )
-    ,
-    </i>
-    </p>
-<p>
-where (a) follows from the fact that the Chernoff bound can be
-applied to negatively-dependent variables
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Inserting <a href = "#prob_of_p1">(2)</a> into
-<a href = "#at_least_k_i_n_some_bin">(3)</a>, and equating with <i>1/m</i>,
-we obtain
-</p>
-<p>
-    <i>
-    k
-    ~
-    &radic;
-    (
-        2 &alpha; </i>ln<i> 2 m </i>ln<i>(m) )
-    )
-    </i>
-    .
-</p>
-
-
-
-
-
-
-
-
-
-<h3><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h3>
-
-<p>
-    The resize policies in the previous subsection are conceptually straightforward. The design
-of hash-based containers' size-related interface is complicated by some factors.
-</p>
-<ol>
-    <li> Most containers, <i>i.e.</i> lists, trees, and vectors, have a single "size" concept. There is no
-distinction between the number of entries the container holds and the number of entries it is using. This,
-of course, is not the case for hash-based containers. Moreover, even describing the
-"actual" size of a hash-based container (as opposed to its logical size) is difficult - a probing-based container
-holds entries to elements, even those it does not use, while a chaining-based container holds pointers to entries.
-    </li>
-    <li>
-    The policies mentioned above operate in terms of invariants. <i>E.g.</i> a load-check trigger policy
-maintains an invariant concerning the load factor of a container object. This is sometimes too rigid:
-    <ol>
-        <li>In some cases it is desirable to allow controlled override of an entire policy, <i>e.g.</i> by externally resizing a container object (or giving it an initial size, which is a special case of externally resizing the container).
-        </li>
-        <li>
-            In other cases it is desirable to allow changing the specifics of a policy in runtime, <i>e.g.</i>, changing the load factors of a load-check policy.
-        </li>
-    </ol>
-    </li>
-    <li>
-    Resize policies interact strongly with hash policies. Performance-wise, for example, it is undesirable to use an exponential size policy of powers of two with a modulo range-hashing function, and it is undesirable to use a prime size policy with a mask range-hashing function. In other cases, the effects are more dramatic. For example, using a quadratic probe function with an exponential size policy will probably cause cases where the container object has available entries which are never reached by the probe function. (<a href = "hash_policies.html">Hash Policies</a>
-discusses the previous concepts.)
-    </li>
-</ol>
-
-<p>
-    Clearly, the more of these points an interface addresses, the greater its flexibility but the lower its encapsulation and uniformity between associative containers.
-</p>
-
-
-
-<p>
-        This library attempts to address these types of problems by delegating all size-related functionality to
-policy classes. Hash-based containers
-are parameterized by a resize-policy class (among others), and derive publicly from
-the resize-policy class
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>]
- <i>E.g.</i>, a collision-chaining
-hash table is defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
-  <b>class</b> Key,
-  <b>class</b> Data,
-  ...
-  <b>class</b> Resize_Policy
-  ...&gt; :
-    <b>public</b> Resize_Policy
-</pre>
-
-<p>
-    The containers themselves lack any functionality or public interface for manipulating sizes. A container
-object merely forwards events to its resize policy object and queries it for needed actions.
-</p>
-
-<p>
-    Figure
-<a href = "#insert_resize_sequence_diagram1">
-Insert resize sequence diagram
-</a>
-shows a (possible) sequence diagram of an insert operation.
-The user inserts an element; the hash table
-notifies its resize policy that a search has started (point A);
-in this case, a single collision is encountered - the table
-notifies its resize policy of this (point B); the container
-finally notifies its resize policy that the search has ended (point C);
-it then queries its resize policy whether a resize is needed, and if so,
-what is the new size (points D to G); following the resize, it notifies
-the policy that a resize has completed (point H); finally, the element
-is inserted, and the policy notified (point I).
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram1">
-<img src = "insert_resize_sequence_diagram1.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert resize sequence diagram.
-</h6>
-
-<p>
-    This addresses, to some extent, the problems mentioned above:
-</p>
-<ol>
-    <li>
-        Different instantiations of range-hashing policies can be met with different instantiations of
-    resize policies.
-    </li>
-    <li>
-        Questions on size-related interface are avoided, since the containers have no size-related methods. Thus
-    a container has no method for querying its actual size. It merely continuously forwards enough information to
-    its resize policy to answer such queries; the designer of the resize policy can decide whether, or how, to design     the appropriate method. Also, a container has no methods for setting its size. It merely queries its
-resize policy for an initial size, queries it on a new size (if the resize policy indicates a resize is needed), and
-supports a <tt><b>protected virtual</b></tt> function for external resize.
-    </li>
-</ol>
-
-<p>
-    The library contains a single class for instantiating a resize policy,
-<tt>pb_assoc</tt> contains
-a standard resize policy,
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> (the name is explained shortly).
-In terms of interface, it is parameterized by a boolean constant indicating whether its public interface supports
-queries of actual size and external resize operations (the inclusion and exclusion of these methods in the interface have obvious tradeoffs in terms of encapsulation and flexibility).
-([<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>] shows many techniques for
-changing between alternative interfaces at compile time.)
-</p>
-
-<p>
-As noted before,
-    size and trigger policies are usually orthogonal.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
-is parameterized by size and trigger policies. For example,
-a collision-chaining hash table
-is typically be defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
-  key,
-  data,
-  ...
-  hash_standard_resize_policy&lt;
-    some_trigger_policy,
-    some_size_policy,
-    ...&gt; &gt;
-</pre>
-
-<p>
- The sole function of
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
- is to
-act as a standard delegator
-[<a href = "references.html#gamma95designpatterns">gamma95designpatterns</a>] for these
-policies.
-
-<p>
-    Figures
-<a href = "#insert_resize_sequence_diagram2">Standard resize policy trigger sequence diagram</a>
-    and
-<a href = "#insert_resize_sequence_diagram3">Standard resize policy size sequence diagram</a>
-    show sequence diagrams illustrating the interaction between
-    the standard resize policy and its trigger and size policies, respectively.
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram2">
-<img src = "insert_resize_sequence_diagram2.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy trigger sequence diagram.
-</h6>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram3">
-<img src = "insert_resize_sequence_diagram3.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy size sequence diagram.
-</h6>
-
-<p>
-    The library (currently) supports the following instantiations of size
-and trigger policies:
-</p>
-
-<ol>
-    <li>
-        <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a> implements
-    a load check trigger policy.
-    </li>
-    <li>
-        <a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
-    implements a collision check trigger policy.
-    </li>
-    <li>
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a> implemens
-an exponential-size policy (which should be used with mask range hashing).
-    </li>
-    <li>
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a> implementing
-a size policy based on a sequence of primes
-[<a href = "references.html#sgi_stl">sgi_stl</a>] (which should be used with mod range hashing
-    </li>
-</ol>
-
-<p>
-    The trigger policies also support interfaces for changing their specifics which depend on compile time constants.
-</p>
-
-
-<p>
-    Figure
-<a href = "#resize_policy_cd">Resize policy class diagram</a> gives an overall picture
-of the resize-related classes.
-<tt>Container</tt> (which stands for any of the hash-based containers) is parameterized
-by <tt>Resize_Policy</tt>, from which it subclasses publicly
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>].
-This class is currently instantiated only by
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> itself
-is parameterized by <tt>Trigger_Policy</tt> and <tt>Size_Policy</tt>.
-Currently, <tt>Trigger_Policy</tt> is instantiated by
-<a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>,
-or
-<a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>; <tt>Size_Policy</tt> is instantiated by
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>,
-or
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>.
-</p>
-
-
-<h6 align = "center">
-<a name = "resize_policy_cd">
-<img src = "resize_policy_cd.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Resize policy class diagram.
-</h6>
-
-
-
-
-<h2><a name = "#policy_interaction">Policy Interaction</a></h2>
-
-<p>
-	Hash-tables are unfortunately susceptible to choice of policies. One
-of the more complicated aspects of this is that poor combinations of good policies
-can alter performance drastically. Following are some considerations.
-</p>
-
-
-
-
-
-<h3>Range-Hashing Policies and Resize Policies</h3>
-
-<p>
-</p>
-
-
-<h3>Equivalence Functors, Storing Hash Values, and Hash Functions</h3>
-
-
-<p>
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-and
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>
-are parameterized by an equivalenc functor and by a <tt>Store_Hash</tt>
-parameter. If the latter parameter is <tt><b>true</b></tt>, then
-the container stores with each entry a hash value, and uses
-this value in case of collisions to determine whether to apply a hash value.
-This can lower the cost of collision for some types, but increase the cost of collisions for other types.
-</p>
-
-<p>
-	If a ranged-hash function or ranged probe function is directly supplied, however,
-then it makes no sense to store the hash value with each entry. <tt>pb_assoc</tt>'s container will fail at compilation, by design, if this is attempted.
-</p>
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_cd.jpg
deleted file mode 100644
index 6c26a177985592cb0b5a141956026df16f3769c8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 54780
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html
deleted file mode 100644
index f0fc5a7624b4..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_exponential_size_policy.html
+++ /dev/null
@@ -1,267 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_exponential_size_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_exponential_size_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A size policy whose sequence of sizes form an exponential sequence (typically powers of 2)
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructors, and related methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Size methods
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructors, and related methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  hash_exponential_size_policy
-  (<a href = "#size_type3735929547">size_type</a> start_size = 8,
-    <a href = "#size_type3735929547">size_type</a> grow_factor = 2)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or onstructor taking a <font color = "#666666"><tt>start_size</tt></font>, a start size and <font color = "#666666"><tt>grow_factor</tt></font>, a growth factor. The policy will use the sequence of sizes <font color = "#666666"><tt>start_size</tt></font>, <font color = "#666666"><tt>start_size</tt></font> * <font color = "#666666"><tt>grow_factor</tt></font>, <font color = "#666666"><tt>start_size</tt></font> * <font color = "#666666"><tt>grow_factor</tt></font>^2, ...</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">hash_exponential_size_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Size methods
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
-  get_init_size
-  (<a href = "#size_type3735929547">size_type</a> suggested_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size, returns an initial size of the container related to the initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
-  get_nearest_larger_size
-  (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is larger.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
-  get_nearest_smaller_size
-  (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is smaller.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html
deleted file mode 100644
index 6ef435b0ab84..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_fn.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Hash Functions</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Hash Functions</h1>
-
-<p>
-A hash function is essentially an <tt>std::unary_operator</tt>. It takes a
-<a href = "key_type_defs.html"><tt>const_key_reference</tt></a>, and returns
-a (non-negative) integral type.
-</p>
-
-<p>
-	A special hash function, <a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>
-serves to indicate that the <a href = "hash_policies.html">ranged-hash</a> function
-or <a href = "hash_policies.html">ranged-probe</a> function should not be formed by composition.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html
deleted file mode 100644
index 6670d6968604..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_load_check_resize_trigger.html
+++ /dev/null
@@ -1,744 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_load_check_resize_trigger Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_load_check_resize_trigger
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A resize trigger policy based on a load check. It keeps the load factor between some load factors load_min and load_max.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Load access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link8">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Specifies whether the load factor can be accessed externally. The two options have different tradeoffs in terms of flexibility, genericity, and encapsulation.</p>
-
-
-</td>
-
-<td>
-<tt><b>false</b></tt>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "external_load_access3735929604">external_load_access</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#External_Load_Access3735929540">External_Load_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether loads can be accessed externally</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  hash_load_check_resize_trigger
-  (float load_min = 0.125,
-    float load_max = 0.5)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or constructor taking <font color = "#666666"><tt>load_min</tt></font> and <font color = "#666666"><tt>load_max</tt></font> load factors between which this policy will keep the actual load.</p>
-
-
-<p>It is the responsibility of the user to ensure that <font color = "#666666"><tt>load_min</tt></font> is smaller than <font color = "#666666"><tt>load_max</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">hash_load_check_resize_trigger</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  <b>virtual</b>
-    ~hash_load_check_resize_trigger
-    ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Load access methods.
-</a>
-
-</h2>
-
-<p> These methods are only available if the external access parameter is set.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> std::pair&lt;float, float&gt;
-  get_loads
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns a pair of the minimal and maximal loads, respectively.</p>
-
-
-<p>Calling this method will not compile when <a href = "#External_Load_Access3735929540"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  set_loads
-  (std::pair&lt;float, float&gt; load_pair)</pre>
-
-
-</td>
-
-<td>
-<p>Sets the loads through a pair of the minimal and maximal loads, respectively.</p>
-
-
-<p>Calling this method resizes the container, and might throw an exception. It is the responsibility of the user to pass appropriate loads to this function. Calling this method will not compile when <a href = "#External_Load_Access3735929540"><tt>External_Load_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_inserted
-  (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted. the total number of entries in the table is <font color = "#666666"><tt>num_entries</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erased
-  (<a href = "#size_type3735929547">size_type</a> num_entries)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_cleared
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_resized
-  (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized as a result of this object's signifying that a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_externally_resized
-  (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized externally.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_resize_needed
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_grow_needed
-  (<a href = "#size_type3735929547">size_type</a> size,
-    <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a grow is needed.</p>
-
-
-<p>This method is called only if this object indicated resize is needed. The actual <font color = "#666666"><tt>size</tt></font> of the table is <font color = "#666666"><tt>size</tt></font>, and the number of entries in it is <font color = "#666666"><tt>num_entries</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_shrink_needed
-  (<a href = "#size_type3735929547">size_type</a> size,
-    <a href = "#size_type3735929547">size_type</a> num_entries) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a shrink is needed.</p>
-
-
-<p>This method is called only if this object indicated resize is needed. The actual <font color = "#666666"><tt>size</tt></font> of the table is <font color = "#666666"><tt>size</tt></font>, and the number of entries in it is <font color = "#666666"><tt>num_entries</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html
deleted file mode 100644
index c5bc2aadafa8..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_policies.html
+++ /dev/null
@@ -1,375 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-    <title>Hash Policies</title>
-    <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor="white">
-
-<h1>Hash Policies</h1>
-<p>
-    This subsection describes hash policies. It is organized as follows:
-</p>
-<ol>
-    <li> The <a href = "#general_terms">General Terms</a> Section describes
-            some general terms.
-    </li>
-    <li> The <a href = "#range_hashing_fns">Range-Hashing Functions</a> Section
-        describes range-hasing functions.</li>
-    <li> The <a href = "#hash_policies_ranged_hash_policies">Ranged-Hash Functions</a> Section
-        describes ranged-hash functions. </li>
-    <li> The <a href = "#pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a> Section
-            describes the implementation of these concepts in <tt>pb_assoc</tt>.
-    </li>
-</ol>
-
-
-<h2><a name="general_terms">General Terms</a></h2>
-
-<p>
-    There
-are actually three functions involved in transforming a key into a hash-table's
-position (see Figure
-<a href = "#hash_ranged_hash_range_hashing_fns">
-Hash runctions, ranged-hash functions, and range-hashing functions
-</a>):
-</p>
-<ol>
-    <li>
-        A <i>ranged-hash</i> function, which maps keys into an interval of the
-        non-negative integrals. This is the function actually required by the
-        hash-table algorithm.
-    </li>
-    <li>
-        A hash function, which maps keys into non-negative integral types. This is
-        typically specified by the writer of the key class.
-    </li>
-    <li>
-        A <i>range-hashing</i> function, which maps non-negative integral types into an
-        interval of non-negative integral types.
-    </li>
-</ol>
-
-<h6 align = "center">
-<a name = "hash_ranged_hash_range_hashing_fns">
-<img src = "hash_ranged_hash_range_hashing_fns.jpg" width = "40%" alt = "no image">
-</a>
-Hash runctions, ranged-hash functions, and range-hashing functions.
-</h6>
-
-<p>
-    Let <i>U</i> be a domain (<i>e.g.</i>, the integers, or the strings of 3
-    characters). A hash-table algorithm needs to map elements of <i>U</i> "uniformly"
-    into the range <i>[0,..., m - 1]</i> (where <i>m</i> is a non-negative integral
-    value, and is, in general, time varying). <i>I.e.</i>, the algorithm needs a <i>ranged-hash</i>
-    function
-</p>
-<p>
-    <i>f : U &times; Z<sub>+</sub> &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
-    such that for any <i>u</i> in <i>U</i>
-,
-</p>
-<p>
-    <i>0 &le; f(u, m) &le; m - 1 </i>,
-</p>
-<p>
-    and which has "good uniformity" properties [<a href="references.html#knuth98sorting">knuth98sorting</a>].
-    One common solution is to use the composition of the hash function
-</p>
-<p>
-    <i>h : U &rarr; Z<sub>+</sub> </i>,
-</p>
-<p>
-    which maps elements of <i>U</i> into the non-negative integrals, and
-</p>
-<p>
-    <i>g : Z<sub>+</sub> &times; Z<sub>+</sub> &rarr; Z<sub>+</sub>, </i>
-</p>
-<p>
-    which maps a non-negative hash value, and a non-negative range upper-bound into
-    a non-negative integral in the range between 0 (inclusive) and the range upper
-    bound (exclusive), <i>i.e.</i>, for any <i>r</i> in <i>Z<sub>+</sub></i>,
-</p>
-<p>
-    <i>0 &le; g(r, m) &le; m - 1 </i>.
-</p>
-<p>
-    The resulting ranged-hash function, is
-</p>
-<p>
-    <i><a name="eqn:ranged_hash_composed_of_hash_and_range_hashing">f(u , m) = g(h(u), m) </a>
-    </i>(1) .
-</p>
-
-<p>
-    From the above, it is obvious that given <i>g</i> and <i>h</i>, <i>f</i> can
-    always be composed (however the converse is not true).
-</p>
-
-
-<p>
-    The above describes the case where a key is to be mapped into a <i>single
-position</i> within a hash table, <i>e.g.</i>, in a collision-chaining table.
-In other cases, a key is to be mapped into a <i>sequence of poisitions</i>
-within a table, <i>e.g.</i>, in a probing table.
-</p>
-<p>
-    Similar terms apply in this case: the table requires a <i>ranged probe</i>
-function, mapping a key into a sequence of positions withing the table. This is
-typically acheived by composing a <i>hash function</i> mapping the key
-into a non-negative integral type, a <i>probe</i> function transforming the
-hash value into a sequence of hash values, and a <i>range-hashing</i> function
-transforming the sequence of hash values into a sequence of positions.
-</p>
-
-
-<h2><a name="range_hashing_fns">Range-Hashing Functions</a></h2>
-
-<p>
-    Some common choices for range-hashing functions are the division,
-    multiplication, and middle-square methods [<a href="references.html#knuth98sorting">knuth98sorting</a>],
-    defined as
-</p>
-<p>
-    <i><a name="eqn:division_method">g(r, m) = r mod m </a></i>(2) ,
-</p>
-<p>
-    <i>g(r, m) = &lceil; u/v ( a r mod v ) &rceil; </i>,
-</p>
-<p>
-    and
-</p>
-<p>
-    <i>g(r, m) = &lceil; u/v ( r<sup>2</sup> mod v ) &rceil; </i>,
-</p>
-<p>
-respectively, for some positive integrals <i>u</i> and <i>v</i> (typically
-powers of 2), and some <i>a</i>. Each of these range-hashing functions works
-best for some different setting.
-</p>
-<p>
-    The division method <a href="#division_method">(2)</a> is a very common
-    choice. However, even this single method can be implemented in two very
-    different ways. It is possible to implement <a href="#division_method">(2)</a>
-    using the low level <i>%</i> (modulo) operation (for any <i>m</i>), or the low
-    level <i>&amp;</i> (bit-mask) operation (for the case where <i>m</i> is a power of
-    2), <i>i.e.</i>,
-</p>
-<p>
-    <i><a name="eqn:division_method_prime_mod">g(r, m) = r % m </a></i>(3) ,
-</p>
-<p>
-    and
-</p>
-<p>
-    <a name="eqn:division_method_bit_mask">
-    <i>g(r, m) = r &amp; m - 1, ( m = 2<sup>k</sup>
-    </i>
-        for some<i> k) </i></a>(4) ,
-</p>
-<p>
-    respectively.
-</p>
-<p>
-    The <i>%</i> (modulo) implementation <a href="#division_method_prime_mod">(3)</a>
-    has the advantage that for <i>m</i> a prime far from a power of 2, <i>g(r, m)</i>
-    is affected by all the bits of <i>r</i> (minimizing the chance of collision).
-    It has the disadvantage of using the costly modulo operation. This method is
-    hard-wired into SGI's implementation [<a href="references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-<p>
-    The <i>&amp;</i> (bit-mask) implementation <a href="#division_method_bit_mask">(4)</a>
-    has the advantage of relying on the fast bitwise and operation. It has the
-    disadvantage that for <i>g(r, m)</i> is affected only by the low order bits of <i>r</i>.
-    This method is hard-wired into Dinkumware's implementation [<a href="references.html#dinkumware_stl">dinkumware_stl</a>].
-</p>
-
-
-
-
-<h2><a name="hash_policies_ranged_hash_policies">Ranged-Hash Functions</a></h2>
-
-<p>
-    Although rarer, there are cases where it is beneficial to allow the client to
-directly specify a ranged-hash hash function. It is true, that the writer of
-the ranged-hash function cannot rely on the values of <i>m</i> having specific
-numerical properties suitable for hashing (in the sense used in [<a href="references.html#knuth98sorting">knuth98sorting</a>]),
-since the values of <i>m</i> are determined by a resize policy with possibly
-orthogonal considerations [<a href="references.html#austern98segmented">austern98segmented</a>].
-The values of <i>m</i> can be used in some cases, though, to estimate the
-"general" number of distinct values required.
-</p>
-
-<p>
-    Let
-</p>
-
-<p>
-    <i>s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>] </i>
-</p>
-
-<p>
-    be a string of <i>t</i> characters, each of which is from domain <i>S</i>.
-Consider the following ranged-hash function:
-</p>
-
-<p>
-    <a name="eqn:total_string_dna_hash">
-        <i>
-            f<sub>1</sub>(s, m) =
-            &sum; <sub>i =
-            0</sub><sup>t   - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod<i> m </i>
-    </a> (5) ,
-</p>
-
-<p>
-    where <i>a</i> is some non-negative integral value. This is the standard
-string-hashing function used in SGI's implementation (with <i>a = 5</i>) [<a href="references.html#sgi_stl">sgi_stl</a>].
-Its advantage is that it takes into account all of the characters of the
-string.
-</p>
-
-<p>
-    Now assume that <i>s</i> is the string representation of a of a long DNA
-sequence (and so <i>S = {'A', 'C', 'G', 'T'}</i>). In this case, scanning the
-entire string might be prohibitively expensive. A possible alternative might be
-to use only the first <i>k</i> characters of the string, where
-</p>
-
-<p>
-    k <sup>|S|</sup> &ge; m ,
-</p>
-<p>
-    <i>i.e.</i>, using the hash function
-</p>
-<p>
-    <a name="eqn:only_k_string_dna_hash"><i>f<sub>2</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k
-                - 1</sup> s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i></a>, (6)
-</p>
-<p>
-    requiring scanning over only
-</p>
-<p>
-    <i>k = </i>log<i><sub>4</sub>( m ) </i>
-</p>
-<p>
-    characters.
-</p>
-<p>
-    Other more elaborate hash-functions might scan <i>k</i> characters starting at
-    a random position (determined at each resize), or scanning <i>k</i> random
-    positions (determined at each resize), <i>i.e.</i>, using
-</p>
-<p>
-    <i>f<sub>3</sub>(s, m) = &sum; <sub>i = r<sub>0</sub></sub><sup>r<sub>0</sub> + k - 1</sup>
-        s<sub>i</sub> a<sup>i</sup> </i>mod <i>m </i>,
-</p>
-<p>
-    or
-</p>
-<p>
-    <i>f<sub>4</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k - 1</sup> s<sub>r<sub>i</sub></sub>
-        a<sup>r<sub>i</sub></sup> </i>mod <i>m </i>,
-</p>
-<p>
-<p>
-    respectively, for <i>r<sub>0</sub>,..., r<sub>k-1</sub></i> each in the
-    (inclusive) range <i>[0,...,t-1]</i>.
-</p>
-
-
-<h2><a name="pb_assoc_imp">Implementation in <tt>pb_assoc</tt></a></h2>
-
-<p>
-    Containers based on collision-chaining hash tables in <tt>pb_assoc</tt>
-are parameterized by the functors <tt>Hash_Fn</tt>, and <tt>Comb_Hash_Fn</tt>.
-</p>
-
-<p>
-    If such a container is instantiated with any hash functor and
-range-hashing functor, the container will synthesize a ranged-hash functor
-automatically. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram">
-Insert hash sequence diagram
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a non-negative integral using the hash
-functor (points B and C), and transforms the result into a position
-using the combining functor (points D and E).
-</p>
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram">
-<img src = "hash_range_hashing_seq_diagram.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram.
-</h6>
-
-
-<p>
-    If such a container is instantiated with the
-<a href = "concepts.html#concepts_null_policies">null policy</a>
-hash functor,
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>,
-and a combining-hash functor, the container treats
-the combining hash functor as a ranged-hash function. For example, Figure
-<a href = "#hash_range_hashing_seq_diagram2">
-Insert hash sequence diagram with a null combination policy
-</a>
-shows an <tt>insert</tt> sequence diagram. The user inserts an element (point A),
-the container transforms the key into a position
-using the combining functor (points B and C).
-</p>
-
-
-<h6 align = "center">
-<a name = "hash_range_hashing_seq_diagram2">
-<img src = "hash_range_hashing_seq_diagram2.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert hash sequence diagram with a null combination policy.
-</h6>
-
-<p>
-    <tt>pb_assoc</tt> contains the following hash-related policies:
-</p>
-
-<ol>
-    <li>
-<a href = "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
-and
-<a href = "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
-are range-hashing functions based on a bit-mask and a modulo operation, respectively.
-    </li>
-    <li>
-<a href = "linear_probe_fn.html"><tt>linear_probe_fn</tt></a> and
-<a href = "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a> are probe
-classes based on linear and quadratic increment, respectively.
-    </li>
-    <li>
-<a href = "null_hash_fn.html"><tt>null_hash_fn</tt></a>
-and
-<a href = "null_probe_fn.html"><tt>null_probe_fn</tt></a>
-are
-<a href = "concepts.html#concepts_null_policies">null policy classes</a> for creating
-ranged-hash and ranged-probe functions directly (<i>i.e.</i>, not through
-composition).
-    </li>
-</ol>
-
-<p>
-    <tt>pb_assoc</tt> does not provide any hash functions (it relies on those
-of the STL).
-</p>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_policy_cd.jpg
deleted file mode 100644
index c5d2290351358fbab1a2c67ef6d4d3e255a65d89..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 59739
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%0DDnVi)
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
RfX;#6muAzxOpSdQ{Uc^CuTlU2

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html
deleted file mode 100644
index 5b6d0ac22244..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_prime_size_policy.html
+++ /dev/null
@@ -1,211 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_prime_size_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_prime_size_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A size policy whose sequence of sizes form a nearly-exponential sequence of primes.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Size methods
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre>size_t</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (<font color = "olive">hash_prime_size_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Size methods
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  get_init_size
-  (<a href = "#size_type3735929547">size_type</a> suggested_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size, returns an initial size of the container related to the initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  get_nearest_larger_size
-  (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is larger.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  get_nearest_smaller_size
-  (<a href = "#size_type3735929547">size_type</a> cur_size) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Given <font color = "#666666"><tt>cur_size</tt></font>, the current size, returns a size that is smaller.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram.jpg
deleted file mode 100644
index f675cea6302f830ba9c90cc0c027489c08c832a7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 30271
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_range_hashing_seq_diagram2.jpg
deleted file mode 100644
index a292d5aaaa163ec96e2def097549ef1b885f580b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 20756
zcmeHv2RL2Z+U{HymM)^RlmsDa^xj)U)F{yjLWt<S6D5e2DA8*WHHl927QGXlr3;o`
z!(G|!B)gpRpMCfF@4f%sJmZ<q7<0^FjxopA-uD|W$1mrAD|ck%WB?Ed1Q;TIfy+ri
z5<o*mg`lFKK_C!xbTkYs0&FZyOf1r?__zcVWK@(CWKbwIEh|0sb!HkUl!5mq^DTBR
zE-os1eqlZiAy!T<j<17&(9zMcFtJFmu}L_tL9cQA+dr2L03I6X6_P0!bR9s#1A*~C
zmn{Gl0Dw>sZ~OIyfBFF-fss*AA!z6rn1~K#R{$gs7>tArMnOSFM)dYX+y{{HP_ABM
z7e~ccF@jvTCE)OlN=KuSc-u&*Ism8Td|>B?jzL6BLP|z=gP!3gBNsOhFCV{vq?ELb
z>}|O__texiH1BI^8=IIuG&6r>VejDR<m}?==KnMxFevz0Nc4-BF|l#+uM#pcv$9|3
z<mSD3_rA2OyrQzIx~aLPwXMD5W9Q(|@W|-c_@{~a1=!-!^2+Mk`p)j&{=wnV@yY4e
zd4T}%kJI{PX1|&j9%5cd$jD%1$k%y+kem?(jE9VJjUDx>xC+F`7XLbjFB*YFRQlUS
zbQ(@oIN<}k0SqEqu6eqhuT%SBX8*N``TePx{W7tC%xeO`0)r4A4~z$h0{hnJF7nN%
zK~GC-x_Yh;y1yzMS&Y5C+uNQ;UsafTEMCiU35bzXo$WKgdC!9<*uJ>Y?-u#_@LvMo
z-n#^zk~hungWg^O^%B(>4B*u7S|Yyb%aoS!_tQVF=yz-M_p1H8fBxPrXZwFk$uD~6
zH&W72$Ma}31)3^N#*Ar5uN9Utd9xmcJ;||6X+>K5OS(4<)_e(U>3Z|6rs3ZER%=yV
z0$}fs=NXs4ScW&_Dg%%a@=dAg3hoPbJewA9HPz#3q|tg1B9Y?J%WL$?#_7%G9Ho5H
zB1lE=e)Bv(3maDteEg#$VOh`X-GK#7y!>3+&(}WLhaquBC0zjxt4I?7KNg$1EAWV*
z;&bwh>FG717gK$v1kqizu4WI?qLu6v0B1E#(Mtf0H=uqMY<vlL1yI5LU34ydctnp@
zl_BEN_Lsmv8dSdP2{;h^fA=ge{L8C4%43iBSG^jEX;+S=9bW#l&WQEaW%IASHovir
zY)<T~Eu1xmzgE86#T>PiJi$%(Y)g)IbnKjZhUgMV!;biJN&xCt(Y*w|ZSiixp0_>)
z#xH@{bTJAP!oEx3n-<w`yZ-&~*CqVFXTf?E=Dab3X%U_y^3C?GplpS?Se7|9ocCAd
zhFG4_*Kfu82<03GTmlghxR*ec?KvzXVuJWWL`d{vseLaz1UL}=Rx2>2eycKkFc>m^
zDsKdmv<u$0apg}6YC=|cHJ<a)j59xr=<Y|gnsOFkt+0R7_=tNtdC|OrU5r<r{Ix`N
z@eWcJ5`@NLj?z}0O>~}<2-nP7$c;mR5T@Hl8aDO#8VoP*<ZUez5j7ST*2?v<@pGd~
zKzthUmdHciyXr>A9Am8tbII6+2gzi73So3t6>eyn>iGjDRY0l-ZZ_cjQsZGFY7N0>
zM+I5Ms;5PSERQKsu~V{2`=Z9ea0?&xgQN+RL5Pj+>%AxrzXZPc&s_rjC=P^u$HW&>
zREWPbE`s|7_^N6U{eCDen<LqMEqx){%b~dzyyY`g{e#?Rbft9$sZ6-FEsl%4ivsp~
zq5-ux9p^AVJaFY+dkAl8UT(Fr>!F#9A$>SKZtM)$w*t-%nsMGub5(jbJ;d4k50K$q
zeM`?}dsWXkeU_O`uy)2Mm&@2LXscbS&iS)e?^#qRnZ!A56E<bsDfItn6rf94B{XN8
z0BoBVUmL4quyDQvunxXRDhw7m^cW~spAimng|v;0G}2&ynF2*Bx@*kDz^JY?&Lv;9
zK9+JM-;`OD#h|X#!0{zM+Liaa!sEU-cEd*)CuDbWo9cDNyaCB4iwW-KMAuBIjP)7J
zR#x?Df|slySpVTUZNvgCCFOtzv9V?5>}>Lb4swSxF;{Uly*DjBB+(5-FlYj>zs~e@
zppG^)SxI-uag$PkY)`iA%w*k6Yq&KmnpBK*(RP+wqHm$QH$fvk?^u6Bsoznqg=ivl
zD)YQ2IRFM`#KGkkeGa&(6Rue8@La&!$l`*yQZaOArylJU*x#wR6P)WZBd34sHZ0{L
zX7v{x2kP+<z67G3=P!X%cqn3{5Dt!U!;dcHW`iz)jV87)$eQwEC<H1$6e!}Oi!P?P
zSY9-0)Suq8yrW=wC-C@wSKcSOd1_3jWT~eqsjT+8+@tRu5#xQ@>bv(&@QG1>p_EmU
z6$=^b{1&enyr3TUoEqL+4Bzc3nsXkp-n_b0cEgDyt0>(c#|=rAVn>X!LfUnvY5`la
zkw~8c9vg89;3vE7lNd&yz<KC3Ba7+7MUm{=S%zwzi#{EPs=#NT?Vpiw^A+eHcDnP}
zV>dAf8C602PpDeJ1G&W{1|cF`iSzqjTtPAe_3w>5<JfDXU8BABj7&(I!Xo);SLjI=
z;_i(Isk`pf%bo#mcWDP(4oj4n6OmbtrhQ=D>!^GU1fb6&_*0D(O**wZ1%pVc9CMt;
z{f^vA7q^am7wT~o-b}etl9iU08XdapOg4=<%OyQgmucuz#=#a;-a#q61X?11yA#6i
z<@4^Bwb*xTnUrIbTIKr@9JF8e5mpS@#S{&`;2w3La90~FO(v1e=;OFMhD*Jtf@%|j
zI|E#mqlWr0Ze{OiEUxJjk(t&dqvjMfue=>LyJ`K{$D=j4QOG~szFlz`w63Q40ymU+
z$HlspO^8gly7wuK&8Xcgt0y#007s-9dy0&waO-39)1wxOdre0Il>?==%!lxv*E-CF
zuXyoly6JqV=xHF8X}IFKtlL&x$5=-d%99c}STAnliJzu0;T-O@ntO;I3Ul;|3sR39
zeT;Y?5$7DYXCGEyEUxc$s#g(F$7iV_a9Y;;DqTm0r64ql)EPtmiok(rjuAp5cF9jF
zNPvW6hIwzj@TKK|sCs3Fq*Qv+G?K~saO)Yj2zZXP7R4WCuMEA2k29RoHF=Q)j<}n!
zEZdSwRv)1B{GRyWWOIh<tl3`broNa}_TG_Ogi<rKA5yHMZ=ZX7320XDJdDb8vFL4E
z5Y~|+dx}59nHv_ZXz;{KFEee0zR*znTydxD(6?x&G0QxUH)tu!dP0u&6YHQ$FgVF4
zD_TiN8B)UCjcyaW&1K2u^D?XwtHH5h-9j7wMW;nOuxtlBzg3Yr-b#0Hn8-=X$&c68
zoyGnD)d{gB(=@H;*+?vT>sUuTZZ61U-sTo$&{(?h?%}O2yoQeH4t}H4{dQ`K9%+hh
ze0f?GCGwAWEx|?TO1Yb=V*#sPbcxNWMCVTZt7PScD@s>r6#cu|=Xhrpjrn1#=HN+K
zmER+ikee{q>wHm!jW-V{-e~U_1fCX7kA-_(UynUi@6@Xdy#1N=PV0?x5xi%7`tFDM
zhpG4;;*S<SK<<n}0=H1}cwf+xnRdwuXF@^s%S^+E8~zAMQxWdQo1&}fBkQ52qhST}
z2t)4aOVYPKx7*VivEtf3mSxfJ+$qc)I*^+of8|$>j&(Z>zmF6~aoi>3ZlCAfGzF(U
z)KH<2-ZY)GX0E?3coSmJrd&k}E8<JTeV9?{4RNW^8Lquocx>6C;iSAyX3<U^+Zx|`
zov-7poqti&R*Yb2WWR&X{PnOEO_U-jr6V$xje?T3qqQ?>^n}Z6F&k}qEY7tk1A*=o
za_^7}E`-}2)GUxvS#PdH_n6xCt}KMEyrj+LJil_-L*WtptWkhsHo${#w0z=q7L6r&
z|4wI(FY?^miFU&_JN`8>%3^8P<v17{zK)0VdwB6PX0Ea`$IPilI{&KO!^O=9(_U*(
zP>&l0AS-(A-gPm5p&mNteR4$z0ZbUySbrfXEBpQSQqYn?DciY+i}#nVh!qL~um1X-
z9fS%zViiqtP=@3klV3<#5np`3KhYHbYB}o{Wd^)A21H{Ves=1AylRThN#Oc;h=}){
z%Of7|N0D2Q%T8h7lGik;8t#(m%|T@VzI^uYp9_Gz7Z@gER#_#hoj^9HdHYIxLrJAU
zJawi;bowEdaFTCRKScIt`}=R$YDm0A9n}u+(+lcZm;9y)6YUQv`DBF$zDZK+8({*m
ze8OMcQUu82Wcxjg7tGJ)L_<x<9AD=@9F3h&vpdPRj%km-&DU2V6m1{QG?<%)i)W2{
zE?x;I@W!R>XNLJ$1(ZdU-wgeTTZu<CGu?15s416z%ye(yf>|~%i@em*6GvD?FfhuQ
zGflj6MVNT-17irVOL`7jz>L5?mw9`3opz!(ZH(yJ>$`V+k8pyP=qYx_lGODyWp;`R
z=Zi7g?dK;W-mcYG4s*FU(#cdyOR3p)inU34RKa$N%`<$2IJyvv8a!XRGtBN{hb=<!
zu$S&#Mc^*4n&}0S9CTMsm;;wSWSkOh2N)J1?K-6Uls<Xlywa;QO_9sDvb^f{@WT_t
z3w@Doa7!tMT>>P!Jy(M6j_li-q4dS)93?8-rEN7Zx;qu=NFKZ92k-aXIBSSSrz;Jq
zaLew^*p<ExZl*P#3v3hENolUA9T0=E`Fn8Zu8AP(h3*zK{;HJ$g>-v_6&Znjz@nY3
zvcQ<*FF_x{zh|f;f*e8>+~+Anvkk6U>U<!YxQUbmCDDv@#~XGJfd%<_(M`BGp3|5X
znQvyiyd~>?y?QDOLh}%4v$6eRSr4Z_f6<5SJ<d3G2}rXz5P+6X+naU9KcBPP&wo*o
zc{>l+;NPy`n9BE@TQmtj-bap*lu4ZP^j03*K37;s%tsxeEpaDjvJ}2hs4k(7)`?bB
zD!!*5B@MU+)HhpcQ~BL<p`HFjA^x#tGO=^nmR_%FZF96>T_1agR-XfY6wGD${8m|b
zQnhEdru0rl(z{LQ0gP`=|G6~a(mjiDe%EM+C?(n)U;0fCb64I}+on_cI|(zW9jc-d
z@<HLM2dKciNp{Xt(LM1>HA=*%C+eho*T$6zI`>yyTiv7yKr8yBaMYX(7s=KHsUw~U
z+X8ueT5NKj;XRrO@YSlhg9h#xS9tzCJ^ZHV3At>gf>q_xtCFq=g|vpFI208%42xJ0
ziP=z7hQ!Ljw+)7c$QLllKXH*;eo;}O4s04Q3Y=DNzM^~MXl+(l`1o_`-O<lN=vLXQ
zV??$Vhoh0=(D!~uSiX{!uiC)I5sESWh>dWtR39?FDr#Ii6xU^PF}6o=ap0vlqY0&|
z4};|vxwm*>j2Z2`+Hv;ZE~Fm5@l@Q^(k-i1Ak1(P%fI2=_n<FbMU2vUej91Se%-C@
zEsR1#FtJdv{}Z_mk*Oa;aATWWN@WM%M}GbSh6@Upby3U;-!ZL0(RnDV?4(e|nex-R
zg+#9{x0DY%35R41;GhaP^C+e0fMX~>wI0*mfwqLVoK#$qiny3zhT#{r8v3u`D{Ai$
zu79}032VWG(iJ74*zSVyFuupuC!Xzh$6h1eMy4LCR_T$b|5oXyl0x8y*n1b<j~`++
z_#4^=c9Z7zX=uY^-p)^BTmlk1tobk{vh`}cvZY0N^JiGu)FHRT!4C0@n^eVxZgiTp
zZ{H7FUG#Zcq73sxx>9a!M9o4%fNq2(=t6+Q9IFV-n1c8cAiSS~509CNf*If+2g>Jb
z6&$<{k+;PpGR#j=B3YqH=l+0zI^qH^fmQuMZ#af1ywF4{oLfpcHw{Id1i)$X5$d!K
zOej4{5sGnSa<^Te6MwuD%R)J|C<^vZg5o!FCz`^$TD-giOjAU0w2Fcpp<%JN*T)zu
zv9=~%?FbBw^MuAq2E-_(7b1f6nZ}leS&ATmWh76MP6T46tHQTFu?LVo7keP+Sm+C1
zKgA_DX1yR^%`Qct59KerdzL$$2s^{@!rky&-B<`fEjp|9@CXmd9Y`o53R5Z{awMVl
zqhX%Jc*htKUxN7&LUN-*be;oV@dc||^a3J%3AAb?FFjAmv_5p-xX+s2A)>nzq#J%L
zq~U#jU7!3CNOzaJ1R59+@Pp4S5Bhng4>WCc^gCE_8t=6>6bND$h?pBSg;LmiWhEZX
z;?+`l!Z3v?$w@aCEGc9JtFV@QOqFF&K`RNLqptFe;7Mfo5ULphf*6i~?L@@WVrvn`
z)eA<s&DP|Ym$AE2t+j0rXZ=vwBjTNl+CmtR5XKWWV{nAKTVMdb1Uh`@`_51%y;rjf
z^ZwvQ8ZP5^fLrGGakh`JQp4;njd}gSYHDXS#>zSNC2*Yw5xeL=JI_x`LkeN|vG|FR
z(j$dDj>;MkQq8D+lC5>$<d(2_8Wt5UIB!b#I7Cr;hUOjQ*y?3+mUo@q$vy+_biV$z
zl9W9~tpc%&f%mrdk6wgTA4s@ER69Hq%J7J|)TA*&0Cg1~NLp6N{gr2Qfzr{upqT!}
zTf%5GxoK!z8^_!V0yC%MFR)fAoU!oM(LRgMg}11`2`9N$E)gjemHyB!Hw~#<p8Ygh
zPGmXj$Ja#Qhe(KJ@kf}ZGe{!>OTt)XiWJ54Ad(XuSHU{eG66h+Ck)`?j7r2#SFgiF
z^niLFT^L+2MtooO5yW6Z1WN%rbM>d7_DjHf=@MAT{Y?Y7<Ucu5hIOC_I<ZQd!&R-A
zU?b*9RQBPm2BDo)$?$#9#DK2%IpZt}!m+^-J-Y<h5K=4q>jp8307AseHx<GSz5oa#
zTfch=?5KJFsty`g`R^W!=z{VR_$c@l@o+&1Tw2JQ1tycAr$8Gf)9qMtOP5i;O#P5F
zL)^}sU$!8QcSGu~k`On-d(1aLc#r*>RF?ooMWbFRgU>$xZQz_2fxjZ^-uvK)i%Xyj
zA;!uOBWYU%LYwb_&}m|Pm%#RU{kb~Tuj+sk!B0bd^XT7W{kN?bp)I_*5wC@GAA7DN
zG<YdKDHfn4Pot;Z2h;AT{$}(3AK0uECJ3q7W;+Wy(O~nv1Qx~MD_{IJ>-SYht$!_W
zdg_G*L_9XyI#O?S8p&D-EC<wO04gyCa7(?p!SOL-zn{fX^$IY2r;`624kXtKL}U|K
zp<{RDAt80}@mVI+_MW;s>hsbwr@%)y!rHP;BbSnl{p@FanEyd?d><EmZC6uR_Ix9B
z*H5^xnxmeR@|JiXU_V*87H*nLAzl|y*9m=ULw{mV#k6~RKJ5ZqS}6mRehz^CqARi{
zrCF>{RrHOSS7v$*&zqTs?PSD+pY;hdYWr<UN~BGMMlH8FQPdhW&h}BU%^aM#tPlzV
z1S-<s6&JHjgbt^oM5qEg*h#xI)wh8oXx$6-5{M#4D41fY3-x|PKxln}S88y&ue79x
z^4&OuP)g@durt}X6)W=d+Rf=%(iK8F&64|LN)`8wqDfjTh;E{iqVhq6SCLwO!tZ{@
z@xHriMr9JiZ&sN`wk;WUwD=Hq8I!_j>UY#bo`=nvi{(?jD65EWw|T-dXN>Imd2dbZ
z>OcEPf8riU{~+@=L6_a=#&R1t4@_I_Q|o^ePJDsVhRgjRGrs$ZD<-+fL5CBy)fBG-
zB)O`+PQWqm8;0#iwhi1Y`d95%bRL`7N*zDtho%5J-&r%%{+=3-Pbi<HPGJ=qCq|@{
zhvz^zUm8SLSNsvU&z{Ss$)ANbj8M(}#bETz^30Yf2LiZIOw6=tP7{`W3)v}>ToBGW
zs`iR_5<MAgGEx|Qd!=Ge{iAIKjSVt**!i%avaCl^QLd1y#)@M?OGy4pyp~l+d&TFu
zlK@Gqk_MQN4}`)TJa{w3LEk%SIVZWoJFfD{WRe->t8HCq3jLTvX8t2hjtTvBW!+Dc
zpQhsP-d<juBfWzEJd0Pd7jma-c*`*Y+oeKt#1XT@`gJ+HWw4Q1<3i(3S0t%3UZb!l
z19+Gw;if-HmMlgqNj^9bdd0I<<h_TeVYOLM0rN;`{Jh?lTTO~qMAZYiBkpVj5Uj~G
z_d!;7j0LAScUl`$PTM@A%nu3UWlSW$-PGbu7-iBy8cv4XRfY*U3Kas=SK$C<)=>Vd
zV}yrBJKK_ah?9u0Y}`TCu&VYT?m|~1aii>(Yau-_Bb(iMn_kfX#ifQuTIiWFBwa<{
zJL@=3w{p~Q=wj$_-W{vHUO>3@jaDbV-C{jX5V9kL?;wAIH?)}hnUJ7Gq%6f|x4rxu
z8MR9w^F*}95iEp%6EG{`0*$pY+c&+Cy#A3Ogp>kD65K%@o{_3s|1^tdA}H8F%pNDz
z1G|#qD!;Lo1g>HCocn|75P-4PkFBCXi;m;Ox-4+h$J7poukWr|3Xb4N$g|qMGTCR5
zvSk%An#;y*X#8_H?#>kK9mu7>67^q;{=Zw-{D4P7+#{#wF%G{zojf`A=)|>wkG>q#
zN19Ja*#2rMg4N_%#cQoG8ycI=187tv?gRV2JF(xeOFyzqLY&__(0_)g3SiyLs&Y4}
ze3l~~_e_^aWlJDDBYmWd$&>tc?eJFOW1^DMLFl1M60X}xd$aSA2-R3ATd-#J)4Prv
zYp~%o%}d}OLC_*Cj%}pQYZ3K>G~Cy3KKRQ_c-BaAy^t|heb-^v%ihSpt-;7AwEe#Q
zFoLajg7?IAvZju+mjUT@Ue@ILM~e#V>!FspTQ7{jtU=UJ|29j(3p{MmO-kov`<gS&
zGad3cO6Rzx&9i!Yit3dQ4g|`mghx;Jr)3mWwy>7U2%p|ohZ~zeW3Rr#L4u#O*Fh*(
zi*0Gk@}>16+uPgT-RMR#Z5*l)T4ITsIuKs}tmsV$&@}jYyQq|fmFZ-wkc~N6YDV6N
z70Xp$4#HkP(+-L1(;k+Wk?%^3D4V*KtRi){*+j>_6U#=?^`kI~R)!DL_(UQTNnygW
zdnVajk4<Biw-Yrewdvhv;k_npD3247c3?VL*ELMMunyiDetKK+u(wcmPfNQHV0mj<
zgrTImf4fxpLGS1(aiG@hN03@x-?ef7aU0jXqFS2Q`g&7+3~^S|apOhlSV)TgTko;V
z+!p73k<He0hLs_rImd?gXT?43->kbOl}B+obvdk^m54#M-fTTU<z*Kg%{!Kt;+ZI~
zDelSnXvCAlchl;oh6_yPqo5p66K4k!mUY`;K*UOzYez)z*>&FBff<W91-qS!`!7H=
zl3RG1B8#I32!2mlz~2+o^CdspoYL;Hi00D4N%c;9SD!_9_0E-{qO1tz!2>jwk&-yu
z=9QM_;S={)-g9>#AMU>&DeX~RK!40_{)8ZNGaOxg1g=R7qi2c~h^Vy}BUAf}1xef~
zJzd#Kx?|5+5NGDr-1bUD+_u|!t$j#J{!Hm3q*qV0r#;3S9H~v>l!+s~cA5~ea%JOk
z!B6z%&om~1G9>UjWLM=(;u2_YM=)hml^3>%;6LYEYi)n=ohkoiFbK^KRdYgps0ZT&
z>kCIKtHWpaHaQe;cS}ZRVz|<><=kl)6M?u$Y&Rb{RV%)tc%3zXXYDX_+o?l<h?E97
zj8XvKS3gl2Fm<sQQZ0ecq?+Y_M6Ni52WLm4K8UFB5jVuS4WtMxzu&ASoPT8XAkxL{
z6EB0HY3K@NPs+jIFwfIOK6zc1Mg~p}ALJy@`EdR;EQ4=S=@1~n|CqG9fa+sMD|g51
zp?dU+@35bqvBXC^QD!f8vJDw~THb5EKpXI2$t5pjQhH98a6>*ckM?0ql`25x0QS30
z0>xo^{bm=fZWd(nvTLbsl)M}i)4>N5W>0b9+ZH2Y$Or-c$`WpTOMH>}@!8n5ao-A?
z>3&M570Tna(X2N|88k>Ic}&HLl*l^oYuq+P+4vyHhYkEN?g#%7P5(7DA+R6M49(K9
z;u@-vDq2KDHG4ZDw`Pg?q*8_X!)Wtv3k@wCtu{XTf8|<A&6rJOwsg=;OlC6evBQv|
zaENeCc>J=q?=bnQ&gb+FStRc`_T756;-0Z^5q)=M<o&-`@TF~+U5&e5UAJ0`b(}(*
z;`ks-YXTlm+8fNyWgX^X#Llgvd~9Yk*#@OJ-`V}LZ4ei3d+)~thi_trzeMVP$b?X7
zT=7g1Ep_#B8mRB;ou1xFu~k)fM|tjW<`_tNElei;L8MWnvCqE>h16Zi*u9YwW3{lJ
zXkdli2I-cwr*H^<#Xxh%dk&vsygd=rab<Q!g*`#NB|Fn6@)AV%&mw?d?y0d)Ps&q=
z3kE0mo-<a`ezq!Xe@jgz*$OB~bM}Vz?FtR=m2dAJVNcqJ!G?s__5qc<kBsH6@<tIZ
z(q4}R%25>|UN;e~KeHBhIofXAzZ*<v%A9-u3F9qvaKDMygVbNr3BC<O2)DJleD7AU
zJgIwZC=kgZpNrWc>N4*=r)#*U!N?!h2#I|Aep@%_0qS(KvzY5-k~=I%JNiGk|6iD)
zTLx6pp*~awUPRQgw{vq#nxnmc%3VDf>3=H^S+;$e1Qr4${ERjJ=F0dop)HQ!IW!?A
zK_H2vbRA9P=|dmZ5m#gbYoB*_Om}B3u_uAfMW}5`e4h~1InOA8DLD4NshqKO^=hN<
zDV~Bg=cdYn3ErmFK+H+}jvtN-IAyy1t{sTwm#_6>PR0+5Xs0QVQjve0b8leZy-Npe
zzcT%iX~I<Z;796*7^rhd0bu$UFZ8U8)<wv4KHO1|>AP1q#G3QWsM1{`wN6ZtgW^6a
zDW8!arx<iI=-I&~fG3xsGyWyIv6zK5yY^Kk$B7bFKHfMwDax~re#+xFV<LjXR)rZu
zH_V6bT@0lvMej24-%xl<9oc#PZuy;e*i{X*NptES&k0#7g3m=MqgbW`0+Vy5rC8IW
zNJnK|f~TMqXC;e^l&*6NW%cuDLoXBpC&&}WpQKk?jtmotJ;B<H?3E)C^rbH1frZ&H
zfD<V>$41-aT{LbM$z(oygz}~5>F7ZBi>v7D<!GkVD^O@i)te20-c)bY7reorGplYB
zNsOMVRdDvU#@l1yFBKu}y?BulU-%Mkn#tgvzp;^@>507`ceNVTIh33jB=HoM2HsGe
zKGxtb%THDvQmY?Ys(nsVqw^p>p8A@imYgc6O)XsbBn?MmOl#Qji+zJzS0Bnd-SKG!
zuIs2qF`w#5ABTmbiZk`;j*QnTED*vsBSM!e-wEgqHTC4MRN+E7I`Hnx)hydq$svQr
zvaKdut~WKYptBTP!vt6lDm+)^Gb6RAm^%2tVNmBjt_~q=Q^0TBf_O7)vX}MR5b4lI
z4eUy+&6!TzYw~!J4B)G<mWk6<{hOmR>!X5JJUTUkmM)vSpF5URW$dQkaj^S`9TnnU
z8P5syV9(T>NKKWku0UW?t&F!f2+~rP{9{Eo0ZR=7bS=@KgJh^YZ_JyIw#?y+S0irH
z#xy{Y>_n0+0$N|^7p=MBB<Jb~-KCc+<LT@42t)?0Q;I$HexCqzzR;~M>92jX5Uk2u
z=eH|wuAv)qf9@KgS7O-ncIToYxuAP~-9?42C?j3`R{dfR)bB;aAt%kPq`;s*q?f*%
z!o6y)DKD_*R#5*q+$G*rYiF6B+Q*r7zFqc^yUe>lS4)q?xc@+~wL!$HGSuksBnz^i
zhGV>d`j*nS$i-MKc4lFoWvSYlafV}Sc6GY}d~%pu#zwpzEAYghpn@l3TbrYswUBwK
zDtv}exq*?bdu3U?a?X*Df+;fud8|y3;?9QBaKVkiMdyGgSYo&JFrb?cJAl)0+tD}P
zP3SqTR#+Nwafij0&UDi+-`=h%lwWZ$$A~oM7iB`?KQ#njoo!3#7Eo9kX_0W@nmi_Q
zuPBKf*VUHu>CHX9)}NG;iMg$(5s|NJk<eC}CjBMVR6x6F9cMX4lVfF^Nc}WloxG6v
zjHY>_)V49#vO+s{-ga4@@<jedubsL&(9jePF_wRQY_WX@&XV%X%w<Qv?d>a8|6LPS
zN{wFrkJIfowo$`?&Q4&lecG|C>d50k-pcY&H|DfWdTRTKLc_ALFi41ukE7Ks@=$y?
zR*lwYKKTI*`Sr`l?{?dTDEVP;#<<))y``%Mi&E75mUslE#0)u8(2<??(@Wi*cCg$&
zxq1!8J~t<(dD!M?XB)P{D0o2tYSZ1|b@oCX5V~h~T|uJllsmrZR?%zk_noM2s1PS%
zvHfDnqC4BoI?N8<xLVH=73G^<9hsj}#nA3aKta)igs`(Wvk^Lfp!%g`Q1(<c4S0mm
zD$JY?CcN}*aL_k>?At6_|JZ*20<!<i_uyiEhfw}W(&(!q&mZTq%9$+Xl;e8H&BPqU
z41?mQ96ZSM?>!UpHs3wp%=C^+uBm|uE%?xWm+Spa-gj{#OQC~KL~shPK!x9d0ba~-
zMC@Z4vnw8b$>T<2Vcyl2YXZCZN~kVJVmnH~Wx_~j%?sEMK2H(W;&U>fghadqaJ%hC
zeXbpoE*925(-{9y_;wgmGOM%O<ek0^39p2Vu-EpD4=TU!MrjhyDIr_9;gl5|`x^`!
z){b&(sL+3kEV!NDkL9EEWI8{4q|}pKtF|;qqqMZvM2?KfJ@=}*P|-5TmmiA5epJ;*
z04n?;Pu$N%^ddk3_Yy$qN8rg^2;o5FdY%$;iJlWnBC^{0e@Z9+yW8Ij^8e%x(MpId
z6iF0Vk^4|p#uS?}q9GAP?@#HRGV8#NFqu#B5p?W6qq+AnD<Z^yR?s6qfAPXrKsLw4
zyXi3Y%*!=v&^T6iC8G!_oc-hUej0Wz_a=>&!HwSgY-VyaW~C2^?!)J{&1bP{ypCu@
z*`N#MmVu?mrt=g;>(~mL4~Pf)@WMAU!i7ZRYs93~!%R!6FjHKp_w;(c!}-60hJP7n
zpx<b$Co*jmc-t5+_kI?M3CSGvD4!5J{YLNAF-)5~SlwwLdMX#=aC0P!UsBY61QGv{
zvW}?#J~g1K{zvX@8s@(Xeg3Qdvh4BHyF@&m8<C&ICM%z;;tJYFcsOhzqNxEqUytFK
zv7QJdmQT|koKoYGz<%zA(4B<0zp*})q~8NLvfnc^fLrP}nR<x)_HVNIz8~v%VuOU=
zvm*PT2fv9Fe#%z(+Me<IPQN{i*gEz;%c1fjjjw1|{E0!_*z!g@6`OD_lG{J~N`K<s
z^~yb=w@ckoJo{Y&TgXpH^)sV6K%W&|*HnjzEyxH_hjk-(I7>ERI5-zBCtgRzUG02%
ztKXk^3Ss!`xR|-Ux<0B2p?X2{*`<{yTgQETd5j<Y+NwRPo3SF>Xq4aHzSY6r!2d7c
z7{=P?B=x=uUCe>JOsF!nK#>kfA1TEp5K^G__~DrZ%Kh`?!rE9tf7=Q$3C*@y>K!2Z
zkG>Kj2P2qxBBm@Q#w-VO<jnC@oVnaiCK{ztP(2B*C~yh9^K|{pL}f5&HexzR26-+W
zn@%yD_>ojy6B!Gq{#F{MeHUwTHfqSk^6Bj;H5pQmPXbucw@J5L4_;d)^i%}x>m+Ny
z`TeHF4Sf)4-vFoYaCi=7nefR6B2@~0tBLLBe)IA4DoHWO`+YEF%UEaLQ<mw%q}VlE
zW_RT&DcUf^3v{~qap3Bj@o|BAEm9a#FYpTW^<?jkIQUyXe$RZk4NV*f2Zf8>*@8v7
zHbOq=j-Bh+&Y#!LP}L_8y)q0~h`nm&#HTLBR{3Hryk(4=zIj?g2iuNZ&{I%0<g`O4
zJD{vPT5J%~mtf~Z4+a?bg+^;9L_-qW@HZ52qFf2YT61K%7vF}Oh`N>s#}hwU5$2=V
z1-Tuy;bKou5ouE#oQ^Xl9tA8=iZfCfqP*K8SPVFTE{=(tx}v5VTf19QN6##9$MRCO
z6mZ}!TKd$(DTWh@ay$}5gSNAV{W|rJ%Qxf>Q65tSb>GdUrpTc^EXo*D@AnWjwa(JD
z6i~Z5Ar-~-(0sm)z#G*|WtMUuB-=uEn4NPx*{p3^SR1W9^QwE^$>Z!^`29tzUf4#z
z$&MzAhn|^hw)s)Xq;Bj8D@v`66*<hd#%m`9>9I#tO3XdwGJ%Vl`7iDgbwk_Nhi<&O
zf#i|T986f!LB0%zK#JT#KEeybcrS!U%b4Wji%Q+)v<fCTNKsnWpNot_p;i>4E14KT
z|IoQNQM%=$JZ!R43d&^_pzdWF`ZZ5~yR8m|S=Oyrhs&>PcdB*dJh=p<H%H@gI{Rk~
zr0zX_Tsixc<%8c!G{iV;p~?Vtt$H^2f^v<_s(n0j5Nkn;l}LtD$hP;s?E5DmW}he1
zL**7DW6gQ3qxl46N<l@Lb=A=eOdA~^W5;hh3&bDd-9Wdhzjc&`dq-9aPmhG7q{Gk-
z?I8QLG?^rZG+BU@@*BiKd*J|)-vBG$YJaAG2AQkblltLaGd7#4!fC;-3EcA8tKd6o
zS1hCZ&)Kx!S}zNW-vXEfAnxBoPQJFO4s$=}ltXi5xzpPrmmIk47~wo*OPXH>6T#@;
zpQSj4wF&eEZ{AaO7d(7d<_B8|CmAl8cQXU*4-h<-VQFo7eYt$1VDJ-a?;2)S3Y}G1
z)I{pgO*oO<-8!93qZ&g}UH@>-A<`B9@B`m@D)8C`R-)=fSIVOHOg9}-_@{92YVsvu
zpmb++_&`UPZXpH1m6g4(U~D$|OwjR(WI}GUqX8lqv;fMKelX$UTSlHc*nVf2w%mAc
zx`#N5EJB$IXJ%a2eRSkEOZ;miN{BxxPDA8k{7_g<OhH~6;NgQkb7~9m=WhyAeZ$B)
zto%k0<cny({w5<p9Rp&>F8?!<_s3U|{=Sr<0XLoFo^eB{le4v6&e94nmog3!dRU<L
z#|aa^!Or1*-yWa)p3DaipMRI*SLFR|0^oN;G5*(C#XEmwANQ<e8@y--g*0<5>(E9%
z7mAkQoNdVOKYX6GxUCA}|0v|1nzo<70Dcaq_h%F0nuyITun1Bab(E8;;K-f4YRso*
z&|XXth{`zjObB~^n_#w?CofZ0XoD09Zph_AV-a<(^|66E9JkDoP+um@pyBmWtR#7i
zKh0G@lO@b7EF1yWh(WD#nxFG@u5(+_G$#ba+FSyU2Cs!XQq~Me@D4rrVrhACMG1mP
zq{~ac1m>!#E^hpM(*Jv(HS_Ooe=o@YtQ~?wh3Vpb$JRE-#q4gl=W0#i=Jn@3GdWH+
zB5R-zUi$p4Pt@H<pHtss>C!1qB*DqTie5+B#hu|ZI3^|$8u=}0_m?T2-|<T|7|A6R
zlIV(v=3bJ%5<^lHfwx2Zk%#{Y$wf#`TG#KZAxdv)O&2~lW!2DzcJ^syFzat7@^2>c
zFUmjo-(n)ww+a=ybfWBqDDP&dUNc1YLE_;N@7znma)6F_f3CRFLo!_ap01;E_JcF^
z6mD!i8+sf281kMN*|)yPADTT4MjlSjbff|=#nBmgipI)G-!QzR_kG!b+&6UWk7vsN
zk(BXg>L~wAMf?#J{~v^$OBQ!TUKmE{DCK2uZZ+K12!0r=C~_1>LJQsq(^#@Osz<M-
zv9%j>N>DG1>2hSBl%_Si_|#G0;|YlDgN7d^1dOIH*G}m5gh^6rRhi7v>n6WZ92m-j
zr1+IGMGOfcT*u}1H!k)~N7Tlh3D`IIURAHyMK%lbLsDD_5gr5@y+7h$j2Z&uh3g^E
zUi_c`SH<^m@4)~3j+&9uhsT(-uMJoZOQuV(ip1MV*TVK1+uaaH5`F~-=2u$>aj}p&
zr^*jFY>*~9amAMB;d89;(TTyRl~I%bDA@Ru?S$KZOp^Ro6#lx5g}+$t{*0`Cedhn~
z33(7Aj!JcC>|NB<Up%!a1UwPPGCe@je_#LAI{XUX)hAB(?rJ}WoDPUlU4HssNS!=o

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_ranged_hash_range_hashing_fns.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/hash_ranged_hash_range_hashing_fns.jpg
deleted file mode 100644
index ba5f6cd1c5d74f7763258327b3d1eff1b45af327..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 35579
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html
deleted file mode 100644
index 151ecfc1be98..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/hash_standard_resize_policy.html
+++ /dev/null
@@ -1,986 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>hash_standard_resize_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>hash_standard_resize_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A resize policy which delegates operations to size and trigger policies.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">General definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Policy access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Size access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link8">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link9">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link10">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link11">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link12">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link13">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Size_Policy3735929689">Size_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Size policy type.</p>
-
-
-</td>
-
-<td>
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy&lt;&gt;</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Trigger_Policy3735930002">Trigger_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Trigger policy type.</p>
-
-
-</td>
-
-<td>
-<a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger&lt;&gt;</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "External_Size_Access3735929535">External_Size_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether physical sizes can be accessed externally.</p>
-
-
-</td>
-
-<td>
-<tt><b>false</b></tt>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Size_Policy3735929689">Size_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "trigger_policy3735930066">trigger_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Trigger policy type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "size_policy3735929753">size_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Policy3735929689">Size_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Size policy type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "external_size_access3735929599">external_size_access</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#External_Size_Access3735929535">External_Size_Access</a></pre>
-
-
-</td>
-
-<td>
-<p>Indicates whether sizes can be accessed externally.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  hash_standard_resize_policy
-  (<a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor, or constructor taking <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object).</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  hash_standard_resize_policy
-  (<b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;r_size_policy,
-    <a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
-
-
-</td>
-
-<td>
-<p>constructor taking some policies and <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object). <font color = "#666666"><tt>r_size_policy</tt></font> will be copied by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object of this object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  hash_standard_resize_policy
-  (<b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;r_size_policy,
-    <b>const</b> <a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;r_trigger_policy,
-    <a href = "#size_type3735929547">size_type</a> suggested_size = 8)</pre>
-
-
-</td>
-
-<td>
-<p>constructor taking some policies and <font color = "#666666"><tt>suggested_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object). <font color = "#666666"><tt>r_size_policy</tt></font> will be copied by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object of this object. <font color = "#666666"><tt>r_trigger_policy</tt></font> will be copied by the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object of this object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~hash_standard_resize_policy
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (<font color = "olive">hash_standard_resize_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Size_Policy3735929689">Size_Policy</a> &amp;
-  get_size_policy
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#Size_Policy3735929689">Size_Policy</a> &amp;
-  get_size_policy
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;
-  get_trigger_policy
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#Trigger_Policy3735930002">Trigger_Policy</a> &amp;
-  get_trigger_policy
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#Trigger_Policy3735930002"><tt>Trigger_Policy</tt></a> object used.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Size access methods.
-</a>
-
-</h2>
-
-<p>These methods are available only if the external size parameter indicates that external size access is allowed.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  get_actual_size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the actual size of the container.</p>
-
-
-<p>This method returns the number of entries (used and unused) in the container. It is different from the container's size method, which returns the number of used entries. Calling this method will not compile when <a href = "#External_Size_Access3735929535"><tt>External_Size_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  resize
-  (<a href = "#size_type3735929547">size_type</a> suggested_new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Resizes the container to <font color = "#666666"><tt>suggested_new_size</tt></font>, a suggested size (the actual size will be determined by the <a href = "#Size_Policy3735929689"><tt>Size_Policy</tt></a> object).</p>
-
-
-<p>Calling this method will not compile when <a href = "#External_Size_Access3735929535"><tt>External_Size_Access</tt></a> == <tt><b>false</b></tt>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link8">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link9">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link10">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link11">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_inserted
-  (<a href = "#size_type3735929547">size_type</a> num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erased
-  (<a href = "#size_type3735929547">size_type</a> num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_cleared
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link12">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_resized
-  (<a href = "#size_type3735929547">size_type</a> new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized to <font color = "#666666"><tt>new_size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link13">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
-  get_init_size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_resize_needed
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#size_type3735929547">size_type</a>
-  get_new_size
-  (<a href = "#size_type3735929547">size_type</a> size, <a href = "#size_type3735929547">size_type</a> num_used_e) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries what the new <font color = "#666666"><tt>size</tt></font> should be.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/home.html b/libstdc++-v3/docs/html/ext/pb_assoc/home.html
deleted file mode 100644
index 79b80662062f..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/home.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>pb_assoc</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-<BODY>
-<h1>
-	<tt>pb_assoc</tt> -
-	Policy Based Associative Containers
-</h1>
-
-	<h5>Ami Tavory and Vladimir Dreizin, IBM Haifa Research Laboratories,
-	and Benjamin Kosnik, Red Hat
-	</h5>
-
-	<h5>
-	<a href = "mailto:pbassoc@gmail.com">pbassoc@gmail.com</a>
-	</h5>
-
-<p>
-</p>
-
-<p>
-	The <tt>pb_assoc</tt> library is a library of policy-based associative
-containers, designed for high-performance, flexibility, and semantic safety.
-</p>
-
-<p>The documentation is organized as follows.
-</p>
-<ol>
-	<li> The <a href = "introduction.html">Introduction</a> Section describes the problems which this library tries to address.</li>
-	<li>The <a href = "motivation.html">Motivation</a> Section describes and motivates
-the main differences between this library and the STL's associative containers.</li>
-	<li>The <a href = "design.html">Design</a> Section describes the design.
-		<ol>
-			<li> <a href = "overview.html">Overview</a> describes an overview.</li>
-			<li> <a href = "ds_gen.html">Data-Structure Genericity</a> discusses generic manipulation of containers based on different underlying data-structures.</li>
-			<li> <a href = "ms_gen.html">Mapping-Semantic Genericity</a> discusses generic manipulation of containers with different mapping semantics.</li>
-			<li> <a href = "hash_based_containers.html">Hash-Based Containers</a> describes the design and policies of hash-based containers.</li>
-			<li> <a href = "tree_based_containers.html">Tree-Based Containers</a> describes the design and policies of tree-based containers.</li>
-			<li> <a href = "lu_based_containers.html">List-Based Containers</a> describes the design and policies of list-based containers with update policies.</li>
-		</ol>
-	</li>
-	<li> The <a href = "interface.html">Interface</a>
-Section provides links to the interfaces of the classes.
-	</li>
-	<li>The
-<a href = "examples.html">Examples</a> Section shows examples of using and extending
-the library.
-	</li>
-</ol>
-
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/index.html b/libstdc++-v3/docs/html/ext/pb_assoc/index.html
deleted file mode 100644
index 1e0864126e76..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/index.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<HTML>
-<HEAD>
-<TITLE>pb_assoc</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-
-<frameset cols = "15%, 85%">
-	<frame src = "toc.html">
-	<frame src = "home.html" name = "content">
-</frameset>
-
-</HTML>
\ No newline at end of file
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram1.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram1.jpg
deleted file mode 100644
index 6e8a94d3d0040178dddb460dd48280943c08cf99..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 66060
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram2.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram2.jpg
deleted file mode 100644
index 4aa2c6cb8ce8d0225a023b2c66ddcc0ff859f576..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 43557
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
R!&5&VG?rv#5bVqN{{XZ}W<me}

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram3.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/insert_resize_sequence_diagram3.jpg
deleted file mode 100644
index e7cadf1755af936b674a22a6a1da7668573106ef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 39549
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html b/libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html
deleted file mode 100644
index 3687a5b31763..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/insert_type_methods.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Insert-type Methods</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h2>Insert-Type Methods</h2>
-<TABLE WIDTH="100%" BORDER="1" ID="Table1">
-	<TR>
-		<TD Width = "30%" ALIGN="left"><b>Method</b></TD>
-		<TD Width = "50%" ALIGN="left"><b>Description</b></TD>
-		<TD Width = "10%" ALIGN="left"><b>Complexity Guarantee</b></TD>
-		<TD Width = "10%" ALIGN="left"><b>Exception Guarantee</b></TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left">
-<pre><b>inline</b> std::pair&lt;<a href = "find_iterator.html">find_iterator</a>, <b>bool</b>&gt;
-  insert
-  (<a href = "mapped_value_type_defs.html">const_mapped_reference</a> r_value)
-</pre>
-		</TD>
-		<TD ALIGN="left">Inserts <tt>r_value</tt> into the table. Writes only if an entry with an equivalent key does not exist. If the entry was written, returns
-<pre>std::make_pair(it, <b>true</b>)
-</pre> where <tt>it</tt> corresponds to the new entry;
-			Otherwise, returns
-<pre>std::make_pair(<a href = "find_type_methods.html">find_end()</a>, <b>false</b>)
-</pre>.</TD>
-		<TD ALIGN="left"><i>O(1)</i> average <p><i>O(m)</i> worst</p> <p>(<i>m</i> = #entries)</p> <p><sub><a href = "#mmap_complex">[1]</a></sub></p></TD>
-		<TD ALIGN="left"><a href = "exception_guarantees_specifics.html#basic_guarantee">1</a>,<a href = "exception_guarantees_specifics.html#strong_guarantee">2</a></TD>
-	</TR>
-</TABLE>
-
-<p>
-<a name = "mmap_complex">[1]</a> Note that for multimap types, the mapped data part is a collection, and so the average and worst case complexities
-need to be multiplied by the corresponding complexities of copying collections.
-</p>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/interface.html b/libstdc++-v3/docs/html/ext/pb_assoc/interface.html
deleted file mode 100644
index d5b5eb66f9d2..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/interface.html
+++ /dev/null
@@ -1,342 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-    <TITLE>Interface</TITLE>
-    <META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-<BODY>
-
-<H1>Interface</H1>
-<p>
-    Following is the library's interface:
-</p>
-<ol>
-	<li> <a href = "tutorial.html">Short Tutorial</a> is a short tutorial. </li>
-	<li> <a href="#containers">Containers</a>  describes the containers of
-the library.
-    </li>
-    <li>
-    <a href="#ds_pol">Data-Type Policies</a> describes data-type policies.
-    </li>
-    <li>
-    <a href="#ds_tag">Data-Structure Tags and Traits</a> describes
-    tags and traits identifying the underlying data-structure and its behaviour.
-    </li>
-    <li>
-    <a href="#ms_tag">Mapping-Semantics Tags and Traits</a> describes
-    tags and traits identifying the mapping-semantics.
-    </li>
-    <li>
-    <a href = "#ds_policy_classes">Data-Structure Policy Classes</a> describes
-    policies for configuring underlying data-structures.
-    </li>
-    <li>
-    <a href="#exceptions">Exceptions</a> Subsection desribes exception classes.
-    </li>
-</ol>
-
-
-<hr>
-
-
-
-<h2><a name = "containers">Containers</a></h2>
-
-<p>
-<a href = "overview.html">Overview</a> and
-<a href = "ds_gen.html">Data-Structure Genericity</a> discuss relevant design
-points.
-</p>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-class hierarchy.
-</h6>
-
-<ol>
-	<li>
-		Basic Associative-Containers:
-		<ol>
-			<li><a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> - basic associative-container for the &quot;map&quot; case</li>
-			<li><a href = "basic_assoc_cntnr_no_data.html"><tt>basic_assoc_cntnr</tt></a> - basic associative-container for the &quot;set&quot; case</li>
-			<li><a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a> - basic associative-container for the &quot;multimap&quot; case</li>
-		</ol>
-	</li>
-	<li>
-		Hash-Based Associative-Containers:
-		<ol>
-		<li><a href = "basic_hash_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a> - basic hash-based associative-container </li>
-		<li><a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a> - collision-chaining hash-based associative-container </li>
-		<li><a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a> - (general) probing hash-based associative-container </li>
-		</ol>
-	</li>
-	<li>
-		Tree-Based Associative-Containers:
-		<ol>
-		<li><a href = "basic_tree_assoc_cntnr.html"><tt>basic_tree_assoc_cntnr</tt></a> - basic tree-based associative-container </li>
-		<li><a href = "basic_tree_assoc_cntnr_rev.html"><tt>basic_tree_assoc_cntnr</tt></a> - basic tree-based associative-container with reverse iteration </li>
-		<li><a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a> - tree-based associative-container </li>
-		</ol>
-	</li>
-	<li>
-		List-Based Associative-Contaiers:
-	<ol>
-		<li><a href = "lu_assoc_cntnr.html"><tt>lu_assoc_cntnr</tt></a> - list-based update-policy associative container</li>
-	</ol>
-	</li>
-</ol>
-
-
-<hr>
-
-
-<h2><a name = "ds_pol">Data-Type Policies</a></h2>
-
-<p>
-<a href = "overview.html">Overview</a> and
-<a href = "ms_gen.html">Mapping-Semantic Genericity</a> discuss relevant design
-points.
-</p>
-
-<ol>
-	<li><a href = "null_data_type.html"><tt>null_data_type</tt></a>
-	</li>
-	<li><a href = "compound_data_type.html"><tt>compound_data_type</tt></a>
-	</li>
-</ol>
-
-<hr>
-
-
-
-
-<h2><a name = "ds_tag">Data-Structure Tags and Traits</a></h2>
-
-<p>
-
-</p>
-
-<h3>Data-Structure Tags</h3>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "ds_tag_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Data-Structure Tag class hierarchy.
-</h6>
-
-<ol>
-	<li> <a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></li>
-	<li> <a href = "basic_hash_ds_tag.html"><tt>basic_hash_ds_tag</tt></a></li>
-	<li> <a href = "cc_hash_ds_tag.html"><tt>cc_hash_ds_tag</tt></a></li>
-	<li> <a href = "gp_hash_ds_tag.html"><tt>gp_hash_ds_tag</tt></a></li>
-	<li> <a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></li>
-	<li> <a href = "rb_tree_ds_tag.html"><tt>rb_tree_ds_tag</tt></a></li>
-	<li> <a href = "splay_tree_ds_tag.html"><tt>splay_tree_ds_tag</tt></a></li>
-	<li> <a href = "ov_tree_ds_tag.html"><tt>ov_tree_ds_tag</tt></a></li>
-	<li> <a href = "lu_ds_tag.html"><tt>lu_ds_tag</tt></a></li>
-	<li> <a href = "compound_ds_tag.html"><tt>compound_ds_tag</tt></a></li>
-</ol>
-
-
-<h3>Invalidation-Guarantee Tags</h3>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "invalidation_guarantee_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Invalidation guarantees class hierarchy.
-</h6>
-
-<ol>
-	<li> <a href = "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a></li>
-	<li> <a href = "find_invalidation_guarantee.html"><tt>find_invalidation_guarantee</tt></a></li>
-	<li> <a href = "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a></li>
-</ol>
-
-<h3>Data-Structure Traits</h3>
-
-<ol>
-	<li> <a href = "ds_traits.html"><tt>ds_traits</tt></a></li>
-</ol>
-
-
-<hr>
-
-
-<h2><a name = "ms_tag">Mapping-Semantics Tags and Traits</a></h2>
-
-<p>
-
-</p>
-
-<h3>Mapping-Semantics Tags</h3>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "ms_tag_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Mapping-Semantics Tag class hierarchy.
-</h6>
-
-<ol>
-	<li> <a href = "basic_ms_tag.html"><tt>basic_ms_tag</tt></a></li>
-	<li> <a href = "data_enabled_ms_tag.html"><tt>data_enabled_ms_tag</tt></a></li>
-	<li> <a href = "compound_data_enabled_ms_tag.html"><tt>compound_data_enabled_ms_tag</tt></a></li>
-</ol>
-
-
-<h3>Mapping-Semantics Traits</h3>
-
-<ol>
-	<li> <a href = "ms_traits.html"><tt>ms_traits</tt></a></li>
-</ol>
-
-
-<hr>
-
-
-<h2><a name="ds_policy_classes">Data-Structure Policy Classes</a></h2>
-
-
-<h3>Hash-Related Policies</h3>
-
-<p>
-</p><a href = "hash_based_containers.html">Hash-Based Containers</a> describes
-relevant design points.
-</p>
-
-<h4>Hash and Probe Policies</h4>
-<ol>
-    <li> Hash Functions:
-        <ol>
-            <li> <a href="null_hash_fn.html"><tt>null_hash_fn</tt></a></li>
-        </ol>
-    </li>
-    <li> Range-Hashing Functions:
-    <ol>
-        <li><a href="sample_range_hashing.html">Interface of a Range-Hashing Function</a></li>
-        <li> <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a></li>
-        <li> <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a></li>
-    </ol>
-    </li>
-    <li> Probe Functions:
-    <ol>
-        <li> <a href="sample_probe_fn.html">Interface of a Probe Function</a></li>
-        <li> <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a></li>
-        <li> <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a></li>
-        <li> <a href="null_probe_fn.html"><tt>null_probe_fn</tt></a></li>
-    </ol>
-    </li>
-    <li> Ranged-Hash Functions:
-        <ol>
-            <li><a href="ranged_hash_fn.html">Interface of a Ranged-Hash Function</a></li>
-        </ol>
-    </li>
-    <li> Ranged-Probe Functions:
-        <ol>
-            <li> <a href="ranged_probe_fn.html">Interface of a Ranged-Probe function</a></li>
-        </ol>
-    </li>
-</ol>
-
-
-
-<h4>Resize Policies</h4>
-
-<h6 align = "center">
-<a name = "resize_policy_cd">
-<img src = "resize_policy_cd.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Resize policy class diagram.
-</h6>
-
-<ol>
-    <li> Resize Policies:
-        <ol>
-            <li> <a href="sample_resize_policy.html">Interface of a Resize Policy</a>
-            <li> <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a></li>
-        </ol>
-    </li>
-    <li> Size Policies:
-    <ol>
-        <li> <a href="sample_size_policy.html">Interface of a Size Policy</a></li>
-        <li> <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a></li>
-        <li> <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a></li>
-    </ol>
-    </li>
-    <li> Trigger Policies:
-    <ol>
-        <li><a href="sample_resize_trigger.html">Interface of a Trigger Policy</a></li>
-        <li> <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a></li>
-        <li> <a href="cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a></li>
-    </ol>
-    </li>
-</ol>
-
-
-
-<h3>Tree Node-Update Policies</h3>
-<ol>
-    <li> <a href = "node_invariants.html">Design of Node Update Policies</a></li>
-    <li> <a href="sample_node_updator.html">Interface of a Node Updator Policy</a></li>
-    <li> Order-Statistics (Finding Entries by Key Order):
-        <ol>
-            <li> <a href="order_statistics_key.html"><tt>order_statistics_key</tt></a></li>
-            <li> <a href="order_statistics_key_cmp.html"><tt>order_statistics_key_cmp</tt></a></li>
-            <li> <a href="order_statistics_node_updator.html"><tt>order_statistics_node_updator</tt></a></li>
-            <li> <a href="find_by_order.html"><tt>find_by_order</tt></a></li>
-            <li> <a href="order_by_key.html"><tt>order_by_key</tt></a></li>
-        </ol>
-    </li>
-    <li> <a href="null_node_updator.html"><tt>null_node_updator</tt></a></li>
-</ol>
-
-
-<h3>List Update Policies</h3>
-<ol>
-    <li> <a href = "list_updates.html">Design of List Update Policies</a> </li>
-    <li> <a href = "sample_update_policy.html">Interface of a List Update Policy</a> </li>
-    <li> Move-to-Front:
-        <ol>
-            <li> <a href="move_to_front_update_metadata.html"><tt>move_to_front_update_metadata</tt></a></li>
-            <li> <a href="move_to_front_update_policy.html"><tt>move_to_front_update_policy</tt></a></li>
-        </ol>
-    </li>
-    <li> Counter:
-        <ol>
-            <li> <a href="counter_update_metadata.html"><tt>counter_update_metadata</tt></a></li>
-            <li> <a href="counter_update_policy.html"><tt>counter_update_policy</tt></a></li>
-        </ol>
-    </li>
-</ol>
-
-
-<hr>
-
-
-
-
-<h2><a name="exceptions">Exceptions</a></h2>
-<ol>
-	<li> <a href="pb_assoc_ex.html"><tt>pb_assoc_ex</tt></a></li>
-    <li> <a href="cannot_insert.html"><tt>cannot_insert</tt></a></li>
-    <li> <a href="cannot_join.html"><tt>cannot_join</tt></a></li>
-    <li> <a href="cannot_resize.html"><tt>cannot_resize</tt></a></li>
-</ol>
-
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/interval_node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/interval_node_invariants.jpg
deleted file mode 100644
index 0f4db9671a3034a18ff88a0e5d44bd26129c0d90..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 31555
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/introduction.html b/libstdc++-v3/docs/html/ext/pb_assoc/introduction.html
deleted file mode 100644
index e31dfc71a2f9..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/introduction.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>Introduction</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-<base target = "content">
-</HEAD>
-<BODY>
-<H1>Introduction</H1>
-
-<p>
-	There are (at least) three orthogonal challenges to designing generic associative containers:
-</p>
-
-<ol>
-	<li> The choice of underlying data-structure affects not only the performance of containers, but their semantics as well. <i>E.g.</i>, containers based on trees store elements by a given order, while containers based on hash tables store elements in a meaningless (and probably time-varying) order; containers based on node-based trees can guarantee exception-free element erasing, while containers based on vector-based trees cannot. This complicates generic manipulation of associative containers based on different underlying data-structures.
-	</li>
-	<li>
-		Underlying data-structures can act very differently given different policies. <i>E.g.</i>, the policy by which a hash table translates a hash value into a position within a table affects performance dramatically; certain policies can make containers based on trees support order statistics (<i>i.e.</i>, queries on the order of stored elements) or other useful queries. This complicates the policy design of an associative container based on a given data-structure.
-	</li>
-	<li>
-	Various mapping semantics are appropriate in different settings. <i>E.g.</i>, in some cases a unique mapping between each key and a datum is appropriate (such as the STL's <tt>std::map</tt> guarantees); in other cases, unique storage of keys is required (such as the STL's <tt>std::set</tt> guarantees); in other cases, more complex mapping semantics are required. This complicates generic manipulation of associative containers with different mapping semantics.
-	</li>
-</ol>
-
-<p>
-	<tt>pb_assoc</tt> attempts to address these problems safely and efficiently.
-</p>
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_cd.jpg
deleted file mode 100644
index dde670039b775bb752ce9a0c91f80eca2f4c5969..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 23162
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_erase.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/invalidation_guarantee_erase.jpg
deleted file mode 100644
index d1670978b6bc9f50badcdfd1ab5f2999a45b1842..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 56109
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%0D6M6UMR^fIhrJ`z99<h0)Eijxp<e4!Tl-%?o3C
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
W|M+LMK*<9sT2wu<5qR2P2mT)_x?X?)

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html b/libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html
deleted file mode 100644
index 20076319af1d..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lib_download.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Library Download and Install</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Library Download and Install</h1>
-
-<ol>
-	<li><a href = "#requirements">Requirements</a></li>
-	<li><a href = "#donwload">Download</a></li>
-	<li><a href = "#install">Install</a></li>
-	<li><a href = "#use">Use</a></li>
-</ol>
-
-<h2><a name = "requirements">Requirements</a></h2>
-
-<p>
-	The library compiles and runs on the newer versions of
-<tt>g++</tt>, <tt>icc</tt> and <tt>Visual C++ .net</tt>. The
-<a href = "portability.html">Portability</a> Section describes the known
-compilers with which it works.
-</p>
-
-<p>
-	Unfortunately, we do not have access to other compilers, and so do not
-know how to define some standard policies whose namespaces and declarations
-we know only on
-<tt>g++</tt>, <tt>icc</tt>, and <tt>Visual C++ .net</tt>.
-We would appreciate help on this point.
-</p>
-
-<h2><a name = "donwload">Download</a></h2>
-
-<p>
-	The following <a href = "pb_assoc.zip">link</a> contains a zip
-file of the library.
-</p>
-
-
-<h2><a name = "install">Install</a></h2>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html
deleted file mode 100644
index 65943f2701eb..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/linear_probe_fn.html
+++ /dev/null
@@ -1,238 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>linear_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>linear_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A probe sequence policy using fixed increments.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Offset methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Const_Key_Ref3735929850">Const_Key_Ref</a></pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">linear_probe_fn</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Offset methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  <b>operator</b>()
-  (<a href = "#Const_Key_Ref3735929850">Const_Key_Ref</a> r_key,
-    <a href = "#size_type3735929547">size_type</a> i) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <font color = "#666666"><tt>i</tt></font>-th offset from the hash value.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html b/libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html
deleted file mode 100644
index d0086d171a2e..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/list_updates.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>List Updates</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-
-<body bgcolor = "white">
-
-<h1>List-Update Containers</h1>
-
-<p>
-    This section describes policies for list updates. It is organized as follows:
-</p>
-
-<ol>
-    <li> The <a href = "#general">General Terms</a> Subsection describes general
-        terms.
-    </li>
-    <li> The <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
-        Subsection describes the implementation of these concepts in <tt>pb_assoc</tt>.
-    </li>
-</ol>
-
-
-<h2><a name = "general">General Terms</a></h2>
-
-<p>
-    Associative containers use some attributes of the keys of which they store: tree-based
-containers use the ability to compare keys; hash-based containers use the ability to map
-keys into numbers.
-</p>
-
-<p>
-        In the (rare) case where keys can only be checked for equivalence, these
-types of containers cannot be used. In such a case, storing the entries in a list is a reasonable solution.
-Clearly, the order of the elements within the list affects performance; ideally, frequently accessed elements
-should be at the front of the list.
-</p>
-
-<p>
-    Many remarkable (online competitive
-[<a href = "references.html#motwani95random">motwani95random</a>])
-algorithms exist for reordering lists to reflect access prediction
-[<a href = "references.html#andrew04mtf">andrew04mtf</a>]. Some of these algorithms require storing
-metadata with each key, while others do not. Some of these algorithms require only the ability to
-move an element to the front of the list, while others require the ability to interchange an element and
-its predecessor.
-</p>
-
-<p>
-    For example, Figure
-<a href = "#lu">-A
-The counter algorithm
-</a>
-shows the counter algorithm. Each node contains both a key and a count metadata (shown in bold).
-When an element is accessed (<i>e.g.</i> 6)
-its count is incremented, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-B.
-If the count reaches some predetermined value, say 10, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-C,
-the count is set to 0
-and the node is moved to the front of the list,  as in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-D.
-
-
-</p>
-
-<h6 align = "center">
-<a name = "lu">
-<img src = "lu_ops.jpg" width = "65%">
-</a>
-</h6>
-<h6 align = "center">
-The counter algorithm.
-</h6>
-
-
-
-<h2><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h2>
-
-<p>
-    The <tt>pb_assoc</tt> library allows instantiating lists with policies
-implementing any algorithm moving nodes to the front of the list (policies implementing
-algorithms interchanging nodes are currently unsupported).
-</p>
-
-<p>
-    Associative containers based on lists are parameterized by a <tt>Update_Policy</tt> parameter.
-This parameter defines the type of metadata each node contains, how to create the metadata, and how to
-decide, using this metadata, whether to move a node to the front of the list.
-    A list-based associative container object derives (publicly) from its update policy.
-</p>
-
-<p>
-    An instantiation of <tt>Update_Policy</tt> must define internally <tt>update_metadata</tt> as the metadata
-it requires. Internally, each node of the list contains, besides the usual key and data, an instance
-of <tt><b>typename</b> Update_Policy::update_metadata</tt>.
-</p>
-
-<p>
-    An instantiation of <tt>Update_Policy</tt> must define internally two operators:
-</p>
-<pre>
-update_metadata
-  <b>operator</b>()
-  ();
-
-<b>bool</b>
-  <b>operator</b>()
-  (update_metadata &);
-</pre>
-
-<p>
-    The first is called by the container object, when creating a new node, to create the node's metadata. The
-second is called by the container object, when a node is accessed (<i>e.g.</i>, when a find operation's key
-is equivalent to the key of the node), to determine whether to move the node to the front of the list.
-</p>
-
-<p>
-    Additionally, the library contains implementations of the move-to-front and counter policies. These
-are described in
-<a href="interface.html#policy_classes">Policy Classes</a>.
-</p>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html
deleted file mode 100644
index c9d0c75f1b0b..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_assoc_cntnr.html
+++ /dev/null
@@ -1,570 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>lu_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>lu_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::equal_to&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Update_Policy3735929889">Update_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>Update policy (determines when an element will be moved to the front of the list.</p>
-
-
-</td>
-
-<td>
-<a href = "move_to_front_update_policy.html"><tt>move_to_front_update_policy</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#Update_Policy3735929889">Update_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "eq_fn3735929080">eq_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Eq_Fn3735929016">Eq_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Equivalence functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "update_policy3735929953">update_policy</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Update_Policy3735929889">Update_Policy</a></pre>
-
-
-</td>
-
-<td>
-<p>List update policy type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  lu_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  lu_assoc_cntnr
-  (<b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  lu_assoc_cntnr
-  (<b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Update_Policy3735929889">Update_Policy</a> &amp;r_update_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_eq_fn</tt></font> will be copied by the <a href = "#Eq_Fn3735929016"><tt>Eq_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_update_policy</tt></font> will be copied by the <a href = "#Update_Policy3735929889"><tt>Update_Policy</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;<b>class</b> It&gt;
-  lu_assoc_cntnr
-  (It first_it, It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;<b>class</b> It&gt;
-  lu_assoc_cntnr
-  (It first_it, It last_it,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;<b>class</b> It&gt;
-  lu_assoc_cntnr
-  (It first_it, It last_it,
-    <b>const</b> <a href = "#Eq_Fn3735929016">Eq_Fn</a> &amp;r_eq_fn,
-    <b>const</b> <a href = "#Update_Policy3735929889">Update_Policy</a> &amp;r_update_policy)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  lu_assoc_cntnr
-  (<b>const</b> <font color = "olive">lu_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~lu_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">lu_assoc_cntnr</font> &amp;
-  <b>operator</b>=
-  (<b>const</b> <font color = "olive">lu_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">lu_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#eq_fn3735929080">eq_fn</a> &amp;
-  get_eq_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#eq_fn3735929080">eq_fn</a> &amp;
-  get_eq_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#eq_fn3735929080"><tt>eq_fn</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a href = "#update_policy3735929953">update_policy</a> &amp;
-  get_update_policy
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the <a href = "#update_policy3735929953"><tt>update_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>const</b> <a href = "#update_policy3735929953">update_policy</a> &amp;
-  get_update_policy
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the <a href = "#update_policy3735929953"><tt>update_policy</tt></a> object.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html b/libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html
deleted file mode 100644
index 30dc90f611dd..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_based_containers.html
+++ /dev/null
@@ -1,225 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>List Updates</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-
-<body bgcolor = "white">
-
-<h1>List-Update Containers</h1>
-
-
-<p>
-	This section describes list-based containers. It is organized as follows.
-</p>
-
-<ol>
-	<li> <a href = "#overview">Overview</a> is an overview.</li>
-	<li> <a href = "#list_updates">List Updates</a> describes updating lists
-as elements are accessed.</li>
-</ol>
-
-
-<h2><a name = "overview">Overview</a></h2>
-
-<p>
-    Associative containers typically use some attributes of the keys of which they store: tree-based
-containers use the ability to compare keys; hash-based containers use the ability to map
-keys into numbers.
-</p>
-
-<p>
-	In some cases it is better to avoid this:
-</p>
-
-<ol>
-	<li>
-		Hash-based and tree-based containers typically require additional memory
-	for time efficiency.
-	</li>
-	<li>
-		Hash-based and tree-based containers require extra information
-		about keys: hash-based containers need hash functors, tree-based containers need
-		comparison functors. In some (rare) cases, a key might be encapsulated to the extent that it is not possible to supply these functors.
-	</li>
-</ol>
-
-<p>
-	In such cases, storing the entries in a unique-key list is a reasonable solution.
-This uses the minimal amount of memory, and requires only an equivalence functor.
-Clearly, the order of the elements within the list affects performance; ideally, frequently accessed elements
-should be at the front of the list.
-</p>
-
-<p>
-    Many remarkable (online competitive
-[<a href = "references.html#motwani95random">motwani95random</a>])
-algorithms exist for reordering lists to reflect access prediction
-[<a href = "references.html#andrew04mtf">andrew04mtf</a>].
-</p>
-
-<p>
-	Figure
-<a href = "#lu_cd">List-update containers</a>
-	shows the container-hierarchy; the list-based container is circled.
-</p>
-
-<h6 align = "center">
-<a name = "lu_cd">
-<img src = "lu_cd.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-List-update containers.
-</h6>
-
-
-<p>
-	The list-based container has the following declaration:
-</p>
-
-<pre>
-<b>template</b>&lt;
-	<b>typename</b> Key,
-	<b>typename</b> Data,
-	<b>class</b> Eq_Fn = std::equal_to&lt;Key&gt;,
-	<b>class</b> Update_Policy =
-		<a href = "move_to_front_lu_policy.html">move_to_front_lu_policy&lt;&gt;</a>,
-	<b>class</b> Allocator =
-		std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "lu_assoc_cntnr.html">lu_assoc_cntnr</a>;
-</pre>
-
-
-<p>
-	The parameters have the following meaning:
-</p>
-<ol>
-	<li> <tt>Key</tt> is the key type.
-	</li>
-	<li> <tt>Data</tt> is the data-policy, and is explained in
-<a href = "ms_gen.html#ds_policy">Mapping-Semantics Genericity::Data Types as a Policy</a>.
-	</li>
-	<li> <tt>Eq_Fn</tt> is a key equivalence functor.</li>
-	<li> <tt>Update_Policy</tt> is a policy updating
-	positions in the list based on access patterns. It is described in
-	the following subsection.
-	</li>
-	<li> <tt>Allocator</tt> is (surprisingly) an allocator type.
-	</li>
-</ol>
-
-
-
-
-
-<h2><a name = "list_updates">List Updates</a></h2>
-
-<p>
-    This subsection describes list-update policies. It is organized as follows.
-</p>
-
-<ol>
-    <li> <a href = "#general">General Terms</a> describes general
-        terms.
-    </li>
-    <li> <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
-         describes the implementation of these concepts in <tt>pb_assoc</tt>.
-    </li>
-</ol>
-
-
-
-
-<h3><a name = "general">General Terms</a></h3>
-
-
-<p>
-    For example, Figure
-<a href = "#lu">-A
-The counter algorithm
-</a>
-shows the counter algorithm. Each node contains both a key and a count metadata (shown in bold).
-When an element is accessed (<i>e.g.</i> 6)
-its count is incremented, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-B.
-If the count reaches some predetermined value, say 10, as shown in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-C,
-the count is set to 0
-and the node is moved to the front of the list,  as in
-Figure
-<a href = "#lu">
-The counter algorithm
-</a>-D.
-
-
-</p>
-
-<h6 align = "center">
-<a name = "lu">
-<img src = "lu_ops.jpg" width = "65%">
-</a>
-</h6>
-<h6 align = "center">
-The counter algorithm.
-</h6>
-
-
-
-<h3><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h3>
-
-<p>
-    The <tt>pb_assoc</tt> library allows instantiating lists with policies
-implementing any algorithm moving nodes to the front of the list (policies implementing
-algorithms interchanging nodes are currently unsupported).
-</p>
-
-<p>
-    Associative containers based on lists are parameterized by a <tt>Update_Policy</tt> parameter.
-This parameter defines the type of metadata each node contains, how to create the metadata, and how to
-decide, using this metadata, whether to move a node to the front of the list.
-    A list-based associative container object derives (publicly) from its update policy.
-</p>
-
-<p>
-    An instantiation of <tt>Update_Policy</tt> must define internally <tt>update_metadata</tt> as the metadata
-it requires. Internally, each node of the list contains, besides the usual key and data, an instance
-of <tt><b>typename</b> Update_Policy::update_metadata</tt>.
-</p>
-
-<p>
-    An instantiation of <tt>Update_Policy</tt> must define internally two operators:
-</p>
-<pre>
-update_metadata
-  <b>operator</b>()
-  ();
-
-<b>bool</b>
-  <b>operator</b>()
-  (update_metadata &);
-</pre>
-
-<p>
-    The first is called by the container object, when creating a new node, to create the node's metadata. The
-second is called by the container object, when a node is accessed (<i>e.g.</i>, when a find operation's key
-is equivalent to the key of the node), to determine whether to move the node to the front of the list.
-</p>
-
-<p>
-    Additionally, the library contains implementations of the move-to-front and counter policies. These
-are described in
-<a href="interface.html#policy_classes">Policy Classes</a>.
-</p>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/lu_cd.jpg
deleted file mode 100644
index c69cdc5348e30a3df9a7939ada0082db88584633..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 60906
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html
deleted file mode 100644
index e906de7e5f9c..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/lu_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>lu_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>lu_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>List-update data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_ds_tag.html"><tt>basic_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/lu_ops.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/lu_ops.jpg
deleted file mode 100644
index fa26e84d9878c9b474ce197b25008e84c8217dde..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 36112
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html b/libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html
deleted file mode 100644
index dd0846ea62ad..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/mmap_value_utils.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-    <TITLE>Multimap Value-Type Utilities</TITLE>
-    <META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-</HEAD>
-<BODY>
-
-<H1>Multimap Value-Type Utilities</H1>
-
-<p>
-	In <tt>pb_assoc</tt>, associative containers have a unique-key design.
-Multimaps, consequently are maps of sets, <i>e.g.</i>,
-a <a href = "cc_ht_multimap.html"><tt>cc_ht_multimap</a>&lt;<b>int</b>, <b>char</b>&gt;</tt>
-object maps <tt><b>int</b></tt>s to sets of <tt><b>char</b></tt>s.
- It is often convenient to perform
-value-type operations on multimaps, <i>e.g.</i>, in this case, to find a specific
-<tt>std::pair&lt;<b>int</b>, <b>char</b>&gt;</tt> object (say, <tt>std::make_pair(2, 'b')</tt>)
-in a multimap object. These types of operations involve typically two steps: in the
-first step, some operation is performed on the multimap object itself, and in the second
-step, some operation is performed on the multimap's pertinent set object.
-(This is true for the STL's multimaps as well, except that the "set" is an implicit
-list.)
-</p>
-
-<p>
-	Coding these two-step operations is repetitious and error prone.
-	<tt>pb_assoc</tt> containers already maintain the invariant that they support
-a value-type method for any mapped-value-type method they support
-(hence any multimap of the above type supporsts a method for inserting
- <tt>std::make_pair(2, 'b')</tt>). Following are some utility functions for
- other common operations.
-</p>
-
-
-<pre>
-<b>template</b>&lt;
-  <b>class</b> MMap_Cntnr&gt;
-<b>inline</b> std::pair&lt;
-    <b>typename</b> MMap_Cntnr::mapped_data_type::find_iterator,
-    <b>bool</b>&gt;
-  mmap_value_find
-  (<b>const</b> MMap_Cntnr &r_mmap_cntnr,
-    <b>typename</b> MMap_Cntnr::const_reference r_val);
-</pre>
-
-<p>
-	Finds the (const reference to a) value-type
-<font color = "#666666"><tt>r_val</tt></font> in
-the multimap object
-<font color = "#666666"><tt>r_mmap_cntnr</tt></font>.
-</p>
-<p>
- It
-returns a pair whose first entry is a find-type iterator
-of the multimap's set type, and whose second entry is a boolean
-indicating whether the value type was found (only in this
-case is the first entry in the pair valid).
-</p>
-
-<pre>
-<b>template</b>&lt;
-  <b>class</b> MMap_Cntnr&lt;
-<b>inline</b> <b>typename</b> MMap_Cntnr::size_type
-  mmap_value_erase
-  (MMap_Cntnr &r_mmap_cntnr,
-    <b>typename</b> MMap_Cntnr::const_reference r_val,
-    <b>bool</b> erase_entry_if_last);
-</pre>
-
-<p>
-	Transactionally erases the (const reference to the) value-type
-<font color = "#666666"><tt>r_val</tt></font> from
-the multimap object
-<font color = "#666666"><tt>r_mmap_cntnr</tt></font>, and
-erases the mapped value type
-with
-<font color = "#666666"><tt>r_val</tt></font>'s key
-if there are no more value types with this given key
-and
-<font color = "#666666"><tt>erase_entry_if_last</tt></font> <tt>= <b>true</b></tt>.
-<p>
-</p>
- It
-returns 1 if a value type was actually erased, or 0 otherwise.
-</p>
-
-<pre>
-<b>template</b>&lt;
-  <b>class</b> MMap_Cntnr&gt;
-<b>inline</b> std::pair&lt;
-    <b>typename</b> MMap_Cntnr::mapped_data_type::find_iterator,
-    <b>bool</b>>
-  mmap_value_replace
-  (MMap_Cntnr &r_mmap_cntnr,
-    <b>typename</b> MMap_Cntnr::const_reference r_val,
-    <b>typename</b> MMap_Cntnr::const_data_reference r_data);
-</pre>
-
-<p>
-	Transactionally erases
-<font color = "#666666"><tt>r_val</tt></font>
-from
-<font color = "#666666"><tt>r_mmap_cntnr</tt></font>
-(if it such a value type exists) and
-inserts instead a value type whose key is
-<font color = "#666666"><tt>r_val</tt></font><tt>.first</tt>
-and whose data is
-<font color = "#666666"><tt>r_data</tt></font>.
-</p>
-<p>
-<p>
- It
-returns a pair whose first entry is a find-type iterator
-of the multimap's set type, and whose second entry is a boolean
-indicating whether the new value type was inserted
-(it might have
-existed previously).
-</p>
-
-<p>
-(If the multimap type or its set type do not guarantee exception free
-erases, <tt>mmap_value_erase</tt> and <tt>mmap_value_replace</tt> will
-invalidate pointers, references, and iterators).
-</p>
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/motivation.html b/libstdc++-v3/docs/html/ext/pb_assoc/motivation.html
deleted file mode 100644
index 11eca4a421f4..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/motivation.html
+++ /dev/null
@@ -1,281 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>Motivation</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-<body bgcolor = "white">
-<h1>Motivation</h1>
-
-<p>
-	The <a href = "introduction.html">Introduction</a> Section described some challenges
-in designing associative containers. This section describes the STL's solution and motivation for an alternative solution. It is organized as follows.
-</p>
-
-<ol>
-	<li> <a href = "#stl">The STL's Associative-Container Design</a>
-	briefly describes the STL's solution.
-	</li>
-	<li> <a href = "#policies">Choice of Policies</a> discusses possible additional policies by which to parameterize data structures.
-	</li>
-	<li> <a href = "#ds_genericity">Data-Structure Genericity</a> discusses possible problems with generic manipulation of containers based on different underlying data-structures.
-	</li>
-	<li> <a href = "#mapping_semantics">Mapping Semantics</a> discusses scalability issues with the STL's non-unique-mapping associative containers.
-	</li>
-	<li> <a href = "#methods">Choice of Methods</a> discusses some reservations with the choice of methods in the STL.
-	</li>
-</ol>
-
-<h2><a name = "stl">The STL's Associative-Container Design</a></h2>
-
-<p>
-	The STL (or its extensions) currently offer associative containers based on underlying red-black trees or collision-chaining hash tables. For association, containers based on trees are parameterized by a comparison functor, and containers based on hash tables are parameterized by a hash functor and an equivalence functor.
-</p>
-
-<p>
-	For each underlying data-structure, the STL offers four containers with different mapping semantics. A map-type uniquely maps each key to some datum, a set-type stores uniquely keys, a multimap-type non-uniquely maps each key to some datum, and a multiset-type non-uniquely stores keys.
-</p>
-
-<p>
-	Containers contain various iterator-based methods. <i>E.g.</i>, all containers have constructors taking a pair of iterators, and transactionally construct an object containing all elements in the iterators' range. Additionally, it is possible to (non-transactionally) insert a range given by iterators, or erase such a range. Other methods are implicitly range-based, <i>e.g.</i>, it is possible to test the equivalence of two associative container objects via <tt><b>operator</b>==</tt>.
-</p>
-
-<h2><a name = "policies">Choice of Policies</a></h2>
-
-<p>
-	In order to function efficiently in various settings, associative containers require
-a wide variety of policies.
-</p>
-
-<p>
-	For example, a hash policy instructs how to transform a key object into some non-negative integral type; <i>e.g.</i>, a hash functor might transform <tt>"hello"</tt> into <tt>1123002298</tt>. A hash table, though, requires transforming each key object into some non-negative integral type in some specific domain; <i>e.g.</i>, a hash table with 128 entries might transform the <tt>"hello"</tt> into position 63. The policy by which the hash value is transformed into a position within the table can dramatically affect performance.
-</p>
-
-<p>
-	Additionally, most hash-table algorithms encounter collisions. To mitigate the cost of these collisions, it sometimes is beneficial to store the hash value along with each element
-[<a href = "references.html#clrs2001">clrs2001</a>, <a href = "references.html#austern01htprop">austern01htprop</a>]. While this improves performance for complex keys, it hampers performance for simple keys, and is best left as a policy.
-</p>
-
-<p>
-	Tree-based containers allow reasonable access while maintaining order between elements. In some cases, however, tree-based containers can be used for additional purposes. <i>E.g.</i>,consider Figure
-<a href = "#interval_invariants">
-Sets of line intervals
-</a>-A,
-which shows
-an example of a tree-based set storing
-half-open geometric line intervals. An <tt>std::set</tt> with this
-structure can efficiently answer whether <i>[20, 101)</i> is in the
-set, but it cannot efficiently answer whether any interval in the
-set overlaps <i>[20, 101)</i>, nor can it efficiently enumerate all
-intervals overlapping <i>[20, 101)</i>. A well-known augmentation to
-balanced trees can support efficient answers to such questions
-[<a href = "references.html#clrs2001">clrs2001</a>]. Namely,
-an invariant should be maintained whereby
-each node should contain also the
-maximal endpoint of any interval within its subtree, as in Figure
-<a href = "#interval_invariants">
-Sets of line intervals
-</a>-B. In order to maintain this ivariant, though, an invariant-restoring policy is
-required.
-</p>
-
-<h6 align = "center">
-<a name = "interval_invariants">
-<img src = "interval_node_invariants.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Sets of line intervals.
-</h6>
-
-
-<h2><a name = "ds_genericity">Data-Structure Genericity</a></h2>
-
-<p>
-	Consider a generic function manipulating an associative container, <i>e.g.</i>,
-</p>
-
-<pre>
-<b>template</b>&lt;
-	<b>class</b> Cntnr&gt;
-<b>int</b> some_op_sequence
-    (Cntnr &r_cnt)
-{
-	...
-}
-</pre>
-
-<p>
-	The underlying data structure affects what the function can do with the container object.
-</p>
-
-<p>
- For example, if <tt>Cntnr</tt> is <tt>std::map</tt>, then the function can
-use <tt>std::for_each(r_cnt.find(foo), r_cnt.find(bar), foobar)</tt>
-in order to apply <tt>foobar</tt> to all elements between <tt>foo</tt>
-and <tt>bar</tt>. If <tt>Cntnr</tt> is a hash-based container, then this call's results are undefined.
-</p>
-
-<p>
-	Also, if <tt>Cntnr</tt> is tree-based, the type and object of the comparison functor
-can be accessed. If <tt>Cntnr</tt> is hash based, these queries are nonsensical</p>
-
-<p>
-	These types of problems are excaberated when considering the wide variety of useful underlying data-structures. 	Figure
-<a href = "#different_underlying_data_structures">Different underlying data structures</a>
-shows different underlying data-structures (the ones
-currently supported in <tt>pb_assoc</tt>). A shows a collision-chaining hash-table; B shows a probing hash-table; C shows a red-black tree; D shows a splay tree; E shows a tree based on an ordered vector (the tree is implicit in the order of the elements); E shows a list-based container with update policies.
-</p>
-
-<h6 align = "center">
-<a name = "different_underlying_data_structures">
-<img src = "different_underlying_dss.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Different underlying data structures.
-</h6>
-
-<p>
-	These underlying data structures display different behavior. For one, they can be queried for different policies. Furthermore:
-</p>
-<ol>
-	<li>
-		Containers based on C, D, and E store eleents in a meaningful order; the others store elements in a meaningless (and probably time-varying) order. As a futher consequence, containers based on C, D, and E can support erase operations taking an iterator and returning an iterator to the following element; the others cannot.
-	</li>
-	<li>
-		Containers based on C, D, and E can be split and joined efficiently, while the others cannot. Containers based on C and D, futhermore, can guarantee that this is exception-free; containers based on E cannot guarantee this.
-	</li>
-	<li>
-		Containers based on all but E can guarantee that erasing an element is exception free; containers based on E cannot guarantee this. Containers based on all but B and E can guarantee that modifying an object of their type does not invalidate iterators or references to their elements, while contianers based on B and E cannot. Containers based on C, D, and E can futhermore make a stronger guarantee, namely that modifiying an object of their type does not affect the relation of iterators.
-	</li>
-</ol>
-
-<p>
-	A unified tag and traits system (as used for the STL's iterators, for example) can ease  generic manipulation of associative containers based on different underlying data-structures.
-</p>
-
-<h2><a name = "mapping_semantics">Mapping Semantics</a></h2>
-
-	<p>
-	In some cases, map and set semantics are inappropriate. <i>E.g.</i>, consider
-an application monitoring user activity. Such an application might be designed to track a user, the machine(s) to which the user is logged, application(s) the user is running on the machine, and the start time of the application. In this case, since a user might run more than a single application, there can be no unique mapping from a user to specific datum.
-	</p>
-
-<p>
-    The STL's non-unique mapping containers (<i>e.g.</i>,
-<tt>std::multimap</tt> and <tt>std::multiset</tt>) can be used
-in this case. These types of containers can store store two or more equivalent, non-identical keys [<a href = "references.html#kleft00sets">kleft00sets</a>]. Figure
-<a href = "#embedded_lists_1">Non-unique mapping containers in the STL's design</a> shows possible structures of STL tree-based and hash-based containers, multisets, respectively; in this figure, equivalent-key nodes share the same shading.
-</p>
-
-<h6 align = "center">
-<a name = "embedded_lists_1">
-<img src = "embedded_lists_1.jpg" width = "70%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Non-unique mapping containers in the STL's design.
-</h6>
-
-<p>
-	This design has several advantages. Foremost, it allows maps and multimaps, and sets and multisets, to share the same <tt>value_type</tt>, easing generic manipulation of containers with different mapping semantics.
-</p>
-
-
-<p>
-    Conversely, this design has possible scalability drawbacks, due to an implicit "embedding" of linked lists.
-Figure
-<a href = "#embedded_lists_2">
-Embedded lists in STL multimaps
-</a>-A shows a tree with shaded nodes sharing equivalent keys;
-Figure
-<a href = "#embedded_lists_2">
-Embedded lists in STL multimaps
-</a>-A explicitly shows the linked lists implicit in Figure
-<a href = "#embedded_lists_1">Non-unique mapping containers in the STL's design</a>. The drawbacks are the following.
-</p>
-
-<ol>
-    <li> As mentioned before, there are several underlying data-structures, each with its set of tradeoffs.
-The STL's design uses an associative linked-list to store all elements with equivalent primary
-key (<i>e.g.</i>, users). Searching for a secondary key (<i>e.g.</i>,
-a process) is inherently linear. While this works reasonably well when the number of distinct secondary
-keys is small, it does not scale well.
-    </li>
-    <li> Embedding linked lists can cause the entire structure to be inefficient.
-<i>E.g.</i>, Figure
-<a href = "#embedded_lists_1">
-Effect of embedded lists in STL multimaps
-</a>-A
-    shows a tree with several shaded nodes containing equivalent keys; note how unbalanced
-this tree would seem when considering all shaded nodes to be a single node.
-Figure
-<a href = "#embedded_lists_1">
-Effect of embedded lists in STL multimaps
-</a>-B shows a hash table with several shaded nodes containing equivalent keys; note
-that this can lengthen the search for other nodes as well.
-    </li>
-    <li> Embdedding linked lists is only possible for some data structures.
-Some data structures, <i>e.g.</i>, probing-hash tables, linear hash tables,
-and extendible hash tables, cannot support it.
-    </li>
-    <li> The embedded linked list design forgoes the abilitiy to treat
-all elements with the same primary key as a single entity. The ability to
-efficiently simultaneously insert (or erase) a larger number of elements with
-the same primary key is lost; the ability to utilize segmented iterators is lost
-[<a href = "references.html#austern98segmented">austern98segmented</a>].
-	</li>
-	<li> The linked-list design uses much space. For one, in the above example, the data identifying will must be duplicated for each application run by the user. Furthermore, the "links" in the linked list are supplied by the underlying data structure. In the case of tree-based containers, for example, the linked list utilizes the fact that each tree node contains pointers to its parent and its children; given that the order of equivalent keys is meaningless, the number of pointers exceeds the functionality supplied by a linked list.
-	</li>
-</ol>
-
-<h6 align = "center">
-<a name = "embedded_lists_2">
-<img src = "embedded_lists_2.jpg" width = "70d" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Embedded lists in STL multimaps.
-</h6>
-
-
-<h2><a name = "methods">Choice of Methods</a></h2>
-
-<p>
-	[<a href = "references.html#meyers02both">meyers02both</a>] points out
-that a class's methods should comprise only operations which depend on the class's internal structure; other operations are best designed as external functions. Possibly, therefore, the STL's associative containers lack some useful methods, and provide some redundant methods.
-</p>
-
-<ol>
-	<li>
-		Possibly missing methods:
-	</li>
-	<ol>
-		<li>
-			It is well-known that tree-based container objects can be efficiently split or joined
-		[<a href = "references.html#clrs2001">clrs2001</a>]. Externally splitting or joining trees is super-linear, and, furthermore, can throw exceptions. Split and join methods, consequently, seem good choices for tree-based container methods.
-		</li>
-		<li>
-			Suppose all elements which match a certain criteria need to be erased from an
-unordered container object, <i>e.g.</i>, all elements whos keys are in a given range. Externally erasing them from the container object is super-linear, since erasing an element might reorder all iterators. Conditional erasing, therefore, seems a good choice for associative containers.
-		</li>
-	</ol>
-		<li> Possibly redundant methods:</li>
-	<ol>
-		<li>
-			STL associative containers provide methods for inserting a range of elements given by a pair of iterators. At best, this can be implemented as an external function, or, even more efficiently, as a join operation (for the case of tree-based containers). Moreover, these methods seem similar to constructors taking a range given by a pair of iterators; the constructors, however, are transactional, whereas the insert methods are not; this is possibly confusing.
-		</li>
-		<li>
-			STL associative containers provide methods for erasing a range of elements given by a pair of iterators. At best, this can be implemented as an external function, or, even more efficiently, as a (small) sequence of split and join operations (for the case of tree-based containers). Moreover, the results of erasing a range is undefined for the case of containers based on unordered data-structures.
-		</li>
-		<li>
-			Associative containers are parameterized by policies allowing to test keys, but not data, for equivalence. When comparing two associative container objects, it is at least as reasonable to expect that they are equivalent if both keys and data are equivalent, as it is reasonable to expect that they are equivalent if their keys only are equivalent. Furthermore, in different settings it makes sense that two objects are equivalent if they store keys in the same order, whereas in other settings order does not matter. The operators <tt>operator==</tt> and <tt>operator!=</tt> are not descriptive enough for these considerations.
-		</li>
-	</ol>
-</ol>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html b/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html
deleted file mode 100644
index 8a73408016ec..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_metadata.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>move_to_front_update_metadata Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>move_to_front_update_metadata
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update metadata type that unconditionally moves elements to the front of the list.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/move_to_front_update_policy.hpp"><tt>move_to_front_update_policy.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html
deleted file mode 100644
index f9a47e3b2211..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/move_to_front_update_policy.html
+++ /dev/null
@@ -1,256 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>move_to_front_update_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>move_to_front_update_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A list-update policy that unconditionally moves elements to the front of the list.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/move_to_front_update_policy.hpp"><tt>move_to_front_update_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Metadata definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Metadata operations.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata reference type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;
-  <a href = "move_to_front_update_metadata.html"><tt>move_to_front_update_metadata</tt></a>&gt;::
-    reference
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">move_to_front_update_policy</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Metadata definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "metadata_type3735929937">metadata_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "move_to_front_update_metadata.html"><tt>move_to_front_update_metadata</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>Metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "metadata_reference3735929497">metadata_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Metadata_Reference3735929465">Metadata_Reference</a></pre>
-
-
-</td>
-
-<td>
-<p>Reference to metadata on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Metadata operations.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "#metadata_type3735929937">metadata_type</a>
-  <b>operator</b>()
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Creates a metadata object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>bool</b>
-  <b>operator</b>()
-  (<a href = "#metadata_reference3735929497">metadata_reference</a> r_data) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Decides whether a metadata object should be moved to the front of the list.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/ms_cd.jpg
deleted file mode 100644
index 885319daac8ed13aaca608c47107872a0ba9f8ef..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 61973
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html b/libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html
deleted file mode 100644
index 468c121a70b9..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ms_gen.html
+++ /dev/null
@@ -1,440 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>Mapping-Semantics Genericity</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-<body bgcolor = "white">
-
-
-<h1>Mapping-Semantics</h1>
-
-<p>
-	This section describes genericity over different mapping-semantics. It is organized as follows.
-</p>
-<ol>
-	<li><a href = "#intro">Introduction</a></li>
-	<li><a href = "#ds_policy">Data Types as a Policy</a></li>
-	<li><a href = "#problem">The Basic Problem</a></li>
-	<li><a href = "#mapping_level">Mapping Levels</a></li>
-	<li><a href = "#ms_traits">Tags and Traits</a></li>
-	<li><a href = "#drawbacks">Drawbacks</a></li>
-</ol>
-
-
-<h2><a name = "intro">Introduction</a></h2>
-
-<p>
-<a href = "motivation.html#mapping_semantics">Motivation::Mapping Semantics</a> discussed scalability issues with the STL's non-unique-mapping associative containers; non-unique association inherently embeds linked-lists in associative containers resulting in scalability problems and other problems.
-</p>
-
-<p>
-	In <tt>pb_assoc</tt>, all containers have unique-key semantics. Each key is uniquely mapped to &quot;something&quot;.
-</p>
-
-
-<h2><a name = "ds_policy">Data Types as a Policy</a></h2>
-
-<p>
-	All associative-containers in <tt>pb_assoc</tt> are parameterized by a data type.
-<i>E.g.,</i> <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a> is parameterized as
-</p>
-<pre>
-<b>template</b>&lt;
-	<b>typename</b> Key,
-	<b>typename</b> Data,
-	...&gt;
-<b>class</b> <a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>;
-</pre>
-
-<p>
-	There are no separate classes for maps, sets, multimaps, and multisets (as the STL has). Rather, the mapping-semantic is set by specifying the <tt>Key</tt> parameter.
-</p>
-
-<ol>
-	<li> If <tt>Data</tt> is any type (<i>e.g.</i>, <tt><b>int</b></tt> or
-<tt>std::string</tt>), then the container is a &quot;map&quot; - it maps each <tt>Key</tt> object to a <tt>Data</tt> object.
-	</li>
-	<li> If <tt>Data</tt> is
-<a href = "null_data_type.html"><tt>null_data_type</tt></a>,
-then the container is a &quot;set&quot; - it stores each <tt>Key</tt> object. In this case, each <tt>Key</tt> object is not really mapped to anything (except, implicitly, to the fact that it is stored in the container object).
-	</li>
-	<li>
-	If <tt>Data</tt> is
-<a href = "compound_data_type.html">compound_data_type</a><tt>&lt;Cntnr&gt;</tt>,
-then the container is a &quot;multimap&quot; - it maps each <tt>Key</tt> object into a <tt>Cntnr</tt> object. This structure is recursive - <tt>Cntnr</tt> itself can be a &quot;map&quot;, &quot;set&quot;, &quot;multimap&quot;, and so forth.
-	</li>
-</ol>
-
-<p>
-	Each container derives from one of the three containers
-in the oval of Figure
-<a href = "#ms_cd">
-Data-types as a policy
-</a>.
-</p>
-
-		<ol>
-			<li><a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>
-is the base for most instantiations of a container's <tt>Data</tt> paramter. This
-base includes the definition of <tt>data_type</tt>, and supports
-<tt><b>operator</b>[]</tt>.
-			</li>
-			<li><a href = "basic_assoc_cntnr_no_data.html"><tt>basic_assoc_cntnr</tt></a> is the base for a
-<a href = "null_data_type"><tt>null_data_type</tt></a> instantiation of a container's <tt>Data</tt> paramter. This
-base lacks the definition of <tt>data_type</tt>, and does not support
-<tt><b>operator</b>[]</tt>.
-	<li><a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a>  is the base for a
-<a href = "compound_data_type.html"><tt>compound_data_type</tt></a><tt>&lt;Cntnr&gt;</tt> instantiation of a container's <tt>Data</tt> paramter. This
-base includes the definition of <tt>data_type</tt>, and supports
-<tt><b>operator</b>[]</tt>. It further supports some advanced functionality described in the remainder of this section.
-		</ol>
-
-
-<h6 align = "center">
-<a name = "ms_cd">
-<img src = "ms_cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Data-types as a policy.
-</h6>
-
-
-<h2><a name = "problem">The Basic Problem</a></h2>
-
-<p>
-	Consider a <tt>pb_assoc</tt> &quot;multimap&quot; mapping integers to characters.
-Since a <tt>pb_assoc</tt> &quot;multimap&quot; is a &quot;map&quot; of &quot;sets&quot;,
-if <tt>m</tt> is an object of this type, it is not possible to directly use
-<tt>m.insert(std::make_pair(2, 'b')</tt> (however, it is possible to directly use
-<tt>m[2].insert('b')</tt>). In would be nice if this method whould be supported.
-</p>
-
-<p>
-	Put differently, while the <tt>pb_assoc</tt> &quot;multimap&quot; can be viewed logically as the collection
-</p>
-<p>
-	{ <tt><b>int</b></tt> &rarr; {<tt><b>char</b></tt>} },
-</p>
-<p>
-	It would be nice if it could simultaneously be viewed as the collection
-</p>
-<p>
-	{ (<tt><b>int</b></tt>, <tt><b>char</b></tt>) },
-</p>
-<p><i>i.e.</i>, a &quot;set&quot; of pairs.</p>
-
-<p>
-	In more general terms, it would be nice to be able to simultaneously
-view a collection
-</p>
-<p>
-{ key_type_0 &rarr; { key_type_1 &rarr; { key_type_2 &rarr; { key_type_3 &rarr; { ... }}}}}
-</p>
-<p>
-as each of the following:
-</p>
-<p>
-{ (key_type_0, key_type_1) &rarr; { key_type_2 &rarr { key_type_e &rarr; { ... }}}},
-</p>
-<p>
-{ (key_type_0, key_type_1, key_type_2) &rarr { key_type_3 &rarr; { ... }}}
-</p>
-<p>
-{ (key_type_0, key_type_1, key_type_2, key_type_3 ) &rarr { }}
-</p>
-<p>
-...
-</p>
-
-
-<p>
-<a href = #mapping_level">Mapping_Levels</a> discusses the mechanism
-for these multiple views in <tt>pb_assoc</tt>
-</p>
-
-
-
-<h2><a name = "mapping_level">Mapping Levels</a></h2>
-
-<p>
-	Each associative container in <tt>pb_assoc</tt> has
-a <i>mapping level</i>. The mapping level is defined by
-the instantiation of a container's <tt>Data</tt>
-parameter:
-</p>
-
-<ol>
-	<li> If the <tt>Data</tt> parameter is instantiated
-by
-<a href = "null_data_type.html"><tt>null_data_type</tt></a> (<i>i.e.</i>,
-the container is a &quot;set&quot;), then the mapping level is 1.
-	</li>
-	<li> If the <tt>Data</tt> parameter is instantiated
-by
-<a href = "compound_data_type.html">compound_data_type</a><tt>&lt;Cntnr&gt;</tt>
-(<i>i.e.</i>, the container is a &quot;multimap&quot;), then the mapping level
-is 1 + the mapping level of <tt>Cntnr</tt>.
-	</li>
-	<li> If the <tt>Data</tt> parameter is instantiated
-by any other type, <i>e.g.</i>, <tt><b>char</b></tt> (<i>i.e.</i>,
-the container is a &quot;map&quot;), then the mapping level is 1.
-	</li>
-</ol>
-
-<p>
-	Containers can be rebound, at compile time, to different mapping levels.
-The compound data-type specialization <a href = "basic_assoc_cntnr_compound_data.html"><tt>basic_assoc_cntnr</tt></a>
-defines internally
-</p>
-<pre>
-<b>template</b>&lt;
-	<b>int</b> Mapping_Level&gt;
-<b>struct</b> rebind
-{
-	<b>typedef</b>
-		...
-		other;
-};
-</pre>
-
-<p>
-(which is similar to the STL's allocator rebind mechanism).
-the type <tt>other</tt> is the view of the container with mapping
-level <tt>Mapping_Level</tt>. The container can be safely cast
-to <tt>other</tt>.
-</p>
-
-<p>
-	As an example, consider the type
-</p>
-
-<pre>
-<b>typedef</b>
-	<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
-		<b>int</b>,
-		<a href = "compound_data_type.html">compound_data_type</a>&lt;
-			<a href = "tree_assoc_cntnr.html">tree_assoc_cntnr</a>&lt;
-				<b>char</b>,
-				<a href = "null_data_type.html"><tt>null_data_type</tt></a>&gt; &gt; &gt;
-	cntnr_t;
-</pre>
-<p>
-	which is a &quot;map&quot; mapping each <tt><b>int</b></tt> to
-a &quot;set&quot; of <tt><b>char</b></tt>s. In this case, <tt>cntnr_t</tt> has mapping level 2.
-</p>
-
-<p>
-	An object of type <tt>cntnr_t</tt> cannot support <tt>insert(std::make_pair(2, 'b'));</tt>. On the other hand, the following code snippet shows how to do so:
-</p>
-
-<pre>
-cntnr_t c;
-
-<b>typedef</b>
-	t::rebind<1>::other
-	t_;
-
-((t_ &)c).insert(std::make_pair(2, 'b'));
-</pre>
-
-
-<p>
-<a href = "../example/mapping_level_example.cpp"><tt>mapping_level_example.cpp</tt></a> shows a more detailed example.
-</p>
-
-
-
-<h2><a name = "ms_traits">Tags and Traits</a></h2>
-
-<p>
-	It is, of course, beneficial to query types for their mapping semantics.
-</p>
-
-<p>
-	Each container defines internally the type <tt>ms_category</tt>
-as its mapping-semantics tag (hopefully this name is not copyrighted
-by some major corporation). The possible tags, shown in Figure
-
-are the following:
-</p>
-
-<ol>
-	<li>
-	<a href = "basic_ms_tag.html"><tt>basic_ms_tag</tt></a>
-is a basic mapping-semantics tag. It is the type defined by &quot;set&quot;s.
-	</li>
-	<li>
-	<a href = "data_enabled_ms_tag.html"><tt>data_enabled_ms_tag</tt></a>
-is a mapping-semantics tag of types that have data. It is the type defined by &quot;map&quot;s.
-	</li>
-	<li>
-	<a href = "compound_data_enabled_ms_tag.html"><tt>compound_data_enabled_ms_tag</tt></a>
-is a mapping-semantics tag of types that have compound data. It is the type defined by &quot;multimap&quot;s.
-	</li>
-</ol>
-
-<p>
-	Additionally, a container's mapping semantics can be queried by traits. For any
-container <tt>Cntnr</tt>,
-</p>
-
-<pre>
-<a href = "ms_traits.html">ms_traits</a>&lt;Cntnr&gt;::mapping_level
-</pre>
-
-<p>
-	indicates the mapping level of the container, for example.
-</p>
-
-
-
-<h2><a name = "drawbacks">Drawbacks</a></h2>
-
-<tt>pb_assoc</tt>'s mapping-semantics design has some drawbacks compared to that of the STL.
-
-
-<h3>Equivalent, Non-Identical Keys</h3>
-
-<p>
-	The STL's multimaps and multisets allow storing equivalent, non-identical keys
-[<a href = "references.html#kleft00sets">kleft00sets</a>]. For example, assume a bank maintains a data structure monitoring the accounts opened by each person. This could be modeled as the following:
-</p>
-
-<pre>
-<i>// Name type.</i>
-<b>typedef</b>
-	std::string
-	name;
-
-<i>// Account-id type.</i>
-<b>typedef</b>
-	<b>unsigned long</b>
-	account_id;
-
-<i>// Association between a name and an account id.</i>
-<b>class</b> opened_info
-{
-<b>public</b>:
-	...
-
-	<i>// Comparison operator.</i>
-	<b>bool</b>
-	 	<b></b>operator&lt;</b>
-	 	(<b>const</b> opened_info &r_other)
-	{
-		<i>Comparison is defined as the comparison of the names.</i>
-	 	<b>return</b> m_name < r_other.m_name;
-	}
-
-
-<b>private</b>:
-	name m_name;
-
-	account_id m_acc_id;
-};
-
-<i>// A multiset of opened accounts.</i>
-<b>typedef</b>
-	std::multiset&lt;
-		opened_info&gt;
-	all_opened_info;
-</pre>
-
-<p>
-	<tt>std::multiset</tt> can accomodate multiple equivalent, non-identical <tt>opened_info</tt> - those with the same name but different account id.
-</p>
-
-<p>
-	In <tt>pb_assoc</tt>, however, non-unique mapping is unsupported. The equivalent to the above could be
-</p>
-
-<pre>
-<b>typedef</b>
-	tree_assoc_cntnr&lt;
-		name,
-		compound_data_type&lt;
-			cc_hash_assoc_cntnr&lt;
-				account_id&gt; &gt; &gt;
-	all_opened_info;
-</pre>
-
-<p>
-	The drawback lies in the fact that the data stored in
-<tt>all_opened_info</tt> is less encapsulated - an <tt>opened_info</tt>
-object needs to be constructed when a specific name and account are found, and
-an <tt>opened_info</tt> object needs to be decomposed into <tt>name</tt> and
-<tt>account_id</tt> objects when it is inserted into a <tt>all_opened_info</tt>
-object.
-</p>
-
-<p>
-	It should be noticed however, that the above drawbacks - construction and decomposition are constant-time additive drawbacks. The drawbacks of the
-STL's associative containers are in terms of orders of growth.
-</p>
-
-<h3>Definition of <tt>value_type</tt></h3>
-
-<p>
-	The STL's associative containers contain a pleasingly uniform definition of
-the <tt>value_type</tt> of a container.
-If a container is parameterized by <tt>key</tt> as its <tt>Key</tt>, and <tt>data</tt> as its <tt>Data</tt>, then its <tt>value_type</tt> is
-<tt>std::pair&lt;<b>const</b> key, data&gt;</tt>;
-for example, the <tt>value_type</tt> of <tt>std::map&lt;<b>int</b>, <b>char</b>&gt;</tt> is
-<tt>std::pair&lt;<b>const int</b>, <b>char</b>&gt;</tt>. Futhermore, the <tt>value_type</tt> of a container and the <tt>value_type</tt> of the container's iterators are identical.
-</p>
-
-<p>
-	In <tt>pb_assoc</tt>, conversely, the rules are more complex.
-</p>
-
-<p> For one, a container's
-<tt>value_type</tt> is, in general
-<tt>std::pair&lt;<b>const</b> Key, Data&gt;</tt>,
-but if <tt>Data</tt> is <tt>null_data_type</tt>, then the <tt>value_type</tt>
-is
-<tt>Key</tt>,
-and if
-<tt>Data</tt> is
-<tt>compound_data_type&lt;Cntnr&gt;</tt>, then the <tt>value_type</tt> is
-<tt>std::pair&lt;<b>const</b> Key, Cntnr&gt;</tt>.
-</p>
-
-<p>
-	Futhermore, assume that <tt>Cntnr</tt> is an associative container with more than a single mapping level, and let <tt>Cntnr_</tt> be defined as
-</p>
-
-<pre>
-<b>typedef</b>
-	<b>typename</b> Cntnr::<b>template</b> rebind&lt;i&gt;::other</tt>
-	Cntnr_;
-</pre>
-<p>
-<i>i.e.</i>, the container rebound to a different mapping level.
-In this case, the <tt>value_type</tt> of the rebound container is not the <tt>value_type</tt>
-of the rebound container's iterators. <i>I.e.</i>, it is <emph>not</emph> true that
-<tt><b>typename</b> Cntnr_::value_type</tt> is the same as
-<tt><b>typename</b> Cntnr_::iterator::value_type</tt>. This complication never exists for the STL's container.
-</p>
-
-<h6 align = "center">
-<a name = "reference_iterator">
-<img src = "reference_iterator.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Iterator of a rebound type.
-</h6>
-
-
-<h3>Multisets</h3>
-
-<p>
-	<tt>pb_assoc</tt> does not contain a &quot;multiset&quot; type. The closest equivalent is mapping keys to non-negative integral types, <i>e.g.</i>, <tt>size_t</tt>.
-</p>
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_tag_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/ms_tag_cd.jpg
deleted file mode 100644
index b114d9357985d443f6b180b5aa3d0a2239d7725e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 21009
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
YWvKUZs@S>a8-)wWuSbEAAMD6~0P%K;(f|Me

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html b/libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html
deleted file mode 100644
index 933699307696..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ms_traits.html
+++ /dev/null
@@ -1,131 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>ms_traits Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>ms_traits
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Traits of a container based on its mapping semantics.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ms_trait.hpp"><tt>ms_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">Container attribues.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Container attribues.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "has_data3735929380">has_data</a></pre>
-
-
-</td>
-
-<td>
-<pre>True only if the container is not a &quot;set&quot type.</pre>
-
-
-</td>
-
-<td>
-<p>Data indicator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "has_compound_data3735929399">has_compound_data</a></pre>
-
-
-</td>
-
-<td>
-<pre>True only if the container is not a &quot;set&quot type or &quot;map&quot; type.</pre>
-
-
-</td>
-
-<td>
-<p>Compound-data indicator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "mapping_level3735929938">mapping_level</a></pre>
-
-
-</td>
-
-<td>
-<pre>The number of mapping-levels the container supports (1 for &quot;set&quot types or &quot;map&quot; types).</pre>
-
-
-</td>
-
-<td>
-<p>Mapping-level indicator.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariant_invalidations.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/node_invariant_invalidations.jpg
deleted file mode 100644
index ea03b42be4d66dd538f87cf3eff2806f3c89db0e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 43521
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%0D{`X_;ua|I}@h
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
b^!ool{PK_B&xHY&`=-_XZwK52KM(&u2c}lU

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html b/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html
deleted file mode 100644
index 9d23841402f7..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>Node Invariants</title>
-		<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-	</head>
-<body bgcolor = "white">
-<h1>Node Invariants</h1>
-
-<p>
-	Figure
-<a href = "#node_invariants">Some node invariants</a>
-shows some node invariants. A shows
-a tree whose each node contains, asides from an <tt>double</tt> key, the number
-of nodes at the subtree rooted at the node; B shows a tree whose each node
-contains, asides from a line-interval key, the maximal endpoint of the interval
-of any node in the subtree rooted at the node.
-	The first tree allows querying efficiently what is the order statistic
-of any element; the second tree allows querying efficiently if any, or which,
-intervals overlap a given interval.
-</p>
-
-<h6 align = "center">
-<a name = "node_invariants">
-<img src = "node_invariants.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Some node invariants.
-</h6>
-
-
-<p>
-	Maintaining such trees is difficult, for two reasons:
-</p>
-<ol>
-	<li> Various operations can invalidate node invariants.
-<i>E.g.</i>, Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how a right rotation, performed on A, results in B, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in C);
-Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how an insert, performed on D, results in E, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in F).
-	It is not feasible to know outside the tree the effect of an operation on the
-nodes of the tree.
-	</li>
-	<li>
-		Even if node invariants are maintained, it is not possible to know
-in advance which search paths are required (<i>e.g.</i>, searching for all
-line intervals overlapping some interval might require several search paths).
-	</li>
-</ol>
-
-
-<h6 align = "center">
-<a name = "node_invariant_invalidations">
-<img src = "node_invariant_invalidations.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<p>
-	These problems are solved by a combination of two means:
-</p>
-
-<ol>
-	<li>
-		The tree-based containers are parameterized by a <tt>Node_Updator</tt>
-parameter. When a tree operation might invalidate some node invariant,
-a <tt>Node_Updator</tt> object is invoked to restore the invariant. This object is
-always invoked with three nodes: some node, say <i>x</i> in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-A
-has an invalid invariant, but its children, <i>y</i> and <i>z</i> hav valid invariants.
-After the invocation, all three nodes have valid invariants, as
-in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-B.
-It is well known that any <tt>insert</tt>, <tt>erase</tt>,
-<tt>split</tt> or <tt>join</tt>, can restore
-all node invariants by a small number of node invariant updates
-[<a href = "references.html#clrs2001">clrs2001</a>].
-For example, Figure
-<a href = "#update_seq_diagram">
-Insert update sequence diagram
-</a>
-shows an <tt>insert</tt> operation (point A); the tree performs some operations, and
-calls the update functor three times (points B, C, and D).
-	</li>
-	<li>
-		The tree based containers all define internally <tt>node_iterator</tt>
-	and <tt>const_node_iterator</tt>, iterators which can be used to traverse
-	from a node to any of its children or parent.
-	</li>
-</ol>
-
-<h6 align = "center">
-<a name = "restoring_node_invariants">
-<img src = "restoring_node_invariants.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<h6 align = "center">
-<a name = "update_seq_diagram">
-<img src = "update_seq_diagram.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert update sequence diagram.
-</h6>
-
-
-<p>
-	In
-<a href = "concepts.html#concepts_null_policies">Null Policy Classes</a>
-a distinction was made between <i>redundant policies</i>
-and <i>null policies</i>.
-</p>
-
-<p>
-	Seemingly, in this case a redundant policy - a policy which doesn't
-affect nodes' contents would suffice in this case. This, however, would
-lead to performance loss.
-Figure
-<a href = "#rationale_null_node_updator">
-Rationale for null node-invariant functors
-</a>
-shows a typical case where invariants are restored (in this case, to the
-shaded node). In most cases, tree operations such as rotations affect only
-the lower levels of the tree. A null policy allows to know that there
-is no need to traverse the tree to the root.
-</p>
-
-<h6 align = "center">
-<a name = "rationale_null_node_updator">
-<img src = "rationale_null_node_updator.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Rationale for null node-invariant functors.
-</h6>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/node_invariants.jpg
deleted file mode 100644
index d9b96ddecb0a4b7ba18a296b3aeee7aacc6f9f2d..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 32622
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%0A>0VKbL{^9y4x>z#lZE!(
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
VRaf*da;Ql3v77^q<e;Bl{|{b@t^5E0

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html b/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html
deleted file mode 100644
index 866ea5229c63..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping.html
+++ /dev/null
@@ -1,404 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-	<title>Non-Unique Mapping Containers</title>
-	<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-	<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor="white">
-
-<h1>Non-Unique Mapping Containers</h1>
-
-<p>
-	This section describes the design of non-unique mapping containers
-(multimaps and multisets). It is organized as follows:
-</p>
-<ol>
-	<li> The <a href = "#general">Main Points</a> Section describes the main points.
-	</li>
-	<li>
-	The <a href = "#types">Mapped Data Types and Mapped Value Types</a> Section
-	describes some additional types that each associative container defines.
-	</li>
-	<li> The <a href = "generics">Generics</a> Section describes some classes for
-	generic programming.
-	</li>
-	<li> The <a href = "#compound_keys">Compound Keys</a> Section describes an
-	alternative to the STL's design of using equivalent, non-identical, keys.
-	</li>
-</ol>
-
-<h2><a name = "general">Main Points</a></h2>
-
-<p>
-	In <tt>pb_assoc</tt>, all associative containers have a unique-key design;
-each container can have at most one entry for any given key. Multimaps
-are designed as maps from keys to sets; multisets are designed as maps from
-keys to non-negative integral types.
-</p>
-
-
-
-<h2><a name = "types">Mapped Data Types and Mapped Value Types</a></h2>
-
-<p>
-    The STL's design of associative containers elegantly allows
-generic manipulation of containers: each container defines
-<tt>data_type</tt> as the domain of its data;
-<tt>value_type</tt> as the domain of its relationship. This is not
-directly applicable in <tt>pb_assoc</tt>. Consider
-a multimap mapping <tt>Key</tt> objects to
-<tt>Data_Coll</tt> objects, where
-<tt>Data_Coll</tt> is some set-type of <tt>Data</tt>.
-Then should the multimap's <tt>value_type</tt> should be
-<tt>std::pair&lt;Key, Data&gt;</tt> or
-<tt>std::pair&lt;Key, Data_Coll&gt;</tt>, for example?.
-</p>
-
-<p>
-	<tt>pb_assoc</tt> addresses this by differentiating
-between the <i>domain</i> and the <i>type</i> of relationship.
-All associative containers define <tt>value_type</tt> as
-the relationship's <i>domain</i>, and <tt>mapped_value_type</tt> as its
-<i>type</i>. <i>E.g.</i>, both
-map types and multimap types may share the same <tt>value_type</tt>,
-if they map from the same key domain to
-the same data domain. In this case, however, they will not share
-the same <tt>mapped_value_type</tt>, since the multimap type maps from the
-key domain to the domain of collections of data. The same
-differentiation exists between the domain and type of mapped data.
-</p>
-
-<p>
-	In general, the following types describe the relationships
-of each associative container:
-</p>
-<ol>
-	<li>
-		<tt>key_type</tt>- This describes the domain of the keys of the container. All
-		associative containers define this type.
-	</li>
-	<li>
-		<tt>data_type</tt>- This describes the <i>domain</i> of the data mapped by a
-		key. It is identical to the <tt>data_type</tt> defined by <tt>std::map</tt>, <tt>std::set</tt>,
-		<tt>std::multimap</tt>, and <tt>std::multiset</tt>. Sets and multisets do not
-		define this type, since they map each key to the abstract fact that the key is
-		stored by them.
-	</li>
-	<li>
-		<tt>mapped_data_type</tt>- This describes the <i>type</i> of the data mapped by
-		a key. For maps, this is the same as <tt>data_type</tt>. For multimaps, this is
-		not the same as <tt>data_type</tt>; The <tt>mapped_data_type</tt> describes the
-		collection of <tt>data_type</tt>s used. Sets do not define this type. For
-		multisets, the <tt>mapped_data_type</tt> describes the unsigned integral type
-		used to indicate the number of occurrences of a key.
-	</li>
-	<li>
-		<tt>value_type</tt>- This describes the <i>domain</i> of relationships store in
-		a container. It is identical to the <tt>value_type</tt> defined by <tt>std::map</tt>,
-		<tt>std::set</tt>, <tt>std::multimap</tt>, and <tt>std::multiset</tt>.
-	</li>
-	<li>
-		<tt>mapped_value_type</tt>- This describes the <i>type</i> of relationships
-		store in a container. It consists of information on the <tt>key_type</tt> and <tt>mapped_data_type</tt>
-		(except for sets).
-	</li>
-</ol>
-
-<p>
-	The following table defines the above types for a map
-mapping from <tt>Key</tt> types to <tt>Data</tt> types:
-</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table1">
-	<TR>
-		<TD Width="50%" ALIGN="left"><b>type</b></TD>
-		<TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>key_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Key</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>data_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Data</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_data_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Data</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data&gt;</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data&gt;</pre>
-		</TD>
-	</TR>
-</TABLE>
-
-
-<p>The following table defines the above types for a
-set storing <tt>Key</tt> types:</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table2">
-	<TR>
-		<TD Width="50%" ALIGN="left"><b>type</b></TD>
-		<TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>key_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Key</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>data_type</pre>
-		</TD>
-		<TD ALIGN="left">-</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_data_type</pre>
-		</TD>
-		<TD ALIGN="left">-</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre><b>const</b> Key</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre><b>const</b> Key</pre>
-		</TD>
-	</TR>
-</TABLE>
-
-<p>The following table defines the above types for a multimap
-mapping from <tt>Key</tt> types to <tt>Data_Coll&lt;Data&gt;</tt>
-types, where <tt>Data_Coll&lt;Data&gt;</tt>
-is a set of <tt>Data</tt> types:</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table3">
-	<TR>
-		<TD Width="50%" ALIGN="left"><b>type</b></TD>
-		<TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>key_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Key</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>data_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Data</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_data_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Data_Coll&lt;Data&gt;</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data&gt;</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, Data_Coll&lt;Data&gt; &gt;</pre>
-		</TD>
-	</TR>
-</TABLE>
-
-<p>The following table defines the above types for a multiset
-storing <tt>Key</tt> types:</p>
-<TABLE WIDTH="100%" BORDER="1" ID="Table4">
-	<TR>
-		<TD Width="50%" ALIGN="left"><b>type</b></TD>
-		<TD Width="50%" ALIGN="left"><b>Description / Definition</b></TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>key_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>Key</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>data_type</pre>
-		</TD>
-		<TD ALIGN="left">-</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_data_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>size_type</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre>std::pair&lt;<b>const</b> Key, size_type&gt;</pre>
-		</TD>
-	</TR>
-	<TR>
-		<TD ALIGN="left"><pre>mapped_value_type</pre>
-		</TD>
-		<TD ALIGN="left"><pre><b>const</b> Key</pre>
-		</TD>
-	</TR>
-</TABLE>
-
-<p>
-	The above types allow to define simple invariants on the interfaces of
-containers. For example, each container defines both an <tt>insert</tt> method
-which takes a const reference to a <tt>value_type</tt>, and an <tt>insert</tt> method
-which takes a const reference to a <tt>mapped_value_type</tt>. Containers for
-which both these types are synonymous (<i>i.e.</i>, maps and sets), consequently
-have a
-single <tt>insert</tt> method. Containers for which these types are distinct (<i>i.e.</i>,
-multimaps and multisets), use overloading.
-</p>
-
-
-
-
-
-<h2><a name="generics">Generics</a></h2>
-<p>
-	<tt>pb_assoc</tt> contains a number of utility classes to ease generic
-programming.
-</p>
-
-<p>
-	There are four container-type identifiers, <a href="is_map_type.html"><tt>is_map_type</tt></a>,
-<a href="is_set_type.html"><tt>is_set_type</tt></a>, <a href="is_multimap_type.html">
-	<tt>is_multimap_type</tt></a>, and <a href="is_multiset_type.html"><tt>is_multiset_type</tt></a>.
-Given a container <tt>T</tt>, for example, it is possible to query at compile
-time whether it is a a multimap type by writing <tt>is_multimap_type&lt;T&gt;::value</tt>.
-(This is probably very similar to [<a href="references.html#boost_concept_check">boost_concept_check</a>]
-and [<a href="references.html#boost_type_traits">boost_type_traits</a>].)
-</p>
-
-<p>
-	In some cases, it is necessary, given a container and an iterator, to query the
-iterator' <tt>value_type</tt> to the container's <tt>value_type</tt> and <tt>mapped_value_type</tt>.
-The classes
-<a href="is_mapped_value_iterator.html"><tt>is_mapped_value_iterator</tt></a>
-and <a href="iterator_key.html"><tt>iterator_key</tt></a> can be used for this.
-</p>
-
-<p>
-	The STL's <tt>std::multimap</tt> and <tt>std::multiset</tt> allow iterating
-over all <tt>value_type</tt>s stored in them, which is convenient. The library
-provides a <a href="value_iterators.html"><tt>value_iterator</tt></a> for this.
-This is an iterator adapter over the containers' native iterators.
-</p>
-
-
-
-
-<h2><a name = "compound_keys">Compound Keys</a></h2>
-
-<p>
-	The STL allows using equivalent, non-identical, keys.
-For example, let <tt>interval</tt> be a line-interval class,
-<tt>color</tt> be a
-color type, <tt>thickness</tt> be a thickness type, and <tt>colored_interval</tt>
-be a class composed of an <tt>interval</tt> and a <tt>color</tt>.
-</p>
-
-<p>
-	Suppose one wants to store <tt>colored_interval</tt>
-objects using a comparison predicate ignoring colors. Then
-in the STL's design, one would use
-<tt>multiset&lt;colored_interval&gt;</tt>; in <tt>pb_assoc</tt>'s design,
-one would use one of the following:
-</p>
-<ol>
-	<li>
-		A map mapping <tt>interval</tt> objects to
-<tt>color</tt> objects. This, however, assumes that
-<tt>colored_interval</tt> is decomposable to, and constructible from,
-<tt>interval</tt> and <tt>color</tt>.
-	</li>
-	<li>
-		A map mapping <tt>colored_interval</tt> objects to
-<tt>color</tt> objects. In this (less efficient) case, a <tt>colored_interval</tt> object
-is a "representative" of all colored intervals with the same endpoints.
-	</li>
-</ol>
-
-<p>
-	Suppose one wants to map <tt>colored_interval</tt>
-objects to <tt>thickness</tt> objects
-using a comparison predicate ignoring colors. Then
-in the STL's design, one would use
-<tt>multimap&lt;colored_interval, thickness&gt;</tt>; in <tt>pb_assoc</tt>'s design,
-one would use one of the following:
-</p>
-<ol>
-	<li> A map mapping <tt>interval</tt> objects to
-<tt>std::pair&lt;color, thickness&gt;</tt> objects. This, however, assumes that
-<tt>colored_interval</tt> is decomposable to, and constructible from,
-<tt>interval</tt> and <tt>color</tt>.
-	</li>
-	<li> A map mapping <tt>colored_interval</tt> objects to
-<tt>std::pair&lt;color, thickness&gt;</tt> objects. In this (less efficient) case, a <tt>colored_interval</tt> object
-is a "representative" of all colored intervals with the same endpoints.
-	</li>
-</ol>
-
-<p>
-(From the above, it is apparent that the STL's design has an advantage
-over <tt>pb_assoc</tt>'s design in terms of convenience. Nonethless, there
-are efficiency limitation in the STL's design (see
-<a href = "motivation.html#unique_key">Unique-Key Design for Multimaps and Multisets</a>).)
-</p>
-
-<p>
-	The above example, using intervals, colors and thicknesses, can be generalized.
-Let
-<tt>key_unique_part</tt> be a unique part of some key
-(<i>e.g.</i>, <tt>interval</tt> in the above),
-<tt>key_non_unique_part</tt> be a non-unique part of some key
-(<i>e.g.</i>, <tt>color</tt> in the above),
-<tt>key</tt> be some key composed of unique and non-uniqe parts
-(<i>e.g.</i>, <tt>colored_interval</tt> in the above),
-and
-<tt>data</tt> be some data
-(<i>e.g.</i>, <tt>thickness</tt> in the above).
-Then the <a href = "#stl_to_pb_assoc_non_unique_mapping">
-figure shows some
-STL containers and the <tt>pb_assoc</tt> counterparts.
-</a>
-
-</p>
-
-
-<h6 align = "center">
-<a name = "stl_to_pb_assoc_non_unique_mapping">
-<img src = "stl_to_pb_assoc_non_unique_mapping.jpg" alt = "no-image" width = "60%">
-</a>
-</h6>
-<h6 align = "center">
-STL containers and <tt>pb_assoc</tt> counterparts.
-</h6>
-
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping_containers.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/non_unique_mapping_containers.jpg
deleted file mode 100644
index 3bdacd005fae1ff45af2e020600588628e708b49..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 19257
zcmeHOcT|+ilK;j5ha?D+(;zt`QF2hCh$P7%C>aDKX9iJn20;<YVL*Z)If)8_h~zv7
zNX|J(a%Mm8eS3p9?A!P5?%6%(&Yb?^o9XH4s_w3;U)8TMqnOXY`D=<QiU0%x0nETR
zfEfp_0yt;S!p>sjz+f<3TpT<C(sKm(_yklW7l=sdsNwW<)U>n=%)D$2jNDALwCtBT
zxG(Vw2?@d3#H2(8BzXme1ilRd!NtWTz$c(QcaBovBJD+i|Mm;>8X(4jFhF^s5Jun(
zF$78s!L$N!0DxeFv;8*Vf4m@Ppjg;vVK}&W_+W>s^S~Jh6nX{=ij9qh1@`s_zX!00
zu}LoS%bmTTc^k&)Oe%0cJ`0EGO8FZyt-dX0!8<NNxOn6glvLC#tZeKYoI=7Pmqo?I
zugWVZDk-a6)4r*rtEX>ZXl`L?Wo=_?=j!I};pye=^Wb4{NN8AiL_*@Dq~ym>Ql4h#
z<mTlg3ksjVtf;K2uBol7f7{afuC4uj$A|ub!J*-i(J|EY%<SC!!s62M%J$Cg-u}Ut
z!=vMGazOy-k7E5K*>`dggL0k0!h&MKzR3kS;|Vq>F&6ek{<9=<ny}l>7Z?TZ<B(p7
z&nka|%Ot3^MRv!f509K#XqsjFn`l2s_Rk3x^e;*FlVCr~g#rkm5ODFJ#DEO2=Y;E}
z+HxHFu(F}Ei?QD~rDSL>S$U_sy^yW0B;!!7kp~0F(!fvl*tag9hN1Yr`mpVk1_g>?
zfM0%x0Upx4o!WzxV}Rx>^?2;ij9+~c`-{F@nc08;`bUlaN=JWd?LYU=-@D~x@9$Ic
zlim6Il>DEwsg1L<BH{UmzHbjM8%jOXz0kB2om)dgS=uhj?C~C+<SXSZ)4q9h!EN&d
zhYua;18hj1!vKsTkr?1s_-RpQDdP3i4wFsu{!+$=dOUzVJL3O+<LW@mAl|1U5u<X5
zJ)@Cgy~NW13=n_$1_me#!T?J(nS`^y6ngRWR~pGY6T$xfzcpseemM=V_x$>h0s|;C
z`MmoJwm~B!UwHkA*SdRkBkYZq-J&Y)eDs4kK-q|<K5oKa0q|`i)s)5l!`5LLgLBI^
zSAQm2Rif^-h8T1D+qx9t32QBhN_$m%`>S7gtAKa8^hG3}*S}b4uTKVwKjlhNQ*S+B
z^B<%RK;oRd?V?5*BVLwn6#GZ=ja0db2V^-Ej^z#Irq0}rk<-ehB{TEJIxh!{vpLiC
zhqL&d8IsMz$%QchiM|)|t<UAqeODx%u3qre2R)id#zHYz{%rp<NsevDPgEDT=c6`Y
zxWZ3^We%q^iFC4SO+(U!nzwb*^DIjY^Ilct8v8$8Q@j-A4GGQqP_1-BaEfd~1EN6s
zT_fxEiqsw|sd5m!(VzeF{zgu^Qu4~g0-#g@aK2CT-0!gimX=D@5m7Qr{8<>_bG8#&
zCFfU9nS?JR=Dr-ZpdV1f(Ri#FVD9PVUp)b<?EmWnn8@55ncfyoPb-|Tt+`}k)Wsk&
ztR?&Yy>`R3&kq_8=-8n}*%9o(Khs{Y9exGPlw%qOxQ&eg`kZc+-%{T`LCa4_px@$S
zfb7XYiC8G&eRMVk7|BL(E^%f2DkjEb&kp>)iB3fXuz()SX!;<}C%SsU;)JK!_$W3$
ze&g%{1_&I%6$zcr+M+$Q6)xeZBC9#khug<G*PR@mOduXC>z=xj9B$5_Lq9LZejE^b
z-*u2F1|$fO&X&`_P6<YIFaVzKYxo|o90ow-VSt%}Gp51mZ1h}PXVbjaQwu28YGgJu
zp)z4_PVFmRkZl>;Zhe^*c`?mR=~iNb-JOoy2!b%2QP1E1g5p9I{E>>FDcjnqMH6r(
znH9%;?^24B?bbS!f8>+h6$stRy3V#SAMQX^u2v`VdfR76;+%Mr2Ye$f#y_cHrnrbJ
zyZ(~p?YP%-#IpDX)r5B??>Y>G2}>xYjg&oQjrR06U<N={@*C=8<hHr<k#!cbiByyC
z7_@!OO&X)V?i0Mz=enZrAp{xhQy>L2|G5U4F{NH?tlHiTTpU<e7+Uir>@`Y8G2h!>
zH$LciXZy*kXQsEt72dLHVJ1NNsc05`2F_Z67ML2hMG#9u5WegY!>HxF<SV$SB4+t#
zgg$zP7=T(Do-K%YD;s_P8BgVyjCw*Ke*kV*ep7XAkF(n(OZr+@(N#~1<fS7~RGkd3
zs_)zmjBI6pHiIBH;~kt-Qf=1Pmx{;D_lYiQB3CW{j)>pnDXaR)YrXQ`-<(t9>Lv`p
zlzbm_l_MG5)GPMMBh7Ozy)vt)-J=#+YEn%F;QL0FJhdYQdeddk)9I3HolZyem8Qpg
z4d{ElFr(j?f$z=2Kc2ta=uLONv*my%{aMhT(I{Ym7xHMGUOk!5PDjMw{zrY@1p7Br
z`Zh(KNVT${1EbNqB{>aG?x^&$5YA2nb}Y$oRw<A|wEX$h>l;EgX4;1BpE%E}F?06N
z6DkffF=bq<`OP{jxVk%8L)G0SHRPKtlHL}assXABt{7k|#a58kwrx?zacb;fQviNq
z151`6C-rY`9ckWP%^ugkh?Y`Z5{x~uCjX4sESIIj{_RM25Vu#p_^sSxu0#2}Ltd$V
zkGSwk?ohPQp^+(b{6-DzM$F8-kMS)*<7?8f7p>rFfVEu!Tg70eex=k6wCz>vkNw5(
zK9ue8elUlB>0LHH*VG(6U?_5nI)y|Su@`AS6rEGUmhnX1z#IcO!zJhVv~P8|I?zoN
zC-+m4i&5Bny9kI#r6@CP2_<`Yp!|zHs_!Xb5l1mQ7wEtPGl`hDnWbea2PK=-H7a5i
z6CX&Yhn)8(O9|)Ca9NRXTqGN^@p-w#&u!R<sw&2(RGzLKFjw_@l^|Oj=x@4PI+0{@
z?PZA8B{?cA9TOR~%Kj46<Oe?1GxM!-;qpC}Skrp3^_RrAy8v?P{EX)<i?$=fBhH9`
zNu9U=v!VJA&0E9ag<Xpi%gO!59<?~+ntRS6@cYj*wxTCcyLpG9+BMKzJzn0~)9ZoF
zb2EYBcw8B~r+Sv?>YnRE=iPm64N+J3qQ7upfLHI}TaOKmwx8?U`P|-cbWl~4eyP+1
zn;C@kYU*$ctI6nub`QKLDV;%oZ7gCqeN*K2UmbSHH4LCMAbcfMW1xihqc@HtgMr9m
zsQ{rk-t%;_tu;qFp>sU?v_agnSOG~d6adEO*})oT?gs*&@eF?_&MI?XCp^&_<mRhf
zzcSfB(`Tu^7pa?OVlkdhF3%ACpxI{<Oj$UsnUZ0EUSIG8ype1^O;kGIivR;VDbN{w
zPB%rXls>i1t_fa9zZt<yW$l6YT&km3aAuq<u|}!7VVI`EK<P>I<}O(jnn1k@&_Tc3
zHvI~#G(El0i2*u<X;IeUCDY!>ZTetRWr6Nv`3Ugm^+m7LBZT4mH6lKeY=;hy*99@a
zl;atWgV8BNKWUPF`3`4a+WNE)&x%nGLtKzUH%|*O07O%k*1x;1n5QvO-`>YDkJhZB
z%OU$cgN8)P<g$5tU-&_R1M6XqZ%$9aRr~3!&aS4$>RqPpSG59uO=UE6#{?Ia9*ZlK
ztnX1=mY6s4qs%lv$-5VTo?IWmTBMwXi8ag8>mgUsOtm!vQ<DZ`oct=x)T9GSG=y0Z
z#v8Hly*{maE*b}4?P>}Udd{u=L0E2_t&2GN&Pu(CTdJ+FXchC+In=oq%t}sAGd?-@
z1@=(Qc`&gFzi8yoHT{%|tUNynKk}{e2y%MY8^Sc2zz)59Lh%l<N8g9oQs=_}%za-Y
zXPS?RY?=?*9%Fz6yPg9?SS9+duuT<CsIsu=L36JfCFQARY!iGdvFS1OaJ)Zqws<MS
z=E3SK$t3!XB3ZKLaz8x`Ah!;Ns8~A~U`I^_dFZPfd#ieIUrqPJoY7To&3E=@TQ2hg
zDz>JgV*}6<NBtFY!?d!xvWB1)XumQuVe^wBq5o=!{`CECkiZN5-vk=6bnW+>=M?)8
zt9>#_Ze%@&G-!DT3Ut$jBR#o432wiIl|Kf!Y332a+#8D!*|`K?ytnAS5#ielw&c~r
z$<`Ytc92eGDP1y#;2#5A5hp%}$`if%#@ZMhCMsKIv&;Zt!zulm$LjVc!3k}n{CHn7
zuht=&f?P6pTg<lm8#ixlg~qZDD;A@MstZZQ_)#rXRW=x4HIAihBEVrf49z>#G;KoI
zzeydukd*hyjF@hqOStQ8t*E7wl;=e(+Ne3=2w)hDfjU*5%-*;xUgUx9sqv1(0OPWf
z<%eZC>u6Tc<;9wiquvm0uUwXUh8P#Efnosvh$V4?Z>dCd%h1NrV55p_<$mOiV23y~
zo8N;iXRUEBCAsP}N5V9^cOUj@8?9;|`O{zdC?h_e9Z2}#kMI;h5e7JC^Yq!I|73~-
zOS^sGeM`6!<?Tai@a*7BOuP^`4Re>cC$8W!vmw*^9v^+<ABh;5cOIszclWw9VS3d`
zCAl)nQ!W`NYnm7U*FCS9Ixhs7PrtA*SZTh>?Asf_V}eZz$sn(?^hI`f=c$wD7u4Zf
z3y3+Hc|tM@Nxxp!tr*JotbEKvHO_q_&mz3Je#u*VO~Jw|Rj#7`;beR6vcSYe?k|@e
z&1`zlsE}kQ(=|lwaHaUExEEdZ&#|-WU^p_bOHg66rRepp^H8^Dpl|S@29D20>>BaW
ztsX=*qjZxEA2Nm73)`?92U}U1uh#`M6*UjIOQ_v?D>2UD_nx_%5QiZKhhYat^1P1*
zcKz=Ju0I8`Tri_oLx~0hLS3A`T%PqY-nWd3te-*XKLSOJ?o%UD_1XdLvqZ;)ONc|(
zRPaa^Kr^%JFhKb?WKa)B<K}}n;kop`(4{!s{ZM-HV0eWkW+HZ+H|6bBhnROg*cf1p
zP9o`jw_<tbVW;juZiOlN@&Uc|IpOrURaPm8eMtMD*~##&jICX*vKTUdRry96nIYkY
zc%f_=x2x{uGM_owp*hk#FY6@SeC?ZVHwZuSjznVse*K=$ttVRE((HqX;ZI{rTN%^U
zrj<S5Hmt=#j+^`2kO%NVp~k&|AfOj&K21^@J-rQ@kqIKuj0_-lbO32Mt}UZQZBvZN
zjrkk84p**<X|FsFxCsXN1tq-zCG^Zcqm%~wu7J+gYH<&wZ~nv^PploNgE=!nG*xWF
z^&ij-S1y<(;ELU@3EOud*;TFTk4~r>O-b9x^p?e~0I=Own@6eu4^q8k4Di-`mgwlX
z7mSjOE`x^i+g6Q@l38563i_|RQ>XE=^mz*2PN%HWmoPv^2`C131!6}5zV!rLxPVHT
zQ}Qm*Gm%0jro7CRo9iyC+gxmv+4*9(jx`mTMW9s9tmCwX0f=o+NA3FThzaBDoYxVV
zPcQKw=D>Ys5!3wJp{HMM5QjY9wgfwP_}kmyyZhg8WwjGpIg_vxP2%}-*07(i^3*-;
z!uolC&-R3zi6J``NzFS&WS?9VoO8ubQNfkj`ZIU;65;O7v8i!l-IK`h?}sY(Jt;BQ
zsI@Pokc(KapD@x_$7)|$cA<>Dqnt@(tE;E+K~75mN0M0e7R&VNCb^djhgr=Cw<FJ!
zd4}47(Oj7gha_eCvG#!6#F~FmLn}A`LUsS{V7eJ0k_IoP4ztf)*7g@sX01uqa44||
zPl`i&B)x(2uglVX{XX^Z>&(l3#10~MYKL`s>fpTTSMoi`C$C?47-J0Z3-9x%Knv1y
z82a_{&Av*H1^kqB-(d8qGw)~QXoFIQ29A_{W-**N$I#fe9#v?wca*x$K#*~9u&4|J
zxUIRal}wS<$Gl{$zhrSc$x;l<Cju~BY(G^!bzzJRb5|8(jrYaPvKjFlN{}V`>PiLz
z40{Z4!IYw-K&h)V)rsYiqqqv!OQG6*{Q2y~!Ll_Q(9HaExE>mI81FSRpw^!h7IWZX
zivdtE!V@*ycT)DL=vL!PduHfUdD>EJpUVc1-+0o&S<rFmWs(c5=EIbN@Vg?e0!xNM
zDlB@OOze^j=%kAE%yKb!rgNrHmGi#1=InLHNq+Dz<mE-auYLR;2VATj#*4SNhZ@RH
z<i@9{&VHSU5M22v{y>&K_D_%)Or`(>yx+|Pv2fnvZb&`e;y(O{-VJ`d*NDD1^7|10
zEjkCpiQNxCocI{TiC`{b5HaW7i&*UkaUzJw$QCn*LCY&KjRB75-7!FAQSWMxG!ytg
zo-G()|HCQ<u+@M`{K>3-fTo7@q#*1&Q3qk4M8+bS^>Apg%v`_#=>EGGkKW1B7kxj#
z{{WEu0q<%_6x(#Kk&#-a!~pd9W$IybgDSBt!w3{KtI=a;U2o}-Rs9gSJsK}dEnYG)
zl!Q#RwcwqS5vW`x$^M-1F4ieic)p~>D_iOcrQbydYg#>C`FlJq#s-UrDXNMO*<l&%
zk6@poj!C?1Zq;|an4r^=_2kADG0ZxMWb+*ABp!`u%3r?IF<+N%T4}0wpLyIPFejT~
z(T=cXMTI$0mfqp{$}7p5;ioM|<Runz?&vN7*+fPD1byy=0$Ayroqc8ws*O|r0u^s_
z>h}Dxas6B~Ii6^gIuz1I8i?H6FOgEZ5vo<aW5pd+OwVC1>h;XcQY!2;jF~n_!Ad5?
z{0{F-y)TbJ;O-0VM~ZAtdQtPHXe?a1u*`ESTp8$*A)(mEM&-Nf?WfJl+Z6?0yz1OQ
zzq3i#K~`byYhPfPH<a{Ik9>z9w;T-0vPdCP-<ylyJjbk33pQXYP+6G=!U~Ho%!mn-
zm~ZW890V>o(KR;c982RSq5(<|W{tBkMV{`KwhJf&{F<JRCE~3Gwan$_<4fnfULl=|
zOjqKG@bwMl4v-hkgXWQy=BL;5a;^hJtc>r8{Ngk8)z9IN7*w6)JXa>156thpDcxtW
zaa?ytf>^I|g4;l{MzHfBa=DB-)v=e<O`djLZq#3eIl%_n=2(fiuw1`gF+3YGGeCdG
zKRh=?EQhkgN+&_%toNw&t=vF4>GEmcBi=P8<;qS8d#osYZ*IqaFG|8ox!5wu65ADV
zH}RyJM1BiPvu#zXme$!Ejy0t@IfgkBF8)(N8e&hffib&}urzOrY<>x!Mr%&ck1{B)
zDF9BIpt(GFRha8nKM|YZC^L@%)T7gs8s2pxPhnmg$|b21<0e;zc#BK#)YimVvV^yA
z`Qv2bF8x7`<K3`Z^c65t85HU~u{Vm8PnOwB)lH+b82eA?8M+n#I_S)ePz(@c+kC|N
zLz(yl4rXa3zIoH9PUven|JS=z_Eja1l(<V7>6F!ymvxdl8|q8azSm|>PT7r4yCgm$
z2WEWq_-3Z?j1OaG)oUvUvtK5Eyw==QCCC*zo(|2&K}n2&2_^5IQ?4dYbcmV+7_9Jp
zi%t-48%7XI76Z*&S{UFo{#Nw=ekZG<&wS+LwmWM1b||&=4?7GAZ>B#<rFP%Wki94M
z&Xqdg@r-J%#feq+K@YyeGn7r+Vu#blOWcP!+p$<KxMZ6;*A}l;*1xKGWx?SIIbw~D
zD8IGT>OU_tAx3u`XaoJY*K<zod3i*88%nr!N!qKqg7#YT=EYiq<}flOnE%~0!2nr_
zV3p~ODu`tjJgH-%^X;~u+ll*Ejo#Ah4&&Ee!CmryX9dQC{47Xu#hO9`NIwV5$#tdi
zyA4l>EG;t$t<hwY4H)1mE135VdJOuE2$^Y<)#g0`+o?ki1X{T?bzPbRbmFGB&7Zf4
zH$BUr)ZUA^q6cQm@ib@YI9YKE{c}_jMcZ<4g9VqEF@P@OtPtemcT1!6-O`aQIjhlb
zbC<nOP;B8`dL1MchU|qs184cG1vR`yzomeVpTVh8ow$QqQ^1O6))=jntkY6q)$5s9
zj@d{3PG#jU4SlXB>wgYjNEsH*(dyo~M@p!|R#wcnPUosiZxwIvU~3gHKb%Qh`C#a_
z7LKWhrS!xS^s4Sq&H$svh3@*t(${IKH`;a0PuazjrKCE5`SHVuO^uou9{ORaYyO!k
zeuC%X9OsSaYWGGdJ-E5z2TyTlY^zeLOs?vg+!3QB51GUY&e7~Mk1!PwL3u-ZU~FP+
zQq7?bGa?wkAyjWr7(4E+j6G)qjwsWe=fP%jSZ2gg8qf<ZSN4Y;0+v=1pmk;(FNcUK
z4J2Nb>c_O|Zh_pa*K}Z_|EF>*7xiw7$IA(+{iv7A^$(skz01O1fFIjDBuiX*9X}c|
z_5)RC-CtYz$h`qB{Rz>D&Y%&G^^AP1en`0eDPC)-{?zaRzPD9Pf|b@*kK=e&eH6Sg
zlr8?XWe2Cf9M-3yb*+`w6k+^GtgxdJNs_P+frKu~Oms(-GmZ7TZ|h%G72toR&}(?9
zHgj{3cP5-ADO71EM}DFml6zF9+(yJe|3<;(-ikE)z>wOUE_LO#v%7ZD4*Xy6K7ME)
zcfkPHmiE408P~2*EmFDMIz}6mr!30(dIyIgh=`#V`|0<nmLs8)_I%@ja``*zWKY+?
zOcxcY;Cs}utu(9QcuTq(Jhdk^dT*M&H_8cUeJh|~RGnN>q?9k8$(H8M>-Xfc!$eGR
z`=N$Aw~ucEq_bw5Y%<G<)=;Y0=h2C5!l4xn!^DTW4(H{vOKbXikBpT{O;%s77<L^E
zGA7-(S<jZ|XJ0BL&6;&+k_`w2*HOA@`pNo21$A(B1)@+%VEyd!qq__{BAf-fu%Ju)
zvN-9~6r~mRUzBdf(RD)9k_-H^J0|vBT0IzR0s-JGu!Q}KM85t=I!#sb@@BE+W3@rr
z`3)W%Q_yD&$TJjY=wgBE-bD)O!2tFvPn9}LMvo3=(WZNcV}rhp#`TETo-uO~j}=B{
z1}Tj?g&PwE9*6jPOq?4u`#L8k83W~2(O$t}-6*kntgGbzwJW04uSJsNAtxZEf@R*!
zM5`BJuQ6#yjYRF8)7{}#W;VI9A{syM-1pGAEw%QuP=*LD9k_<O3f_6KF{g4?+9%ig
zJ2k=px)QR?$17whNwL-Q=%giTN2G1hsFJTGUkX;rn>Sd*Z?Nd)U_nIJ0I(GBT@~|R
zd{&mV<a~Wz5l3p-CX;}}51w6FB3x2oyIbC=iu^GAv3;oeJPjJ_oZyK}YqHGtVu>7r
z5(6X~Ce`XmPu?|>J=HAw2Ww5)Y3*>RQN|Z9rosS`uXKoYM*TEYx5Q5+-%j(oP(v*r
zZ_bq|3xg}FapGim$z(LR3>zC}*}^P)v-+7rRr>k522>LZ##21*jt4z4lRK(k2$aIV
zKD6#GA9v-J*vv)i>J*Po+&xRQyajz`e3$8q#Qbe!xZ&~SM*jv4m03^n?OjU-gd3HG
z3&qzsk7tBj&rPEzFX;epviYId(YbZfr>e5>t9`drw^nDYnrE8H==iiBsOg`p_&|-K
zB7VT3Ih1=lM%`}z`Og;MFD5P!B3fmZ>+`{~$0g&ByPx>J%!YenOTR-&9tX;;nqZq9
zMpO6CstpgRDj`2k*#Z_vgn1^RCrI-QOUJ{KLHBsFz6VSMMI7&$1~tx%NXyKa&c>7a
zU43rQArv{PhOgN0syG2atUf6Xsyi_~e0umw?TWO6+qgG(j&r|?Nqk;=fhiA#bY7@A
zSnT;OsHN?Rcs6ls=~xT{XuAt`-D{qTVd)-NGj0d5>!zOFi->8j8)+qs$tL1fmx1q)
ztEGVnI594Q5Eui9Tf53!Z_k=LK9eg%Np3Vf>=UwYSm|JZq3a_0i@&l87J8MMsEAdS
z)g*LZUS}?S-)}z1mmHa))l!~GnExHmgAhKWu=+LQdcV#$aO(XUEjmjzzQ?OAok=`d
z$GP^3(e`Ce{@6-cmTUfpTb59^4ol8Cf5Ktu5B5>I1X+)QaxI7_1IerXh`d=cBJ<0&
z(Xj}-fuuE-sO-fRoh`&C!?u!5$nuWKVaTjLr$R~bIok^!35u3{v0pscdx|ctoCAEm
z2LrT9t&#2IPaPi>%X?N-sG|p+OV^ttNqY+3ZyHB?AkOcNISO^EX<_lA+}c!h6jg#B
z6~#%t(mm!V<uNe1%7Lx?o?%M?;JJH9zoRNcp>_xPl^#8W<Qi3_Qs@~h`iuc;tD=o2
zp#yUb+vnQKZblmEQ}?s3Ge><eg>S5BX6W7?qz3kUzBk_g?(;Sxw#iRyzYeWAQmGet
z>c2YOQ_`~&6Da8jt_YFbAsA1x5FkdPrjAMU`rLPsZxBc9=IBN+aOzEX75Ota=exS-
zzsYe?vXr;-z{|8qxCgx8*(M5Wd*C?W#p}JOXI}j&)0f1xCt1DglQS_#0*s(V>YzcY
zpwftAZFZ2gUNofRH6zGAsg{G>{G7}bBc1^HpiX40S~}L@h1GGMLQn8Bc7l#*1gY_9
zIr8Hndh2R}N+zM|jcvX#zADwG%WbT_EHy3(O4)55mjK!d%e?Ur?MF+5`US$vKE_Yo
zo?5_Ee67pz!_>;pO68Qblf@P<skxS-CKYJb()?0G!-E>Rvz~Gcrmv`Gt;VzBFx)9#
zCdn(=JGksId~o~-*=3s*#W;EY{sPfKDCB+ztve+%^qZo8m6osVvR3xL81E<J&r$_K
z?6XhJNnUqN1SJsI2qx$R#a>Z{<qqx(m+8+$Fgg2*aXC36vEQ$#pvkDH94F@jjq+`y
zZTd}2uJH=vzTVAm1EARqXi}=r{wf{Jy)b^u{FR#e$mL1Kq0_=kCJY1Fmy}%L1#uNJ
zw2nX_Y&6JM!rq2^J*T=l_+pSSUVK}v4z!GnFb8?H(8ybmTv3;ZwEUUm4RL|=)&O}D
zLOI6g%c!WgizkBGc#l8iB`8p;K7zNUKXk713GxlX1%|%MMM3D2h*L&6?<c6dKGSI0
zW;#~w+%)p=Tx%>7trB&}OY?LO>%>8#iFp^<&+!>IN35&JBQ2$#`8*s^IzJ|gb?xSZ
z<o67m&q!LG+qGoHRHj$M-N(iFfE30vD+_+W%WFvDE0Gz=LPr_!NgNjyA;<!XrD@h)
z&&M-LcLiP{O(&GgLUoT&KdPgK0Ld{RnMAgBti9ZmH=f3_{`572KDeltepu9!B{la_
zgUJ?}c=jD$dRDw`2ZFxqxnC5yYd2WLu$*<>!nKBveQ6r(ef_U#FI4un5j)Ag-i4i9
z4SYQpBOXNp`QAaFk>F$!EYpE9CkA4BwMWG~wx*fzlK<4f{BTAzPB`(|ZdtmzhKy%Y
z2LQ^g{qM_N|AX9yzaw|<qviB#5eLy6dyD<+-3bR>X6LzCM;}mXj+#fb5AU(ok8p3^
zj(-2hn}X;9wpVqCO}>_I4!N->$+IBQB60abdw;3uiK?boc^tcjHs&}rnP%P(zGl5P
zb5WvG#0AE`Tkk(2&-~M$mvYTe1k$u~A-#Pv%j}shb{cuVX<1)ya*nP-^~ut+fl%-4
zDmtVVv89hV+=p*vIyNuagE;|gu*K?CYs%6)eMSUp9m=#S={`1Ao%$rn$Wp=YKZ6w8
zr8#NhpKN0MMY8la^~Zmi=#;O@eecTd^;KHULTgV^JQ#E0s0MU3VYsS|o+YGvA`SgE
zL@$_mZ1H;MP7!@yHpzxM)XiT7nE0~_Wu1}w89VVCNbkZGdssMnfInTo+l*7Cr}F~2
zQoGrDn<!(Tc+a^GYp)uLZIj58LL7q^BqGEjVz|VTlx>KI=`JeFPbZ(F{P(MKtR9QR
z)-xr&(fS4qZtmoQJiYjc3R!F``@XU2<eghbD{*D<tToZ;%0{Au4RVs!={Rk!ZT2@(
zxXa(*cL^3dE9Rwr`piz7pnhAH_9i{EjeCjsg70X4(6mBv!W-5lHm#}pbZKQQvC-8*
zDhe@xdV{N5^6IqWcB@uLz5#1I>7wUBWU`92Xd4D#Fr&wXJPUav3efwA5=HD4c?FM*
zy4TLimL4oQApM9M$x`B<96M^B7C>{ei}X#$S9BxY?dEgtC~@i}-G8GCi<84T?~SGN
z6b#*doS#tSuhhO0f-EcvYA4mCi5%-N@^u&GRnk)5DtO=N@r4;0$=Xo7qT~^6>)>GX
z4YN{$nDve^-K(_^{tZK1Ofz(hJ2S@{Ts)QwGK~q?_TEV_c?By=PQkYu#yg-sfn~QY
z{t{}{qC$nXEKz#5(bs^RJpAngNuokA=BItnQGdjWwCe)Mv^58^21^=KBAK{g5&GTq
zY;;uWcVrlGVGQxQ%fExk0INT<wL_(XHyZ~VRUI!}uMFuQ)0d?9lG@nYk_(z}2Hy&T
zAUQ1}5yrtrb!4!8ZLzTaBR>pap;-Os<avWY`N5~={y_11&gzT;BRdaUcU#uORHnF_
zg)nS=dQiJ^bJXDGAk}6`7QN`5AOFjmI^geOxKP_Uqv}iJ;dw$$H3#nMg%39$DmwN(
zPh?6Q_~P#gxKzQzE{~9q^%iFuIe&3{@gQJ#;tr+g7b_U5cAbN@Z1{z+luJJkV%;?*
zPos?oDd`X%t~CByV=?NU0^su^WUivoDDtrM-Pgf~+#}&MIH|M`!_o=NW!|cbF(;@w
z>8J^6Rt!}hzTjpdF{*tV_m2uL6Bd1vV<6tgk(>$#p1G#op^LW})tqP~<Ern`c?5a&
zND@aaMh&Nl7?_8!CF|XcCasX5#fBEL^#_VRX;kiALAei(l&fL2to3(drDoPDnlXVp
z8r%4x`-<epXMy<*5!(nVHS3udQf>~C2Dmqjw74~qqHUYZ1R`=wuG3}8P*_?CUmKcX
zAS;OH2EK_Fd!Ocf%~`5(=%#~}rImDw=H9X_eVW3}KPo@#)Poy3mAky<LMPXA#R!A6
zm^1eW6PINPOI3|WsQgr%%pJQifcaI)xZG69v1@T*T_|BK3m2b&&C<_=x;fit4`!~^
zpL=xXlmB?b`c&f={SZQ_vHJ(564z9Ug^Rk>jVmKfPmC9A^_(MZduZ<5(LC596`Q3c
z25T47b=;feGia`Ig!@H&;TgrZtnC*W*&a~#Y$bMsS$(4+_3MMh`wr4vomBG48<#}i
zXo+&l&7JpR*eiMj=vp<=rP?~NY^E3D<C55Wjm-sD1g=(IX!HIYWi4q{`E6(OOTMhn
zwaH5x{mF*h0&R$c_=-JfLvA0~S_Y~08Z%uY?twF(DZL`TPj7WYR@>yA-|F^-HWX`}
zaM!E*`A;Us1?=QL1~@ONKROE!Qe0TXx*zD>-zzO@S8b0)y^w*u#{N9k`R;X>X9VP&
ztwk4>li)WVK{iQsc-VByM}*$H(}_=8S3R*bcHYNw2P;{^9=~C!{#5M$ccbiYzyDRK
zaetL;4g<iO=hOz8*BF|Qd6uBHza-6qMe$!UYJVo`mi`+!60C}F5D&}iDH22p6eAg8
zHC1J44>3SEB1T?wo3PNDxu5U05D)dn@k?b01}MD)7TnemGxjq_!Z=4&0}gX9quW(j
zJQN?(XZckcA1BjAyMg&>nHl)rgtlVe_!C|$?~QLX*oL5tJL~lRvJCsBL1li5(YDU{
zt9E%g0}D=-fdYP^TBR*t2g-Y1*7#|h-6suOW#q~^t4O7*9j8=~mr3Y{Xl-t1WIqhO
zS&?8%QTCMlXF9A2w(CLjw(z#!(}#Yj<?0;+#o6411}4>5jaP=e{;Gs+;GGGsKVjvr
z=9jv@yVuBeV>n)wH%*Wx@T_{=iq0sa-b3s_cQXR0Qeb>p4^Bpxihxj#v=WkPw$Ren
zHX-^zyV85Y7dQLoD(uh*&z})<g$H{f#(##YO@v+3xq_#~Jt`v%+?Jnw0)DL)?B^V0
zNqr`i0%h;bTyXL-3C3X}^dch5t<-5b-K(Q&7k-BOrF9N}2CPf-1M#NO%(t4y_PSW~
z!#1t0pApT*@TWCjnHL0k%B!`df-|hC+{X^-MR*kAck>oB1pJb<N|k!o&DZh+MNu4N
z57>Vw^m^uHo_ld-QVJPqJ@5wP7{02q4{CZ?{*pJKxKt4R`Gx8Wu`TipmdR$<;?I%x
zHuT-(>r53~%1Q+$V4+vvLwIQr&?DYv+<upzn#V;<x3&hBN~>t?8=Pj|39bl8j5rxP
zwMvN?MGFkvypLa<#-E_0nQ$A#^h8ccuOe)qQQ7f7V`v`W&oK0I(jxtzg6KUTfa}jn
z-!-L||G4xm1ZmS$E-w8c!*Je<F*#7=k5deLA9iE^G{@j01&}SkY4%f!{rIf&U$14L
z1d|@cY-e_uwkDl|N<ogK`B`kOw^dDxzHnd?P|yEhZ2@I&y&2j*5OU0sNtDi>Q$h+^
z$$+|tf8M4$h|*6rN_BOikmL^2agl!h2?Nw~O>(tL!@PW^t7xW(uSHdN;#So#J2R1E
zzdxXn?J1N_THpJLkoQmW$p2gY|5B14<+<tAR5qS0yJ%$FjerhrM&EmgvFjn~*=447
z>T4!eU*?9YzV^bK2-6%6G-i9tJ@3g(SW18WmZD^=t`6!(fzVcql1ZbGnwLx|lZ@xb
zoatGpm(M~+r;TBb?RH|uOI4ioPw)fni-}9c6sW`#3WKI2VF!d8Z1XD8$p4Y(9=FLS
zqAv#O&2~%dnK&gSnHAMBC=_W3&LF2^WU%HEw(5^8ZAe$ww1LB%b?^S=f%q7;qPMIy
zu%Um9`Xrrdh&N`!=$63MQ;p?=DN8~rd<swK*J0RHmD`>MmhNz`!MKux1Kw3EJ2Ix|
zd(UBJod2Nb5;{8JbviLghZeqi7Ukk_i&(f;`gsaLhJx9v!Pc$rLN|{U)OG@VCRDxp
zgxz^bzo8bsQ3k32`MnBg?SnNWAX<GtvgVx)Gg=zFt!yiOzYO3%dm@>|O|_33r?*rL
ztJ14HbYfB_EGboSrSQ7@`9z?(+@X6E1GwM+QhE>pM4(Xk5;p54S;}VNS8_piwuS`o
z(`5Oy4?P`(dPHIotWS*R-pu2g^%Pu@GtDleA2J-6Zj5FSude;V?-|lfQ~^8SsT=<`
z*Zs*pSz;q2IZJ!Gs$vcTV)mOc!fy-c0t;<^yhI|}q&_`SIUt0RI#~|xHY8$KJ?nqP
zg6x<JvaVAiP4m7VT4W#l<5Vvp?u@6EqgSDuChMdSvZ_jQ-STn6w{dSsf|X~DIq#3+
zCI1Nipk00{Tjuh^yy=^2b%`qJSCf@ziEyRf-{3zyFI6O?e0TwAWX%2aRk_ruo$Fi+
z(b!N^_@}PeEZAg|9jJog;mHrfTt@olAvlkio!hc>WS4;d++Dx9$M9EW?*FIwB)@Zy
z;`@6Q|5u*Bi=bAAe|_1o7v}uSyBMzMv%kEk@z>N({;JjdSI7Bp?*ja3BFe)%?Qf}d
zN~Xg0B7MUghL|Iamg4(DHRSF-ST{1=N;{N6hcppkfU{t&Z2Km76~P$f5U>S+pJctb
z3KrC(WKMP9e|P&^A%E|Xzt6(o#^G;k`L|#ApKz4Fflj5f=nKs-u<knYjo{b@M{_og
p%<6@?sky$b7CBZdN3LARTk?qMpJ%Z&i4nMxAlm_z-h*Jq{sYVhB&PrX

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html b/libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html
deleted file mode 100644
index b5d0120c88cf..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/null_data_type.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>null_data_type Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>null_data_type
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A data-policy indicating that an associative container is a &quot;set&quot;
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/data_type.hpp"><tt>data_type.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html
deleted file mode 100644
index 083de7efb549..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/null_hash_fn.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>null_hash_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>null_hash_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A &quot;null&quot; hash function, indicating that the combining hash function is actually a ranged-hash function.
-</p>
-
-<p><a href = "concepts.html#concepts_null_policies">Null Policy Classes</a> explains the concept ofa null policy.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html
deleted file mode 100644
index 1088b6bfd7b8..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/null_probe_fn.html
+++ /dev/null
@@ -1,44 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>null_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>null_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A &quot;null&quot; probe function, indicating that the combining probe function is actually a ranged probe function.
-</p>
-
-<p><a href = "concepts.html#concepts_null_policies">Null Policy Classes</a> explains the concept ofa null policy.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-</ol>
-
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html
deleted file mode 100644
index 0b37f5399b57..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_by_key.html
+++ /dev/null
@@ -1,254 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_by_key Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_by_key
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Finds an order corresponding to an entry within the sequence.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Container definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>Container type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "order_statistics_key_type3735929828">order_statistics_key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Cntnr3735929076">Cntnr</a>::key_type</pre>
-
-
-</td>
-
-<td>
-<p>Order-statistics key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "underlying_key_type3735929533">underlying_key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#order_statistics_key_type3735929828">order_statistics_key_type</a>::key_type</pre>
-
-
-</td>
-
-<td>
-<p>Underlying key type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Container definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cntnr3735929108">cntnr</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cntnr3735929076">Cntnr</a></pre>
-
-
-</td>
-
-<td>
-<p>Container type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#cntnr3735929108">cntnr</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Container's size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  <b>operator</b>()
-  (<b>const</b> <a href = "#Cntnr3735929076">Cntnr</a> &amp;r_c,
-    <b>const</b> <a href = "#underlying_key_type3735929533">underlying_key_type</a> &amp;r_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the order of a key within a sequence. For exapmle, if <font color = "#666666"><tt>r_key</tt></font> is the smallest key in <font color = "#666666"><tt>r_c</tt></font>, this method will return 0; if <font color = "#666666"><tt>r_key</tt></font> is a key between the smallest and next key in <font color = "#666666"><tt>r_c</tt></font>, this method will return 1; if <font color = "#666666"><tt>r_key</tt></font> is a key larger than the largest key in <font color = "#666666"><tt>r_c</tt></font>, this method will return the size of <font color = "#666666"><tt>r_c</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html
deleted file mode 100644
index 74179105d269..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key.html
+++ /dev/null
@@ -1,373 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_statistics_key Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_statistics_key
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A &quot;key&quot; type using rank metadata for order statistics.
-</p>
-
-<p>The class is composed of the logical key and the rank of the element (the number of elements in its subtree).
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Key-type definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Misc.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Conversions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-<p>The allocator is only used for definitions, e.g., size_type, pointer, and reference.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
-  <a href = "#Key3735928856">Key</a> &gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "key_reference3735929926">key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
-  <a href = "#Key3735928856">Key</a> &gt;::other::reference</pre>
-
-
-</td>
-
-<td>
-<p>Key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Misc.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::size_type</pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>explicit</b>
-  order_statistics_key
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_key = <a href = "#Key3735928856">Key</a>())</pre>
-
-
-</td>
-
-<td>
-<p>Constructor which takes a logical key.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Conversions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
-  <b>operator</b> <a href = "#key_reference3735929926">key_reference</a>
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Conversion to logical key.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>   <b>inline</b>
-  <b>operator</b> <a href = "#key_type3735929433">key_type</a>
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Conversion to logical key.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html
deleted file mode 100644
index d85f4fa99008..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_key_cmp.html
+++ /dev/null
@@ -1,422 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_statistics_key_cmp Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_statistics_key_cmp
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A comparison functor. Transforms any comparison functor operating on logical keys to a comparison functor operating on order statistics keys.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Key-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link5">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Operators.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Policy access methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::less&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-<p>The allocator is only used for definitions, e.g., size_type, pointer, and reference.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>std::binary_function&lt;
-  order_statistics_key&lt;
-    <b>typename</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a>::first_argument_type, <a href = "#Allocator3735929488">Allocator</a>&gt;,
-  order_statistics_key&lt;
-    <b>typename</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a>::second_argument_type, <a href = "#Allocator3735929488">Allocator</a>&gt;,
-  <b>bool</b>&gt;</pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre>order_statistics_key&lt;
-    <b>typename</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a>::first_argument_type, <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_reference3735929552">const_key_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#allocator3735929520">allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#key_type3735929433">key_type</a>&gt;::other::const_reference</pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
-  order_statistics_key_cmp
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b>
-  order_statistics_key_cmp
-  (<b>const</b> <a href = "#Cmp_Fn3735929122">Cmp_Fn</a> &amp;r_cmp_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking a comparison functor.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  <b>operator</b>()
-  (<a href = "#const_key_reference3735929552">const_key_reference</a> r_lhs_key,
-    <a href = "#const_key_reference3735929552">const_key_reference</a> r_rhs_key) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares two keys.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Policy access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Access to the comparison functor object used.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;
-  get_cmp_fn
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Const access to the comparison functor object used.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html b/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html
deleted file mode 100644
index a9acbb408674..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/order_statistics_node_updator.html
+++ /dev/null
@@ -1,278 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>order_statistics_node_updator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>order_statistics_node_updator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Functor updating ranks of entries.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/order_statistics_key.hpp"><tt>order_statistics_key.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">Policy definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Key-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-<p>The allocator is only used for definitions, e.g., size_type, pointer, and reference.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "allocator3735929520">allocator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Key-type definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "key_type3735929433">key_type</a></pre>
-
-
-</td>
-
-<td>
-<pre>order_statistics_key&lt;
-    <a href = "#Key3735928856">Key</a>,
-    <a href = "#Allocator3735929488">Allocator</a>&gt;</pre>
-
-
-</td>
-
-<td>
-<p>Key-type on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_key_pointer3735929445">const_key_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>typename</b> <a href = "#Allocator3735929488">Allocator</a>::<b>template</b> rebind&lt;
-    <a href = "#key_type3735929433">key_type</a>&gt;::other::const_pointer</pre>
-
-
-</td>
-
-<td>
-<p>Key pointer-type on which this functor operates.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (<font color = "olive">order_statistics_node_updator</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  <b>operator</b>()
-  (<a href = "#const_key_pointer3735929445">const_key_pointer</a> p_key,
-    <a href = "#const_key_pointer3735929445">const_key_pointer</a> p_l_child_key,
-    <a href = "#const_key_pointer3735929445">const_key_pointer</a> p_r_child_key)</pre>
-
-
-</td>
-
-<td>
-<p>Updates the rank of a key given its child keys.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html
deleted file mode 100644
index 38878b6e0aef..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/ov_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>ov_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>ov_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Ordered-vector tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/overview.html b/libstdc++-v3/docs/html/ext/pb_assoc/overview.html
deleted file mode 100644
index 0caa3708fd74..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/overview.html
+++ /dev/null
@@ -1,139 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>Overview</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-<body bgcolor = "white">
-
-
-<h1>Overview</h1>
-
-<p>
-	The <a href = "introduction.html">Introduction</a> Section described some challenges
-in designing associative containers. This section describes the <tt>pb_assoc</tt>'s solution.
-</p>
-
-
-<p>
-Figure
-<a href = "#cd">Class hierarchy</a>
-shows a class diagram of <tt>pb_assoc's associative containers.</tt>
-Associative container classes subclass other associative container classes such that
-base classes capture common types and methods
-[<a href = "references.html#stroustrup97cpp">stroustrup97cpp</a>]. The type <tt>hash_fn</tt> is defined in <a href = "basic_hash_assoc_cntnr.html"><tt>basic_hash_assoc_cntnr</tt></a>, for example, since all hash-based containers employ a hash function;
-<a href = "cc_hash_assoc_cntnr.html"><tt>cc_hash_assoc_cntnr</tt></a>
-and
-<a href = "gp_hash_assoc_cntnr.html"><tt>gp_hash_assoc_cntnr</tt></a>,
-subclasses encapsulating a collision-chaining and (general) probing hash table, respectively, each define other types specific for their underlying data-structure.
-This is described further in
-<a href = "ds_gen.html">Data-Structure Genericity</a>.
-</p>
-
-<h6 align = "center">
-<a name = "cd">
-<img src = "cd.jpg" width = "70%" alt = "no image">
-</h6>
-</a>
-<h6 align = "center">
-Class hierarchy.
-</h6>
-
-<p>
-	It is sometimes useful to know the underlying data-structure.
-Associative containers internally define <tt>ds_category</tt> as a class describing this. Two classes might be different instantiations
-of
-<a href = "tree_assoc_cntnr.html"><tt>tree_assoc_cntnr</tt></a>, but one might be based on a red-black tree while another might be based on a splay tree. (This might affect the way tree objects should be manipulated.) <tt><b>typename</b> Cntnr::ds_category</tt>
-yields a &quot;tag&quot; class for the underlying data-structure of some type
-<tt>Cntnr</tt>.
-This is described further in
-<a href = "ds_gen.html">Data-Structure Genericity</a>.
-</p>
-
-<p>
-	When manipulating generic containers, it is useful to know which types, methods, and guarantees they support. For example, tree-based containers can support split and join operations, while containers based on most other underlying data-structures cannot.
-These questions can be answered in compile time through a traits mechanism.
-<a href = "ds_traits.html"><tt>ds_traits</tt>&lt;Cntnr&gt;::split_join</a>, for example, answers the above question.
-This is described further in
-<a href = "ds_gen.html">Data-Structure Genericity</a>;
-<a href = "../example/ds_traits_example.cpp"><tt>ds_traits_example.cpp</tt></a>-
-shows an example.
-</p>
-
-<p>
-	<tt>pb_assoc</tt>	does not contain separate containers for different mapping semantics,
-as the STL does (<i>e.g.</i>, <tt>std::map</tt> and <tt>std::multimap</tt>). Rather, containers are parameterized by a <tt>Data</tt> parameter, and this parameter is a policy for the mapping semantics.
-</p>
-<ol>
-	<li>
-	Instantiating a container's <tt>Data</tt> parameter by all but two distingished types, will make a &quot;map&quot;. Thus
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
-	<b>int</b>,
-	<b>char</b>&gt;
-</pre> is a type mapping each <tt><b>int</b></tt> value to a <tt><b>char</b></tt>
-	value.
-	<a href = "../example/basic_map_example.cpp"><tt>basic_map_example.cpp</tt></a>
-	shows an example.
-	</li>
-	<li>
-	Instantiating a container's <tt>Data</tt> parameter by <a href = "null_data_type.html"><tt>null_data_type</tt></a> will make a &quot;set&quot;. Thus
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
-	<b>int</b>,
-	<a href = "null_data_type.html">null_data_type</a>&gt;
-</pre>
-is a type storing unique <tt><b>int</b></tt> values.
-<a href = "../example/basic_set_example.cpp"><tt>basic_set_example.cpp</tt></a> shows an example.
-	</li>
-	<li>
-	Instantiating a container's <tt>Data</tt> parameter by <a href = "compound_data_type.html"><tt>compound_data_type</tt></a><tt>&lt;Cntnr&gt;</tt>, where <tt>Cntnr</tt> is a different associative container, will make a &quot;(multi)+map&quot;. Thus
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
-	<b>int</b>,
-	<a href = "compound_data_type.html">compound_data_type</a>&lt;
-		<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;
-			<b>char</b>,
-			<a href = "null_data_type.html">null_data_type</a>&gt; &gt; &gt;
-</pre>
- is a type
-mapping each <tt><b>int</b></tt> value to a &quot;set&quot; of <tt><b>char</b></tt>
-values.
-<a href = "../example/basic_multimap_example.cpp"><tt>basic_multimap_example.cpp</tt></a> shows an example.
-This composition is recursive, however, and more complex relationships can be built.
-<a href = "../example/mapping_level_example.cpp"><tt>mapping_level_example.cpp</tt></a> shows an example.
-	</li>
-</ol>
-
-<p>
-	The associative-container classes derive each from one of the three
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a> classes, depending
-on the data policy. These three base classes define different types and methods. For example, the &quot;map&quot; specialization of
-<a href = "basic_assoc_cntnr.html"><tt>basic_assoc_cntnr</tt></a>
-defines <tt><b>operator</b>[]</tt>, wherase the &quot;set&quot; specialization does not.
-This is described further in
-<a href = "ms_gen.html">Mapping-Semantic Genericity</a>.
-</p>
-
-<p>
-	<tt>pb_assoc</tt>'s design contains the concept of a <i>mapping level</i>. &quot;Map&quot; and &quot;set&quot; types have a single mapping level; A container
-mapping integers to &quot;maps&quot; mapping characters to floats has two mapping levels, since it can be viewed as a type mapping each integer to a &quot;map&quot;, or as a type mapping each pair of integer and character to a float. <tt>pb_assoc</tt> contains traits and rebind mechanisms for querying and altering the mapping levels.
-This is described further in
-<a href = "ms_gen.html">Mapping-Semantic Genericity</a>.
-</p>
-
-<p>
-	The leaf classes in Figure
-<a href = "#cd">Class hierarchy</a>
-are each parameterized by policies, easing configuring containers for different settings.
-<a href = "hash_based_containers.html">Hash-Based Containers</a> describes the design and policies of hash-based containers,
-	<a href = "tree_based_containers.html">Tree-Based Containers</a> describes the design and policies of tree-based containers, and
-	<a href = "lu_based_containers.html">List-Based Containers</a> describes the design and policies of list-based containers with update policies.
-
-</p>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html b/libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html
deleted file mode 100644
index 8895bc263a0d..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/pb_assoc_ex.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>pb_assoc_ex Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>pb_assoc_ex
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Base class for pb_assoc's exceptions.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/pb_assoc_ex.hpp"><tt>pb_assoc_ex.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>std::logic_error</pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/portability.html b/libstdc++-v3/docs/html/ext/pb_assoc/portability.html
deleted file mode 100644
index ab7e9c85ef77..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/portability.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Portability</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Portability</h1>
-
-<h2>Sucessfully Tested Compilers</h2>
-<ol>
-	<li>g++ 3.3.1</li>
-	<li>g++ 3.4.4</li>
-	<li>g++ 4</li>
-	<li>icc 8.1</li>
-	<li>Visual C++ .Net 7.1</li>
-</ol>
-
-<h2>Unsucessfully Tested Compilers</h2>
-<ol>
-	<li>g++ 2.9.6</li>
-	<li>Visual C++ 6</li>
-</ol>
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html
deleted file mode 100644
index 1e3dea17c016..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/quadratic_probe_fn.html
+++ /dev/null
@@ -1,238 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>quadratic_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>quadratic_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A probe sequence policy using square increments.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/hash_policy.hpp"><tt>hash_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link2">General definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Offset methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Const_Key_Ref3735929850">Const_Key_Ref</a></pre>
-
-
-</td>
-
-<td>
-<p>Const key reference type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-<td>
-size_t
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">General definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "size_type3735929547">size_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Size_Type3735929483">Size_Type</a></pre>
-
-
-</td>
-
-<td>
-<p>Size type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">quadratic_probe_fn</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Offset methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "#size_type3735929547">size_type</a>
-  <b>operator</b>()
-  (<a href = "#Const_Key_Ref3735929850">Const_Key_Ref</a> r_key,
-    <a href = "#size_type3735929547">size_type</a> i) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <font color = "#666666"><tt>i</tt></font>-th offset from the hash value.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html
deleted file mode 100644
index f91e45227ed1..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/range_invalidation_guarantee.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>range_invalidation_guarantee Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>range_invalidation_guarantee
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Signifies an invalidation guarantee that includes all those of its base, and additionally, that any range-type iterator (including the returns of begin() and end()) is in the correct relative positions to other range-type iterators as long as its corresponding entry has not be erased, regardless of modifications to the container object.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "find_invalidation_guarantee.html"><tt>find_invalidation_guarantee</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/rank_node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/rank_node_invariants.jpg
deleted file mode 100644
index ea01b0a0794cd8a7a8cdc74eb86fa08348aa9c6b..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28798
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
KSwN}3`{|!t8ffYO

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/rationale_null_node_updator.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/rationale_null_node_updator.jpg
deleted file mode 100644
index c798ec1451b5607829105c1ada295607750ddae7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 27057
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
YX&&{=*jNY7Ze)oL@zr@R{+p@)13bkt@Bjb+

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html
deleted file mode 100644
index 5c5941449271..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/rb_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>rb_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>rb_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Red-black tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/reference_iterator.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/reference_iterator.jpg
deleted file mode 100644
index a9cc63e5d2068bcc98c91dffdd5f7d1fdf2f312f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 32467
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

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/references.html b/libstdc++-v3/docs/html/ext/pb_assoc/references.html
deleted file mode 100644
index 17e6790f1863..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/references.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-<html>
-<head>
-	<title>References</title>
-</head>
-
-<body bgcolor = "white">
-<h1>References</h1>
-<ol>
-	<li> [<a name="abrahams97exception">abrahams97exception</a>] Dave Abrahams,
-		 STL Exception Handling Contract,
-		 <a href="http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf">http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf</a>
-
-	<li> [<a name = "alexandrescu01modern">alexandrescu01modern</a>] Andrei Alexandrescu, <i>Modern C++ Design: Generic Programming and Design Patterns Applied</i>, Addison-Wesley Publishing Company, 2001 </li>
-
-	<li> [<a name = "andrew04mtf">andrew04mtf</a>] K. Andrew and D. Gleich, "MTF, Bit, and COMB: A Guide to Deterministic and Randomized Algorithms for the List Update Problem"</li>
-
-	<li> [<a name = "austern00noset">austern00noset</a>] Matthew Austern, "Why You shouldn't use <tt>set</tt> - and What You Should Use Instead", C++ Report, April, 2000 </li>
-
-	<li> [<a name = "austern01htprop">austern01htprop</a>] Matthew Austern, "A Proposal to Add Hashtables to the Standard Library", <a href= "http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html">http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html</a> </li>
-
-	<li> [<a name = "austern98segmented">austern98segmented</a>] Matthew Austern, "Segmented iterators and hierarchical algorithms", Generic Programming, April 1998, pp. 80-90 </li>
-
-	<li> [<a name = "boost_timer">boost_timer</a>], "Boost <tt>timer</tt> library", <a href = "http://www.boost.org/">http://www.boost.org</a> by Beman Dawes </li>
-
-	<li> [<a name = "boost_type_traits">boost_type_traits</a>], "Boost <tt>type_traits</tt> library", <a href = "http://www.boost.org/">http://www.boost.org</a> by John Maddock, Steve Cleary, <i>et. al.</i> </li>
-
-	<li> [<a name = "bulka99efficient">bulka99efficient</a>] D. Bulka, and D. Mayhew, "Efficient C++ Programming Techniques.", Addison-Wesley Publishing Company, Addison-Wesley, 1997 </li>
-
-	<li> [<a name = "clrs2001">clrs2001</a>] T. H. Cormen, C. E., Leiserson, R. L. Rivest, C. and Stein, "Introduction to Algorithms, 2nd ed.", MIT Press, 2001 </li>
-
-	<li> [<a name = "dinkumware_stl">dinkumware_stl</a>], "Dinkumware C++ Library Reference", <a href = "http://www.dinkumware.com/htm_cpl/index.html">http://www.dinkumware.com/htm_cpl/index.html</a> </li>
-
-	<li> [<a name = "dubhashi98neg">dubhashi98neg</a>] D. Dubashi, and D. Ranjan, "Balls and bins: A study in negative dependence.", Random Structures and Algorithms 13, 2 (1998), 99-124 </li>
-
-	<li> [<a name = "fagin79extendible">fagin79extendible</a>] R. Fagin, J. Nievergelt, N. Pippenger, and H. R. Strong, "Extendible hashing — a fast access method for dynamic files", ACM Trans. Database Syst. 4, 3 (1979), 315-344 </li>
-
-	<li> [<a name = "gamma95designpatterns">gamma95designpatterns</a>] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, "Design Patterns - Elements of Reusable Object-Oriented Software", Addison-Wesley Publishing Company, Addison-Wesley, 1995 </li>
-
-	<li> [<a name = "garg86order">garg86order</a>] A. K. Garg and C. C. Gotlieb, "Order-preserving key transformations", Trans. Database Syst. 11, 2 (1986), 213-234 </li>
-
-	<li> [<a name = "genome_dna">genome_dna</a>], "Whole Genome Shotgun entries", <a href = "ftp://ftp.ebi.ac.uk/pub/databases/embl/wgs/wgs_aady01.dat.gz">ftp://ftp.ebi.ac.uk/pub/databases/embl/wgs/wgs/_aady01.dat.gz</a> </li>
-
-	<li> [<a name = "hyslop02making">hyslop02making</a>] J. Hyslop, and H. Sutter, "Making a real hash of things", C++ Report, May 2002 </li>
-
-	<li> [<a name = "jossutis01stl">jossutis01stl</a>] N. M. Jossutis, "The C++ Standard Library - A Tutorial and Reference", Addison-Wesley Publishing Company, Addison-Wesley, 2001 </li>
-
-	<li> [<a name = "kleft00sets">kleft00sets</a>] Klaus Kleft and Angelika Langer, "Are Set Iterators Mutable or Immutable?", C/C++ Users Jornal, October 2000 </li>
-
-	<li> [<a name = "knuth98sorting">knuth98sorting</a>] D. E. Knuth, "The Art of Computer Programming - Sorting and Searching", Addison-Wesley Publishing Company, Addison-Wesley, 1998 </li>
-
-	<li> [<a name = "liskov98data">liskov98data</a>] B. Liskov, "Data abstraction and hierarchy", SIGPLAN Notices 23, 5 (May 1998) </li>
-
-	<li> [<a name = "litwin80lh">litwin80lh</a>] W. Litwin, "Linear hashing: A new tool for file and table addressing", Proceedings of International Conference on Very Large Data Bases (June 1980), pp. 212-223 </li>
-
-	<li> [<a name = "metrowerks_stl">metrowerks_stl</a>], "Metrowerks CodeWarrior Pro 7 MSL C++ Reference Manual", </li>
-
-	<li> [<a name = "meyers96more">meyers96more</a>] S. Meyers, "More Effective C++: 35 New Ways to Improve Your Programs and Designs - 2nd ed.", Addison-Wesley Publishing Company, Addison-Wesley, 1996 </li>
-
-	<li> [<a name = "meyers00nonmember">meyers00nonmember</a>] S. Meyers, "How Non-Member Functions Improve Encapsulation", C/C++ Users Journal, 2000 </li>
-
-	<li> [<a name = "meyers01stl">meyers01stl</a>] S. Meyers, "Effective STL: 50 Specific Ways to Improve Your Use of the Standard Template Library", Addison-Wesley Publishing Company, Addison-Wesley, 2001 </li>
-
-	<li> [<a name = "meyers02both">meyers02both</a>] S. Meyers, "Class Template, Member Template - or Both?", C/C++ Users Journal, 2003 </li>
-
-	<li> [<a name = "motwani95random">motwani95random</a>] R. Motwani, and P. Raghavan, "Randomized Algorithms", Cambridge University Press </li>
-
-	<li> [<a name = "mscom">mscom</a>] <a href = "http://www.microsoft.com/com">COM: Component Model Object Technologies</a> </li>
-
-	<li> [<a name = "musser95rationale">musser95rationale</a>], David R. Musser, "Rationale for Adding Hash Tables to the C++ Standard Template Library" </li>
-
-	<li> [<a name = "musser96stltutorial">musser96stltutorial</a>] D. R. Musser and A. Saini, "STL Tutorial and Reference Guide", Addison-Wesley Publishing Company, Addison-Wesley, 1996 </li>
-
-	<li> [<a name = "sgi_stl">sgi_stl</a>] SGI, "Standard Template Library Programmer's Guide", <a href = "http://www.sgi.com/tech/stl">http://www.sgi.com/tech/stl</a> </li>
-
-	<li> [<a name = "sleator84amortized">sleator84amortized</a>] D. D. Sleator and R. E. Tarjan, "Amortized Efficiency of List Update Problems", ACM Symposium on Theory of Computing, 1984 </li>
-
-	<li> [<a name = "sleator85self">sleator85self</a>] D. D. Sleator and R. E. Tarjan, "Self-Adjusting Binary Search Trees", ACM Symposium on Theory of Computing, 1985 </li>
-
-	<li> [<a name = "stepanov94standard">stepanov94standard</a>] A. A. Stepanov and M. Lee", "The Standard Template Library" </li>
-
-	<li> [<a name = "stroustrup97cpp">stroustrup97cpp</a>] Bjarne Stroustrup, <i>The C++ Programming Langugage -3rd ed.</i>, Addison-Wesley Publishing Company,Reading, MA, USA, 1997 </li>
-
-	<li> [<a name = "vandevoorde2002cpptemplates">vandevoorde2002cpptemplates</a>] D. Vandevoorde, and N. M. Josuttis, "C++ Templates: The Complete Guide", Addison-Wesley Publishing Company, Addison-Wesley, 2002 </li>
-
-	<li> [<a name = "wickland96thirty">wickland96thirty</a>] C. A. Wickland, "Thirty Years Among the Dead", National Psychological Institute, Los Angeles, 1996,<a href = "http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip">http://myweb.wvnet.edu/gsa00121/books/amongdead30.zip</a></li>
-
-</ol>
-
-<HR>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html b/libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html
deleted file mode 100644
index 491be1ffc0f9..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/regression_tests.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Regression Tests</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Regression Tests</h1>
-
-
-<h2>Basic Regression</h2>
-
-
-<h2>Tree-Based Regression Tests</h2>
-
-<h3>Order-Statistics</h3>
-
-<p>
-Source code:
-<a href = "../testsuite/regression/tree_order_statistics_regression_test.cpp"><tt>tree_order_statistics_regression_test.cpp</tt></a>.
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html
deleted file mode 100644
index 118e07529acd..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/resize_general.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Resize Policies</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body>
-<h1>Resize Policies</h1>
-
-<p>
-	A resize policy, say <tt>res_pol</tt>, should support the types and
-methods below.
-<ol>
-	<li><a href = "resize_policy_types.html">Types</a></li>
-	<li> Methods:
-	<ol>
-		<li><a href = "resize_policy_constr_dest.html">Constructors, destructor, and related</a></li>
-		<li><a href = "resize_policy_notification_methods.html">Notification methods</a></li>
-		<li><a href = "resize_policy_size_methods.html">Size methods</a></li>
-		<li><a href = "resize_policy_trigger_methods.html">Trigger methods</a></li>
-	</ol>
-	</li>
-</ol>
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html b/libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html
deleted file mode 100644
index 63819dc7077d..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/resize_policies.html
+++ /dev/null
@@ -1,487 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-    <head>
-        <title>Resize Policies</title>
-        <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-    </head>
-<body bgcolor = "white">
-<h1>Hash-Based Continers' Resize Policies</h1>
-
-<p>
-    This subsection describes resize policies. It is organized as follows:
-</p>
-
-<ol>
-    <li> The <a href = "#general">General Terms</a> Subsection describes general
-        terms.
-    </li>
-    <li> The <a href = "#size_policies">Size Policies</a> Subsection describes size
-    policies.
-    </li>
-    <li> The <a href = "#trigger_policies">Trigger Policies</a> Subsection describes trigger
-    policies.
-    </li>   <li> The <a href = "#imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a>
-        Subsection describes the implementation of these concepts in <tt>pb_assoc</tt>.
-    </li>
-</ol>
-
-
-<h2><a name = "general">General Terms</a></h2>
-
-<p>
-    Hash-tables, as opposed to trees, do not naturally grow or shrink. It
-is necessary to specify policies to determine how and when a hash table should change
-its size.
-</p>
-
-<p>
-    In general, resize policies can be decomposed into (probably orthogonal)
-policies:
-</p>
-<ol>
-    <li> A <i>size policy</i> indicating <i>how</i> a hash table should
-grow (<i>e.g.,</i> it should multiply by powers of 2).
-    </li>
-    <li> A <i>trigger policy</i> indicating <i>when</i> a hash table should
-grow (<i>e.g.,</i> a load factor is exceeded).
-    </li>
-</ol>
-
-
-
-<h2><a name = "size_policies">Size Policies</a></h2>
-
-<p>
-    Size policies determine how a hash table
-changes size. These policies are simple, and there are relatively
-few sensible options. An exponential-size policy (with the initial
-size and growth factors both powers of 2) works well with a
-mask-based range-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by Dinkumware
-[<a href = "references.html#dinkumware_stl">dinkumware_stl</a>]. A
-prime-list based policy works well with a modulo-prime range
-hashing function (see the <a href = "hash_policies.html#hash_policies_range_hashing_policies">Range-Hashing Policies</a> subsection),
-and is the
-hard-wired policy used by SGI's implementation
-[<a href = "references.html#sgi_stl">sgi_stl</a>].
-</p>
-
-
-
-
-<h2><a name = "trigger_policies">Trigger Policies</a></h2>
-
-<p>
-    Trigger policies determine when a hash table changes size.
-Following is a description of two polcies: <i>load-check</i>
-policies, and a collision-check policies.
-</p>
-
-<p>
-    Load-check policies are straightforward. The user
-specifies two factors, <i>&alpha;<sub>min</sub></i> and <i>&alpha;<sub>max</sub></i>, and
-the hash table maintains the invariant that
-</p>
-<p>
-    <i>
-        <a name = "eqn:load_factor_min_max">
-        &alpha;<sub>min</sub>
-        &le;
-        (number of stored elements) / (hash-table size)
-        &le;
-        &alpha;<sub>max</sub>
-        </a>
-    </i>
-    (1)
-    .
-</p>
-
-<p>
-    Collision-check policies work in the opposite direction of
-load-check policies. They focus on keeping the number of
-collisions moderate and hoping
-that the size of the table will not grow very large,
-instead of keeping a moderate load-factor and
-hoping that the number of collisions will be small.
-A
-maximal collision-check policy resizes when the shortest
-probe-sequence grows too large.
-</p>
-
-
-<p>
-    Consider Figure
-<a href = "#balls_and_bins">Balls and bins</a>.
-    Let the size of the hash table be denoted by <i>m</i>, the
-length of a probe sequence be denoted by <i>k</i>, and some load
-factor be denoted by &alpha;. We would like to calculate the
-minimal length of <i>k</i>, such that if there were <i>&alpha; m</i> elements
-in the hash table, a probe sequence of length <i>k</i> would be found
-with probability at most <i>1/m</i>.
-</p>
-
-<h6 align = "center">
-<a name = "balls_and_bins">
-<img src = "balls_and_bins.jpg" width = "60%" alt = "no image">
-</a>
-Balls and bins.
-</h6>
-
-
-<p>
-    Denote the probability that a probe sequence of length <i>k</i>
-appears in bin <i>i</i> by <i>p<sub>i</sub></i>, the length of the probe sequence
-of bin <i>i</i> by <i>l<sub>i</sub></i>, and assume uniform distribution.
-Then
-</p>
-    <p>
-    <a name = "eqn:prob_of_p1">
-        <i>p<sub>1</sub>
-        = </i>(3)
-    </a>
-    </p>
-    <p>
-    <i>
-    <b>P</b>(l<sub>1</sub> &ge; k)
-    =
-    </i>
-    </p>
-    <p>
-    <i><b>P</b>(l<sub>1</sub> &ge; &alpha; ( 1 + k / &alpha; - 1 )
-    &le; </i>(a)
-    </p>
-    <p>
-    <i>
-    e
-    ^
-    (
-        -
-        (
-            &alpha; ( k / &alpha; - 1 )<sup>2</sup>
-        )
-        /2
-    )
-    </i>
-    ,
-</p>
-<p>
-    where (a) follows from the Chernoff bound
-[<a href = "references.html#motwani95random">motwani95random</a>].
-To
-calculate the probability that <i>some</i> bin contains a probe
-sequence greater than <i>k</i>, we note that the <i>l<sub>i</sub></i> are
-negatively-dependent
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Let <i><b>I</b>(.)</i>
-denote the indicator function. Then
-    <p>
-    <a name = "eqn:at_least_k_i_n_some_bin">
-        <i><b>P</b>( exists<sub>i</sub> l<sub>i</sub> &ge; k )
-        = </i>(3)
-    </a>
-    </p>
-    <p>
-    <i>
-   <b>P</b>
-    (
-        &sum; <sub>i = 1</sub><sup>m</sup>
-        <b>I</b>(l<sub>i</sub> &ge; k) &ge; 1
-    )
-    =
-    </i>
-    </p>
-    <p>
-    <i>
-    <b>P</b>
-    (
-        &sum; <sub>i = 1</sub><sup>m</sup>
-        <b>I</b>
-        (
-            l<sub>i</sub> &ge; k
-        )
-        &ge;
-        m  p<sub>1</sub> ( 1 + 1 / (m p<sub>1</sub>) - 1 )
-    )
-    &le; </i>(a)
-    </p>
-    <p>
-    <i>
-    e
-    ^
-    (
-        (
-            -
-            m p<sub>1</sub>
-            (
-                1 / (m p<sub>1</sub>) - 1
-            )
-            <sup>2</sup>
-        )
-        /
-        2
-    )
-    ,
-    </i>
-    </p>
-<p>
-where (a) follows from the fact that the Chernoff bound can be
-applied to negatively-dependent variables
-[<a href = "references.html#dubhashi98neg">dubhashi98neg</a>].
-Inserting <a href = "#prob_of_p1">(2)</a> into
-<a href = "#at_least_k_i_n_some_bin">(3)</a>, and equating with <i>1/m</i>,
-we obtain
-</p>
-<p>
-    <i>
-    k
-    ~
-    &radic;
-    (
-        2 &alpha; </i>ln<i> 2 m </i>ln<i>(m) )
-    )
-    </i>
-    .
-</p>
-
-
-
-
-
-
-
-
-
-<h2><a name = "imp_pb_assoc">Implementation in <tt>pb_assoc</tt></a></h2>
-
-<p>
-    The resize policies in the previous subsection are conceptually straightforward. The design
-of hash-based containers' size-related interface is complicated by some factors.
-</p>
-<ol>
-    <li> Most containers, <i>i.e.</i> lists, trees, and vectors, have a single "size" concept. There is no
-distinction between the number of entries the container holds and the number of entries it is using. This,
-of course, is not the case for hash-based containers. Moreover, even describing the
-"actual" size of a hash-based container (as opposed to its logical size) is difficult - a probing-based container
-holds entries to elements, even those it does not use, while a chaining-based container holds pointers to entries.
-    </li>
-    <li>
-    The policies mentioned above operate in terms of invariants. <i>E.g.</i> a load-check trigger policy
-maintains an invariant concerning the load factor of a container object. This is sometimes too rigid:
-    <ol>
-        <li>In some cases it is desirable to allow controlled override of an entire policy, <i>e.g.</i> by externally resizing a container object (or giving it an initial size, which is a special case of externally resizing the container).
-        </li>
-        <li>
-            In other cases it is desirable to allow changing the specifics of a policy in runtime, <i>e.g.</i>, changing the load factors of a load-check policy.
-        </li>
-    </ol>
-    </li>
-    <li>
-    Resize policies interact strongly with hash policies. Performance-wise, for example, it is undesirable to use an exponential size policy of powers of two with a modulo range-hashing function, and it is undesirable to use a prime size policy with a mask range-hashing function. In other cases, the effects are more dramatic. For example, using a quadratic probe function with an exponential size policy will probably cause cases where the container object has available entries which are never reached by the probe function. (<a href = "hash_policies.html">Hash Policies</a>
-discusses the previous concepts.)
-    </li>
-</ol>
-
-<p>
-    Clearly, the more of these points an interface addresses, the greater its flexibility but the lower its encapsulation and uniformity between associative containers.
-</p>
-
-
-
-<p>
-        This library attempts to address these types of problems by delegating all size-related functionality to
-policy classes. Hash-based containers
-are parameterized by a resize-policy class (among others), and derive publicly from
-the resize-policy class
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>]
- <i>E.g.</i>, a collision-chaining
-hash table is defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
-  <b>class</b> Key,
-  <b>class</b> Data,
-  ...
-  <b>class</b> Resize_Policy
-  ...&gt; :
-    <b>public</b> Resize_Policy
-</pre>
-
-<p>
-    The containers themselves lack any functionality or public interface for manipulating sizes. A container
-object merely forwards events to its resize policy object and queries it for needed actions.
-</p>
-
-<p>
-    Figure
-<a href = "#insert_resize_sequence_diagram1">
-Insert resize sequence diagram
-</a>
-shows a (possible) sequence diagram of an insert operation.
-The user inserts an element; the hash table
-notifies its resize policy that a search has started (point A);
-in this case, a single collision is encountered - the table
-notifies its resize policy of this (point B); the container
-finally notifies its resize policy that the search has ended (point C);
-it then queries its resize policy whether a resize is needed, and if so,
-what is the new size (points D to G); following the resize, it notifies
-the policy that a resize has completed (point H); finally, the element
-is inserted, and the policy notified (point I).
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram1">
-<img src = "insert_resize_sequence_diagram1.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert resize sequence diagram.
-</h6>
-
-<p>
-    This addresses, to some extent, the problems mentioned above:
-</p>
-<ol>
-    <li>
-        Different instantiations of range-hashing policies can be met with different instantiations of
-    resize policies.
-    </li>
-    <li>
-        Questions on size-related interface are avoided, since the containers have no size-related methods. Thus
-    a container has no method for querying its actual size. It merely continuously forwards enough information to
-    its resize policy to answer such queries; the designer of the resize policy can decide whether, or how, to design     the appropriate method. Also, a container has no methods for setting its size. It merely queries its
-resize policy for an initial size, queries it on a new size (if the resize policy indicates a resize is needed), and
-supports a <tt><b>protected virtual</b></tt> function for external resize.
-    </li>
-</ol>
-
-<p>
-    The library contains a single class for instantiating a resize policy,
-<tt>pb_assoc</tt> contains
-a standard resize policy,
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> (the name is explained shortly).
-In terms of interface, it is parameterized by a boolean constant indicating whether its public interface supports
-queries of actual size and external resize operations (the inclusion and exclusion of these methods in the interface have obvious tradeoffs in terms of encapsulation and flexibility).
-([<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>] shows many techniques for
-changing between alternative interfaces at compile time.)
-</p>
-
-<p>
-As noted before,
-    size and trigger policies are usually orthogonal.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
-is parameterized by size and trigger policies. For example,
-a collision-chaining hash table
-is typically be defined as follows:
-</p>
-<pre>
-cc_ht_map&lt;
-  key,
-  data,
-  ...
-  hash_standard_resize_policy&lt;
-    some_trigger_policy,
-    some_size_policy,
-    ...&gt; &gt;
-</pre>
-
-<p>
- The sole function of
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
- is to
-act as a standard delegator
-[<a href = "references.html#gamma95designpatterns">gamma95designpatterns</a>] for these
-policies.
-
-<p>
-    Figures
-<a href = "#insert_resize_sequence_diagram2">Standard resize policy trigger sequence diagram</a>
-    and
-<a href = "#insert_resize_sequence_diagram3">Standard resize policy size sequence diagram</a>
-    show sequence diagrams illustrating the interaction between
-    the standard resize policy and its trigger and size policies, respectively.
-</p>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram2">
-<img src = "insert_resize_sequence_diagram2.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy trigger sequence diagram.
-</h6>
-
-<h6 align = "center">
-<a name = "insert_resize_sequence_diagram3">
-<img src = "insert_resize_sequence_diagram3.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Standard resize policy size sequence diagram.
-</h6>
-
-<p>
-    The library (currently) supports the following instantiations of size
-and trigger policies:
-</p>
-
-<ol>
-    <li>
-        <a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a> implements
-    a load check trigger policy.
-    </li>
-    <li>
-        <a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
-    implements a collision check trigger policy.
-    </li>
-    <li>
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a> implemens
-an exponential-size policy (which should be used with mask range hashing).
-    </li>
-    <li>
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a> implementing
-a size policy based on a sequence of primes
-[<a href = "references.html#sgi_stl">sgi_stl</a>] (which should be used with mod range hashing
-    </li>
-</ol>
-
-<p>
-    The trigger policies also support interfaces for changing their specifics which depend on compile time constants.
-</p>
-
-
-<p>
-    Figure
-<a href = "#resize_policy_cd">Resize policy class diagram</a> gives an overall picture
-of the resize-related classes.
-<tt>Container</tt> (which stands for any of the hash-based containers) is parameterized
-by <tt>Resize_Policy</tt>, from which it subclasses publicly
-[<a href = "references.html#alexandrescu01modern">alexandrescu01modern</a>].
-This class is currently instantiated only by
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.
-<a href = "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a> itself
-is parameterized by <tt>Trigger_Policy</tt> and <tt>Size_Policy</tt>.
-Currently, <tt>Trigger_Policy</tt> is instantiated by
-<a href = "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>,
-or
-<a href = "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>; <tt>Size_Policy</tt> is instantiated by
-<a href = "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>,
-or
-<a href = "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>.
-</p>
-
-
-<h6 align = "center">
-<a name = "resize_policy_cd">
-<img src = "resize_policy_cd.jpg" width = "40%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Resize policy class diagram.
-</h6>
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/resize_policy_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/resize_policy_cd.jpg
deleted file mode 100644
index 1d85438a174ce7ceee6a00fb16db8f82e1d54f8c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 58948
zcmeFZ1zc3!x<9^0QYiuHR6tO=yF^Mvx?8$ih8#cvMH)frE{PF|k&=`Uk?!smh8$}6
zkN3n?&$;J)&y92L{r?Vp_J`S<z1Ci9&stA>pYQWrj$O_H*B{6!$^jq{2rxzc0+*A3
z41kS^iG_)QjfI7E^(yu?+#7hfI5@ZzM8pI)XejAuX(*|w=@~hg>2I+yP*bxA-eKe7
z=Hug|V-^+{;t}KE<>UF@3Fzw8tGGD0<al`GJU6Lt^8DRDmrVd6_LVg>A~et~;0hrK
zjSzI%2G9Wj2m>|R?*snh59kUSItC^d_SI`Rs2i%T16M$3XjjnDFfh>3QFr^J{tuuN
zVi4Wrmc}GjGsC*&dV?n@HVd2KUU@T#djBpX?_;;%tJg@$$SEk9ZZosoxy#2dASfg(
zB6D9>PF_Lrfrh4*wvMizzPW{^m9>qnox6wU6ECp0&(miip<&NogvZ6dN=SVDCMh{P
zCpRy@ps?ue`-;k{YS@RG+LqR~PwgF@U7rUAhlWQ+$Hph-7Z#V6S60{7H{g5w2Zu+;
zh?CRr^8x{Af0)*vXZFjy2vPI8f{u=cj`e+BpetUe1C0<J<0dyIk+d3?nJe)vo*?WS
z_hPfko3AqPs_&9KcI&@J%E&j*1phv@f1BCwn^^FFYG!|)*uT$f0>DKBp}sscLO>EY
zK4r-cy!PwS46mpUz#h?~i4Dn_Pk7D{t!6OXi&#b8ceF<~(4DA)E&*)$FvuF+B@ml?
z2`m&|0?!y)8xIIBfzAO4T&qt_iuw{bze!7T31mW$a`Bfycn<P<H2x*fCwU1lC|&}e
zbfjeg_e)^+8Q2RMbP1eLsvz%1BkqZbUIJ36wvo)20ErRC4N&hT&_Xyrdx~`lEZIsT
z-b&76@9tcnT>^W28RuFaH&n4uJ^pJn|9Ut7S~vgNQ~$T*4J~;^*rQP~8B4p8#D3+g
z3f&bLx0#qJn2XBNYc8mea!{g6VAKF|K~&YJ3X;9?`wqiPAPTZ1H`2J-e+eXbko+jO
zv7~=*FaO~Cuq1OJox=+zr<=}~K(==6wbcXX6Uus}OTftS5;%A;DlLU^L+$q+?nq&j
zTB6dw1fcRrtv(&e#f%feD(L9}WLb*lclYxBY3@af;u1zZ7>Q6ZvvKry>lGs0>Y8&Q
zOBR%C#TmOg=i$|}ha->+>H`4MVq}k!KMg2_hM{o@!1;c?!2d^;$TZS;fHNw&tA$cp
z#Pa7qo$3WJH;m-MKZazjC)cgNo6(=@Va=;|i!&dG?L3XHw@Yi!f+C#TDe*!&o`+W8
z7w|T-=O&hSuu0uCW8n^JqPJ$C?!%J41g?5QFRmQ+o|C9t0&S>8@YDH_;EZU038z!(
zxU;nqZ}qp8iT>r#sl%Joav-!gOxKwbI|<H#gA?{_mC9K|!`7qcS?_`ho`fNN%;a(6
zFnw3U0q37b{mUe@Og`xc6ktB}HY;hU6ok!M6Q-#5@P;_{ePG~@(OiNL&ZHHA&*TSg
zCi<TF8)Gv#mh!H9fp}91QmlmeK;}rIO_NiM%?!ldj7#7}&d;a0Lw=U|wxeB-Z#LG~
zbG?|E`P#D#jyd1}PI%Y6k4hamHQ$eTta;*z%v)Ezv1C-0b8!KS1!FT{B?F&P7E0|X
zGRS8Yd946tvDo}_Zg>3LY31GS*J5vnGiF#tvhE}>pKuim>uG11$iU>M*AjTJQOS8h
z8_UFI&TBnp&dYbW!&<LrZf_?8YnQ-0M-|G@F|N4;f{QKzM6%?s7rqXPL2Ly>`B={o
zw~+(G?9aN)tZ{l6O!2<F<#`fSBVLzWyr4qGmQIkO-shCgTFAM*Z5?Ivr0c4!njQ_c
z%M)0^K%l_ycuoX3^mD5woci_Yh-2kEni5WPxg*+bIcnUlI;b1Lm7Hq$(M#TL>UD_a
zUHz(w4sUBlWwr-AUjn03&<d%~R579vN~MrBvNFirTL|*@&u3+Zh_HuMgASfoIUxPe
zrBG3AO)H+t4`TqD*sA2ik-UGi=3b+=T^}b(1~qG<j5uYw-Cr(zx7S3OBMuNZ#6KlM
z(G7x=EC;PL4P!uzP_)~%cUR9*`~OzR@kPZY(Erj11Gu3k`=37CPX*5-jhQZivg%9V
zl*vA`3?he;48?7Yha<C>!2ME>8-SYZ?>l~!B1RZLi5N{#AF3Bn8^XC&M6NiOfBUdl
z#hrb6<b=|?t8EW-ZX9@R<Y)U>6U>Q}McK{Jy2cBZxGGO^^=`Srydi$7SJjnav=-2Q
zHz|s9g-l%NFXpiP&lYv*q3LG|g}ZXnH0w5KsO|Ej39bqG$!K0<$;5~JVt}jtVm246
zUjkb124;qxopOT8Rt>;t8HaI#vb5(~pMh1>+WXP$ru)fkuf4|d8_yp|(H-1Aw0FE~
z@L>SCOfesLv8uHpKS<&eh?3QRdzNLv;lKI#0?cAF&!Xw|cSdr@)n<5Y^ymFy6owbF
zfaU*)^N<fFWejURa+TwH!MKql4kT^nlySCBjP)OQysI0iiWSpPuInDm^At{aelvJ3
zg0M3aKVEf&{a~^i$2RVX@A^YE@<q0{t{HElYsGt{{N$~mC0XH{BKNR9NGP^m2|=pt
zxQKeao&9z1$h$81vKHGqE)P`gaA>kjdQ650F<_x{$PcMv2}5m1XgT1$&#Y_81$~U#
zQ{1`suWwU5dsx#Uv#r*VrGG94A8tUV<#k-VC|;QGQg|x<YPMyvysq2nnKiKA@nC%p
zE*?@<?;?}4>H3N2*?ptCes_ZcvAWmQe^q6CpcU;WePADUod+XTP@?e-BIBtplC(Id
zs0*W)tnz31U8YjPVzgB`MYhS>Va}NsW&V)XUdOx=u8nt{mUjg$3?7nPOZ8j=tsAZW
zO;sXA&8D%bpKE+0LoHnK97@!f;CUp2rsBNZ_1^lSUrpDR2!Xz?pIII_tZh|e)UvL6
zkZ)b($SHk<xI7M}204iw@9~bBZjU}S>iv!9V60aS`q`J->F3u#ZM8+-Pfm?Z>&f}m
z4BaO)57_SXWC#(Ouhp^LJ^C!Ff>$3aUDWd0%WW!TXxwjQD&PbpH$65TVV&Uv`$gA|
zNE9p(`xf5SH$l8sF(Xy36cN~KWnMj5u=<8oa0AqbD5X@v+O!GROKx$wfg9&nT_)K|
zhf~iW8B%Hgvf)NUTcWC1w$h7thS~86>`@Kn;SJ`+)A}>={Owr_#htH3GhfSGgEmvY
zdM1dKPGC3wi%PRW!_upT?H07L8d;r=C{)_=MZaVEa=jw2t|a8>eWs{p8JFv@>nFE~
zDKC-XjBx%*C7f6@Na4D@T`vyn*PF32UGMhDVuPhRNl+T@*R}W;f*o)%zBK^d;qRqV
za<t{!#P}Bf#8i`Us)H!h(`1JlKRt(JOczn01ed6>b<VdfPz~pMy)76o)&EkgOu%ow
zTku|H6o~m&i2-6#r7p-C_HM-TMMc%%!#7W#M%CF`!?o&1_SzFE&mXO6St#Fi$YLn`
zY|bzfD716c_SkV@t)ADV^oZbU{Xm<_Efqnec*VE!B*~jb{qRTWeAD^}ra}3<uSdt%
z-o-5s-4WF(#^vfLHAOr*?Ujao*r$gxU2G41bnIDfPvAH)0LfnqM1feKfl5a|>HKm2
zR_R>(x1+oi%jWr0+}8BCOVI2<EGghhAU~N=m7{vM3gOhrXyVF(z}};#oC-lH?{)Qc
z{f3X_G=r15YwTsl<L7JPL|sFHK2c!tP0^nXnqTajOtf|stifUenUuUBuj<nwTM&1!
zr@V3MpPx{Yv}!XfxIU15aVS=92<p%<%KK02#qT=xAFCUC5kD%tatU5Y7t?6t)XPgi
zp2_j2|Gk&sWQ*K|>0i(C=EfgJ6P9pO#k4@O!poj!$t=)l$PToJhDVB*@YK`?69-bf
zIJruJ9)!GIi|5`(IcQ{CZA>=EP-njuv4UI^stOjf^dg~Pn+~KOy|VzN)d$Bn9|zD3
zY;!EZZ|9JW<G(rj3PlsdH;k>spb+lOTGtZO@6E9fpzJ%GHc%ftXUBiVkhsuR%Qkvv
zZ_7*i170SzDwawvqPUGTUFc~mEpyf2eOO|ttF3zh?>3XlmlC?vMP`ZFME~drKcfX3
zPj>lMZT*|&73m736W<gA2Jfh-Hr^%e07lufCv9TSEp~@T!`L_m72_tBWe*nAIr8?t
zZczveQOSYPS7}&=a(CIkX8C(A;Gh7pYv6pUFb+0a$Gw<GqxXudj`0x`j2AX&m7{(t
zoMV0zo?e+U)Timi=$y`lvb9Qb4$H6mo2lsrN=y(1#zXZwzVoO)^wz&kIM|HBYM(Z~
zDqCcwe72P8_6WQlzG&_EWV0m$&vNwsP9fd(dta>{DlUKX59zR)gh@jA%kAIl`$@u4
z)_8{TzT*~u(yhA6hU>iTZ5$&J3Fx8dy97?Yd!SLUj=}Ju<Tj4DyP`eS+0|z%jAoGy
zO$;{|tf(VAX+9h_traKjX1s8!SCc3JCo1EI$Fcc%w#B{|??hYmqnrQA<-*&W=P?9Y
zrWO7$<cQ=!C?BLKe1qz@FEc1wj6J0f{^B!-n~ML4+n`o5{9ML<(Z-K+p;(#Us=nI(
zrDz&|YL3I%=jM~IJnq{&pTzyC&pmhJLms2dg2WEAWjp=@clc<_Ba-makP!oFf`q~=
z@DVZ3;#uP~GQ~kQHugLlbAK}{Jtu4=zgGM8qh9^q=!J;BbAcf-dEdOZb^>IP1wD3g
z0Xx0;WTJJPUkKI>Lz4>Ek|R!|&)LLf4B`z8y3{-p1aZiv0;H*31F0CYdL>Ksc0D5V
z&$;1zZeTrVwvnBNdroHnc+N3t5zAFo1X7U-m!fG%FJF9Vq@;`-8sv+VdDswhe{h}P
zroG=D4Qy9q3KHVZH4P4xj5Ow|-aSl6t?0o>QFQg&x*4L)F&|*Xm<}B9KYQAGR9pQj
zfZWcfc7u54KJ#GTmyreB^A*_`7horywRU$v2+_S5cDGp{2bY_gZkiGp*oB1iE9+>D
zRI>Yg9huc0FqY&lrLI)(pl70R@0|0H$gbVkzXb3Yq9Z;Exs{M)zH23HzUYTaW#V$)
z*rZI4HwXF;k~~?@k`l>dt}wim>|g+%WbPOa&9J~BVV>JWqixm6Y$GD2eHD6@Bd_?>
z-<`P86-vy6!JR)j%BYry$=t8|Sl-WEKmK+`H+28;OKP{w1oTx#AA*i&!wkE{h?gy1
z0pw3r>!aAMrlFn&p=tec->z3SC@!VqbN2u~xJY(5DRkk&M0)p&KA*heUR!TbeM+9S
z(YWlRdr?Wk1+$2K^*$t>vHiqI@JMoG$t7SVkgqb`xf~ou5PfJZ+*{=yz~PK(jChYE
zptR*(8!dM{BQ18=Tlpr2?{#a@Wj*vO_qK9B=b;6{7pm-?ZvxJcA)91d7;<0jv2I^o
zR`m0vMr&pu&%}S*s|){BmY07C*x4q_W#t=p-m*Oii>dnPjX#OF^G&kl<t&N)1T>uU
zfb;73`u4?}>&7!197x^R(ED~pT|yfH+4XR&ux(FAmUFJ5L(d`R`sXSISxKdB6enL^
z($9fr#dOrniYEO;;T<nto9ve!Y(JiNF4?Ki2am;uMI>P15=gK2x=K-<VnsU9?&uEq
zDLZ0>7UjwuB~4(l<Mx?m@bh+}Q9tcO>IuxS!dJ?(U@!P02^5i^EqNx#4HcOuR-b!e
z$n_aeppiUi`3j*yq<qr9c;<}%+C95E+FZQNA;ZS1iwE$YAfVVe>Cg0&8>|<cOEIES
zudWMg(|3GVh5SMqWo&!h(I`a+T@XunM~e1!zHyq8QdNV%z5&Ie4%gQZV;=dtO~)io
z6$f_?S<|k4_J2IX>VHq+X)mtcBo*zG{a(7Sl`Lq1Ft|>5y_#pC(!419O^-U(uquNz
z*(G+*TmB0{A{=1!!wU=}odt;sv-zHDmjIHmCVR-)le?g|;46i0HPwXywFMC-6}p?x
zLPb5*g1G2>Psk+@>i2M9+|a;SnY}W@`ias9BN%JW-PH8V)dIA2+J?7wGxSxvkMauF
z9nDt|`OL7uB7AnFV<f#e`QdpX+7lHLFidK+(f~rNYl~-AZ1_@P_EFru-3PNC0!VV-
zK#>3})`uvgD;i0b4_l68?LOn9eX@8vpr?L&@)A(y9u>2y`goh+W6oUg+b?8o+DmiR
zXm~xE$f4>!q_7Fz{jMt;$^Mn3&da=P@0}T(r0A*B4*(k^7aSIDHJsh=(LhUnuzk;7
zyXK?q6Qy_aT3X)IQHspeQFpfCcaM=IPf8aw3S>wN@(fdyQmmMA_O<V8H=`4AjZ+^U
z7SmnrUmUD|NTa6+Cz+=p@BF-P$Unt{@`hd`Len*N90S~nE0>~0I9`D^BuIw*^on}f
zM{4rdk3>BBud*|Q%h`@H(<^4Y7TSzD9MTj>)kE3ShNCB%L!e#+15y@;?#%WQ$e~2x
zbmxTM9roypN|eJM`CoL{e{}Z$nFh-DX_29(H2@i%o<+V={AF5}o2*ct){8KX6e^38
zMyDuwtbBnjvz^p4ZI#!Hs7Th?ZZ8rIg}rsKzReE2v;I`g0G+aUqG9FHzFkE5qL?W+
zbH3>CXO_$>;eR-;`Mep@Z*G5eROB7|ZkmA)+$(%ddOiK{=`sSf&I8VQFM+^86sY)l
zqc9V<fx>fHuMx&HXyFjey2afY==pVf%fCF@XDB-yVEN%#ts*~v?7S>u`Sn?~H?3|B
zEGZWaP5ADdXRlpJIpWM^+H=0NW|edh<=V^XX#FM1;*P{dfhG4kkQ0!#_Of6UwuKJq
z%rd_O93>CTb^Z=K_BU`_YGfoTBB=8MvRT@Qe4)R_n$h35WC!QG@I<*&{j9&d`yZFc
zub+Q}x^<*~#=!xP?{}Lv2A_*FzE|)V#$%|c9;cDE5@rS#;}lWi`|pQKGPD1Cz>D9)
zPJS15^N$=1aZ3PE-;S6t`Z1}TqP|{`IbV`cLKBixiq-j7h-nUbLgLuCiBiC)!kd}D
z1B3cU&f_-$v47xTu-QsVD>qq6w&rym7mSK157adJ|8h_My5fKD`9D;c{vJ#frAAnh
zvIfqlo07;VAJm@zA)0ddcLcls8^Too%R*1uI?n?pX_Jn6#5zYwojAl^Np23ie-!g#
zQZm0NEvN!Ce|l3oSi2j0M#lY4rb+EdHn(30q_XYR=XLvr7zNVlKpyO{0NLUHumkN^
z$^940?$0XkPpa=f{EJdI)F?7ZWGQ4c=MuP!S|RY>^XC(z7e11EnfSqf)SQ26j<2CR
z=;#Td*43Yt8)&L^*uy?=SF8K-+&Wmeng1_@lHmC(QOPq5l!neRD+~T@AzoUS^4yW#
zs^&wCJT8kxY_F^;kIJ$k^qgH14bs<Rb_w`r>}KNp29-tM$GAM-{z;?Vz|J<*^y?r~
zeO8l17!97$f0IxwWfeD98RF!0*ydPFUg&BuY;SmM-bdFtyz!gpISX3K(<TY>>gTeU
zugcr6-c;8ED1;?HZP=;&g3KFXs1JKOO3Do84)KeA*mh)~7kf_)iVr%Cm7>V_DI)MI
zkw<eLkv8{YSvS6I;>n5-Ro;Xo?<Y^L9+I{@d_;`pLby>86uPu?QQ3i9jej%Fkk4;`
zIYOmCrj{mcdL|9){lf5ddiEh)iURUCAFrQmTx?dV%XF0DNz+ptN2=S49xQ$SoZs!Y
zzx=-zez4q>pcy#u_DCs}n9j^Ndo(Rr^3|<mj3K@+d>ge;txqGFkuBAYr!;@CI)1N|
z{(J8Gi>>uP8Qc0%qJw&SE&(R|USzYzC9pPz3aSM-pRhcE99=_2pyXOn=9)PIhP>b7
zg={{iJ7q8KuD`mN5hmgl<l(EVzpr9|aBTVdUZ3}!lTS<-|Aqt`Mm<#-aFtml6_DIa
z(GlLg1Z3Y0A&J&T^dlp9W%*+i)fL(mR^eEOH$X3T&kd$fCUM)xoBbuZ?{@2}``b(4
z<mTyGOP%4aO`w|N<5E$A8;HSAq;8wERD*mT1A_0WjP5ClZRTkNH$guq(FdicZHl(U
zZHUm8zV#Crabij&3!0Vx7(-+c6hx~h@s{_5cC1XP^+*ELSE;hqOS!J2oqYI`Pd$G#
z;~?hh1bj<Wfq_P-2k<)1xIs?~s)l3a#TeA3R1G3~+;0!TJ}?F|`uPtx3xDGt6f+q-
zgiub{C;OMd^44LAWLZJ=0}tO+(_4@c468hh&=JKI5V3B_O>_p{+v<4Tvv1(~y03)G
zCTDdsbh`<763jg+ZcnU8Ndt}GQ$SK~OjO1yJt-|5Bj7G&s7Bs)=JG2@#aEegm7<Ay
zQEEpSRkLW%&Y;}C4c+3%j=GaBAnl^Sm=wOJK+(=BXbiV*qd}4HR0cox%%@C0Kq|-R
zO(abyH%wOq7K)Z%0+d;Ko9pxJ)(cNyuJ(N0BwMtGYDHfnWbOuS$MN{$4jJRXokKiM
zzSW~ZSm$k8#vvCgGizZ3-7^`wP8TdUkqmuc%QJ&yV`sr*7Z$p;wK~iIBNK#?Ikn(e
zh=D>*l3ug}TLB+lOTpy|XKrV-(lS+6!iGtwj0}3LZ*on2N~Oj;dG&PcaB1}Ff{|b=
z+)pmP&G`2F^wrkno(OhFfAS>lt0XQYN7v<+n<;415#zi3&=3wkOa9pqKS|E9Qpcl9
zz(G-LUSDpLk}+wzod?{p97CW66-KOI0*ooBSaewoWNjEK2NgxkQ+4kaXejijMZ~z|
zFkjg9q0P2k0=W3EFqSWYFbnDH`^1EGw34+T#tYW8UCHOScXe9KA>s)=Ek+yBq|uhC
zVlNm#l(-jt3htM{CRG0YZe!TM%#2oF<)@fiX)Oa>?$L(YWS{UPPW`ErhATG}Ihp%C
zg*-{Cqj!`jtzFcn=2mwzulYoWpWDuh>he1i+a`<E3VRsj6eu#M*pLU3f13|vM2pba
zR&b6!j>x_4C-97L_V_Sz(V1dBKx8*JoqV@rg7Z*WEhqXj=^i~yb>qtbDFARsRTbxr
zr$|N-wPZ!8BCJ>vIyb9LB}IUz_uvPVkd~K@erreXy7>nuCT%BtycOB<wY9XU=TeCv
zlmp7n9m!fN8Mk3Mwy(9x+}U{X7(egpC$4?LzWK_7Q3of-RzIPmndaI?d(Sr~zEYbF
zb~|FuyYga5T3AJ`*1Kf`iwpkwrMEN8=dmZ%hrSia#tD}$->-g&n7Jp_jz#0shdCPJ
zr|4C@k&H|zlBO1{)mlwNx08w^rHDLXF6`la>Zj<w@WxYg{|0M*-d5rfeh^HV(#0^o
z9mfLKhjJl+r8;Zggiv;Y{g$AuXUZKu+k0qjZB}Hx#}%;%og9R{?90}4%E3zTy{*b1
zb0!~N^A*V#UFSAv+BJ<7DkN1=DPntUE*(XaqIIblswa#Y57t><!-rG7POVa$8ALFL
z*<IFLI=yyVr#x2zMQ~W5)e}se!8TfZTDOf#VPZt07Vb}jc{{Pf%Qd&yS0mA3A2nuP
z5!RPmu)dA2oI79^W=JKDNY#8{?o6%S&jwa{jLYD9;*tlUy}Bty%JSB|!`W%ZtoDpS
zMTFGxv)D+JY6h3M6dD@VU~<jxqcr`73;iRh=^yD%|ERFs_aR*}6_>y})LuIkphOvL
zDaZ#j85hAQwoU)LzsBFv8j^*-du1Ex0DD8LSEFsy!SDyz!!8_H_G_fO1bSyfA-j|i
zq_BQ64<bb0dAqB!h79fV8Ls+GtkiEa9g_tO_CIsNs2yg=NBNy8CpSb!a%^wEEO<CL
zrYB8>X^Y)bnY;U7X^~_cg#w^(f{KgpoMbZtlMDRsV2>U$2SrJKR|-Xj{edDz_}NM|
z{h@0O2b#0n2jeAE>I^5|jk^z^UdxVQJ^S#LvRP)xOfOY6grF?IM8Ew1H{YVwMgZLa
zf6=XY^}*7zbo%>_cQNnc^MKAVP-Ky3R4uayAe6Fby!R)<$G=~RMo8DQqZn{hbY};w
zfApLG{R+$fBdy<ZZBqKTm%8W4dQr_z-m32-s1KjMdb$$G3z^5<g<Sv+kexmh5#AXG
z(udiBytwv9Z0FDCiIdGp>WbR%m08*MQQ$XXPUX18_|JStrsXQy_PU53L^6VBf`VAn
zlV~cWh`zIqsI#rEE_G2}pQ}D#Pxyw3-F&=C8=9N_#_IVadY*z*%@5HoQ<~SWb{JYj
z`LBTvv_$c=TQz<2-q%JwsZ1+f#fA)bHfWyh>!6&(B*y+WRmEF3W2@<{(A-T^2{ZyB
zcm4lMQRbfn#6Oaa^`pi5yFTj>nw6bo5c?_RbEKG4>FLREP7JUq3oK*V!(2ploQ<vX
z<rWv^BMoyL9eJkEq6j)!uHa#{2S~zIo-K|ZG|=4-22sVmR#&QBewBJ+>XH*-`JxLe
zv-miJ_$8R3^>ie|l4#l<hGTzix>K8+IuX|>Y&W=|FFAhxo`@gifZA}vGvZ~1=1ahU
z$<2p)BryX`jF%KP-#+Z&l_>jh{^bN`%5A1=ndKdB*bEW}pjlgyf(TPMI^~nbyfI~4
zcPcTT&_t8&7q6@xf=(#5Ag74s0Gh4^p>ykn<9Z{m$x`Gd94onZ#oL7Q6?f<QXvTvt
zyK{q%ex5l7=VHTE_G#QRa>ML-wzMPU)w>X|&|@Dr#ZpHc9TCY$KhNB^oyo)7t%mD;
z^~%+LQo7g2+J(N!0(N-r3mjPmD#f~Mwc?R)!)zR?7`SRZ4KKFLG^>TMhO9D&B$y3l
zclTRo?vxLpB6Ksd4o4yHr*?1)!K-ej#G3;j(r7nZMWA5`=d$il`*ikLs({z5hD*xv
z&vb{-)drz}=Rpzst$5^((ZHKyGY%3rgDj+k@7;ctihLX>`VvZlXl<=ck3upIRzkKK
z9&NLAl_$!uS4JNTI?aa}&OMPB|NIOQk0d*sO{~?P-ReC4X3Kk|B6hHN;fxeT(G*Du
zmj>&32=$)BNs@#pn!4S!oIP0`aTee97V$P?=Hz^`wZ9XYWNae&Z3*pZuMYsrLgdA@
zwtFR>qPr>O+YL4)o;qOl)S1C>$G+;ucbgZ8zfG@NfYKqXQNfaDFEs}a$Of~=js;?r
zSUyCO2SxVmB~q-0H$|-)4*D^{IW}dYTm!_Uxn+nf+bm;5=?`%}tip_kLl!0>m>cQX
zLv%9ndT{*eTSQbZ!#=!f0%0uqkIBvvHf=_zVwo*YM!GF7U<Kt5NLJ_z>wCQyye<8j
z+p@kV=i4>|`KoY_(=52S&Fdpmd}}&Y`Cwjsd9W})>tqL{qU9S8gK8r;qx(S#Cy7aG
z?v$Uv=(lG%4=bmbKPZg11y}%g=yCUZmvtwq)8=1tKCi7VUf7mcFrv~A$4Qgakl~6{
zkfIdW`zkFi=j(5S*3fru?R|7%AO~l9r9Dxd<aktlMqwSkf*%0h?=|M~?s+^0?(U#$
z3?utQX&j$DV+%d|G&rBEU3aGr!wUop5N^Mdjv02((Oz%J@8-NWMu|ZBeaeVq4VHR0
zFY*M7uVi;60%lT2seCzuF;fI`@;izV_U*R>v6KhfP?TPq^$MryT;ixV3xVRNGaBNR
z8szB=w=lUoxw>Lg>0H&dox>hw&rlBHL!-AD>?vv&>FOs01B82Qe;<|pZ=j3+%TU9g
z&7dFc!SA23bvby`9|=+96)qEVsoYlR3&VhAIY3>w<Omvt4)~e=+hqKo<o!Plo%mg{
z{uj<K$atG@gpQ|oTPQ(+Tw^%~40#ik243yc3Wq*fdr6SwedO>tle%#Ksu=SZ0^?No
zHM>tgyfDLt=;xl>>iy1aev)=0?|HE&jO5L)lSjlZr+Tc%OVP-Z^rF@&q5v5(Nq0_3
zhvb((iVlaY8KLZ`=B!I#@jH7M6{`B>BIL&wD3kPGoh)kp-+m_-Wi@Z{oJJoF9Xxjo
z7^aTC5i{dGl|L0Mz#(z0zxHn!{XY*s{{xPWf-Y+$cSGzliFonx@r4-C{<!d3@aCOQ
zfw4<qHcS4Teufm4>VOx0af%|aeqXsiUV;2@>%SWR<qNC1lXTCUyM5^cUc={k-`GGm
z{|~)|MXcYs`+wb)VnNHyMukFtaISuKr2<8+{q5FekY>6)7Trr=Qssht=*RCzd6&(W
z>?z;cqH1B*u%-tfs*1(DID5^Ov|{Zw7t@s6>}K`uRKmxMRYeL|gmY7GwRo|;`iF9a
zH^wVUxmb5^j$*GPkFf2iwyyG|0NblgpXUzHgtv9-t#fBKx-<R5=>)fuhpUEWg^bE?
zil)TzMjTKN`swAG*d-T)GFLoPq=_nokzs+U81|;!yH*pauK{0Qw#6EN(+$$xmEs?M
ze0tBmJN{^v|JDmDGZ@-6gUHF+{cwkm;=>MG2b*UoK4Z7Dd0{Uumjb8SwAd)<;d89+
zX6E3j2x_a8g$$gYVnn=dO|3=sfRmWOkun(d4wm-y_T=0E^2a{DBV^AHorw$)zO5r(
z6KtyYC(_fQ-XseTUo$?)B~S2fHGlGm3(E)CWP(Q?jMlyx;KLeX^XPggD0pSr+$z?^
z$owAuUgj}td{d!geSjwov-Imn1Idf(BiXiD6@nmiHRz0&p9`kc9FbyE$=RL5UIN7h
zD*s#UqgoYlr@pW14aSBY8O>@IlT>>4(!pKyM`iX8c2jE$o{5o^eGISt^5oQ4#@%!e
zdph>(a-4YEm8Pg?5l=q>PrPQYM<wKLy4&f?G#9Sp+=!cCZ*paG6Bzbz5vK7e6eceV
zlOFO^elVd|B~DRU(Rj?=(DM1~n@+215*ph*-ovxOP^cL5g3!S%ii<{M%t$z4!1mdR
zQOolQkHB7_iwkJW&3>d1jp371KSI*L<8etfaZJ<P)8#5}<=k0(;$~79FXCBi@k{I_
zFW7Lt?TCM1S|Rl^?8zse+2@Y88&TO))($DFA1abrM(Hh+u+f-<y51U-^|2rH;;+G{
zY)AU-NRM1{OBn8T(@RmU&^&VQ<O2m|BVY!|p1#Vk0p&~JdETJ<H@HQrR7{qrjHp@E
ziew8WSe#YzQ~KT4TDz79%8ssi8`YF)sbo*`AHJIAvmmiN>--EBvrcDq*RC8saHed0
zUb)SFXkbu$qp}7Ts;T(c;)$i_jFhQYjGXjNkExw8Asn+b&%QQdMD0_N-9+T8?#J=0
z-ds&<n5$n0KFJV)I;2?8ED%uT{<3-#utS+&H|vL6vG<pIzCbC_HMQp@_96(}wK>EL
z%GMXuAoIeBD&^hoSmR~&OI8t1+;!+w<WZ^DRe%wWyty9ZBWIG{8{8#>c2AO{(pD4%
zzVv1Lm7-X)MbxJ&wc?`caDn1d1ByzW{(~_><Pe8tlzjR<Kr7munnjo?inr+#pd|RR
zv?n^OjIDHHy{gMxmw_O-u+u1Y7p#Sz@i}eLb2z2BHm0wwLv61kk>2z@;Rok2UxDed
zomBJWrE`KTLzzYP2f}HVgJKc`6Si-b?xfX^QXu#4+&@=#-XPOoY0TZ|x0&SIR(Uw|
z%!M??&+FzD3G$#OPY1%U1jeC(LZu>{Xw$|MGV`VS`>jYuz1Rfjbk8{Rx|OK=G4sdn
zO~PMUD`7*OaQX0sK|a`rp;GN$aNO=&l^T35>|5eF!X5f8aK?b!@amX}8%R7#zc>*q
z<jS`@>XW!v!AIv`nsD*4Odi0z%@)#__28ie*|sk|-2)O`$13CHKzFEEYtW<XQs)*W
z(*UD#cv%kTi=}?(0r|G}#MIP`VMoCG(zm7wvwKkn)VQnE2ZgUYMvHUhp;KTtT|coc
z>{`LQR)pLjORmKbVJy%Kv{Wrgd|Q#Uk1r*HyyjCTJ%`lQAa8qo(cddF6yY&oIHW%U
zwz$^~51~QUPanYgC+CrAw+qO1Gc*!iMw|lYIyHr2;&Mb?ge6{qwlafx@TH*=h&=IB
zlidi8JP*gpaeh<SLu(t&f&}InQ)x7z9pk{aB=-tIQcY-8ZZq6{->OPwT9xtM8XAmm
zJoe38cKI&%o{oN(dy9-UyVKAYej*<+MwmW)e66bcZF?J<TNAmhAYm56%S9#CDMtI@
zXd|V4B67fvELkvgX^5|m!kD?{Ouv2q#{7A1^ArdjH#Uy7xVpTuV*1EHmwx)VzOZF=
zGko6T0Im~KxjBtF*t)8&A+}R6llR4zT#@_(G3L!6^)?rL*H6HG{z-q04wDIi0Y!l{
z$!9am=0qe@xHHpK)YetTgMNm@GP^yAVL3gXUWK})ZQ29VrUp${mU9z=m<!Q@6-zES
zn?>@YA?VVwZCnVWgGCn_Dc`5J7XZfV_>b_pcNFu$5aZo1#uUSu1ITGt+Z;Sj)%S|A
z7OGtHIgHO7cw*#yBUCYm0t9M8H@?nl^l>;C8%f#ji%KlXTTW9km|i8UwJ^8cV6~bx
zGJulIti?<w8nD_dr!PXTeS0(pkE)Y)SREXxnbz;tg_Aw4Iv!b2<~Q;?!*Sa%9{mg&
zo*rdj8Y04U5$X|b#wn7WtIN3F5Iw;kX*R1S@TtubhAT_E*oTfS{M}e@AW1sf*4P$N
zhnOQbRs`(FB?cPT9Ijvga0w(PIh4siw8|U&2K{DPZ!j&oWqV^QaeK8S-OoJt4V{<d
zv{)ae6Ds?Yp&$$u7D|{!1}C6$kKaN%*XL1)__7zuYRdaV!Xc=4ZFY|z{2Ez{qKU30
zptyDaz+~_5v^dEnrD4g<*T^rdsFcVKx;>_ijKgjeNBX-(hsuZ4!b!7MsT|&_Ec&L!
z3DugIAu8ZOr*Lu&3fk1!><*xxveTX=5xagWTcRV_L$Yx{o?DYb7UNBn3#MX69^jKe
z(ro*Y2`-nkm_mRLPG{%v7@AKsP)ZXM*|KTZGty0;#y&b{daVXusVK6$lQX_vs}+*F
zLe4a_5Sv@eQ2e$CxVhzx3bEeMNijHAs((5Et*&%K#Q(!EpM7<CIyU2N(s;K*)2WyY
zp~E%1?WoelLMM;OqQ$<$Ql34_D2+U4ZJ0Ka>q{F?)CIw+6paPtN{V~wv`ybM>jvrb
z_bT{<ue8q!ggS%|ORvEfIiF*7s1Q#ge5g1pmCPMi42=`HTe8T~io3ZPO)b32>RM=7
zhN1N`C1Cru>w0BH`E2UmBL?+FIj%7-Q^67q7lmjQ+2Kp)-V0sztmXwc3fqw*IX;Q5
zO5kPFXVr?{*sJ6;LKiG(C51UP!FqY2!a3e%O|c|FchcqL?UwoMQK469=)}0aK&>M(
z$sI>%$YZYardcO`Ne6v|Y4|ddM)3I}Jmcle&KY+pDvMNb0VAd+{_}}nrmx4`z7%b_
ztoPio1f!jZW^GSZ`pf+LSxYY;HAZQ0%dXJ`ffUgOsl$WM7A!Z;MR#Yz**wOUQZyUF
zCk(V1SDA)`sUwKGnuRy}`mplUj6Ho9oGB32S_4e*8<cDl+IhY-@i=r`iVizz1?<OR
z)bNS24GBg#e(}QO4n9JgU4l3N6V<HoY^aBh>#Il-Y{o^#IDh~5pkaeeQZoIjl?05>
z4Ts4&hBB4QXc0wUx!kbq8jOwR?9-G#GJ{8qtVURzb6^!jc|{!2RVKJetLUb4`(N+w
z{>Eg00}<99&X2cEI9s8pwbiN|u6U?4R%%h@ke)Xjd|jR?KG=OUt5^`p0(TBQc>Y?i
za=_`Z;lVb$N4Ei~r}CGp66S)IhjgQX_>-!`4j$0=7uBu=6W@qNaD%-*k5AO&BgDbQ
z2}|j0DWCc_0<KrV(e*8k_BM~oU;<ZU_oj&VxExmLQ&G&Ms|yWIf!FQ|FL4`m-&$k|
z3H1;0?szI@zDPi9`^1=`p}N1sPl8m&;|t@yo`!HNroy#ri}4%&7=Vuv$*PFS^Lnp^
zG`7uCn)FD={2Hr@%7z)M8tEps&-d~bgcdhD_$Ft=m6)IMDVr$6VBtI3^#;@?3ik!#
zEW&uWHZTXHlF%uEgYda})?z#O`Y5GwM*jNo?D%V*iC+343U2zx3iO{waYcxAJbq(=
z<;`zf>kQAsEqwSBBklbyOO+g{6p2gRF<4*6+jhATm>8;J?))um!q6#ep_gt9obzaR
zk2#c+AEz;G0jAeGK2Kv2lXxOuQ0izGaC`Jnl5`s3+!CXkvkuRhot?!5FIrRR4r>M*
zP%k9|BZ<dt75Cvv^Q96B(+_F|3SycL(Y+1BS1Wg}NyPi&EoTIK93)?PD0*1LsQcnu
zcz=S)BjA%A*u3pDt>d}#IrjpUy-k&`koxlNO7>;LdmU7PPMS}f(ML_BXuXTTYKQjg
zP);%8g8IQ2tMO7r%Fpt2A|+-9QNozD<WN5)T*Vv4l!J?rH}2lr0AItB!b)g*n{i!C
z%YUAoRk?0(Yq36YRXwz?>7=_jbY6i0R{<c7?Um6JMBavbJ^RMS>8DH@EfDSHlDIGa
zJl41;BjmAe%w{^lgYSg_D*aF_nS0yONIU}6PA@UCelWzJ^l2t<-d+d1I9bC#ZVr-W
z&Zej7`ECm~z6Dnwx2BVXwg?R7MD9SLts)FUpR?~0#z(oSKo@GsUL5*Hs%Y=_zF=q1
z8ZLDV7^FV(txtKQ()|H*>ADN{aVEZ((h%RYz~n<XiWFk=&RFHhUNm%+!^k2Qc6+*%
zVl$LF{2S!wF+urvN8V3xHfLPvtQPQs*be7Z-`Zeb5Z_nYhce)EH=mAL79n1n44oT!
z&o^FcHH|KirJ6M{3G<M1O^DP|=r&J{N2N-bpUHocJm5fK1ao~TrutjSpC3|Yt_p`l
zR7T@&!USuX3LE=#qhxL|hR*Cw?e$P}-hAce_K5q$5dr<Qor}=!P#Yj(P3cj$p&wj)
zMf9F8moNrfXfl2zkmDx=NX^I)9Cb8cZxD^ATTk5H-`O~k>!eN2aEtALe}LXJoH}@H
zDJW27ATdxFk9JaL7nzzIkTB0KGBJGB^yS;~E@sBK$BgkC$|6R-CgqKl?`SE?^*AZz
zl#>%NHJu(qJcm|lCsq$3CsgOcmw>b6DVr+jB4;7vl*|FLYXd<H(@jX+xdgJFbX)?M
zD2*Ta$9h)3Tvhw2&G+gD>4so!-{K^v+q<vu*vgDL;do75%*=rwNV0Oq>?W>#sr3rk
zHYdJr5&&aNYIi+e6x#67vHrJGS-;t}<WCR#YXfvmUdbpz#0`iVnY4)b4-s}UX*wDW
zIRR0w<ekl8w0O3t819SyE6kx=B$}q6x7Ptwv{$RI|9dsBza<5}*XjDw>Rh%#%QOgu
z9!x5U`U>TvcYv*|Ic|U=Uq;t$8u9<3e9b=>H+M%0p>i5Hzte$C&ba<9seu~O`T8wn
zl=I?^>L04(7?QnUUx7qOV5gbIW<}x5?O`x!zG>(2)$x@@<v26Kl8{`8Tb`kEp+cNb
zJ8vYYo0E5K8ycl1vme1q<l%UpFC%SC6si-coF2*%BB5QnNR4!#bmZYTK2@x6#2wB9
zC?=xcv7Tu~@uF~`?4?VCsin#*-0N*DV)(h*mcxx<%13FOt%N0d_B-z6aU<j_3TlFu
z=evtGXz9GscE=MeXuW(?-h+!_FPUvDt~W#$>Rn4Kxfc=WL-`+EJ`gD?lK1DxxNH0R
zy1@*!w_7h^ELm)7A$>aUlqyE;lElr2F>BSRw2s}qO?{b180Tg<UFcxRdReqouV!?O
z#)@;_OF#x6wZwyqBoT-9Yl)`^S0LLB_u6;UKI)7+>eDp1r`B1+3LXG^z4#NhuHa*Z
zOCZGE^=%}pdvz(*Nu!14<X-d)?hbRlc&&EXi^3@zq#*obO!Z(swD8NQz7s+*+)yUQ
z%VPseW2Qkp9N0A?rNi5x#OL3nu{VSl$?rQj4a~n$?!<vT9~N=*bywFLpQd~I5mZH5
zagjaScHO(*+uH51ts<j&P%ys#=5%2uKF&g3{U{|QG!fh474*5obnqPq7WO#TiHea^
zPSi}U*UNYpPfm5@Y^Fclo$a7{5c@e?Ms8l3K0OC^aDaNp-RHuEc0RBOKl>8h^-)q}
zK$`PK%28oB#e<R*@~07&HO*Uc_6hxFyE9pti^k<6RlSt2AOh{%92C!{0_(t$8U@TS
z{vAzKtY_nYbF6iU_yS|6J~4T7TmG$Nn%#7J8@W}muG#0PEg_-PQ7>7*TmFTgx$Q!O
zOiT3yN$K`*z5aB`sLt*2MFlPeY%fsaQo0Ce#~3Q>HmD0;E{JJ`t`!qLRx?nFiK&?*
zUUiqEp&4Vh76RhTO@UJ#wB6YU$vbl)i3vOn^)S-cT!gn`R4Y1pq)$hs%`6wmcjo<N
z3<j7h@y^EP2h(W6DkvUFG8i!deyE~Mx?rmNeWS{7NGS9%oFw^8`i-c0<cK^do8?K2
zoH&N3vR$%dt1^e^4yg4afxkIkZP460SxI41=+&LBDa@-BpI0}dwX*}o3|gy`4UNSI
zB<BsM>~bDVZ5PWSoySQ8&U22Rigv9>J0+Mu8vS-okqh3@Q07?KSTP~|niz}yCd>*A
z*R@MJSdsS4j&UpM#SlCd)0od7Fi`O>G_-@&9%bH#9Y^LFTBf|`>}uhZlB6@!Fz!3R
z<6Mw{7J(b(K78n}(hN5+l0`3x5y>BkZ1anlGZ)_8u%EEWBoIJ&TV}&v@UzRb&QSQ$
z+%eUqA6oI2F^U^EEnNMEix0j4A0+?B`$$LhB4cs(l-xt|oCHNA>L^5`Tf{r4b$U6!
zImSM*V8ef=M?^xwbDcVbb~Vom0c%5H=!7NgVyyF<zT?a_HK9uDx2wR3pBYVi>fg~x
zNRd<YE*qRepNUB?P#KVWrr9<3q!&0ts0?%~y$Qcf<x&tZGhkJVj=D<Gnv-ln2tM8f
zhwtdXYLuxAxea9s<%tzyJKz4>f{t^;ziUL^yU<8yXUrD*8SIhb&$2$E-b*Dn%4S$6
zQnc#qu$b|+;Wld56)REoA~YZbnP+TB51#{E_=&Y!5MK?W=at(0A%<PLHpq38jici`
zIh*$A<t80C4`RD0Nw`1uDKHl<G;o9iOZB3q(})&F)1Lh2=X_1lR{L#TOk;QNM@UP$
zzZ0V9Eic1qqV&I5jWq4!N59?Me9z;>xEqtV?sFB1*rn(Phdov_5BzU~4_+3QI(O1O
z9F%Xkv1H9U%fJ9H>BR<Ho(mUDrPTGp?7Rl6hPP*$(k&v#K>a9q<-{WsKlFP-K+S~-
z5>?;_A2QjCd`W_GzKc;A1hezKXWl3Z+G7+{{%e`bzj7}8iz}}4YhkjVa_oN0xBK<;
zj~NSp&@?~fGXQJ9-v0d@)uiM6g-^kS+a)j_;z5Epo!4-fTMcvR5U+o$uCQcSj5Zby
zB!{n}s`30)IuWYdGE`R6pXo%B|9;!|q>2BR+d&24uxIs>*7(7Wl`j<{YNvD69U|~L
zdp~EG8~rP)^<RtR{j$@3<O1Fu$(Z-Yc~D38gi<-Lp-DYkVG$H4F2x5b{Tt+pKh-+?
z=NgND2kG`Z$$~m8`VtrdyCYkVOipP$4?Dq^z=eF6<d!6=2vru!7yXr$@n1dvXEA;M
zMDqA+e^J!hsSL!uD%GnLVOUtyM4(@7Y!IsGm|#fb8X78*I3R>>_bJ!_87Lrmy!NMZ
zz<<7gVx0bP=b!5Q{?D{6os+yKA!tL2g~h-XMNlgGg9!bVq4|SI{ZnetUlqmwSKAfj
z+X_$$MlHbx9dA{IDszc;T%RauF}xyQ##(~XEp~JlEsaN|e_vwL{{lLYp>e`|50&1K
z=VqFcGORAuPK7+qV(Q+rhXk3WDnEwT|EmG_|6;hFY(aCB(kW7WJ>hGH7@cL!y;(Np
zIuDf7^Gc#_@T>||X7Yzk!2l+1Da$jEdS@vv{frW*m~XGE8JtzCx0RVyaAFARx@fx(
zqBJj`0GVB^*p2<KwG7_s2gDbw&4}spO)8W=e*MrZ_7;^4SArCy&mKes*tGd`Q3Dhc
zf@*(mTiVU#bNHCJv?qE1J*wcTEGiA>-{r{9Vgt2KbtHd!XFrIX?+*X}SX+|iS-T;W
zoyO~o_o4vVC(vj?<{JgKUvb`tc}_2%r!=k>@T1_e9|$w3@b@#EmUQPN)OasK&mE_i
zaTf;yML7N!+ihZm9ZxF{yIP9hE**fzKnM_u^z&EL=08_cX?e1C3?7`64Gj2JT*ozo
z0iCU4+vpK7Jg!5FXv|jvdHgt$jV7q{kCKd2bk9B=?z!SgM>)L5M_(<IC;Sy>gvoO5
zM2W1gp}iTExQWnc^@+DVMU{6eohWptl3SWP5WXgB4QZL*#k#<Cfy^dB5XsxLGZY3M
zG40!fY?-4e=ftp36M!_1eEQ?8Yc~t?4l3S~!<t>2T8#U2Ths9{O=3r<VIZ?c=i_@#
z`{(yk+o>(R+wtY|Tm?}Td;E{1s-U<CpWX*3V9uwRa{`JUq(y^9BC6O;<iZ62)GH;r
z;DRk<Huy82yu4>hIb)NChDQ2r+KLr~R_O8jpx_&{V>duE{l<1;@^DNQyvFdH!Adn#
zQ$g<akX%99M}n9<)=t|WL|uCy;VE4LI5=t$bcEC1M9a)#8|4Y%q`{RgA{f(~^hd+g
z>F!drFJ--}a~7Pb!S-5xY*oIFwBPVF)WV0$w$)_`F(r8tn2V6asV;7;_s-fTkW~xC
z7icZ6>+nc!jqTCn`7~`g3f=x2!H;<39*IOv1$y!6V3{vEs<WIc<!uU7yV_5%=NJ{l
zeCeC|^zQu!tQa1EL45rq1{^EmT#GcLbVh%jG@0fLGZ*xY6GdP<{A*uc7_eU*D7w)-
zS}&iAc--t<l`>peZHs<SPTN#BSn5Pt98~&XpDv20gCK;@*2=W}Hq7B`Pai-XXM^T6
zxzG{Bv8wwR&XoB?i1u+UK~EsbSjR18A|>MD_Bo#Ssi9a|SRbGwqeyx`f!cnKxetwl
z(1Zm`1MvJl#aJ+)ie=mcKP+j)+w|!OMv{Vclmz59+bHATu$4Mpl?vB=$KeyA#lQfS
zmZF8}IWCAZIUS11fV2HMn34|#VBb`WOjW3NuP*X;8G%zi1rRq5F2NuA$bOCYcdIUS
zFL*&%Y5}SHAS@bR*lV)nZdP+f)+YI4^d3w89$&YfSdEUG#2EQ}n2YOEDcab4J8hr#
z6wE9$uJnO<uTS*on6w|nhHLk2#JpT>caK{I1t_(WM)<20*tX0tSqNVUJ0WDLGf?#|
zHv$9)4!fz0oVryS%RgGlxaYO92slSXb8!nl8eg29LaWNIk;Fp0cQltBS{@mg8Mp)#
zYm;YA%$Of<3FCtp19hej_^q2xw^6IpkC(K<ADs)QhGskGIoB=Rc|nW4HrypsH=#`Y
zsG8$TATEsHA{bTnw!a8fL3ihS7BSr!1`008QUAd=|Fr_JJ5um_8JaWXI4V~D=})Qu
zcgyme`Db2xIXZF&duM_dUqR4F=mqDzGx42O5m|E$JVyqir9L1rc_QroC2aqzTJ!;)
zjkK_Q<?N3Ycn7?;UBnMZ2?Y+Za~R=kpv6*em1pNhmb+)IePHKL=~Rt_jL%*r9y-=f
z+NYMEbVChS)A2lf*o^50>WLTp-CIV>H$)r<42{`K0{QFJvAZnB12t(;**2)OgkqdC
zM-3HN<NH_2_O9fKcK~{x*ck7X5*_0FS#W{YE+lN{TpTmV0Y<9Gwma2vH=8Ikh+L*6
z%I8cQ@~qxyq15@)@r37qjk~Rg3#*s^V<w!H#S492Y9gUta#Vq4tQ=INHXr=DJ)JAq
z$fVW9<|vsfVW7_rhoSq)TNi`7Qc?;+n?}q}#U6?2WL{KlN0v_UikD8;IL>Hxx-`))
zW}%WIv&y{MXhn8ML&_E^M-FwjRud(;33Hx&UWz!+JjSfOyGKB|k?a%+Uu=C{+weu;
zNHOm-t>VWu#!gHKssN&6uAlsFK#fnL&yz-5_Ag;}_uJaP`rqK9kZ7q*hC9CqVBGZz
z_v7<OyQ1W;)JEKM{T-=lJfm~HB@7UVu<+a&sKe7}OFlljfIh3lF3BIxd2f)iIoUGv
z5a(Eq#6|DL62TrIn*1H95ZawRB0HKr%7$2-Tmshn=dg~XRL6GS(TVpSCd8XhK628M
z!XJ{}+gO;I(w)(BBAmK=ad>z9ZY$K#{BXaKVAHx4RkKK9ijB=V`e?9YY39=kbI)zw
zh$wkG;P@?TBpmBSRVe%+E$QwTQkB9Kb1!#ypD&NAUy90quCE}TjGC#}c-=-TIJo6G
zY0z`)v(dfw-t8w|@8p@sodVDLV;<dqgB5XhumPG?Gjz&Z{7{M{=X~i%By5>JOgTgJ
zh|;U&+14ZSxeGi`ZOrY;GxLC3WT8yF&x6M3=(tdst?n~{Y~RTiI+AnICpXw2+Xcu7
zyEWFRUHo#qnFRb4=Ns=Y66m(c00Is{9wLUX-i`&XXhP&)d3Zo${eM}s`X9+D!C*I(
zno#bm4PUUqwf1|`{3Sx1%(^F|fL~-n3I+w=QgefsDBl)l$&HZ+tO)Qxkz53~c)iKg
zCb}!P)9=p|`YUwyuH5|uXhc7F7e4bDd)r*MM8Vzy?fG-{9J*an26$e)QhB22+RTK2
z(ynYD!-bP7bI&CJ0{k%yvIFS_p0uw}#b2Yyl#62SU@3*U&>0n<Xv#l$Cs69(Xud}a
zspK(#%AB;~bh>l$vC1tR2yvu07_BE{sR57Nj;DU5u0SWH*C-Myez%3ymxZA!@^Sgi
z(ir?(Hy=bmnslSv%haSu7zeg2qfP~@Bje5qJ+M(}S+B0{Lz<-Mq*XVxdFpTZi->9s
zWk+ULC(jX;vnEV8E$wD5MkJsyl-i(TWv>Gd#tw@8-NqTc4bJqf6K%O`^{(Bt7FuLn
zf(NY|Il3dsE&&thB`~I~a&bijMgE40Avm4IVSy1|*Sm->YUj3NAEc7b&5dTEdLs+n
zUQvmV5KPO8HH*W!9!GLh_xV>B-x2<fu!7NZdpM`c7(DMHBv<vz=X<aBqJ%rlBSwog
z$*NyK%-pRRI$ww>6N@=kz2c&e@udaxftE9N)4B`J#p3U$v`*C8k0iSrh?iGE*c_sr
zQ&tw8UkB9*AFWgzoZ;Q$1pGwcvLUZvsDXy}ikINj%7@ENe0f?!PObCk|6}j0qvFc*
zZC^-$;O-W@aR}~&U?FJmLV~*mcMEO-f&_vE4<0DoJ!tUYP(W}gw2;v6WNy!W-80iO
zv+lib=DxN14;ESEl>JUsopZi>@6W!+fweBk>=3}4C(avUJLi~sGwUN`9T@7DHexsU
z8_K+%=($m`_B@%fnzWkqz)*baq^)Jx!tgw34?vsmAVtEg;vT_>E7tb?B~?4XJXH&I
z4LaK6=*MK;EcV1g4B0(Mvn6{ss1bFlkqd`&vFB0SlNWMIG2)8E+6s$~)XYEtY5aNo
z%Edz0I+m~2oZF#NpHE-mh>v-Z9axmYjL_2HrD&?DB2}0tA;P9UXJ*0YLU{Mjpq_iu
zq#hL!^ZLt%Pjw%_BY7MU%A7a2+`ji-2LYr#3^Z7LXhm@wi4Icc?zExF)8zZCsb$2)
z{Gm+A?hX!~jiyTJm?fxzZvm2?2&l!#1(q=j?!dOL=|LKiYp@?F32QfyP(*?_1X{tb
z?!&17(f@%)AZ%}8;^k~^h<b&w-trKb2U1b{gvjMf$YIW85Oaj$l*5*u$<!fzqL0Xv
z+=O2Ajdr^ERq$Q_IZQe0eM8Mong;(&D@L;nW;9Wj4m^58=;|D$1<<HIx9U{t`za*=
z3RZ+kOH;hkU~zl1uMK_tEQ2s@D$@22kH)y2v!5C4nJS%O(k?f<L-qRj{9=%A#>F!h
zq`utA3pP~{fCWbuAR$4OcH%vnp&w~iimMzdPSQb&Z@bko#_2_Yp)?ffdZ|n*4eF~c
zq|EfyB@WmTW9x7<Tt!rG>bT2-yvBRksN|o+viic4n}zP|oT%Q%7k@XHXfBfg?QT7`
znqz7U7@DM#=wBIH_ULlL?<2oqjYYUd-#TAKw;kUgsM^12_3WN7Pk7!CO~dh0NAj`Y
z)%(f^?&lyK2>^zy2AJonHFIwG0jrun&;XSOe5b!Gl{~loMXmiYMFcEualn76wf_vN
z54_>|!TIn1zZ~VdUrcQrMr^z1zJqncVf7u>y5Nx^Qik+vMPyt#7ac$V;+>LU1Kar6
ziv-4&^NUhhlJ>fWnja-suYDpy#$EOoE+55t*65D|WomNBS1s7hfaHG<?^d`JbqMQG
ztoC2--NdQz1w?RYMncpD7RCDU>$}GeREM#1&GwS^)A+NBSOucai&}DiJ)ye^1N0Rq
zX^~>|R9RJFZY&Tq^~8Ktfo}69XQjuYEEEaM%x#|2YN+EkC~<2!*fyW6?*&f2Pm}lM
zHy7kFySE$mmdTl|C2{i%*k4p>z+Ft)TiKfYB>0FL8<Q+*d21VA1d(0g%iyBOy3Zt5
zEW$%PB5n!PtLs358Jrd54$C~TA{!kQAiKFVc!Y{z4vn9{ncllYlr$C(uLe1sV{UA@
z$A&bQfeC>-CV-XWM2q=n5OrmOO8g}oTC#dJ*-@v2dG%8>IpKqXB%uLUDeU^GgYx-|
z*-12jE*s6=bhD<DZ9AFsz)zzI#&}rKo55LS{zlmyS($mhFg8dq>@&JfyU1MOgcP-n
ziN}gCJg0EK*`lp`CxfwWkc&C&0|~)1fkUaU3<zT`cYV$|^H&`wc@pE7q6wn6u7PP=
z0*CF6uCZ1`=lp~S-xiie*N&qdpmvMC5fknl!VXML;RL|r$Pcm;;uBT{8W%diUHcjW
zSYT8WQ|0gc_>n=3=O?XBF2asaQ2N!lUc^J@w0t+4lDgN~i*y|`1aJrUo3vo3NusgP
zATc}ni7FZ>r4h<ICF=#we9pS}u&wGBh^}+k$M>?n4zKR<PTE#tIP*&F$U|(&XFu#Y
za^gQCXQl0?i|@p|cc1=`jG+Ndkegs=&+JKRv;(=E-Rp)oezRu<x8dC)dGsDQtUa-z
zVaEXeO#UvKSn_fTK<My;94g8mdNMBbe}L*v3MRL(rm{*R9$sgJi}MbVvYW&&@W=Pi
zSf~lbpqY^ZWXKvC8SR~1^dy_q7t;QisS|ac*S8vpy-m_&<983FZqVOVy!356THqJN
zlY<px&FGezz~34VYSyVeP(2vt`t&{XVB%ULaKXbYL2%^E)8F%MRln+^jD^#KzVkWd
zm#6INik@T$^<_yhNof6s5vm*f#cGC`dG`IEA9<e&M5TY+pckekm=fBkWI^=#MNs>f
zifE;!xyjEP<*E&(2<Z<h8t{Jx)t>ovWPv~Wlt#I=B=c{ky1W*xq@(3Cn>NS0A^&UQ
z2H<T0NU?MKfW?I<89*4sH>3BpoFqh4Rc^I3Pn2&pzCB8ki?oR6Nxnvp_|;_i53%k4
zs*As78h`-yN8mM!GjQ6#s`?%9Mf_^UrQ^1Wy|chKE|6KYs6R}1U=_{%kZkPnt`xZ&
z0Ot6iC;$q=Dgc;0zO@1_42hf3!;i)m?kB-Yjr7?oT8j*?IJZo8WI@XR?*@1Ou7Tmd
z>v4ev{}s{q*V-MM?c~@(_avK=0)5B|<07R?<&65y17PicX(H2vSTr~YNV{W=R3AMr
ztbVn5MA|=|S^03lemiz%p~8RLKkhE3<j{Nwsz>0HkZx{9U$Rl<1FHSy_Wx3Kk1Qh_
zVpqHjAh^YpN>-1-EEY@1<)Q4n2>lOi<_I>FP1yZ()*VC)B{0(6QJQtqhAgvb6T`nx
zXrL#5*{HDWf_9ME0j6T?h`fbeT&5Ifdcic)CjyBnh96&zI4_-msLv6033al*`pLF7
zoNPy1&6YnBDUP5lfX%0#77bpLDQ+UIiu2^yD$(G29f7eV^`lp%XZda$Vn*wy^m?oF
z-B}M7bz@J_2oZL$ToIQFYgI|Jrki^W94)96s1(R(vXqR}%W&`myRYkSF>Lhi2b|c(
z^(3dg%UV2eR+rzK#hNyYj>`8hR5k?K<;{P!sVBCl2e)aEkyU0=rq3u)pg!N+Zm34J
zk@X&pNVw2GX^1IohkPQRixBICB90<AJ{jy`_Q1v=QrYOs!9@+7>c{)K<FfnNo-@1O
zSa8g%CaJ47jKQzdwd=?y$jAOl;PS&`7crNIRAw^t50(y`39U-S!?X;oR2|&UWt(1<
z6gD<l3%rkvaR8oL6_wq{{iD^rn_4)k`eYwq!Pz68TI3jf1@(}#z^U7?L>m(xbz2C4
zcmyyD#Q0hi`+pFBz**eV5Z2nCJc2%0uHx6a8RWeyMO7i|>iQt7HI3xO05V?OI720o
zrcaU=QP)7}o&3x}(ey#Nn?KV7Pj1~k^&zW7!Zk89+DAg-E%*Fm@ZsL(oS1gxINM1I
zA$-#^f5O7g+IlmA9`d&`VwVzi2nTLDSmp5IUJ;JUgaZDeEN^I*whcaEQ1hZ()Ud+*
zbu|eY)tD_Gj5(@RxN27<Fna2FQ{7C_EgwmSPqX(6ycBtDX4+GPKTTTQaiZ^(ppy7@
zBAyXNUk>IJn+3jcNQsULs}GwfEWAF!;h%%s{tS9CUB|-dp2fYp5WG|iKEmXENb&Y(
zklO~m*cto_3gmCh(f`(L{lEP;&FL?S#e)^a6>#>BozYsXGwc9Iq1)96%9-ZEGDT#4
z`ve!iOCFTxOY|U}Z=__j@hYe)=LjCZ5IC{_vQmraFT*W=-7fn#Y&U<h=4{^qY7CtK
zpm7-`+?D-^rbwRB+ZkT~KI)<Wm=KCx4QO9!+&wvANS#+@1y4?q4j1UXe%YWRiKn<m
z;k^z!PS{K(!((iJ-9J)*N&$Z3JLm0{cku0nEobnHbnMj?U%#aQcX5!nL~KS%YAx&u
zbWVZfObk{hP+R)&l>oN|8I2&>Mu*D9uq`*-)XusxfJT2`-#8}wDTaw1CF~=Q)BES7
z_Gl=sA*d=d=UBigXaL=`d_(}3^+J0w*1*@|N%G-C-0n%*^dW3)RH_ciikHiZ`QsZj
zxW&DKGX?I=Y=!e-jojk(5--Smxpg<*16MA-T7(E|H%#yNsHx$l$mASjS(GOzkXo-u
z|8Qnjp8XJB0AaekCvYa&Y1N=>ZZjT{B34~ce@yEV-&A=S4LViDzpkf7hP#&zJ2=lS
zSd7N?ZKvURL=jWsYr4)wPe4+kSJ3aX6~#UDvM%f9zBUZ8A8W}xS%mv>=;_*60pFJc
z(mmd&yrLPjg~~}EmdI&2RjIL=buA=oM6cPu(u(P;6(^|DE?KK}5%Sf*zn;vX?PI@Z
z<>H%7gjI}js<I{E>WKzcJ=JO;_ILxWE^`?y1M$vlgXk_ZJ$;Gt{XNgZ@R$f}`UPJZ
z*8^jCt(-9`-0=AI<ESIZLvpClLHB8aljP&=+^(NNIA(x7FtE3{tKpu0`X#JAR3NQX
zo|7Gdp$nuhbtw!KNw;oIBB(@lbWWPwUDlaJ%2u2Cmx_A#X!h@i2huv)eJ&2;zgEuv
zmV^Gcj8^|se`Cd{b>m2%XW){Mn|MrQU~a{L=wn6c-lzKa4vk+PEc`pplMBl}W9lnU
zEg7}NvXODQQh+9K)D-B?`91Pl1fNX4Ft2VKTU{<6(Rz4Ai;ueg0=Rl13f>5j4~CTE
zOHNRlQ+niL-TeKm`F~IP{^Qnvf~T?kh6V5s^ZkFU+V8Ad1Q2`W!xHRC6HL`tu4o(K
zppa*`fxNwr8RTF3=jcCLRjtQ09f|H#<?jrX=$zEgFaiC7(*0Q5wx}pXSwhx9+^Gw&
zcF8%UJEgmxxeTn_34IIV_+>W#zhWNmQMP*BVUju696xJVY=6phA+skZ7s#W{0{YFd
z^#=j*S4Z9wB*(pP6l{u>N0jo&cy&p_WD6g8RjIr4ruYHIv~s9gb-JpJa|`qhA`*@P
zwQX8V;O6tWzylf=z$CuV+R=5B6Mt||tZSR$P#;75&cuAI+VDD#znhk!UNfi-8+BWX
zdP3Hv7T%*VEk>1Z+fF&Luy>|?+Re}stKAYYGFeUIu1Zy_*8qeKBf`aG^A^2AZ^_S8
zXO8+Z+L9D0-wdvLhMSW4?;uUErdE}GwbnPd$u4&0I9LOHW<z|k86*VCF3=$XI-;b@
z;ZxcGPdMV+M0xyMGo0@qsJ0p{4F^n1N!5hLCEE7c1~S4SC3jeJtG(p<HaD+TYDDC2
z^WU(4jv{EES`>pxQGblBjNW@y&Wi)#@b)N%=1>70pI_i<YSj~gHTih&4%7>7pQ}Fx
zVV|9*Zkn4B?e6T;v6T*0Bh%P|+|?#8vLyB6x6b!dvK%U@7fcD`K2-{G(bvlwS3Lrn
zuuM+ULi|k1Mln<-;7Nyc!PuCe9@BjcT}-~V3=;Q=K8sT|h6k@_vE2sh)=qG`!Ry<$
zvU1XyLLLV_Yhn;4`@B&zP~l)le$?UZT{I8Z?njM3T|89%Xq2Dnl~2C~;=~Xhb4eW7
zL71H|;EaI!2P_Uqo<zY@+~zG)N0t{2b=gW@QasSpeNX8M_niUb5PEg=B^w*VO;_b(
z<RDpV!BuzNSLLnv=o_Znd0n~Ki_d4-`O}XWrjE4T8nO-xA1N%-`EPA{l+A2QqI^pQ
zK)p+6oi9_BJq}m!UzwR|rrhBW?M#C-b#%Dr^_4xHp+dBA1&M=WGwMlRmqbHe`F-SB
zRgrbafVW|C!C(KBsnMHr{<Zc=X_qC&XND8hlJc_es(sG8?X(lE@+J;^%K1yGD8<En
zblnPaD1um76-%xQL829pHEL)1zVc%{e0`aQ(GJM1+!tNnD&}I~k}qJ(Io-opFO=&i
zOo588ce5BBJVlL9kyD4>kmPmV?N>|((1o3(hL-GVBW`HU4au8X(66D=e`8<r`{<K>
zr-te&>r6t;2vZH?$Kr3*%#iI*D>39KZLG$j&<D_C&fKp&nUSqRL~^{3TNR;HW_|kM
zq3a6gU+11by>+;_+(wiqLyLTEzV=G-;!aAW%~+@UOI_22xXK!Mz7ruy8#(MV$QeOg
zp)7J}r?Qx}hxS${5q_mL$JLGxZypEUkn<~gVl2!-g7Zh3L$Adwnl9;U?#hbmVHQU<
zm5V#=WYH^L?0}+SYfBJrowxB_!-3u{Cmw*79F~0exTnKqRk*w?N7%~U8cmV+NRjNW
z1aXGwTL3YvIELRJ8;967^+r4=d=`*Ri99pI(TX`kMWvPsKq@YyiZ)euGBbQUP_QT#
zF$GEFl5~;sH;O2_emQegYg2A{!XFp9*|r@7B=>j;SbO?UwI_zFM(CoIrH6VP<yX(p
z_CwG}`|WgO+hK1-?zG9bvU9wPM;#}b3X8*K<AQH1%Lhut@a}~`tH1vNsYL1#8G}?<
z`y6C2rbb!$I#euy5g1ew6-pa8Z&j4uUzG3O>1-@Ik?MN6n4QcVZvG5vYf{pB|2-8i
zw)J&AiSU}cWaJ=fiMj#*RTSjAU7yYk>g$cE4RX`s#j4{Tk@8sHnh!rAzqev|?@ra!
zux?CfOR}(1x<2Z&vaqT*)vc7N&BPW7E{MsN!$GD|m!fi)6(1okp@w>`Kj}hJSeG_+
zMiu`IEv({&5Aqw=z+DfRMr6K29PV3roJ2j3Zd_`Qtva5op%%^hWqixTZo!UXoQ!*B
z{T$X+x0R0^GT$#sebHkl!3j%Ai>~WHpP#oO*h^dR&iW?tGMo(Q4Y<<dfl>Nr2CW!n
zJFN()L{#3swg_Lw>t=)Gac>6<M-8eV-TC+@i6PR*8K84=wsCebWhekNRP_y9Pv?u|
z1KX^iQNtA`jR=J-DHPC}2B~bZ9zz}0PB<Y@EHfot$8yL|?6frzqVMjdA{EEL?5_YC
zF_7HXBHC(af~oeZqQXrbeAPaEsWe3p>;k2^mzsi>TqDSYga#O>WgYk1*=ELCis5!W
zsr8@st^_*l8?*O4lkKpbAELifbOeo`<zml9L){Ya_fx4k8%_qI>1upq2C0477IBA?
z4sLgbdf#-qzK4FQ!y)!s>=Vg4-JR9vBM->>_}NNq4pDjXLp^rq!|RY!#ZHFc0X~G8
z-%bSo(joFI7~AhRrVuG<C!y8NQ$w#0Oflaz%7LmzxOt^1-(zR(9ZGvRhSgFqgl!Kl
zFqxLc#%>0wKHrFM%ze1?i}UcW%IFRLqO<6quh{te2j1Kd(JYAdd6=%dXMG$QD{_M}
z;A#zq%j?FwJ!85@&W>Ub0D;66@3Ad(H!ANpQ5ZYQF$|W&O?{{E0JVxXx<-m<wtwbP
zIAaJ8B_=r|(rd9($;Y|@0wFASBvnI+A3t-Hk-QYP=R^ra-~DwwB^N`2O)k0XW`Qo%
zviki4B!(Q0vgDJkR@fbK{PKFD6*>Em8LNzy8F0y2B?DZeJ=wU`A76J0e(5n?!Dk;f
zYhJ5OAWvey=BTxwEzX)<Y_^_oc>Hh$E-%;Ss|!h|KGRAP9*Pe*+6^#UdXI^Tc~RvH
z+)G;D>PeI#Jo_Gp${OYKTdvE13j1W5Iwld4SSz0!%IMyfy4gZFGxTeLNa5(~G#0+s
z9U5~?2n=2fW<uf})G0@GYN!uj+AB8qIJVU?m`TrH2BA$Tn)(giq8}b2fQ1l{@yJ7P
zCW|T^?}z(&jYn<*8VaPX!B^^|#iGp#9{92MPl80Ao$TE4m+p1ow5p`0Ch>pIi7uYz
zI9z`AuAcWj=EWd0HDnj}tJjuQ>}b_a1@22j9i=z;O`AyDE{4h=Z{w&tUmIx0LqltF
ztnhr7N?Yelry4~Y2FtGvm==}@njlr-kJR)H34rk~G#_4ctdY>2+AQY6Hh=wrtTK6v
z?gi;`Tz)X1JyiX;^400_33%rOOL*4$g-^7Midg9(G#+YgZd^AgY&m@QwI9SWhe}ku
zPJ;{f6P`M{V}oM&el3PHy*n_X&|?ID&5Ggd&W)QF>gpG|s?zxoBqSN8?9Z7{X<#d$
zp|><%vHa{rL0EZFMg0Cl%h1ql#l`$2-UnM^?bwHB$}?rpNnK)1=BU2g(cDT7bewbV
z1j1PXF(g3^MJHN65bI8UN({_jKDCQg+@9shfJa8Yc$GQx6(OtOJ-)a^3UMBEzk_IT
z-{XcTS!o?!7n2}zZ|99WEc}F6s5W*(40gDieXNwA7NZ)+56<+>>{PjSSm$}P9s83d
zeXM8MTZHXw%7$#opv1*iUiJ;ych4;p><=7y=J*Fzyey$->k&a0WObQwPq64Y{EI(S
zr{uYWv!XntM+zR_GTH_-==a1Dh%@e4Omp1<glQU0cCVA5dhJt$9xm}pk9qpnzq$go
z4<1-@ToJ3dVu}I{L?b>bbudG)F=LBD^tyuAQZ57K2H8Di_goG2jn^=E=FaeBxbLhe
zg<V9QTfXo(c-Hp~gYuE)S%bI`rB=>?*-4M#l)FFmq-(D2L#m=u`{4IIv@{Ix&Fu9K
z8vP4f7SKnLh14(ZL~2SDdQwQG*UBaWIUAo2Ui6Za8k}IKJfaO;-Kz!8+S)muFi%6W
zn4lvB-(*qV!&;nO!g=2S77i)OhEO-rtQTvT<ZSd^uC697XnF`5<s<MhACJn%$_*z(
zX%S|1v#pE)*(?o_Pj4KDL$2_HgVahFAqm23*#2y*CAm1<(;p(_;oiA=dn*s4mB}(i
z;@&cD+kqC-MdEeWl9O=A=-bTU+H)!qP;9_+jDF*<xx>ilpe^jT`iXWivimwz^vd7s
z&TbwU@K8+pN&Bx=A;CZ1aBzNu-Z<eK4%m^r?RB)rJrFqn5eyii`px7#fai4IlYL56
z%FNQf((4EmxxYAXi5-4)!26!=9I?$Y8U*7omO8nNf>9VY!?F{_Zj4GkyI7Ud4Sl9?
z=;^)J8x-D6TwG}mjL;8=cOTW!_|nR|;E_(R%Te{s=4qOluswb9DIy9E*&S?WMoBB?
zMMhV$Vsm|c%MuUc2#O|B#}HW{z>2Cwg)TgAr<go8tIzf-=Z^t5^`aT3@|iWRx$gn}
z<iB};YtP1@K#=j{Y;VSnH0I+f95Qgr;$M^4-@irZ8t}^4?hnMV6W|%S@mrv5v9x|C
zf78FV>Fgh8FkP|jl;FeP87_mk^QlaM@DSD4S@ro3!w$9jI+e{m)mH;A9lc3+J;sKn
zlyb}3TJO|T!B@j|RR~R+l%~~g-??7EJbME1m%#IfGZlC00=cQ)`*eg%VmE8mK<*c?
zfDgpFmBlpHaS<#AS}i@FEbxgdQ)R3?`WV-dLKVEL?a+!qloMPjChAmX)Z^+xZ=h5v
zx5#KSjKcepMh#`@d;=)QPKYv+h%ta$ebm?6$@pX-BFFV$wCriUna}rcCgH*$P}7*}
zLNTl;v{-t>L9myacH)Si3elg(!77z%`yh$U5xYymp@7oI{jxIrtgD?3M#*Ed!USV{
zpYco~flph&@+Z!aH&0rKAIV8ETLa~=I6s|)rG*{&xjMP7OJYi1`j=yy&sx}gVUHC!
zh%=WIMBa{<#P$dvS{!vMhNoDCE5vw(!=^=2hLRfT#mn0MRHsJ)ge3C-qlf*^pmWnX
z>A$je{Hj5Um8~q@zJjTx(S;IMZc<^>%C_XQm@hggHM;b7{IEcFGjZ8W&hzERe8#9w
zq}d?iX!FOiuE?%ktV)>CR19*Ml?CRw@@n!vzhKX`Fxs4+*GxL{D;}E?3*5HOe>v9d
z>Ka=*#X+giU+VF-!CG#KqRr+{5=5d%376jf`USa8U7c~XH4T4pK+Hkx(euPI#6b$t
zSE5#^G|xb(rMAP43-%#<6z@!y-YLD@`n<#wmm_FE5I;XoR#x|)V~KyMGKM#1i7VWo
zyI}7ZBKJt~ik4<eL(6v^uO|I@QmZfaR)oi?c>P&Up)QcG{fka6U<c@OIaolN!<ZW0
zJyWENNda;wga{lzV70%}eE&#S{`b<Ae?V4m2!HJ%`0s&bQGaU{D<?cr4W~~ubYsIE
z?0S1mAA&7ivG<=DZ#J5~j#DPPj!T?Iz_#uHCQ5|X*@)3peE7-I?qR1Iuj1)KkQj8J
zuOS-?PQT6}H#8~Q#OTG5K{BSNTko-!kQx8D&(7B9Cs<AxC*R^Rp7e*$g~mp*b`07^
zR+;w3LZX=w11~zqg!){`3*#33a8HyQA@4`2zUO)MTD=M~7N(MQ&mnc#ZaP_cQ!T?#
z-aJ!_8?758XbxKlVw@4vt625gJL_)7Y*v0d>nzVUS`zM&-Z(}tOHYekEWXF#_%o<)
zt^=!8iRwPn#Hs`=??N!B7fXVRHfF@>i6}3%Jg~+BhpJ*Md1Wi9Qo_9o)5BD9%K9kd
zIzpSsHpnz^WQ8w|wfxvDN|o1+DfH*tE8IUQIx&c_Oe64i9Hn!st@3E}d7R(4=VCcv
zXu(txPg<U(xV0Fn-0O1WRfmrVX~pFmRtbyqd^Q!@of0nE%Vvb7z2>YN&cUsZ@GLS~
z8L*@M6tA!u)Fc)+;)(EGd_TJlM%ABxk}sX`OaxL#{6c@;&T;`&DcwXD#<cP{b|dkg
zKLXk&*_|dJ;yxZ)=eu9u(9w{3_QI=@RG!oxuh~cmUs_aN8mI`TE`^R0D#NhPx_z*+
zGoE|6EX9<4S~o=vXD8fhVg-TRH(?sqfH91*zoEiQ=S7SX`9;>prG=#@47Xw*m$26E
zdXQr`Zd?H$w#c3DtRp5b8ij0>_LE{8(YYWW%Q%4*clcHL5~(?^Kn#9)n98JQ73h2v
z^vVcx+C7VAt*Erb0Bl3z<Irp%hO0zSD;kyQ{DvT;%_ZJP$6cTeO6Hb;wFvi>uNNeb
z`=HFxThmxqtIAGk;{ADy&<f&xndTL^t^`l(PO$N&t~E`=;%Hf{9<+&ipu)ZEs~z5Y
z)<Y8loWDavRRL?Vc|YgM_=uV#B39{7v5rW=!2`ko2&z~GkgCr+sCMtkVJwqJFEm2*
z930DuHdrTOKQ-5gndK3Mtu<ZjOGd8nH%}K$n$?EunorLYKQF<>4;RZ$?>}6DmydD|
zJPn18hdGJy=Pm2++#60(T+_Yf=#3-mL{ZH|qD6G(?M0ujL(jnzb6wx>ZEVQw<;nf@
zw!2?Y-BBykQ|0kBOp4^Z1JCQYPegC-TvVKVQTf%Vm5p!f=&R5my|-b{-?$9S#oNqv
z5TvRi*yvwoIXO|y7J8*3IGNK?=qbMJm!s(x$ax-u<?O>45nQK?<+e%!x4q=T(<_Zy
zS2&_MG<PPai?Bg9`=VpS5g&8X-o<>vAlL01cN3mMAvW%WLGTXoebU;?#P^l{@gTwT
z7=XbA-cQwTZfj2~wMmOSy!_6`XSx)e*!UQC$OqGP9O9t`B^R$xq=|QvIhpm>a?rQm
zt4`#u)dg*PrUQ0Vlev>Br$3#7{A+b@x~4OUQRWohC$|B5RGtqc3e2s}N^LRvaIAPU
z)!oqFcY55PEq>cLE8Y25_I>`H$0{u2XtDW(QQ~M3@ydcDG>zH0U%+qKSw+-J%rc1c
z-=UHCev4zbv~kp5;C@{<B*h}`jjR<N@5&uK+T1^7wu#S!uG$2^u2_?T05QZ_;Y0uu
zB7Z|4FY$xnxsh{?2dTO_58RSM{XN?G4+7TjpY{-a0r&vFk4pasH_k8I7YTq+4e!pe
zi7Xn3*Y*BHVPW8CByS(x@!z=D26tDil!7@=Z2Azi1x3o(LoG7q1QWI0jFjw}qOKC%
z=gf7DhA;&LgosKUK7^Ft3(@{tbNjy^{QbMU0PXDG6OJ?;s%&B^z&qa#<?>t*8l$Ny
zQey*&UE){j5M+L3{rnXKpn{4^Z|b7t$XKOGZ+2n*um})FST|msikfTP{Hb~MZ_)uK
z8fM*Y+l;QBg=`t!d{(b~gzie}lCn)IOq~+&r%uxUSKV3T$p%v<b0!lE&FZDf53_{?
z-q*c+0~Q)ETM2sndsLbKD$3yB_9F92fDcR}W0LVwIft)v{p?z)gn7k;7xnTE(y!4D
zzuJrcb(F)0=x+~KG{e0%y};(t@ek$ton5}Hg^pK%On-gO`s-^TqW>kIJm-6slcM0F
z9bO|n8-e;O9%TeYv*)}y!l)=M(c5=+fEBA^{JVST&meh5fLp9(cPx6~v}q`B$E1Tl
zm^tm&Lr+E}PvtuUV6k$ORTIIg;1j*TiA+n1Z<KdSE>|7c!nqiKHue5X0T2jA@Tc~c
z1PoQwJxwOdtqBgT+q>E<AHVg_<RuXxTME;RxDQ~?kEyoHStItj-U|cqQVO6Bs!IM|
zt7-EoC)Pk}yNhxdY;0+p=3S+0|Exgi8kGiPFtRgP^l7eh1Zv`S&RCF$&jz6S`Rhv(
z=zD>CJZ3-H)-FPp=14MQ1-^vV;gcjOu3;w3wveB7;61x1gl9QH%gU7Ax%pN+J|Gdq
z?Ki(=dnj1OTQW8^MbC#2(9;|6Xp-|nG>}AB`cjFF-Y26lL?~R=xb?N*a=^oWZ=y6O
zC{1KWLc~B+d0iXL!7JIzNWS7T<&i{p8lequBPom}%?6Rt<6fbQHhMV-eb1>)lFau!
zF)qB+tuFMMqkc`K&x>6*(S-$fvJrA87WIh&X(i0j>=oKGeEHS~lg~a9DbPBwIAcri
z0)kSO#BP<_zFl!c>hiZJb8AZjG4t3IlRXiw=;DI*Jf=kJn{wyA62511cs*BmgIn^<
zL0<bhEJ*!gs9dp3#)OMr9vrM_^mCO<%eK^J4=EE*S&O()P!#V^`rLiE;xEMIJAG2i
z-2@wF>u%q%7u3`;zOKzjIL%ftPA8ZHQP<_5AAW0?x_egJ!ywx#<F!ZiY)jDqFMDR7
zTTHgtj}Ml-bFw1q<0t>Bw>y?eSE*=QdQRv_)G|l}%eOZ`@+AIEJMGNI$@jk34m1k~
zhp%H8Y<rPvhH-nXCLv<-&{1_iL#y>TbO+X1s4rJNMTL^Lw#Mxfx!kzXE^!~7ba;>I
ziAUa=Z_hdhz2+>xa@n_)=V{opYq&~0$pAC1Q9axLfu{s_<Cmh=DO#9k#OoWR`LeDu
zdCK@Nqu=|#3ewUi&M}{ZrZR4OYrRzaQjO@R4xvf2{l-j}UlOr~>YjUPGX|4xH%QEU
z_WDN}^=>;weHMq91#zfAh2(3=Pv&5r0GfA00#8Ld9n#04^7^}X!cJm=2=onJ=6d}x
zyy-)4=D#kPRazreoqU6kL;}dPeeV7V#!U>a)B(nal$E|~o0br^WVjjT8$Z4;bQyy2
zvJiyC=@4vHHM{a$9EnDlPBa9E+Af=9g2Szk7_W<N#jq?T&Jf{INY1+`F*DEu;ZgMo
zKzbd=U9!#Ks7Q^mE8QhXcjB_-<-;eqLbjH0bXH_I;ptZ;H=<~GC&3M0@d%d<S73jl
zpc!ULFWhykdcr^;3+<q6O%!3z`0(lRPY4mI!qj!3Ws(8?%DgpYRV{zqrF{|i>3UTQ
zi>6e)#Gq@RHyzvzm!MgXHmD>GTwcK#*A@m3fOZQc9C~<k%O>%gB7EJ7G=02la7W*(
z@7beDCXs-(sZ-qR$^M+B+v0VzqZ^fL{6@VUNk4gDC<F&-h326Rc~Q+r2V;R#^G1&b
zP>5dadq?`M?%1;(7NnUwS?J<8COq_6(j}YOdgj@t_!=hlg4vZ)lE;BWBkBDsFPYw(
zh!`$@swWg)rYCy}Ce`U>-VL%|HoPi`R<th3`(5QU#Nu<Y7E`Tw#RX*+E|{L=kZ&Vs
zYor!&ili$8G|~w#VpegAJ0<||ze*XwJ3a_X_wn!}&I-kA6(2{V*MY%&2rD`~8>)ok
z>%(9Sf00?yQR5d)U@)6EjV-ZQs;Oj{ym3iob|Y8hrC`kp+^M(TBWZ;x%4>3Iu{(H^
zyZO*k>qt%nr^*&oYf}neRGPErfDBV$J?Xxl$LdcZ%$=|26$~GHQGX<^nwMt=bt3U<
z2QPMD^yM$?63<~F6YL?%`_`+F1{F9Mz_L||ENLRKpjb}Nt532D(%#hNLD<S-e&h_<
zDJ#KF$2cZ~<v6JD@Wu7^cdqMB_&uHu9EBs}HX{11H7idK^q%pC2)>fT=D8RJ>A=#W
zEnr+-fkg8D*7ZJ>S-kqj;4(+8M2m!PFP2r+@0D$UlW4}do}5drj{Dbk?`G=!pKY%P
zCh+f`@5gvw>^BxQ)VfJnhgnF4rIj$?yBHe$$V_z~pWNL)&DOA1iDT-4fL)zcD?mD-
zP^4W66qrQQ_Y^bARQ>5$b$Q2dhQtQCC`Pff)M08kVm-UNBxP5LO_HI^hkbIb^A^TT
zrIn(ucs*O`5z?W_vrTOXTnBzw&{Hun{+BCs%{KPTGVk)(-?0|>4NwLj>V_=#Z0k<~
z+=+#@%2LK9%cB+kcMcm7!hu2x+~VAi$E=Y$8ep0N0erA>PY;hb3p<yoS6r@`y4e;y
z#E-t_WRiC7YI0nxMlKY+&St2to}jNym8_Ei+!l4GPrb?BP@>W!W13~;d9Lqg`Swc^
zxB(T=Bn$opYR`tAJieBv{O*!bn|~({nYd%LDKxV2c^km+sb0yX5JQn{D^Zg*<)uK1
zDZ-eKWe~faF@9zKNmV%iD2_5Xb+!tB@u1e6+mw_D883v)B?;{~+I;|^jIMX!?o`90
zsmM2!XO3n^l_SzWfrmN|$Iily#8KgA3F}!h(kE#>{u0pTxM`8Q$II+5t0P-PDYL&W
zAslAxwKIZ8CGysaqRANW;Ni<lACe)?OF7a~REJvA5Db52rIu;OuN7_OTzm!Y=())^
z=ny?4=E)p`lgf%hxkdAqx>Q2pezLd0H_#xVmO$LQr_+8CV#*eUfc@JniK|Y!P%^{O
zJf`G&fMVzrWCX48lP=jOxHCPO8A~Xp+Y{6$>lNHebhvs<%!@ESJlMJCqOY&otLx^3
z0=6Nr@d@$zFf`-v;+a7FD8t7*%@CBy2+$_=yJC6b3c-F=EW^FjGOF=Qq?mlfWWrae
zrkVn(s#SalWqI(NUgCB^YC@Qpk6RkSeC9B?4768{gsYVj)pa%Q<Wpq^4J7hv-@D)F
zuGuACkj?4=54Z+=5;bi84$VVb$PyO&8T9mb)FO;RYigX6y5{iYjSAvT!#)@Kg_UyG
zI?qI&p+lbcj@yZSAkQy%&*Nzx*e=u;n$peiWrhROn|L)D1M>%HtIMX+<BmSiD1N8N
zjOPM3sriMwo|m5#Vq8p$3W}f)9C-_pC}YnCrsC~V10N25yknm!_|nSl7G-qJWnV!x
zU(l@ZmB>nm*$%G-se>9av3#dyC^v+mieb~BBk`!wO|@oOZz#rYaA}GX1R~q<XF=ld
zQ!Ivqp$Q4@Skhx+S>kkID7#E=`kf=&zRu-(*=`uNPKM2PIM~^^J|<DpMPMQnC;FO1
zRx<}eKeHQ0Sn%qAI>m(-B9}lXC+v?pE$|e~Xhbd<h-kv)eGdH)DsA<%lLc}r!Jn~f
z3qN1leHeN&n$W_U{hAxF<O6|NumNiHogq||i%J)+BUMwKVYg2pqU_$t&Q2LJ8afpA
zqLb`1(dt~bt@c^NKpXj*%%fm8J*@(CkI=S8<|1oErBwp>M-G|iCl!V5DUwk|^>$^8
z2{{L;6DX_{j-L2l8}vD5+W*kB(o{vWBjQGbdkC;uv8XrHzcAO_vY+;}eovBp)%BHm
zv@SG3rG19$HG3<U>qe$;&O^8fkVrgy>B>~grV?y!(qL})=(>?v%mw}m!Rk3IBF0ab
zUvw3l3Pp&$IF+!v<%}Gv{2mehl7P9G>bmUaILgVS`o!RBfv8;2C$$Wj0K7t*QlVFy
z`UD4)r|W9hz@x;EsKm&)Bl=wQ5VaRJ%ET~bmM%WPY}Y#|&}0&?u&-?iff2S7!JXZ|
z9u-cT&8>UKe$;=O;CjgGL)ADINDex<lMdWaW;>jNEqm#&Dui+}wh=^V(yT1F<P=)i
z7~{Ifs79n2alquVobVq97cVY^%QtEZJ&{Rna1o|nf>w*ELhZP4;algU0UXa3dosjU
zVaHT&Cj+fj3QqeFsPz*&kKwSI4dKIfhC9jW@;mVdBXh)Dn9v1ZJ=!y8#jk>4V^WUU
zz!kQcIt(YFl|LW&LYJwS->Kb&9r(7esd6hjk<sE)CRNILQ;7gf1h9dOrybU4YlwoS
zG=rlEz*h-mJz0!wr(UtK!H!uQUL40&hM**~F6BS%y<0IOfM{ZFers#*p0_{Wx6_QG
zQ!rJS<ue`11#v&z430lX5Iy?3$kRe;Rb)3HhT{u$;D(>x8y`eO&)%QfrN}0`H0p+8
z0YQzjK`QSm^D648<22Pqc*6RAnOzA4W4FqQL$h;{F|wyiyI<7pDi@1`q)+1UoF5x=
zloLCjP@TY3(c6XQ!Kr7%6t1y{U&lnKJ*Mlk1>030c&WR^(T(hj?63hg&h*1Pj5E<U
z!sz+c;(LME;BlHxg~JsxVwVpiMZ5(99)hI%8Q<y-MKvZ{e>yqq!?j5hw2})~sN$fD
zeb=i|IXRRyv>^oa&U`_+_!$&^XSZJA+p}O)YnQ()^KqrHsSTn>NXz_9qu^vI1ly$x
zTE``(2o-ng6Nv`~sdexVlieI!7dI`XDdA78Kgv0a0I&Dr+L+j@n+D%2rwdP4ca<^P
zPF>Vs8O--6C$UBbq=FzUE}~snvEe5Q>xf*`m^$8?bbmK{xpFzXT!it6)N6@TL3p<h
zWC$2=6Wn!XTD7d8zHCa2C*NCLpUw7Vda;h^5{rcp;&S5%371sx1Jz$XMd4yfRwf^M
zOkos}e4kr;To`l*M}iJ9<<Owjd<9LgoM;KgMT(!!ubt}ly-cFFx12E@@zMjay@U?1
z%x&uL5kH+Acx24IuA1s2hN0ys&pR7I)wt1#L_KP@#Sq2|L7wERy=8Ata)1LNlB!aE
z#d2YFL#Al(%gz$oSlr>*Q&DL1Dt2JE;-zB8I@A5gt!n0N)xpWF$4i>bK;h5yCs$Px
zGv}ExsyKIo4ay|9LOsBD6~}wb$%=ZVng{W!FUEWbqAxyz{_^4(NLbF@%Yt)m_EGQS
zp8>d!kNS0QWQzu`NXE@@%}2Yr9|V{LC!uYwxgG1+{!XF<r26kjP5vod_S;M3-_Aq-
z6Zb~B{5>t!yyM;ZcPE9AFAYcenJS*{)CY`YcVV(v5%JnyBMbM@6DSX6+?o*BvZW+E
ziKZuhLqsLb7_Ex3YL=UDR~DIEVxr<K&#>f39;B1)>=){@1o%I{0cz}9=b}}lx<SGm
z%@sKjSyCoE$^?XI&DX5zm6d*h<7jbcbEw#%C^PLXEF3%crg4+0VgC$bvAB2l09e(3
ziM4mIuC`N?W|^%jKic9*UznZGLvP%X_88yQcl%FS{?Az2AHPvq76RjkYgBQqO<X%g
zG+zTQuE39DnO0CZ1T9Bn)-5xJTlF0wxoiJnS3l{H)HYR|o91utNKb#Jy+z~+pYoHT
ziC_tvW{6EF_J6P$Y=1Ch{*u5D@ptS~zrACF-`^E(Z`Dvaes6dD$X<IDOLfd@4{bl2
zWt!s0Aj3=)dhp>5UPuy?+?JR>TOQyl%alah&xnXT|8CW%-&Zj|r3A?;jH`*}PYlPX
zF;${;qx$He)YHz~0DG`fw!R#Imf!YpThEreZi1ere`oNej`)DgYzsOIQpQP6SkV`T
z=_&}8@&yO@MT&WIBTwYq7OAEz^17xuwq4<$&6j^MiuxO$rcaCYnY7K}-*i2hG`<SI
z^29W=8l6MlsCVtRJ=AVLYwy38o%Z--;ldu(CO^W<lQ``%*9Ou9yp}%{jDJJx>W5}X
z$mJ{;T%uv;{T49AH)+3^#?t`y`hQs>_;2Y8f86*-o9(a1wf{hn`D4NUSg_T+A8(RS
znvhl=!ctai?MD-#rKj@9l%dzN7XTkYi=PkQ=9JB5KLCU4=COT`Ur$bEyu{V|0Ka3Y
z?W8nuCjFAJc&v1?AX+EUbvTLweRA+r8_4kA_nq`ho*VHW{@%J%H?b?-U!kgP59Z{^
zwi%YC9jd{tAtN&Tl|c3f8|C-dD1Q_*oHTp~*#{nf`7JZ%@2<=Go%*^mlJXbx)=!fT
z4o9XLh)MnF780+pu{;Sunk1GxV4hD3Mt*T0ELj@|#}tsy$AtEyv;UskG8d!n7vRjl
zRGR|*KtBGHKM3Rdl0Z$U-F@>?;7%$4(*JICFIR;XI0sJnjz9B74cT>+st#Y3%^{wj
z^DuS|A<4ErxlDII!<;-d)0vZf8+m{Q83pvli<UZf%6<Hr<bvzwA`Rdh@oyS|+F(mG
z=;ybi)L8i9B4ZEr=v#UD8XoCI32Pu?0=a%Np;3^p1yNsMw_V9z0OBNM9A~G>JFxVV
zJSA2RCkjKjHz_urg4oqYq1CEaa=#JLET1bB=Rm3L@ryPk0RcsZS5n7W1&++GZeWY`
z)<_e!sTF0qJ3i(&sfGWM)cgrK4EaBjniM5o#X!59L#dZj&lNd;^6qE6L<sIN!@+*b
zm34t%t{HR25Ns^3V)c#~#&vn0o+|i-`}MVQ`nEc&>C^E?Dn5X(_5zJ5{u|nMRD(QS
zgj_!_+8{rp_fx>BJRTuNW(NhAQBmAdV|Xcjbxb~_qpw5iI6Cg4G(%cxd$!<pRAJf}
znM_$irAWFK8x44e*@8lQSAK$77M1{G2$l@3`jp}&{?g`Yq`^7fs#UZSxfwFb>^Ava
z(D6<sfildatpaYRuf#^d()uEQ<cooxf*v$6g0>WyQfO@Hit=VgG%zX&9#<zW*+cxL
zy}}2x0k%}ey9+Drxemg0Z3*Ii437q#`>>63iGiVItC9K*VSJ+E{MwVGMYj%LUeRek
z&l<uRQKSc%<&A<TTCD=@O6^1hqjMXge+DVl-3BhO_jv0N!-btI25DpQGC)TxRYEm$
z0d#iFyzo%vsdKQeu;!>kvB7nm*u=)xa0p_}VZSh8b5-xWPG<&cRGsgG^gSJzzM{=f
z!=<7<w6w7TTb<1N@zV%9(>hs3@XY=IvKhB1KUtI*fs|6C0rT#G5qz-dw#~5r`hb{6
zS#u5$uTupOYZNC1#4I;{)>l_oUD-nO{o4Fmw5bEaOhKa2Y~how#$}9`kUYEk`ow*G
zhqOi0)J4xkS7K~Zq@ne2v~i!_Nk2UpMz0Z0Lhq%3&jZNE?o)4q>%t=eD;H8B={Hiy
zNiNB;Ur>ve47zL{W_+_=k9<jz7!sU~%JdNsi~NhKEDBX$mHPWs&Yq+Qzo8v=jm5;#
zKkcBgyIT1PZnnPcq!K^NX4f)EZN0r@XmJKoD{!d;nmm(uqW7$3-9=R?y(AT9%Il(>
zoJ?A5DovuIUVqp`dl#>X7v%c>Op0noV+LYJh4VZ|W4iJ|+j|fhBkh~qH>e<j>F6!S
zX+Q7sJ^g6wOCQG+6C2_1hwefJHk^@rdmp9He5qXxilhA0y`h020qpma^&zVoQ%6`S
zli()nVTQ!4AyreH(p@R)4&;fYE=rid&ZgSV*M4a-l!A}sG<PvKPTzg{fZkyA4ygxf
zGyGYSvhnj56e+=uj`$1snpu<e9#u%~Sk9@yaLy{a%02vKafe&BXj#d=UZ>s6;Q5QV
z(GUSdAD4?=Z9f^P|C8136_So=Hws-RCwDtL?}OtPqqoAQJw7i_ddN_#`4D#abRI!5
zI>>fUSB&(RfF!U&m}eB%-N{bwD}&MjgY(OBLmVh^4NcFXeBV7&H6(h1+n&BoN4`nJ
zqx8||PE#G~c_HA%B+GiY9Y;#g?&#CQleKCl%xj{M=S1ugWwS})W0XmSL1SKhK3FN6
zB4J@|hqaC&P{ve&e%^8f)KfkLaiH{fcZC^N90gJK8ITW^uZwv$Z3($GoK)zRD&A7d
zYrhmWdm~{Iy!Ru8ngjMzy5)N9zAR%<qw8*n?Nn<xzxX*N>4{Wqp4g#%f`;&ZbjZ&j
zLwHQyE^4nxSa_6ptO8^6R7LLxulzmd%{L>cMm)1YqM5(jcPy7xzI)S}R%-I9mOrHj
zYyc|oepRKl>3dm8qSF?k4zD^ny;(|rFq(2Ok;MJ1jyB=TRJorgcFG6%qE5?Hg=vD~
zOi_boZNji!>QES`_i)Wii~ylr9QhBer-o)wiA*z;8qb1V&-$@J%PDpZ<GS8hDItb8
zBaa6M%)laoQB{t9?v-9n>fxlLb?Sz?t=2;p!EnY;s;pm)cvgZ$KC-2s%tdjw%2auU
z^Tp#8+B7^Fd#I&yZK3u3NW~>c0ST$i?Hu8^(<dPJS9KTNAbBy1^PMu~3vj0T{|n~e
z*W;Ie^lwzjav(@DvtD(x{{u^)4<HUMa<0i+fjOh0qvW}gj<gh^JA@;5k2N<{;8PIl
zi_;8fI}Laor}I{bG5l$|?h+EkPng)dLIe8eA}mPVPzN(rILF$Krmc3fOVdwfZ5fT(
zY=JyyUmQVK8&k6%y+Q`MCzaQ4JJ75f8hHB3z@I%owz^iw$(%N&B`I#My)?_Xx?w>Y
z@-tr{X@-d}H^jF}IOIMxJ~%W&PHA0}A1T}*!^AmxfAigYp2OWc02e+>=%BqXZ<B9G
zYKz{#o{!zqNbj+<K_k=W+ee77orCMJow??}i6=upV(-uyr<uy^=4V#n(M*@}#ck`Q
z42EtnYRR>%QKhFwEzGa^byd;6h;rLI`r&AQ;Z657D|SZES$21j2<r(L3#nUze3m~;
zbU=i^GqK7%dsuy5IDU^=7+vg>9B`VTe||A_=Ru_e50wE1casIk3Af)34ME;c5nKnY
z%<EKk#x=n6cGDqvT@4wj5Z?hs&L@6)AuJiLTIA~1Mqvo|E?w~YbSHj%x#$2xRvTzJ
zm=q;e#AO+q;i$X#?sW;UXa|$~1Xd{Ei_o<8XxHL#D{G79aHcm;o?sP*Y=((Oj^PMh
zl>KDl0>d$aVb?f0anvUZgx|=<HlR&prdqO_W6Zr2Gmj4x**`x<=TAt0<PcDF?w2g~
zpf#MHym*NuT07>lYsdlejt_-l&q<wRWha#FHpd!0s%`+Q7Zn!7&S3_zrhi2&)CIZb
z=yzsz-^53p%yrEQ3QYPp-6=YGx}amNXm5LT4dnLw?=M>ae!FB7Fb)*KPKGh-PK%l3
z8yHyMeCXq-&nHbudPw9^=SaV4g+w-P@6LY+%ny^{Mm=&#PI#+cuHDBLg>k}b4bz1-
zGRsL1Uq)_=@}i0bwA$WDG-T5RUpgycMse3Pq6lb^Qcb$VLw4NMP$M$gz5+v0e^g=}
zF2<~B9fBt{IXvo)q{$6c&vrSFp)l0mD$u^Zn`_(a)GK&Op2fiD_*X)oQ7e2b2oct2
zUs*RStklr-^3QVe=lRnu=sGm<kjme5Fq&Pfc<=e%&bn9TxYBe>Mta!fs}>L5q`kw6
zNcEJb-~&qy7=Yx-c8#Ugr3l?**>ZP>I>U);5OLH`quUIQ3ay~m?hlQXfdQy5uY4Ne
zjqBik=a}v@gl+LKZ9~Zclj)8~KHjEHELJH6pjvhsq0>&L%d@%YgP&R6(oO(vyvJ!J
z-)5%!<n~sQpllDp{g-`3cN?g103}@9{cT(JxmVJP6tl(@yXdOZyZANtJGO<LTpV(k
zQ#6N|^oHOBe<Os#7|SNf()z=v44IOV;ye~KJf!Q5B{RD|Pme&ndzyW6od}a=-%N{W
z%@8|1j-EsRE|d$<=1-(IIzOPaIAVb~j(jfInQJYJIrs{QSk$sj+KM=a2P$9kD_y6k
zA&1R|)wPrM6;B^JJ_@GC%_r79$#p<JmFj=2y`KfBTgIGuY`e{4$xfCEr_dY~Zz?ac
z;fGRU+ts<)(XD~qMj}&pg5~hBDV^v&3iZlmC9G+WaXQhY$JCmX0w7vXloqYO`m|~L
zajb`*Y>l-&HhlOq2*NMy6!frR7$+gEbX=uX4K>pcuBrz!4iht}WQ?7?(uW+7Wca_`
zFi)T)#b_irt*t!5fjI83;vTvKwdE_;H*%RJ!%&J_4~U4}f<lGk7<x@&Bs!5av+#M9
z3J^nXxyAOU7%;|S_p5iSo~q1E)znbq4wg5Xr`_O>_Y*AH55R*bSU5O5YEJG2;*0cH
z?H>Jdo#UvY3e*>ed}^p!hJI=!%?2Lr)Ki?>FtL%uIDv1IvcyNKBNmPzwa0@JDPZXP
zxd2jsn*K}Y@`hA|gQF)u^%Q)30?Q70{xT3^lw}YOSyz71E5TTwtTyvOf(nu?S}-+<
z(5|TFOm$m%P%nw|1jGp^k#@p@KUSXF`nDtgZK;N`Zv0GGqBThpeW&D4NkVeq08j>C
zZ46%m(Vfp=#O{$NZ(<aX6`3<ix8gqDHaH^HERXqnmk0iKL&FCk*-LA&d5cr}Ge)%}
ziLNyD_lUm1$=4ZWo_1zf??rn(Y8Fy(6(aLL-{TU{h7F2(9k}T136FHsIm`+q(<92!
znu(nPeh5&~zXg%^&y-yLc^l#1UQudsD9KM=q-#*UP_Au{qIktPjlo*F`-YT~d<1|}
z5p)5OOje-znll0@`}lL6B=Sk%ck~RJdyKrFK~U>IHe3H=LH>A${LW_qslVftbqT;d
z=t`cy(vj9x_hRmLex59|9!D%}_HuC71lNN8jWkAA#R7=6Z6|Vp`yHd((3a_P%Q2?^
ziqFMm84=OIyG<Ha^Qcqqqn4mekHP)PAjba>M#exl?>`(X{};E(ZB@G*!76DYGhU`@
zJr%xg+^AZAG2=TM$3a%uWM@9~O^X)q3=>;=e+rh1@q;h@<L7_x$ZyyyU-i?B`!TlO
zo`A<yYK7Rrm!+ql9?=nZv3AC@j^EK{1C<haFJyiObpc(|%H-pBaYn%LtFnRShOsO+
z7aJ)5RYm<7^raMd3$8WO+%o|@XEB<eK~IW+FYOQj>XGqFnB#wBtNFIpP}Q2ow&vvF
zhK8uZloOR{^(1FuG3@DOiTgRNsfr7XpPtq?@I;xuK@|Ln3>7s4H27DC2w)8S+b7cu
zsKYt`%w}V=kY&N1dc<3;CgRzC*#vJnr+1A==nr$zX--1CB=5tNfyH_Nlo-JH0=pls
z{S3Mx;*-210T!=!P8xU@0O_Issm=5jW?PEj9-YRv4Ri}%2WyU5M$ZI6CenOAVne@u
zdH+xM$UnJv*+li{022FGj6>~BFqn*3e2c8zat)J(DTw7SS84(XelY_fkR456Ax{i}
z6(#tyI{Mos{ol2r&IOjI^5pUPEyZFY(OBN2_!$A7Gt!rdZ@5L`8}n7?+?F+d2C3D2
zYQkUI{XgwpXHb({8V-V#MT$rd5FivUMTiP0RXPZWAT9JFASD!Op`%iAF@O-oYedTR
zqHv|R(2GDoks>8X=*0`H5D5ef7;!)5UUx6<?(FQ$&Yj&Ie|_`KoNwkk@0>H|ywCf*
z&$G!)!gz4VryB`CnF@dg2w?AgJ!PPO=kU(^(qHyfX#S9KYzukJRKJ62Nae;3#xIO}
z<7|kwr=Tk2{P|;i;!W7E`A0yBB;-M&-ed_v%76iV0Ux<UKdB^X+j1Oia6+Q&fn$jS
zE_ObnY0$ZKl+OKs?b2%dcSz4)yZ5`u_i3mZQNTb3F}R=VyM;LNp@#rr4P6g-?j$11
z%BFPHMBvBpEM(?scplV8^eWvOG?voFr!TS3I_{pToMkvd;yKP}asmtjk^CNwtdTHt
z_Hd1wzEE||*SklVWB0Ye;oAezmybT1<??HMawFdf>0p{_yqyTQkN(kA+2}G%0nMvE
zM~BXYTTnB)TEXPjv;yiai{WiGCwT7JY~obsS@vg{_ofU++6Tvn8~P0hdmPL$TDUPp
zn8keWI*1@zovtnFCb;Xa@AA-VZ5c9e?O;4S*(1Wyx>26^zVvL7LIzQZMP5QzR+aX6
zd3Og5`C&eCAwd;IvtEF3QJ>lmQ=A+OhSTp~C#)hOk7xU3<;Qdd@atSZO{a8^toZ@n
zL{;O#<DSUp7U71zM=ahs4ddvrWSJw6XPT20XwV2EsgNnX8LH|i(e1Cq3WhsQ>E5Wg
zpYdpMXyaT-tho{SSR11VVPVATL3&k&=h5ENQ-;@s7}!C*c$S@hQ0U$=iWWT2T(aGd
zphQw$l!+(*f}c_02oPG771KHoxk&l*)@KkpTO}&x27|Iq^;F-^yYPu)o|AM9=Y*dP
z0lrwW8&6TKqR3f2guzP$*esppr|<3kA~5TwCDDw#C-@mQud|d}m2**D7JJV^7{T&}
zCS$^ur1&ahAFnNWykk~=Sx|eHV(=*77E~N_anzj(k6bwE?|#d+qS-;V$%if!u9sTI
zcgIMqO0$J*9b;aGob8<9X&4K8QzMY&_bjZghEqM)C|vE<Qi2ixl6MZl88^S~A0tF~
z+c@$>5NIQ1(=S=jdC%3{t8?c}FTM1L=GYkRYGu=?I<r_+ZSF5FIET7kk5g~hUbL@Y
z;6kQ!%|LH2$m5b~&Xoj*Jpq?%uG*pajkMjlX`LX@xux`AczB#Rd2L2|R9(=)2%$ri
zXb`OYKGB_b`?h+k5q(Zj2zD%YV1*W1)51Ffw%+)N_ht@f+S<ZJm@d|8nN&BLqp_bB
zCr#_Be6o8n++qT^gc7EK1F?}QJ#bx)X3LS9RP9Lhe`Xf!RcI4>Rj&TZ>-wIj;>CvL
z)XimW;Ly!gOJh7~f8sj!%ws;7hp2#V?51Kc+ACjEpp{S?pBfd9k%JJ8{p+fFlPnE5
zb6j&DhtqY3WM}Vl)^1S3BWBqH22<TrUMjmxY$|5ED)Ot+npl?4ub6?NRZ?o30=bY;
zJ$5y{H%VfmSH{eBo~~#^l6(k;NhJ`|4Sb%Dd|GW{F{gr`zj3;h`aMhI0TzvS&I#(n
zT0B7LTE8RIwD8%yu6bNIRom#`tmlbcDuTek$(%Xp1T(enxbMa(<;fMk*s?TF#?qbo
zIV{mtD&;<YyE7D;iOGb=Ndof=_~<m6PaaS7Hc9-UG`YaTPxc`yNSTYg)f^?l#FJ6H
zDk64&u9G-r?~8#EEY|WH7#&dS^a(fG1^7EOC-OPW$VZS3rwZ$bYn|8!&C)gcciu&K
zIUcL#We4%}Qw{NZ+xS~$NKBX13ks`*hfgpffUHD#Me?-q*vwKqgT@Y0Z<kE_ww}D*
zsS*`e4N0DxRH6}VEH4ILqL;g9<tnYEQomE$*Y{CD7-?>^(TaKM8_rIQmSZG!tS>ma
z%G~S}4sHjqg#wYb#lA;O`&>xUS^k1+W-qS|pdGu>37%{pdOPqi?0a>M(n%zylc3uD
zM2|0+<w)+&Q9N2Y%rsd%LY^k(H@~v>zEx;CkGq@Wu76wglABz+t76!0_=$m#A?%I<
ztDWY9`83U82e2QDrKmIE4MxZ`QsyU24p;OLV@qTy4n^}>(Bh@0=ncD=R@4lWbik|m
zKH#I;RxI^LuJdEwc%)K(CJ%BTTNT)7I^<UoJ1XUFl6xw|QUuXW=pn53`AvfhbBjWP
zpjFDCh$Gx*Mlz#oqeG-{evBgsVZ2F#ddh=ECGI%zcdQuEzUwZIF{&T3?RxPkHM0id
z<HY~`Ejl^^<T((rSO>$tGXK*olGxWH*i5*x+T(OnHdYf{P-Rw8{*u(z*>H0s>eyJH
z3+l`y@{+ui3%j4}g5A1)+nczqxAqsBBA7lNtj|@T8ZaF-+qL)pdB5-2Mg54dGl?Eq
zDZa^;u_)+9X}>Jqeb$Oh*-L6EvB3(Z>S~KjNIIe8Jn|k?DQeaZNGEQ~GtlHl?1}I^
z^IWec<mE;kJI3>F?E(_stup<2$qL)I+ft)Kw3XU+?xO0d`UI@+tod`ATjX5Lum`<P
zv8H0e=2vLufxPLf65<OQ$K6AqdIlG`NS{G)Tpf&9=TEaP;y`h(VAGnzcd*G=T(-<h
zy<*Xx2PbmoGRM<@C}CAV@zsfN;fA3bzm&yTAFY~{ygi|ezh`waUNI)u1zeq*_sE`_
z#Q4~IUW2dO_6W2D8F#IW!~jYPbL9<nzC_0~o}bS)E!!0l)s_)fdTLsH|K+e->Uqfy
zxep3koE)Yy8wRT5R~%D1%}&K?b!30AZP*_glZZ7~t9-E~saCn3M1-w7{id3AkYViu
zm6lAK<^9GEz{V%*Kw<h&LownLmO~jHgQC5#lE|p=9Q6j}&RyO2N{}onQy&!Fy&_?r
znG!a|1g$f4zB^V`tB<p;OVY3C0vRyfRbJnXZ|dj~u7A8{)8y$=ty|~4B`IRpiG!Sp
z%4L!sin`1|`LECO{spz;AC|Wqr)Mw=4S`Zw<J~qx4%HYTvqGkm4RZlojKS|xS5M}%
zd(9e={Uc!N`*O9}JVDN|pOR)8mb_mrLR+*tG`U6ChS=}olGg;59=?LDeOx|=H@~>D
zaws!DCU0v-79JyG%*fol%H0<@TXUpDKd9j{-deR)#sFI9x@k}MS;jwu(rvBvL8m3d
zl6Y;ojJO$tnsh~$g^MW`zcRYrd>aE%q;fPi5S3q9Cj&~N%)^)(rkmqsrU7KuWz9t(
zerVAL$VUM{dhwoga*V_bgb+4;$piqmO`i1$mHh~j6SIb<Ukbsl7X9r98-P>5<TBZe
z!f95fF38k7ZXXkLYIVXPTz#Oxyf1Uz$&(ud0=4u19&2EaKa9CJ0)`v$OV)srSy@H=
z%2L_QL+&JhsBhW7<3Ukad~MIU`cJw)`_x6eh6d<0-te^6I89G~3!e8?3aj*mn|e51
z`8px~Htbv6zO9g7!J&h_!2i#&*u%i&e^&P?hy@TDN-*Dp=4#%x0K|o)HF*KL&vwSA
zPXHYq=%wD{u=@;}J&;TK{j1^c$9?<kAVS|l@@<v;e{LKengYQ2d^aQBT=@u~+h04<
YCjijxi_R&H{&vazQq=hJjQ>3G7Zif-ivR!s

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/restoring_node_invariants.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/restoring_node_invariants.jpg
deleted file mode 100644
index 626b730c1aa4670b7a19995b216b53037eb6d9ae..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 26335
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
LKZLPOE+_sEUYUh=

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp
deleted file mode 100644
index f862353bc1e2..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_node_updator.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-/* 
-* @file sample_node_updator.hpp
-* Contains a samle node update functor.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*	is hereby granted without fee, provided that the above copyright notice
-*	appears in all copies, and that both that copyright notice and this
-*	permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*	representation about the suitability of this software for any
-*	purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_NODE_UPDATOR_HPP
-#define SAMPLE_NODE_UPDATOR_HPP
-
-
-/**
-* <class 
-*	description = "A sample node updator."
-*  comment = "This class serves to show the interface a node update functor
-*	needs to support.">
-**/
-class sample_node_updator
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Conclassors, declassor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_node_updator
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_node_updator
-		(const sample_node_updator &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_node_updator &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Operators.">
-	**/
-
-	/**
-	* <fn description = "This method is called by the superclass container 
-	*	object to update the key of a node whose invariants have been
-	*	violated. p_key is a pointer to the key being updated;
-	*	p_l_child_key is a pointer to the key of the left-child node of
-	*	the node being updated (and is NULL if there is no such child node);
-	*	p_r_child_key is a pointer to the key of the right-child node of
-	*	the node being updated (and is NULL if there is no such child node)."
-	*	comment = "@@sample_node_updator_const_key_pointer_comment">
-	**/
-	void
-		operator()
-		(const_key_pointer p_key, 
-			const_key_pointer p_l_child_key, 
-			const_key_pointer p_r_child_key);
-	/** </fn> **/		   
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-	
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_NODE_UPDATOR_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp
deleted file mode 100644
index 1117418e2245..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-/** 
-* @file sample_probe_fn.hpp
-* Contains a sample probe policy.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*   is hereby granted without fee, provided that the above copyright notice
-*   appears in all copies, and that both that copyright notice and this
-*   permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*   representation about the suitability of this software for any
-*   purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_PROBE_FN_HPP
-#define SAMPLE_PROBE_FN_HPP
-
-
-/**
-* <class 
-*   description = "A sample probe policy."
-*  comment = "This class serves to show the interface a probe functor
-*	needs to support.">
-**/
-class sample_probe_fn
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_probe_fn
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_probe_fn
-		(const sample_probe_fn &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_probe_fn &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Offset methods.">
-	**/
-
-	/*
-	* <fn description = "Returns the i-th offset from the hash value
-	*		of some key r_key."
-	*	comment = "@@sample_range_hashing_size_type_comment">
-	**/
-	inline size_type
-		operator()
-		(const_key_reference r_key,
-			size_type i) const;
-	/** </fn> **/
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** </group">
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_PROBE_FN_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html
deleted file mode 100644
index 360ab6037ec2..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_probe_fn.html
+++ /dev/null
@@ -1,177 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample probe policy.
-</p>
-
-<p>This class serves to show the interface a probe functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_probe_fn.hpp"><tt>sample_probe_fn.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Offset methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  sample_probe_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  sample_probe_fn
-  (<b>const</b> sample_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (sample_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Offset methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> size_type
-  <b>operator</b>()
-  (const_key_reference r_key,
-    size_type i) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <font color = "#666666"><tt>i</tt></font>-th offset from the hash value of some key <font color = "#666666"><tt>r_key</tt></font>.</p>
-
-
-<p><p><tt>size_type</tt> is the size type on which the functor operates.</p></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp
deleted file mode 100644
index d22f8e23d1c9..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/** 
-* @file sample_range_hashing.hpp
-* Contains a range hashing policy.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*   is hereby granted without fee, provided that the above copyright notice
-*   appears in all copies, and that both that copyright notice and this
-*   permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*   representation about the suitability of this software for any
-*   purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RANGE_HASHING_HPP
-#define SAMPLE_RANGE_HASHING_HPP
-
-
-/**
-* <class 
-*   description = "A sample range-hashing functor."
-*  comment = "This class serves to show the interface a range-hashing 
-*	functor needs to support.">
-**/
-class sample_range_hashing
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_range_hashing
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_range_hashing
-		(const sample_range_hashing &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_range_hashing &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-	
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group 
-	*	  description = "Notification methods.">
-	**/
-	
-	/*
-	* <fn 
-	*   description = "Notifies the policy object that the container's
-	*	  __size has changed to size."
-	*	comment = "@@sample_range_hashing_size_type_comment">
-	**/ 
-	void 
-		notify_resized
-		(size_type size);
-	/** </fn> **/
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group 
-	*	  description = "Operators.">
-	**/
-	
-	/*
-	* <fn description = "Transforms the __hash value hash into a 
-	*	ranged-hash value.">
-	*	comment = "@@sample_range_hashing_size_type_comment">
-	**/ 
-	inline size_type
-		operator()
-		(size_type hash) const;
-	/** </fn> **/
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** </group>
-	**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RANGE_HASHING_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html
deleted file mode 100644
index 86d179e8fd10..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_range_hashing.html
+++ /dev/null
@@ -1,213 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_range_hashing Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_range_hashing
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample range-hashing functor.
-</p>
-
-<p>This class serves to show the interface a range-hashing functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_range_hashing.hpp"><tt>sample_range_hashing.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Notification methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Operators.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  sample_range_hashing
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  sample_range_hashing
-  (<b>const</b> sample_range_hashing &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (sample_range_hashing &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Notification methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_resized
-  (size_type size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the policy object that the container's size has changed to <font color = "#666666"><tt>size</tt></font>.</p>
-
-
-<p><p><tt>size_type</tt> is the size type on which the functor operates.</p></p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Operators.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>*  comment = "@@sample_range_hashing_size_type_comment"&gt;
-**/
-<b>inline</b> size_type
-  <b>operator</b>()
-  (size_type hash) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Transforms the hash value <font color = "#666666"><tt>hash</tt></font> into a ranged-hash value.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp
deleted file mode 100644
index 32c5a49859b7..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-/** 
-* @file sample_ranged_hash_fn.hpp
-* Contains a ranged hash policy.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*   is hereby granted without fee, provided that the above copyright notice
-*   appears in all copies, and that both that copyright notice and this
-*   permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*   representation about the suitability of this software for any
-*   purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RANGED_HASH_FN_HPP
-#define SAMPLE_RANGED_HASH_FN_HPP
-
-
-/**
-* <class 
-*   description = "A sample ranged-hash functor."
-*  comment = "This class serves to show the interface a ranged-hash 
-*	functor needs to support.">
-**/
-class sample_ranged_hash_fn
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_ranged_hash_fn
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_ranged_hash_fn
-		(const sample_ranged_hash_fn &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_ranged_hash_fn &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-	
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group 
-	*	  description = "Notification methods.">
-	**/
-	
-	/*
-	* <fn 
-	*   description = "Notifies the policy object that the container's
-	*	  __size has changed to size."
-	*	comment = "@@sample_ranged_hash_fn_size_type_comment">
-	**/ 
-	void 
-		notify_resized
-		(size_type size);
-	/** </fn> **/
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group 
-	*	  description = "Operators.">
-	**/
-	
-	/*
-	* <fn description = "Transforms the const key reference 
-	*		r_key into a position
-	*		within the table.">
-	*	comment = "@@sample_ranged_hash_fn_size_type_comment">
-	**/ 
-	inline size_type 
-		operator()
-		(const_key_reference r_key) const;
-	/** </fn> **/
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** </group>
-	**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RANGED_HASH_FN_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html
deleted file mode 100644
index f43c30066104..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_hash_fn.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_ranged_hash_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_ranged_hash_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample ranged-hash functor.
-</p>
-
-<p>This class serves to show the interface a ranged-hash functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_ranged_hash_fn.hpp"><tt>sample_ranged_hash_fn.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  sample_ranged_hash_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  sample_ranged_hash_fn
-  (<b>const</b> sample_ranged_hash_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (sample_ranged_hash_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp
deleted file mode 100644
index 2aaab0e3d477..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.hpp
+++ /dev/null
@@ -1,143 +0,0 @@
-/** 
-* @file sample_ranged_probe_fn.hpp
-* Contains a ranged probe policy.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*   is hereby granted without fee, provided that the above copyright notice
-*   appears in all copies, and that both that copyright notice and this
-*   permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*   representation about the suitability of this software for any
-*   purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RANGED_PROBE_FN_HPP
-#define SAMPLE_RANGED_PROBE_FN_HPP
-
-
-/**
-* <class 
-*   description = "A sample ranged-probe functor."
-*  comment = "This class serves to show the interface a ranged-probe 
-*	functor needs to support.">
-**/
-class sample_ranged_probe_fn
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_ranged_probe_fn
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_ranged_probe_fn
-		(const sample_ranged_probe_fn &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_ranged_probe_fn &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-	
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group 
-	*	  description = "Notification methods.">
-	**/
-	
-	/*
-	* <fn 
-	*   description = "Notifies the policy object that the container's
-	*	  __size has changed to size."
-	*	comment = "@@sample_ranged_probe_fn_size_type_comment">
-	**/ 
-	void 
-		notify_resized
-		(size_type size);
-	/** </fn> **/
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group 
-	*	  description = "Operators.">
-	**/
-	
-	/*
-	* <fn description = "Transforms the const key reference 
-	*		r_key into the i-th position
-	*		within the table. This method is called for 
-	*		each collision within the probe sequence.">
-	*	comment = "@@sample_ranged_probe_fn_size_type_comment">
-	**/ 
-	inline size_type 
-		operator()
-		(const_key_reference r_key,
-			size_type i) const;
-	/** </fn> **/
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** </group>
-	**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RANGED_PROBE_FN_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html
deleted file mode 100644
index 5ce7ef20ec33..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_ranged_probe_fn.html
+++ /dev/null
@@ -1,129 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_ranged_probe_fn Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_ranged_probe_fn
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample ranged-probe functor.
-</p>
-
-<p>This class serves to show the interface a ranged-probe functor needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_ranged_probe_fn.hpp"><tt>sample_ranged_probe_fn.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  sample_ranged_probe_fn
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  sample_ranged_probe_fn
-  (<b>const</b> sample_ranged_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (sample_ranged_probe_fn &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp
deleted file mode 100644
index 4101a70fb3c5..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.hpp
+++ /dev/null
@@ -1,310 +0,0 @@
-/** 
-* @file sample_resize_policy.hpp
-* Contains a sample resize policy for hash tables.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*   is hereby granted without fee, provided that the above copyright notice
-*   appears in all copies, and that both that copyright notice and this
-*   permission notice appear in supporting documentation,
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*   representation about the suitability of this software for any
-*   purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RESIZE_POLICY_HPP
-#define SAMPLE_RESIZE_POLICY_HPP
-
-
-/**
-* <class 
-*   description = "A sample resize policy."
-*  comment = "This class serves to show the interface a resize policy
-*	needs to support.">
-**/
-class sample_resize_policy
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_resize_policy
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_range_hashing
-		(const sample_resize_policy &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_resize_policy &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Insert search notifications."
-	**  comment = "Notifications called during an insert operation.">
-	**/
-
-	/*
-	* <fn description = "Notifies a search started.">
-	**/
-	inline void
-		notify_insert_search_start
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search encountered a collision.">
-	**/
-	inline void
-		notify_insert_search_collision
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search ended.">
-	**/
-	inline void
-		notify_insert_search_end
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Find search notifications."
-	**  comment = "Notifications called during a find operation.">
-	**/
-
-	/*
-	* <fn description = "Notifies a search started.">
-	**/
-	inline void
-		notify_find_search_start
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search encountered a collision.">
-	**/
-	inline void
-		notify_find_search_collision
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search ended.">
-	**/
-	inline void
-		notify_find_search_end
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Erase search notifications."
-	**  comment = "Notifications called during an insert operation.">
-	**/
-
-	/*
-	* <fn description = "Notifies a search started.">
-	**/
-	inline void
-		notify_erase_search_start
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search encountered a collision.">
-	**/
-	inline void
-		notify_erase_search_collision
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search ended.">
-	**/
-	inline void
-		notify_erase_search_end
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Content change notifications."
-	**  comment = "Notifications called when the content of the table
-	**	  changes in a way that can affect the resize policy.">
-	**/
-
-	/*
-	* <fn description = "Notifies an element was inserted.">
-	**/
-	inline void
-		notify_inserted
-		(size_type num_e);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies an element was erased.">
-	**/
-	inline void
-		notify_erased
-		(size_type num_e);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies the table was cleared.">
-	**/
-	void 
-		notify_cleared
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Size change notifications."
-	**  comment = "Notifications called when the table changes size.">
-	**/
-
-	/*
-	* <fn description = "Notifies the table was resized to new_size.">
-	**/
-	void
-		notify_resized
-		(size_type new_size);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Queries."
-	**  comment = "Called to query whether/how to resize.">
-	**/
-
-	/*
-	* <fn description = "Queries initial size.">
-	**/
-	size_type
-		get_init_size
-		() const;
-	/** </fn> **/
-
-	/*
-	* <fn description = "Queries whether a resize is needed.">
-	**/
-	inline bool
-		is_resize_needed
-		() const;
-	/** </fn> **/
-
-	/*
-	* <fn description = "Queries what the new size should be.">
-	**/
-	size_type
-		get_new_size
-		(size_type size, size_type num_used_e) const;
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_RESIZE_POLICY_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html
deleted file mode 100644
index b1e3794c443e..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_policy.html
+++ /dev/null
@@ -1,536 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>sample_resize_policy Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>sample_resize_policy
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A sample resize policy.
-</p>
-
-<p>This class serves to show the interface a resize policy needs to support.
-</p>
-
-<ol>
-<li>
-<a href = "../pb_assoc/sample_resize_policy.hpp"><tt>sample_resize_policy.hpp</tt>
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link1">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Protected Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Insert search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Find search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Erase search notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Content change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Size change notifications.
-</a>
-
-</li>
-
-<li>
-<a href = "#link7">Queries.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  sample_resize_policy
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-<p>Must be default constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  sample_range_hashing
-  (<b>const</b> sample_resize_policy &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-<p>Must be copy constructible.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  swap
-  (sample_resize_policy &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-<p>Must be swappable (if there is such a word).</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Insert search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_insert_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Find search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during a find operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_find_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Erase search notifications.
-</a>
-
-</h2>
-
-<p>Notifications called during an insert operation.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_start
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search started.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_collision
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search encountered a collision.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erase_search_end
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies a search ended.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Content change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the content of the table changes in a way that can affect the resize policy.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_inserted
-  (size_type num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was inserted.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>void</b>
-  notify_erased
-  (size_type num_e)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies an element was erased.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_cleared
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was cleared.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Size change notifications.
-</a>
-
-</h2>
-
-<p>Notifications called when the table changes size.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>void</b>
-  notify_resized
-  (size_type new_size)</pre>
-
-
-</td>
-
-<td>
-<p>Notifies the table was resized to <font color = "#666666"><tt>new_size</tt></font>.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link7">Queries.
-</a>
-
-</h2>
-
-<p>Called to query whether/how to resize.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>size_type
-  get_init_size
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries initial size.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  is_resize_needed
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries whether a resize is needed.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>size_type
-  get_new_size
-  (size_type size, size_type num_used_e) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Queries what the new <font color = "#666666"><tt>size</tt></font> should be.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp
deleted file mode 100644
index b2799cfb7834..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_resize_trigger.hpp
+++ /dev/null
@@ -1,341 +0,0 @@
-/** 
-* @file sample_resize_trigger.hpp 
-* Contains a sample resize trigger policy class.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*   is hereby granted without fee, provided that the above copyright notice
-*   appears in all copies, and that both that copyright notice and this
-*   permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*   representation about the suitability of this software for any
-*   purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_RESIZE_TRIGGER_HPP
-#define SAMPLE_RESIZE_TRIGGER_HPP
-
-
-/**
-* <class 
-*   description = "A sample resize trigger policy."
-*  comment = "This class serves to show the interface a trigger policy
-*	needs to support.">
-**/
-class sample_resize_trigger
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_resize_trigger
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_range_hashing
-		(const sample_resize_trigger &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_resize_trigger &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-	
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-	/**
-	**************************************************************************	
-	***************************************************************************
-	** <group description = "Insert search notifications."
-	**  comment = "Notifications called during an insert operation.">
-	**/
-
-	/*
-	* <fn description = "Notifies a search started.">
-	**/
-	inline void
-		notify_insert_search_start
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search encountered a collision.">
-	**/
-	inline void
-		notify_insert_search_collision
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search ended.">
-	**/
-	inline void
-		notify_insert_search_end
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Find search notifications."
-	**  comment = "Notifications called during a find operation.">
-	**/
-
-	/*
-	* <fn description = "Notifies a search started.">
-	**/
-	inline void
-		notify_find_search_start
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search encountered a collision.">
-	**/
-	inline void
-		notify_find_search_collision
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search ended.">
-	**/
-	inline void
-		notify_find_search_end
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Erase search notifications."
-	**  comment = "Notifications called during an insert operation.">
-	**/
-
-	/*
-	* <fn description = "Notifies a search started.">
-	**/
-	inline void
-		notify_erase_search_start
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search encountered a collision.">
-	**/
-	inline void
-		notify_erase_search_collision
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies a search ended.">
-	**/
-	inline void
-		notify_erase_search_end
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Content change notifications."
-	**  comment = "Notifications called when the content of the table
-	**	  changes in a way that can affect the resize policy.">
-	**/
-
-	/*
-	* <fn description = "Notifies an element was inserted.
-	*	the total number of entries in the table is num_entries.">
-	**/
-	inline void
-		notify_inserted
-		(size_type num_entries);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies an element was erased."
-	*	the total number of entries in the table is num_entries.">
-	**/
-	inline void
-		notify_erased
-		(size_type num_entries);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies the table was cleared.">
-	**/
-	void 
-		notify_cleared
-		();
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Size change notifications."
-	**  comment = "Notifications called when the table changes size.">
-	**/
-
-	/*
-	* <fn description = "Notifies the table was resized as a result of
-	*   this object's signifying that a resize is needed."
-	*	The actual size of the table is new_size.">
-	**/
-	void
-		notify_resized
-		(size_type new_size);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Notifies the table was resized externally."
-	*	The actual size of the table is new_size.">
-	**/
-	void
-		notify_externally_resized
-		(size_type new_size);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Queries."
-	**  comment = "Called to query whether/how to resize.">
-	**/
-
-	/*
-	* <fn description = "Queries whether a resize is needed.">
-	**/
-	inline bool 
-		is_resize_needed
-		() const;
-	/** </fn> **/
-
-	/*
-	* <fn description = "Queries whether a grow is needed."
-	*   comment = "This method is
-	*   called only if this object indicated resize is needed.
-	*	The actual size of the table is size, and the number of
-	*	entries in it is num_entries.">
-	**/
-	inline bool
-		is_grow_needed
-		(size_type size, 
-			size_type num_entries) const;
-	/** </fn> **/
-
-	/*
-	* <fn description = "Queries whether a shrink is needed."
-	*   comment = "This method is
-	*   called only if this object indicated resize is needed.
-	*	The actual size of the table is size, and the number of
-	*	entries in it is num_entries.">
-	**/
-	inline bool
-		is_shrink_needed
-		(size_type size, 
-			size_type num_entries) const;
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-/*
-****************************************************************************
-****************************************************************************
-*/
-} // namespace pb_assoc
-
-
-#endif // #ifndef SAMPLE_RESIZE_TRIGGER_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp
deleted file mode 100644
index a8642700b263..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_size_policy.hpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/** 
-* @file sample_size_policy.hpp 
-* Contains a sample size resize-policy.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*   is hereby granted without fee, provided that the above copyright notice
-*   appears in all copies, and that both that copyright notice and this
-*   permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*   representation about the suitability of this software for any
-*   purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_SIZE_POLICY_HPP
-#define SAMPLE_SIZE_POLICY_HPP
-
-
-/**
-* <class 
-*   description = "A sample size policy."
-*  comment = "This class serves to show the interface a size policy
-*	needs to support.">
-**/
-class sample_size_policy
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_size_policy
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_range_hashing
-		(const sample_size_policy &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_size_policy &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-
-	/**
-	**************************************************************************	
-	***************************************************************************
-	** <group description = "Size methods">
-	**/
-	
-	/*
-	* <fn description = "Given suggested_size, a suggested size, returns
-	*   an initial size of the container related to the initial size.">
-	**/ 
-	inline size_type
-		get_init_size
-		(size_type suggested_size) const;
-	/** </fn> **/
-	
-	/*
-	* <fn description = "Given cur_size, the
-	*	current size, returns a size that is 
-	*   larger.">
-	**/ 
-	inline size_type
-		get_nearest_larger_size
-		(size_type cur_size) const;
-	/** </fn> **/
-	
-	/*
-	* <fn description = "Given cur_size, the current size, returns a size that is 
-	*   smaller.">
-	**/		 
-	inline size_type
-		get_nearest_smaller_size
-		(size_type cur_size) const;		
-	/** </fn> **/
-
-	/**
-	**************************************************************************	
-	***************************************************************************
-	** </group>
-	**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/*
-** </class>
-**/
-
-
-#endif // #ifndef SAMPLE_SIZE_POLICY_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp b/libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp
deleted file mode 100644
index 70a1bd438baf..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/sample_update_policy.hpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/** 
-* @file sample_update_policy.hpp
-* Contains a sample policy for list update containers.
-* 
-* Copyright Ami Tavory, IBM-HRL, 2004.
-* 
-* Permission to use, copy, modify, sell, and distribute this software
-*	is hereby granted without fee, provided that the above copyright notice
-*	appears in all copies, and that both that copyright notice and this
-*	permission notice appear in supporting documentation.
-*
-* None of the above authors, nor IBM Haifa Research Laboratories, make any
-*	representation about the suitability of this software for any
-*	purpose. It is provided "as is" without express or implied warranty.
-**/
-
-
-#ifndef SAMPLE_UPDATE_POLICY_HPP
-#define SAMPLE_UPDATE_POLICY_HPP
-
-
-/**
-* <class
-*	description = "A sample list-update policy."
-*  comment = "This class serves to show the interface a list update functor
-*	needs to support.">
-**/
-class sample_update_policy
-{
-/**
-*******************************************************************************
-*******************************************************************************
-* <public_methods_group>
-**/
-public:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Constructors, destructor, and related.">
-	**/
-
-	/*
-	* <fn description = "Default constructor."
-	*	comment = "Must be default constructible.">
-	**/
-		sample_update_policy
-		();
-	/** </fn> **/
-
-	/*
-	* <fn description = "Copy constructor."
-	*	comment = "Must be copy constructible.">
-	**/
-		sample_update_policy
-		(const sample_update_policy &r_other);
-	/** </fn> **/
-
-	/*
-	* <fn description = "Swaps content."
-	*	comment = "Must be swappable (if there is such a word).">
-	**/
-	inline void
-		swap
-		(sample_update_policy &r_other);
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </public_methods_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_types_group>
-**/
-protected:
-
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Metadata definitions.">
-	**/
-
-	/**
-	* <tdef description = "Metadata on which this functor operates."
-	*	comment = "The class must declare the metadata type on which it
-	*		operates; the list-update based containers will append to 
-	*		each node an object of this type.">
-	**/
-	typedef
-		some_metadata_type
-		metadata_type;
-	/** </tdef> **/
-
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_types_group>
-**/
-
-
-/**
-*******************************************************************************
-*******************************************************************************
-* <protected_methods_group>
-**/
-protected:
-	/**
-	***************************************************************************
-	***************************************************************************
-	** <group description = "Metadata operations.">
-	**/
-
-	/*
-	* <fn description = "Creates a metadata object."
-	*	comment = "A list-update based container object  will call this
-	*		method to create a metadata type when a node is created.">
-	**/
-	metadata_type
-		operator()
-		() const;
-	/** </fn> **/
-
-	/*
-	* <fn description = "Decides whether a metadata object should be 
-	*	moved to the front of the list. A list-update based containers object 
-	*	will call this
-	*	method to decide whether to move a node to the front of 
-	*	the list. The method shoule return true if the node should
-	*	be moved to the front of the list."
-	*	comment = "@@sample_update_policy_metadata_reference">
-	**/
-	bool 
-		operator()
-		(metadata_reference r_data) const;
-	/** </fn> **/
-
-	/*
-	***************************************************************************
-	***************************************************************************
-	* </group>
-	**/
-
-/**
-*******************************************************************************
-*******************************************************************************
-* </protected_methods_group>
-**/
-};
-/**
-* </class>
-**/
-
-
-#endif // #ifndef SAMPLE_UPDATE_POLICY_HPP
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html
deleted file mode 100644
index d79d68af9a44..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/size_policies_general.html
+++ /dev/null
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Size Policies</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body>
-<h1>Size Policies</h1>
-
-<p>
-	A size policy, say <tt>size_pol</tt>, should support
-the types and
-methods below.
-<ol>
-	<li><a href = "size_policy_types.html">Types</a></li>
-	<li> <a href = "size_policy_methods.html">Methods</a></li>
-</ol>
-</p>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html b/libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html
deleted file mode 100644
index 71d8e3f78ad2..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/splay_tree_ds_tag.html
+++ /dev/null
@@ -1,74 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>splay_tree_ds_tag Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>splay_tree_ds_tag
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Splay tree data-structure tag.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/ds_trait.hpp"><tt>ds_trait.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "basic_tree_ds_tag.html"><tt>basic_tree_ds_tag</tt></a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html b/libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html
deleted file mode 100644
index 8fd034ccd803..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/timing_tests.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-<title>Timing Tests</title>
-<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-<body bgcolor = "white">
-<h1>Timing Tests</h1>
-
-<p>
-	This section describes timing tests and their results. The tests were
-performed on two systems:
-</p>
-<ol>
-	<li> </li>
-	<li> Intel </li>
-</ol>
-
-<p>
-	The tests are organized as follows:
-</p>
-<ol>
-	<li><a href = "#hash_based">Hash-Based Container Tests</a>
-	shows tests pertaining to hash-based containers.
-	</li>
-	<li><a href = "#hash_based">Tree-Based Container Tests</a>
-	shows tests pertaining to tree-based containers.
-	</li>
-</ol>
-
-<h2><a name = "hash_based">Hash-Based Container Tests</a></h2>
-
-<h3>Random-Integer Find Test</h3>
-
-<p>
-	This test measurs the average time to find an entry
-in a &quot;set&quot; as a function of the &quot;set&quot;'s
-size.</p>
-_
-<p>
-	The test's purpose is to find the effect of
-different range-hashing functions. See
-<a href = "hash_based_containers.html#hash_policies">Hash-Based Containers::Resize Policies</a>
-</p>
-
-<p>
-Source code:
-<a href = "../testsuite/timing/hash_random_int_find_timing_test.cpp"><tt>hash_random_int_find_timing_test.cpp</tt></a>.
-</p>
-
-<p>
-Execution: <tt>hash_random_int_find_timing_test </tt>
-</p>
-
-
-<h2><a name = "tree_based">Tree-Based Container Tests</a></h2>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/toc.html b/libstdc++-v3/docs/html/ext/pb_assoc/toc.html
deleted file mode 100644
index c46f16094f2b..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/toc.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>Table of Contents</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-<base target = "content">
-</HEAD>
-<BODY>
-<H1>Contents</H1>
-
-
-<a href = "home.html">Main Page</a>
-
-<OL>
-	<li> <a href = "introduction.html">Introduction</a></li>
-	<li> <A HREF= "motivation.html">Motivation</A> </li>
-	<li>	<a href = "design.html">Design</a>
-		<ol>
-			<li> <a href = "overview.html">Overview</a></li>
-		</ol>
-	</li>
-	<li> <a href = "interface.html">Interface</a>
-		<ol>
-			<li> <a href = "tutorial.html">Short Tutorial</a></li>
-		</ol>
-	<li> <a href = "examples.html">Examples</a> </li>
-	<li> <a href = "regression_tests.html">Regression Tests</a> </li>
-	<li> <a href = "timing_tests.html">Timing Tests</a> </li>
-	<li> <a href = "contact.html">Contact</a></li>
-	<li> <a href = "acks.html">Acknowledgements</a> </li>
-	<li> <a href = "disclaimer.html">Disclaimer and Copyright</a> </li>
-	<li> <a href="references.html">References</a> </li>
-</OL>
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html
deleted file mode 100644
index f524f96eb260..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr.html
+++ /dev/null
@@ -1,493 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>tree_assoc_cntnr Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt>tree_assoc_cntnr
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>A tree-based associative container.
-</p>
-
-<ol>
-<li>
-<a href = "../../../../include/ext/pb_assoc/assoc_cntnr.hpp"><tt>assoc_cntnr.hpp</tt>
-</a>
-
-</li>
-
-<li>
-<a href = "#link1">Template parameters.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link3">Policy definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link4">Constructors, destructor, and related.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Template parameters.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "20%" ALIGN = "left"><b>Parameter</b></TD><TD Width = "50%" ALIGN = "left"><b>Description</b></TD><TD Width = "30%" ALIGN = "left"><b>Default Value</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "Key3735928856">Key</a></pre>
-
-
-</td>
-
-<td>
-<p>Key type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Data3735928937">Data</a></pre>
-
-
-</td>
-
-<td>
-<p>Data type.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor.</p>
-
-
-</td>
-
-<td>
-<pre>std::less&lt;<a href = "#Key3735928856">Key</a>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "DS_Tag3735929089">DS_Tag</a></pre>
-
-
-</td>
-
-<td>
-<p>Data-structure tag.</p>
-
-
-</td>
-
-<td>
--
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-<p><a href = "concepts.html#concepts_node_invariants">Node Invariants</a> explains this concept.</p>
-
-
-</td>
-
-<td>
-<a href = "null_node_updator.html"><tt>null_node_updator</tt></a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "Allocator3735929488">Allocator</a></pre>
-
-
-</td>
-
-<td>
-<p>Allocator type.</p>
-
-
-</td>
-
-<td>
-<pre>std::allocator&lt;<b>char</b>&gt;</pre>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>Depending on whether <a href = "#DS_Tag3735929089">DS_Tag</a> is a type supporting reverse iteration,<ol>	<li> <a href = "basic_tree_assoc_cntnr.html"><tt>basic_tree_assoc_cntnr</tt></a> no reverse-iteration specialization </li>	<li> <a href = "basic_tree_assoc_cntnr_rev_it.html"><tt>basic_tree_assoc_cntnr</tt></a> reverse-iteration specialization </li></ol></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Policy definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "cmp_fn3735929186">cmp_fn</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Cmp_Fn3735929122">Cmp_Fn</a></pre>
-
-
-</td>
-
-<td>
-<p>Comparison functor type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "node_updator3735929843">node_updator</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "#Node_Updator3735929779">Node_Updator</a></pre>
-
-
-</td>
-
-<td>
-<p>Node updator type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "55%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre>  tree_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  tree_assoc_cntnr
-  (<b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  tree_assoc_cntnr
-  (<b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn,
-    <b>const</b> <a href = "#Node_Updator3735929779">Node_Updator</a> &amp;r_node_updator)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking some policy objects. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_node_updator</tt></font> will be copied by the <a href = "#Node_Updator3735929779"><tt>Node_Updator</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  tree_assoc_cntnr
-  (It first_it,
-    It last_it)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types. The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  tree_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>template</b>&lt;
-    <b>class</b> It&gt;
-  tree_assoc_cntnr
-  (It first_it,
-    It last_it,
-    <b>const</b> <a href = "#cmp_fn3735929186">cmp_fn</a> &amp;r_cmp_fn,
-    <b>const</b> <a href = "#Node_Updator3735929779">Node_Updator</a> &amp;r_node_updator)</pre>
-
-
-</td>
-
-<td>
-<p>Constructor taking iterators to a range of value_types and some policy objects The value_types between <font color = "#666666"><tt>first_it</tt></font> and <font color = "#666666"><tt>last_it</tt></font> will be inserted into the container object. <font color = "#666666"><tt>r_cmp_fn</tt></font> will be copied by the <a href = "#Cmp_Fn3735929122"><tt>Cmp_Fn</tt></a> object of the container object, and <font color = "#666666"><tt>r_node_updator</tt></font> will be copied by the <a href = "#Node_Updator3735929779"><tt>Node_Updator</tt></a> object of the container object.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre>  tree_assoc_cntnr
-  (<b>const</b> <font color = "olive">tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Copy constructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>virtual</b>
-  ~tree_assoc_cntnr
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Destructor.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><font color = "olive">tree_assoc_cntnr</font> &amp;
-  <b>operator</b>=
-  (<b>const</b> <font color = "olive">tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Assignment operator.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>void</b>
-  swap
-  (<font color = "olive">tree_assoc_cntnr</font> &amp;r_other)</pre>
-
-
-</td>
-
-<td>
-<p>Swaps content.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html
deleted file mode 100644
index aa0954c655e6..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_const_node_iterator.html
+++ /dev/null
@@ -1,488 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>tree_assoc_cntnr::const_node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">tree_assoc_cntnr</font>::const_node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Const node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-Public Types and Constants:
-
-
-<ol>
-<li>
-<a href = "#link1">Iterator definitions.
-</a>
-
-</li>
-
-<li>
-<a href = "#link2">Value-type definitions.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link3">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link5">Movement methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link6">Comparison methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Iterator definitions.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "iterator_category3735929377">iterator_category</a></pre>
-
-
-</td>
-
-<td>
-<pre>trivial_iterator_tag</pre>
-
-
-</td>
-
-<td>
-<p>Category. comment = </p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "difference_type3735930139">difference_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>void</b></pre>
-
-
-</td>
-
-<td>
-<p>Difference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Value-type definitions.
-</a>
-
-</h2>
-
-<p>Note that a node iterator's value type is actually a tree iterator.</p>
-
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "30%" ALIGN = "left"><b>Type</b></TD><TD Width = "55%" ALIGN = "left"><b>Definition</b></TD><TD Width = "15%" ALIGN = "left"><b>Description</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a name = "value_type3735929645">value_type</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>Iterator's value type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "pointer3735929328">pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_pointer3735929974">const_pointer</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> *</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const pointer type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "reference3735929502">reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's reference type.</p>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><a name = "const_reference3735930148">const_reference</a></pre>
-
-
-</td>
-
-<td>
-<pre><b>const</b> <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> &amp;</pre>
-
-
-</td>
-
-<td>
-<p>Iterator's const reference type.</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
-  const_node_iterator
-  (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/tree_assoc_cntnr.html#const_iterator3735930079">const_iterator</a>
-  <b>operator</b>*
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link5">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
-  l_child
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> const_node_iterator
-  r_child
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Returns the <tt><b>const</b></tt> node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link6">Comparison methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  <b>operator</b>==
-  (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content to a different <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> <b>bool</b>
-  <b>operator</b>!=
-  (<b>const</b> const_node_iterator &amp;r_other) <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Compares content (negatively) to a different <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> object.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html
deleted file mode 100644
index edcdd0f2ddde..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_assoc_cntnr_node_iterator.html
+++ /dev/null
@@ -1,250 +0,0 @@
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-
-
-<html>
-<head>
-<title>tree_assoc_cntnr::node_iterator Interface
-</title>
-
-</head>
-
-<body>
-<h1>
-<tt><font color = "olive">tree_assoc_cntnr</font>::node_iterator
-</tt>
-
- Interface
-
-
-</h1>
-
-<p>Node iterator.
-</p>
-
-<p>This is an
-</p>
-
-<ol>
-<li>
-<a href = "#link1">Base classes.
-</a>
-
-</li>
-
-<li>
-Public Methods:
-
-
-<ol>
-<li>
-<a href = "#link2">Constructors, destructor, and related.
-</a>
-
-</li>
-
-<li>
-<a href = "#link3">Access methods.
-</a>
-
-</li>
-
-<li>
-<a href = "#link4">Movement methods.
-</a>
-
-</li>
-
-</ol>
-
-</li>
-
-</ol>
-
-
-<h2>
-<a name = "link1">Base classes.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "80%" ALIGN = "left"><b>Class</b></TD><TD Width = "20%" ALIGN = "left"><b>Derivation Type</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><a href = "../../pb_assoc/tree_assoc_cntnr.html#const_node_iterator3735929535">const_node_iterator</a></pre>
-
-
-</td>
-
-<td>
-<p>public</p>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link2">Constructors, destructor, and related.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b>
-  node_iterator
-  (<b>const</b> node_pointer p_nd = NULL)</pre>
-
-
-</td>
-
-<td>
-<p>Default constructor.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link3">Access methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a>
-  <b>operator</b>*
-  () <b>const</b></pre>
-
-
-</td>
-
-<td>
-<p>Access.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-<h2>
-<a name = "link4">Movement methods.
-</a>
-
-</h2>
-
-<table WIDTH = "100%" BORDER = "1">
-<TR><TD Width = "45%" ALIGN = "left"><b>Method</b></TD><TD Width = "40%" ALIGN = "left"><b>Description</b></TD><TD Width = "10%" ALIGN = "left"><b>Complexity Guarantee</b></TD><TD Width = "5%" ALIGN = "left"><b>Exception Guarantee</b></TD></TR>
-
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
-  l_child
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the left node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-<tr>
-<td>
-<pre><b>inline</b> node_iterator
-  r_child
-  ()</pre>
-
-
-</td>
-
-<td>
-<p>Returns the node <a href = "../../pb_assoc/tree_assoc_cntnr.html#iterator3735929433">iterator</a> associated with the right node.</p>
-
-
-</td>
-
-<td>
-<p> <i>O(1)</i> worst.</p>
-
-
-</td>
-
-<td>
-<a href = "exception_guarantees_specifics.html#cannot_throw_guarantee">3</a>
-
-
-</td>
-
-</tr>
-
-</table>
-
-
-
-</body>
-
-</html>
-
-
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html b/libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html
deleted file mode 100644
index 08ee428ecf1d..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tree_based_containers.html
+++ /dev/null
@@ -1,246 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-	<head>
-		<title>Tree-Based Containers</title>
-		<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-		<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-	</head>
-<body bgcolor = "white">
-<h1>Tree-Based Containers</h1>
-
-<p>
-	This section describes tree-based containers. It is organized as follows.
-</p>
-
-<ol>
-	<li> <a href = "#overview">Overview</a> describes an overview.</li>
-	<li> <a href = "#invariants">Node Invariants</a> describes node invariants.</li>
-	<li> <a href = "#add_methods">Additional Types and Methods</a> describes additional methods
-that tree-based containers support.</li>
-</ol>
-
-<h2><a name = "overview">Overview</a></h2>
-
-<p>
-	Figure
-<a href = "#tree_cd">Tree-based containers</a>
-	shows the container-hierarchy; the tree-based container is circled.
-</p>
-
-<h6 align = "center">
-<a name = "tree_cd">
-<img src = "tree_cd.jpg" width = "70%" alt = "no image">
-</h6>
-<h6 align = "center">
-</a>
-Tree-based containers.
-</h6>
-
-
-<p>
-	The tree-based container has the following declaration:
-</p>
-<pre>
-<b>template</b>&lt;
-	<b>typename</b> Key,
-	<b>typename</b> Data,
-	<b>class</b> Cmp_Fn = std::less&lt;Key&gt;,
-	<b>class</b> DS_Tag = <a href = "rb_tree_ds_tag.html">rb_tree_ds_tag</a>,
-	<b>class</b> Node_Updator = <a href = "null_node_updator.html">null_node_updator</a>,
-	<b>class</b> Allocator =
-		std::allocator&lt;<b>char</b>&gt; &gt;
-<b>class</b> <a href = "tree_assoc_cntnr.html">tree_assoc_cntnr</a>;
-</pre>
-
-
-<p>
-	The parameters have the following meaning:
-</p>
-<ol>
-	<li> <tt>Key</tt> is the key type.
-	</li>
-	<li> <tt>Data</tt> is the data-policy, and is explained in
-<a href = "ms_gen.html#ds_policy">Mapping-Semantics Genericity::Data Types as a Policy</a>.
-	</li>
-	<li> <tt>Cmp_Fn</tt> is a key comparison functor</li>
-	<li> <tt>DS_Tag</tt> specifies which underlying data-structure to use, and is described shortly.
-	<li> <tt>Node_Updator</tt> is a policy for updating node invariants.
-This is described in <a href = "#invariants">Node Invariants</a>.
-	</li>
-	<li> <tt>Allocator</tt> is (surprisingly) an allocator type.
-	</li>
-</ol>
-
-<p>
-	The <tt>DS_Tag</tt> specifies which underlying data-structure to use.
-Instantiating it by
-<a href = "rb_tree_ds_tag.html">rb_tree_ds_tag</a>,
-<a href = "splay_tree_ds_tag.html">splay_tree_ds_tag</a>,
-or
-<a href = "ov_tree_ds_tag.html">ov_tree_ds_tag</a>,
-specifies an undelying
-red-black tree,
-splay tree,
-or
-ordered-vector tree.
-	any other tag is illegal. Note that containers based on the former two contain more types and methods than the latter (<i>e.g.</i>, <tt>reverse_iterator</tt> and <tt>rbegin</tt>), and different exception and invalidation guarantees.
-</p>
-
-
-
-
-<h2><a name = "invariants">Node Invariants</a></h2>
-
-<p>
-	Figure
-<a href = "#node_invariants">Some node invariants</a>
-shows some node invariants. A shows
-a tree whose each node contains, asides from an <tt>double</tt> key, the number
-of nodes at the subtree rooted at the node; B shows a tree whose each node
-contains, asides from a line-interval key, the maximal endpoint of the interval
-of any node in the subtree rooted at the node.
-	The first tree allows querying efficiently what is the order statistic
-of any element; the second tree allows querying efficiently if any, or which,
-intervals overlap a given interval.
-</p>
-
-<h6 align = "center">
-<a name = "node_invariants">
-<img src = "node_invariants.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Some node invariants.
-</h6>
-
-
-<p>
-	Maintaining such trees is difficult, for two reasons:
-</p>
-<ol>
-	<li> Various operations can invalidate node invariants.
-<i>E.g.</i>, Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how a right rotation, performed on A, results in B, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in C);
-Figure
-<a href = "#node_invariant_invalidations">Invalidation of node invariants</a>
-shows how an insert, performed on D, results in E, with nodes <i>x</i>
-and <i>y</i> having corrupted invariants (the greyed nodes in F).
-	It is not feasible to know outside the tree the effect of an operation on the
-nodes of the tree.
-	</li>
-	<li>
-		Even if node invariants are maintained, it is not possible to know
-in advance which search paths are required (<i>e.g.</i>, searching for all
-line intervals overlapping some interval might require several search paths).
-	</li>
-</ol>
-
-
-<h6 align = "center">
-<a name = "node_invariant_invalidations">
-<img src = "node_invariant_invalidations.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<p>
-	These problems are solved by a combination of two means:
-</p>
-
-<ol>
-	<li>
-		The tree-based containers are parameterized by a <tt>Node_Updator</tt>
-parameter. When a tree operation might invalidate some node invariant,
-a <tt>Node_Updator</tt> object is invoked to restore the invariant. This object is
-always invoked with three nodes: some node, say <i>x</i> in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-A
-has an invalid invariant, but its children, <i>y</i> and <i>z</i> hav valid invariants.
-After the invocation, all three nodes have valid invariants, as
-in
-Figure
-<a href = "#restoring_node_invariants">Invalidation of node invariants</a>-B.
-It is well known that any <tt>insert</tt>, <tt>erase</tt>,
-<tt>split</tt> or <tt>join</tt>, can restore
-all node invariants by a small number of node invariant updates
-[<a href = "references.html#clrs2001">clrs2001</a>].
-For example, Figure
-<a href = "#update_seq_diagram">
-Insert update sequence diagram
-</a>
-shows an <tt>insert</tt> operation (point A); the tree performs some operations, and
-calls the update functor three times (points B, C, and D).
-	</li>
-	<li>
-		The tree based containers all define internally <tt>node_iterator</tt>
-	and <tt>const_node_iterator</tt>, iterators which can be used to traverse
-	from a node to any of its children or parent.
-	</li>
-</ol>
-
-<h6 align = "center">
-<a name = "restoring_node_invariants">
-<img src = "restoring_node_invariants.jpg" width = "80%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Invalidation of node invariants.
-</h6>
-
-<h6 align = "center">
-<a name = "update_seq_diagram">
-<img src = "update_seq_diagram.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Insert update sequence diagram.
-</h6>
-
-
-<p>
-	In
-<a href = "concepts.html#concepts_null_policies">Null Policy Classes</a>
-a distinction was made between <i>redundant policies</i>
-and <i>null policies</i>.
-</p>
-
-<p>
-	Seemingly, in this case a redundant policy - a policy which doesn't
-affect nodes' contents would suffice in this case. This, however, would
-lead to performance loss.
-Figure
-<a href = "#rationale_null_node_updator">
-Rationale for null node-invariant functors
-</a>
-shows a typical case where invariants are restored (in this case, to the
-shaded node). In most cases, tree operations such as rotations affect only
-the lower levels of the tree. A null policy allows to know that there
-is no need to traverse the tree to the root.
-</p>
-
-<h6 align = "center">
-<a name = "rationale_null_node_updator">
-<img src = "rationale_null_node_updator.jpg" width = "50%" alt = "no image">
-</a>
-</h6>
-<h6 align = "center">
-Rationale for null node-invariant functors.
-</h6>
-
-
-
-<h2><a name = "add_methods">Addtional Methods</a></h2>
-
-
-
-
-
-
-
-</body>
-
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tree_cd.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/tree_cd.jpg
deleted file mode 100644
index 95afe317c5d948018ff8213fad0d54ffdfe71a29..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 60672
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%0AAv=`5za^;erDIw+?!2l=sauC&j<H$)5e6
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
F1OPae`Bne`

diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html b/libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html
deleted file mode 100644
index 5535bb9781d2..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/trigger_policies_general.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<html>
-<head>
-	<title>Trigger Policies</title>
-	<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
-	<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
-</head>
-
-<body>
-
-<h1>Trigger Policies</h1>
-
-<p>
-	A trigger policy, say <tt>trig_pol</tt>, should support
- the types and methods below.
-</p>
-<ol>
-	<li> <a href="trigger_policy_types.html">Types</a></li>
-	<li> <a href="trigger_policy_methods.html">Methods</a></li>
-</ol>
-
-</body>
-</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html b/libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html
deleted file mode 100644
index b5dd0f512655..000000000000
--- a/libstdc++-v3/docs/html/ext/pb_assoc/tutorial.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML>
-<HEAD>
-<TITLE>Short Tutorial</TITLE>
-<META NAME="Generator" content="Microsoft Visual Studio .NET 7.1">
-<base target = "content">
-</HEAD>
-<BODY>
-<H1>Short Tutorial</H1>
-
-<p>
-    Following is a short tutorial introducing the main points of <tt>pb_assoc</tt>. It
-is organized as follows.</p>
-<ol>
-    <li><a href = "#general_use">Basic Use of Maps</a></li>
-</ol>
-
-
-
-
-
-
-
-<h2><a name = "general_use">Basic Use of Maps</a></h2>
-
-<p>
-    For the greater part, using <tt>pb_assoc</tt>'s maps is similar
-to using those of the STL. For example, the following shows a collision-chaining container mapping integers to characters.
-
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;<b>int</b>, <b>char</b>&gt; c;
-
-c[2] = 'b';
-
-assert(c.find(1) == c.end());
-</pre>
-
-<p>
-	<a href="interface.html#containers">Inteface::Containers</a> describes the containers supported. <a href = "../example/basic_map_example.cpp"><tt>basic_map_example.cpp</tt></a>
-shows an example.
-</p>
-
-
-<h2><a name = "ms">Other Mapping Semantics</a></h2>
-
-<p>
-	<tt>pb_assoc</tt>	does not contain separate containers for different mapping semantics,
-as the STL does (<i>e.g.</i>, <tt>std::map</tt> and <tt>std::multimap</tt>). Rather, containers are parameterized by a <tt>Data</tt> parameter, and this parameter is a policy for the mapping semantics.
-</p>
-
-<p>
-	Instantiating the <tt>Data</tt> parameter by
-<a href = "null_data_type.html"><tt>null_data_type</tt></a>
-makes a &quot;set&quot;. For example, the following shows a collision-chaining container storing integers.
-
-<pre>
-<a href = "cc_hash_assoc_cntnr.html">cc_hash_assoc_cntnr</a>&lt;<b>int</b>, <a href = "null_data_type.html">null_data_type</a>&gt; c;
-
-c.insert(2);
-
-assert(c.find(1) == c.end());
-</pre>
-</p>
-
-</BODY>
-</HTML>
diff --git a/libstdc++-v3/docs/html/ext/pb_assoc/update_seq_diagram.jpg b/libstdc++-v3/docs/html/ext/pb_assoc/update_seq_diagram.jpg
deleted file mode 100644
index d3221cbb98b4a2117de2f73c28a07ce5a541f2da..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 23396
zcmeHv2Ut^E*7ga#BM8!)fFM=6)Bs8o6+|RRXbMP^UZn*@Kzb9nBGQo#(tDE*(wowI
z@4W=_$2;SUI(p~Mo%_u<&-V+@es*$N_S)HJt#`faJwbdxOakX_$STMJAP@-9Mg9Yb
z5#Sntg@J*IfsTcViHVJkg@Z?ekB5tkM?rj^kc5Vkj+Ta!nwp-8i-rCo2O~8#tI%bR
zD?I%C{B$hB;#YaaxcK;aKV1Zbjg5_mi${)+PtMCg&A|IF{~>AtA}r7{iYY4SB7i~!
zLL~wr8UQ)~0HGsC`)R;`{R5$(qM>78VqxRpA`d7!2cUpZQBlxP(b3V+kVm^B_XB7|
z=)?>>QW)p&JixqYMZ)V5nt;V9omWSy(zD6L_t5$&HqHeyatcc3ODwFH+4uzng{}&V
zT)QqKD<`jT<F4vGHHi9s4LyB>M}|hmCN{Qq_709uoIIa-dHX!~^$QDs5fK^n%ggA*
zq~w%0scGpM`2~eV#U-U><?ren8k?G1THAX2`UeJwK71UWnx2`Rn_pO5THe~;+1=Ye
zI6ON3WETiP{fk+Dv+NtYh>&)nprN6nVScg;gyMi~s6=S!3_KXbQg<*PSe?Jf>w!fg
z9h#6=ht0^RvPt^Tx(DY16aN(R)+f_`we0s9_Vf=~_BX@+Zr3n?hYCV|d8kAH7}$m3
zI6~$6D=)v%(H<^5xLcdA$li5HD_F(N<O2eD##mpoONankdSP3tj#OvY&B)HG&L2Uf
zB&iVqoPm}G0mQ@3WWy1FU((sRU;+ft4MqTr3J9PPA|(UZAb`zhjt*xY2;hiP>5MJ-
zP+CkB0Z1ax4P-$8q*~}Cpe_XPj%aG)7!v`^8iNlrz*AV88>grUV4FV<e$SRf854O$
zEIA+8A{_z<O-2CIX<v`)UiY1!qxm^EKiAFAd+NX2-&8vv`odrdhdZi$g&nf{gPj+o
zsCh<PNNp&?gIpEBfvyTVY%cc^Kv-NhtcLE)?*?$pT|2SOXjHSe7}r*gvjE3O02c-Q
z5rDQYJTpEX#gFyBuT`ra79ap-um%Ef1D}#a>}k2AZyBE5a4R~4!;UYrqAu2;!de0o
z5x`I)jBSxUZc_;Ue3<*xiDf(IsXGp9;@_I^NowifUi)h{_OdmOteI=p`)m0M`Ys_J
z<!Lw|Cf(QdXu9(h3E}VhhHv4|jWxXze{bJc?;v`+hd+RbhNjh``kp*ffS@c-`#Mb}
zI9J<*w_YsT?pXFw82Ni|Y-O`{wmHB2H40!dSB(1krGEOY;1BV=@K)RYGQZ{N&8Ai=
ztPk?fz1+tYGYly}QmvgJU^y+(4`4+$_UD_qKAZwN*h`dNbNeOC10BgKZ8OkH<@asa
zSBc$)#eqiqy{<#Dv+H!o*!e+%@Dxx6A%mEC6aoNiESwQqzz+B5Hocc%J9{~>$^8Qa
z5d1k@ezoz=w<moLhd;0MJLYN9^yP*ac7mp62UB0G!FjQKo<}x?)(W$6PK)f(ht3Fq
zX`>zi>`jrKJ!Mb%+nt0*NWt$}zZlvfCSjkThgwNosFb&!C<l7sO`*m}@7ciuXDHW!
zpPI%UidP|knSRIiGfDf2ebPSIZZYK|D{34Pod_u+fVga=H^MBbfjb2sUbC$^IvxUV
zIwL={IWs=dT^Ip;z3~&K`TDGKoS)bFzcOEbL%Zy*7slUhHyzx+@11Huw;|x4elKF3
zQ4L*NI+>J7H)wBoNOT5#gr<)47dlD^pf@cu@h?mAPjaY9>D3vb&8HFQFLJ|c*6#A_
z5}IXv%<M;^>jlU9GZ$Mh9PbqZ2vno<WZqKVyzR}oy8Fmy^~x%*RvURvU4RD#a3(Mg
z0Z-~2opV6~a@|AlE=ZD$|D(WQ>4OZYanH4qIa8>Q{a9!}FKZLuc+qD^z5vHX1}#D#
z1h7hndFIX@p98C{*`_~)oz-o^7E#<qKD&Ie$n9H@X}X3n9m!y5O|LB{J|l6q=aI_j
zjnVBfs}NVY_C6MYo<kk!Avl9;1_Cf~^f|d!Z%p^f{2-rCQ_3CJ{IQ<7ki#kg#w}eF
zC&TBJxLfD%Zpr#5DP}Keyko5>Dsj1m=O1u|I+8{S^)UD*-pAfGF^d^?7_mgDk4$e7
z6-)8kzL-pf^Z7IHAE8<vTlH@>0<4E!sn2Kn^}7Xrfr~SZt1Pc!ZTof#>E(=W#jP}&
zEY}dP@*@D^8lN@WDmj&Y{EX4sVxyb_j9J|Uk05Ku;~`)$mcR1QfvnzU@@T3I=dDEY
zc6u>UmPd&<%_b&ASBc4zEg|-@lUx(|dPiYy%E%(oea<Ozi0ucSq1?7xfJ}}HBy43W
zCpXI|Qm8mOC8F!Yyq{4-VA4Y5<E@gwnvHWj8cq%kRQ@ou#i8&+XU+0{b9-nr;BN8y
z>1E#aP890d^Fw{vHV(AshH_kZwgh|lm#!a2Cii`0*L|``EeKi0BpErX)N!4P!%kdu
z+ItgWeCD5_aldtL>_#Rf+tnt5cMg`~!p#`&BDlfNBb|o4D(}#Yy(vi4ULv|&?#G*H
zMQ(mC>G6!1!&wnOjL5bMQ*QHhWyp$%=gI}=wU~@{(U1&DH(4!zP&0)<y@um8sNc{u
zn%Ws<Rlbi}-m?$&OtGfKBI%Fgepzp&m<b&&#`LnQOLt)lSt@wkn_a9!3%0bUueVt>
zLe1So01eKZ+6R!g{kAI|lm|CF*MzQ&xy$=ga7T1W%FT-m;PXw71@3hOL{ZXa>Lo9q
zca813TN-#>Mfj?+rJJ&)CG7aHy}yzw!<3E)ZqhWa{@70ZoW{slEK%}sjJ|V_n|GNj
z-8-j<ft=u}HMu&ChVbF{nNO@7GTJyI$mqp%h0$g(0cV0rzzM&rk=<(Ae}Z6XoNi!`
z>O^?(vR9?a9o0?Em`xC44*15#iu<Olmuo6qa;quD!GMWJd-R=Iig{Q(VT>CS1SW}2
za_84ZJybt&#Nvib-g2>Oc8Rn&ZFC4>v#*giN99FiDlKDM2;7k&`P4vNhhN5-xoR$x
z;g~x{wA8)p<84|_r)K))0aHoAY*=X4*rOu$Xbw54O*-4C#R%YS4)VTEc{`}n0K?RB
z%vH>fyHN%;GgK@kQ&XwIQMXfZM)l}QBLVrj5ezR09or{N-FkSSSXKOjA|+bwwc+il
zD0=FxX4GtBQwfQFAHVfV;VBp)&7=J`=E$w_CEXy-dIoE$c585_RiKsGmSUrm_e)b4
zdWm-yXX<$^&5zpVVJ`Y+%E=*E;)K+*3*_k*F5u}d9LE#&Ekdu|b}j9```7tK6s;K?
z_3!laS;}dPpFDJDikrdD(nc-cBJY_eQ-eHh+qfO66^!@tY`-t`kl-xh5%~FV7A;%v
zZZ_my{s*YZ$yuGK7JI=1Yt%Gy73-^A6#F@M?;Yw)iw65>yubNY^Dr3NA9g%{byhX#
z3bv@!RZI$ST(OezbTGb2bevx$p{prMRds||uziyZ6-X5oh;^cU0qSy**fR9pu$v&0
zNJ$>;!mk>w2sIy+En>xn+TJ<X>0=BSIFz`w5;?r@Z;<P#cp^9fiIGBeEz>so7~Ebh
zh9a^Pa}QSs&v8VlztYO!fiark@o3+ehKZ>yDDVSKX2}NL0!1^aufgU?g93|Jj^1X(
z>xj+>7~W9dX_bET4kpKBnB`R#WAp6Vc>ED1QsZdC=WZ8G1cz_cYZ+IoMlo+FK!d9S
zGfNI!Pfh9$^U~`Hd@{5hZ<w0ls)e!YRS21M=A7<>4xDDLwouFnNbl6TF+{IS-}HUt
zW!Dh+80->PNguNi7nSQ&ljF#zS#_v4MRNgH)$~+wzEklR_y9<apW&@S-RyomzBqIm
zBh5u2ZLykSvu}kvC9!Dt&D;Z34qhT_g8AlU!W5N$w<}PoL`R!DeYVg*siJgkwBq~H
z3M3hlmjkF{V(j;_%p9iHQw?U!EYu1%t9+hk?cF18Dj37k9(1w3ZB?egH0kzwwF`NR
z-`6>mtjrd={cOp}Q_F<tLvc%DJ42hdu-^7g(6qbAqL|#Y?JZIZmy4|es~a>Qyf@{G
z<;l_Q87x1d#h{LC_m>RpQB>Y{NKr_<bs-K9MShR(k_trBO|o<{usH?+;0tM#ZQ)VA
z38f8wU}mGo(O|;+{zQX(yOfoe_lbFPeB$sz1LyQgyQx2}em5~NICSGEV(!Q~#in+y
z!kz>)RfFYn-*sxtW_36#$5z~AU7mB^p7~*!^ws@Q3c0yO(>I%7|1~j&&4mVyrlk4z
zj6*pWy-9_QHJ=T8ii@5C;2R}V2*B&WK?m1P3E%W>cG2w6_SkTF3sw7LuBNtyZqL<Q
z21{``a2cD;u#Ic|cxuDF%guK@T@rewN#)+R#~9ATtt4s8d>YI&MjA98MNH@7wkC09
z+26li!hV(eBQ<C{R&L=)rT^^Wa(Tg_-;mU1L$r7J8;;@w$h$S75--tWhLaDwol3<r
za+kbjl&BnoCF2@~Zv};>F82ASZs(w_*|0VVdK^F)Yi=H73`$(siu1~WD<&;Qn?;OA
zWOXrZYIoS4UwtFxStYTf>tt8E5bloG1ssm+5Wu-N8zXY!xU#dBON4kdMxNC170b5s
zQBUFpZ?kv9nP-HH#+2^#2$*p!Y0Srx&KK`I%jkLAmS5WBjC8(bx%{3}vK54$a88bL
zgY5Ctqz>>f|HoA25+VhLs{{lf)Yz)i%;HT#AFe_(IhBDTI>IGN6s70clO-XoS8k`i
z54Z0N0|A8XrI-njC>M^<iKZH&YZX_tpg7o_7)wr&l+*m7Gq(o_pt|visS&NvreR>w
zno_-pL1bR4sS2)-AJhZ4o`t21VlMdRtX>LWc&OKaKQ*Q^U7W|HWLqrMPXDa6gwZwz
z)ib!QsAkG+S#6L~yDZ&N))`DNQD{^WX9}_9gv(yxE6EWd7T)k{EZcmOn*itC+Rw{9
zB3gDDH)k&KC}E;M?-9Ge;bd4MpwcC^6%{B!bEsEuZ9J%UEZF{Jw!g9VVYe4Lq^;>1
z-sC<LfqOTmUHTycP_-Z*b9AWJrWR=^Cd!<+F=UF;ToIBPVr{j%u@pVyM&{_R+*e69
zeM`1awt9eT0&3^i#<!C*r&IZ47}IGYyuSMKW@>}Dj>hJAglYQH@q4SI&~{q}!EM%B
z7I6qu3|<Vil}GGDLLXYeqD`)pR5Y*kH$!eC;)M<u`KwEYL0Yx&_|O<?+dUL_(OY!W
zw0Tc*muYGG#dt$Z?e}HZaUJc@LN5UxZ>z8PuvFR95S}rZsL>G=al#q~cRGwMn1Z-9
z=CtNRO7CFZPNK%!&5R}9G|x+cD|%`n(;ky9x!&YHjsB65F^=r>>tj)3=1f6JVnkgS
z`MWhf5|@zhDf5s;HLs*l=4H-fi@{lu_DgVgRcj2;?C~zrCy2s)hl>K&!w~>B*o&#x
zc1=UZZ*a|g&@5myEmV@qCiHl#F5S$HafPzRzlal4b~8ycP;eJIrd2g5-y>u;c3=~W
zJ<L}t5bQ9uLE|`cLMFc@7^Ro8q~WqPs-;BQ);4t06JQHi>r~Rwc?^-6RKi<!qVt0r
z!eA)P80l`8iXPCLE#huVin&e=x(m7(A^>`Sx)a<b1aN$h)b?KIVb__|1@Jyu9|G9T
zU|UQB68%_#+z1H{1kkE9SThlf0A!e5A%C3v!LuM5>x|4ZE><Dm*dx0ly)wvL$IT5#
zmts84PO7@Mxq3N%{MJ-xs2Q<qk`jl)Y3o&^ZKu_T;7P8haS2FNHFCFnXyTWk6)2&R
zD!dasVb@ijK^fPeX47s=dKzG`hcBTdfksUsC+B~LQHCmJKJ2WF(LstHF-sX3KvtZO
z&AAY$AJ}Zicro=a8A}-gKtYxaJdv*M1hWoVA;9@W^KiqTOCW*HTNk=xAfDjq@8qrs
zOs6*B;WbDaW$2mCF;-4wS*}mb_H8&a1<@vgEnY0w_?40Q#L6td4UkhWYH@<IRC5f)
zw<Y}=GA*+HI`N+-|3@wB)KIz?eoddF$eA^l)6*BtIv}w29O1I5v>z}Fo>D^=K)hZN
zo=hV1B)hf*RW^4LJU~>XN0Kyml~X_wJIf+oVeOGt{`FIGCrZ25udCw>&|fFB;}>Ev
z`teh<dAOr1$p9pG{@!e=`4B*eOz^4KE&@1Z^DAdt_;&fI{t5sgZE+W1v#BdO8_ftH
zF|0cC+vNkel1*A15f$nj?<&n{q1&8cAZsO5GDuu`{p?=1GDwExFYRVDN$FF0eYEC_
zFLbdf&~&$jNsd`TA@wwsM0GeER<a31B)Xpl3QlWD%rxF=yzttL`ofz*=0Is^2<W+<
zS1l8s?X)|Mv7v<?W~kY@AkOs@Im!F}Ldyz`N`C>W07MAWqtMid@#(nMBXT|EbZV!u
z<qS|az+6i^(EHa)%~u2p>>X7K0_Yk<E*sC0i8JxfMWL^^%6(0{416y7{107f0QXQ)
z9@>&9bi8RVXApd1eSinjj5(^x7d_Y*d6PEMc_MAL4S$_oBRp0SSh^Nm75C2l3IdqI
z??nI$E1C$PZfyer&?1XsW87zMMO|>(aRjinyvQ0)0Q+Ve_}i0mo+20XfBafF!>(RA
z5vkA*_hsfZMr8A@zw#Z9*TstoKOBhuJI{>c^d`zUOI<u-SyZw!_@qqx5?%m}ygq{m
zUi>UkZ~i}y`hUlm|B6XYGk0N5zD8Uab-XLt;$LRh-WR40fCpofJr4I*v;^dYUcY@p
zt9`oi`lxBF-r@F%O|XkH2Hn@|y#K%Q?)V=cRWODztu3$oaaI$BioRl?_PXkL0EL3w
zi}ZTn31*7zU(;vwuSyH-%jHLRr@P=UPEAjdm}yr<8MDXjD?f;&ufA}SU%6sZ^l;2P
zkH|$W6nEdIQHAF5BgchYYSlf`l9&7Hl^;|n1Ot1L%vB}aC-vP>+?jtAK|XEI*yb=)
z_6XqRe=3B_O2-zEBXuCAw`kHRJ$stZu<vyzZwDKdyA3{G30v(434Au?kMxi#^<i}4
zdZx_zCh7QAOsA=8_sKY2lg4Y-^1fD<Z|Qg>?16=OI&SdzNlhSd>vItJt^OMna-8!G
z{rCd3tK(5KE87EG=>bQ4im_jc0zUH^zxI$k9x7ZL+_tSJrg?A1Dg!K`4#LMfYHU~0
z-i`BE_7slD?ofuLR7?`f(**(wzcnc3Qt;#Fr?1r?yS$fgv##OJ1)p%<x;Jaolz{Rw
z`97Yx8oiqug=YBr)#m<gbidEc;~(k0XU`K)j~PllbP14belKATt2n5^iOw7^G(~y&
zD2#bW4-_&PUS(M$ZAqBN4|@1}K+HE2_-_=%aB?5!rFfM$J|66O-p_#t@C3N_f*6DK
z)Yxz@5$d6Gc9)}r&Igu;2Ul%xb!lIX$6ow|id=N8@QbQL9u?oOU)~Q*<7&?faK}87
z?-ZHbbRHxf3KTfZvJ=<ll&D>b)=uC|-YN`UxarIFZVApNDO}enFMc&ASF^{vh}4hb
zJ=mbydxycne0#)xywY&6fO*qeajL^m?!*+me|^4;_XxHOZ=NWjSfJr+1PqqX1ZxVm
z1O{JPoJJ6Se2D_pdEedcM2`AP%oHY58g)$ilCr4|kw%|Z|LWuQLixKl*}|AlTNSu;
zbglDdyqY9OZ8{yNiv_x{wO15jM#F>r706=EVBfIsF!%-gliSU+Ei?mf6&Oi09dDnp
zk1W}0Io*<=+S4h#J~;i5npKHckOL=AIex)`ksoxstMNFeCTnDPQO*8gPZp;g_M=J%
zy!6XfZ`qKObui<(qVB}GpPJ!lc&*otDkA&@dbc!4ZgjN^O^LlFKq;rzlkS~qX`hQo
zw0(tDx_{Xl-jC3aYp>=XU)S8=9Ppj!>Md(^;eImJF3MhE8dVdl*dM!2ew{p&bB^nh
zl;=(e6USAwwPq(^!#H0ytf{BPZ?QI$9q%cjvdrDc!P8iHbNb`^)3}etyugoK&gq<1
zh7k~^R$Z)rVqwi?E^wYX%f5o?88o2KeYQ2U>$adD(6*`7AN)ppskcD5H#g<20`+X6
zsVA*cn(UoJhyoIPJmX*~?Bg<DPjoc56K%Cf_Bw8?3`}!<$A-EQ{Z}0PT?mu>ecxq-
z()dT*)8})(7wA+YwD<IkNEGqHa$iy4crwwfcpsxab@hnH{SqMm=r!qfYGd5d<>R4~
zEd;QboSU&Sr{oXbzPp!uFoOVk6eQ_nzVu7T8TrCz{mQ5Q%BgCf?c)pGE~_qk_!fG-
zw?(oQCy8a3bf?7IqR5P}VVI>s>$U=VurIec=Q;$;!BYXEkobspN?heRZSI?W82*mf
zXqY9Ec3mIp6Z&rL8FjIEE9z#4wZ=lN5+T@UJzQ4EG(GwHaN!VB>MtVt_FYPkyD@WB
z)y54!KHPaAuRkm#8(5}%jOr13h|{_G&Lq##@U}lxl`_VX!vUSn@{zWXVYMaUj4Ed(
zV}d4Bh8Jcm(vsk*kfy~>eL!DIe<}mm7DAAD5SF&@Y5NA80%_$|8+Z!02VCZggwpJB
zXTp*+=%igpeHB?E%=!cYU_iidYorEiS7}`bHra;6m_f>zQZmRo<)+tS+-NltwMHNh
zr$(aIs`DpN6NkJ=Og{4h)O`neZ8(Dy%K>-IrUCNsW>(}H<Gy}2cW{Q613R1pY)Sqz
zBN1r!vmL=L<J@DEh$|}28nPnsI>m}ww^@{z7)UH&>Z@ZCvMN-fI_K{>?>c%#!gJ(g
zplQsJYkGTH-7FD`tK4{fdl>>DzPd-`OA6U~bU<qJt{UjAq)QWMd^*-8wpAKE?;M25
zX30pdZ8bze<+LM7<NA3S|B?Q?k@%MK=+lRq(5!{`N}<omk9<114%`l=B+vhq>i;$4
z`_bz^Eff3{Z|~Gzy0GQ%9r$Kg=$C#k&Iuq)5^i$i2T?}y!lxwrM~$sAki4J%F26rR
zU|R!WTRnT2Ycu(Abl#nk*Za>#=8i<6ZZ;JTR8}K&&S0<Kj`qKW1U~J%x1k~6akD^y
z_$bf4#ZqCsR43so<_F|Qbu2ulm5ZuzT5z)}u^j8G9-WyW0Wtrcuk9y}{D~v~IgZTH
z*ntji*mYdH+0B_{^XB<k5A%)$lY`dOIc}vW3cZzXBpDga{;Y7TICB~|kPRQBX+UBu
zwQ4kMoR75RGJRka?o$LHD7mz<c5l6!=}2&YFvxa<^WJ(6r=fFMONm!}(|i|RUCE`M
z=JDCB7R-bmZQB~6oQ2+`3zo)18leMveYi5B0tH8YH{`Q0B$q;4$r+<dG7poqdf=tp
z<}LzymLb?QIXUXMkxcMBdeK^PR2v5|R6k%nEmu&2qo!)8QXosV)gond@$NF&h0aw=
zkZ)Wny8BfXSEX#@VaHr8bz9fFDsS_GZw$<NvnG108Lz#sS#A&CE>R}n2{>p3?E4|F
zM;)6R&L3K641^80jdxN!$}7@c?W1UH4$F}h^rGk#nRCTAF}3e;)Sjr1vcH~e4^jT0
z5C(gK*C6ZQ^m>j?BK|lUSY^#Id}sYyWkq9fR<}c7H8Nxd%yfk(fLkJmN$>2S$hIH2
zqq?UhA`Vq7%Zu>iXi*i}lU>dduLFXuRK@7BYMzTRzA>?$>5L|tpVXxwiEtsjRojg*
z_U)~H%^KU+%Df<sM?#ifZ=OyFJa#hSb?XQI1IYVlj_1?<KQ%v6?|nD+u-Me7!Q=u4
zK;9&=1cWx{Wqv;uRYu$Wf;s#e80qlwY!<+!x8mT;l(!4g%=)3L3rfU9<fA7gW)IFf
zCA{4wUVazvRc21=XL7|&qZ&IiE=j}vsYHECIv&TIZo!3T&W;3@dB2y*eg_TOI8;+s
zQ+CX!Ca%zZ?9)kP9&UZiqQ)winZ_abmf8UmHHbYq(Oqmy?6PZ$V}U|pH<v+vaehy-
z|Jq&XldYB}eP*4AqaZ~~ImSM}0a`3mqsOUzd-v%FvQwj{HuSwTHN`&cI5dX{#&7|Q
zRB{qkb|j#-*2xq93TN&$eDmq$WqdVpg*n@I#4l0!Z%*?!mkGBDcW_QT%ZY2C^iF+{
zc^YcRIuo>XE2EYELki4x79L~I;Qb`$jUO;$21nyuE5w4RjFxMKFKv65w3L^)zIqWj
zahU;=QG8j^0z->sUn^z4^gu){idWIpY~MfuJNQ&ROwvua63Omk*k~a~(=v7_;N!6;
zPB6UKD$uZ_RnN#ZdZUjbgiiMZ#ct|yHOyCUbFW-O2~9;)4rYHTm{#T8wI^nw2LZ1z
z#8GJn26`l^ivv@&msWBYyKn4g9T01M)H-4aRkMaBOy;-N(C-gB4^9<V@2parkOz@I
zu%Qd9Swc$#77njiJMJ}VCA#x+rPTEDuc>U!xynj6u5pH)OR)yjOHV#pOiNU5UUuP5
zLc&1sRG_FL6W_?Y3$oe)3sH<8@&vN~&PIP;Q>4`6_I0yQoDXsw7N{KX$3)jU#kW)i
zIISlXUSHV8ZS;t87}hH>zIZn_K$W<<jGn-$FG{)3&P<$(^HQ*KF`t}wQHVS$rY3dz
zA_4Y3hC9E}Z{UW{c!K?F0Izdz=xfT`UBdrMp(qlUeyJk;n$l0puI$QhoPQV6T4)|f
zWu35#iORT1%K3dh;>WOty@kUTS#qb?a`4@wA-vVIZf56PFY>D5DLE@=iMy=Cp3^A_
z2#KKy;dI%?BKsB7Iz);_<*_-fuS_|Ptk{kh(w9~y!lPFNv@Z5R%8G;5pGaRUJJ)Er
zMF!^Xc%ge6Ojo55f$O>768v$%yZL=XKq~w8@eTsW@5bQ%EwKGr1Nvjw|CvGmG3@`W
zHvJ9QAMu%C|1s?UIg)=&h5oELv5JoJ+~K{JqH)g4`anpd=p&X*w`^`CvVI+z{=wx+
zAODyJjrq*oa#w{*fsr}_VLU!`tmyvdCLHiqg_pEWzZ?4g;}oDA@C&qwi&F5F(YT%p
zNr?-J0_s*eTa{l^<b@T|0;nvb^4lvw6VHJ>T99}kp#IyeD!-nx$IV_2Zz1+`V0OG5
zg#&86Ws^qPafjja7E!ZnW=EZCqh`&IU02V3C+hzeE_{9usWKWw=j~upoNq#9sAF-O
za(gyO_t2#Adpw3R+KV5C<-fbuKZmdQH8E7ZaFezP1DarqgTg{(#X{#iHxpZFb+`Y!
zv;q+MTMT7pOWtc~j4Lg@Sfd>AE*ZRKn4??437Mq0;rlH<!=$p!@0svw*ms<e97};R
zTL15`^K%IKwkQ2Q*^^0%-+Ga`@m;M;!_f!SxL;f<5rFgh8UOEN#s9>lO}nAtG3R@3
z_QtuKrdRgcJauNH3o9M!X_M!19UJRq`^>1`n@C4)xGT`R@&86fc~|?ouY>%ue;<dH
zBte=cUGa6d&MZNRM@$C7I#EM$r;#aWSJ2K$%@Qfg_XJ9#^U3Fvk7h~2vv|u`My-O=
z|B?G5ZPzw+8e1<*Gmb_t3bO5?8)m9DYzSJZyokQEJ;UMZL=CyCIkw@Q>s|09eX+cG
z-*#xx*FGPLJ>Z9*v5bqKg-KIaJL3nm{7E@UEJ<~5<^AMgBQhibdf%v5W<Nc<@^Ds<
zmpHc#-ppLe7`oJG5{xELD0p}2I4i_tu&=}NAYVF%i}vx8ikTLw+hhPyU{ahip4VZZ
zgG2;*f#>b={-8|SUo<X%%#M4nq9UWqi+M9hzK(jJN~e)>J$SCp*=8z}>Y2Oznw@p6
zW**C&FK8U7rFvC1Nv-xQmaw#<B>${?aGfhBen7837IKr}atPz~PR5(g;W6Pcy<>+r
zmf%upCiavyAIVgLuCBir&I-f#gB;veYHfZ<ZWs+Lbop~{*lpmO66Hge97ITty&4ND
zsDX!uOLe*gByo3FH0)#9htz23RQt0y^m>b)Jn&;ph=_K!;Xclvg=hDp2Iz@zsX!00
zpd&`-a#G4{D_HvG@GU~^%uj?aQ&p=-6UaLEM~>r_E3H;2c37?3W^?IB4vwt0g`KB6
z&SP?i*Eud`#^BAn^O}q4O=H7_vQ1je3@i-s3e<<++8YN<&$L1qsiXrIXsoNfiv%i+
zD!DDD+AA)qh_a_WW@-gjdOu_ot-8G(9H;DhOJt)iON=mm(SAr)A%`V;or1!CTJ4wj
z?k5<vT`AyuJ8(rhpX}aV$BSXpq9=L$j@yyMNa0y<rTzz=Me_Z4Y!{Zx16)Pf=CXKw
z+O5U}eB0Mh$=~fPPs@TgoFTU~{|$r+aAl^-Wg0sO^5)6B#PQKi8@uOIN>8-T=Hs~+
zwT1c2w&S+ulRjy&Q9RU(VYwblrIcaI&{M|S1KhNbetiz@-j5785PEd~;Ht<o#+5FV
zsCUO;IO7?4Ut#_=@k$1LgT>A#*5dx>B`LpkQ>6GUmzW#NJCQDi+#~oGmr(@Zu;E53
z@O>x$o!sVgRQR(0GhI)ko+7TD-^c7EqBM1KK#%++8AXn^DeL=wUh;g;Uu72G5`++c
zN0?N>VZw|B$+83s-}rswsB8m+hmZ9Au9Ts_O}44sXk`)495!v|a^ajI#5l}U8-SDH
zdnY`|0>8G>vp<8%2r6)-((5rDYy?>11GeK>n~H}_CKp0XcE*-$ZZH)Uy|gxy69yHu
zh}qNdjSi`NC+?EA91==xam5VBrc4Jat&t5sdnZ%qr)I<nImsZTSiHJR9X&Qs=#Q_x
zJix76ZXd{WnTfCUoK8i^jVmine6il{0!BGVb;Ot4Gwdtw8u_#Ud)(L5Gu_wJ^(SS~
zC+)<SEI3j+@+F2vjZZ|T4_~q1pPsY&5>5k)tUm|xzc3>x>nYiF$?yH`%$#R=XGiPJ
zdz(_lsUF>TwU!lMhML_TxmQR=DYN!^*g{#0i6Gvb%BLL;Mam`~m1Qf|9ld1e&Bl^0
zbAFYrvHDDSkrC1kn^3&R;YMLhX`YQy=E`}Nl-A5)fFr;Be546WtI^N174Q8Oe8Ayb
zpYbhx`SkwJgmB-*YLS^AehKs{^O|$4Ec(!AJ}!Hevm)m7$v=XEFGu%Xtfo5f-K_H8
zLvY_kY61d3^Nhbe%<+}@;mc_8qu1XLK|k}1zvoSVS?Zca^Cj8iE79IB<Du#cw}?&?
z73W>#*DK!9YsYc%HV-8<0(SfmY~vX-NCO$ADkXkkhHHhAa~X5xBX)BYDJm{9^s~nv
zeM7^UV=fBYW^38hOT`+QW11SB2R5M=xKe=~u@s)>w~~UZT4zECuO(J4xiM;WrO0wj
z_T>~YW;DOK;Ad}YxI^+HR2|Qwk1_0uoPY&nOSU5E$WnXs(4=XKo>){%^DP;N!qG!X
z2lp!&^Xrb7B%rZ7+K*lC!<=&+P1OU#CKSuMQ~S9%Uw@cHJrBN(3s@!}$7%ExZfTdl
zT|9o1@<5L^BC{RujtpK_-^feYKorZIc|5fq#fBfSmX<48x)uDKWplhJles9ODu%a1
z&!q0-8$SPFX3YRI9KIO4wqwfv!L`KAsu~}zRbTnloP@XGOlR8^&jZ%?MB5}>rS|wi
zAMR*&J)09r87#_fsf#xK$jQ*;Ca<eUuI;KR-+a1ZvV@c-r!SY=Iu%FR=&_UB4@t9I
z4jfQ-ehQ+UPICm`hn;hjyV*b2{F<M!qqdg!GTR~TE01{m@^6JUxlVb7ILzJ(kd6Q^
zsW5`QdRI`LMD2i|_iQNf^pq}AT(b)5dM}|3t2%&D0@1&fqJG}@r;2DE3SO8ei<sUX
z(z{jhgnY7i-DYn-OVtwFtMcJgl5uh1ya0ouLoHJXm=Xy4Jb-`b+3PE%;*HN(P7|qa
z4CsYH1^X^Y`?AaJfa=;pj8I2S$S~JJ=?XIOgJ1em+=k5UAwh{jE>jQx&Lm-=U@TQ{
zPL7VuAcr<Azl*^NH_ax32?69G9|L!&&AlI*MEMNoQK&vonYzc3x`DM)=?vZ7f8;6I
zUsY`mYz|roh?A+Gbw-~OaSbXy5XqA&(vo^m<UUh+mD);+8Oc!kPARUjH%8xj<6*-Y
zQ4|@-q+=32(iJ4j$G`^9eQynYDoh)rmbQ5fdd)y0E~6DA+e~bT(3y#CdTPG;RkfH$
z;gltad{}sIB`uynO$l>UYvd!$$kc%hqHL14ti=B2+=~{XL_?xC;;o$uoyO*HX4^CR
zegRQ@omKyIIckR+W@-u;jqE3>EVDCtczhjp{K}YA7LyDXX7SSHk#oJPaY`=)s$~W$
zR!5V~j})+kDK=D~j=W3Y{55WY=Ca<xvM?yrqJT~QCTzJO40Q*6CNam7FZ$DHWdE&v
zCnv`bm@70BIZ)Dq$v%Y?8J32vw{5iI`4xnX5u!)lI>IdO8!y2xI*8MqQEsrz#Qg;x
zfdJ&0B{9Kup5e_oY-=Q-P&>}E&{UJCVD@F+3*5$!L%i5SP#T-Z+hIg|3m%G7u5@Qa
z2msG`_&!7I__=)ET|==l+D6}Oldl=;PsCT6xfBl<=b+6zOG^WuOa1)9NsaSnhDKxw
zLAVI#K*~l)d$<jLg(79luGz~6D`7lc8t2t|_Y_G>3;Jgw2}J~U%na~%EHp1SS%rJi
z@3W);#y?6GzDyndR6W7HRW<&%CF<GH!#tE;9_|=C!R3-nR;wnBQu=kPx(4NBlJOU<
zN{Fovs<nkznn^(7KZ=Y`<etMhXILfJOZ;7g4O2Cn_XSFD9eD1<=xz$<LXefDje0l2
zE%b>X@D$&cOR=dde#ytI)hyr3I5D$fPO;FT4LT{U$jqer%ytwlOu;R0miE%fOGu8T
zw4RY-Wi4ng<=(7%X96m@zA>8l1!akQ6q=svj?LZO7~rpSg|BmsKa1P_CxV-w%=<rz
zkp6>n@`-u(ea+CjRxAtQwzJC^E3S`y%4}6}cA}A;3cu1<c&bM8NHH^WOzrZWFa^U<
zMoDsW98_~LL(oTWt628RjDt)n$wYPi2$v5nsuc7annK;w=U4H6o8JCReSiC4$G`Jj
z5K3b4jzl}zE1YYWddm6D+I+gH@q%kri@wix{`UCNG~<e|OLS)lN<5%9IMR7F6nq-}
z=6e*U`=!sO{E<G*T!Dy->jLULOJ^-Lynb%sWWr%9J%cLbrlP-H%#rUl4=UZ2qq4J&
zaX2fA$+y7cd+)!NghK}GzLpNg6DEHBt2)S^C-~wgcfQg)eOI}x@B^p!PnaagcZ0kd
zo8V4$_bZng7E_B(2lE+oQN0br&3Nq3RnkAwvsJCgzP%i2d{Ia63IzeS=n(EM3vhB?
zjZL_6&9i0uU_*1GQ*fQC++iffdD@-n_k3%A>LQKL*WJIuJBAytOmua`_v*<6H}&3(
zU+j0+t}<HTmsN;+&S_kiOl{CdpwH(B=~dNs?xK+hFJjZr+B8B=ND)9dFO9~n4Qpn(
zb8l2QYmd~Muxc5t7UE2R?k}zUzUKA+KfS(wbxG2ah*{>C2|J#(Y_-yG^2Pg(GjkTN
zUyV>?n@n=Kkt|s)6EBO%%*{pgC%?R)FdHdMnE7B(sTG-j9Y4w{Pm7o?sPZOhYBkrr
za`dumOs#%vJt?ipRJ!z(uWsu~gaA}X_U7ZrAxODFRE~94Z34Ab<jP>-|8dD`w<;Im
z$VITB8WkNMF>g$6`%2eYyL!#nv}I<wh0pHkCHv?e^K1F55@w_M0s6E-4fZRNl(t{4
z_<!;BkI3)8Nud98TGQVnuKG_L^Ct?peuQ5C)7$^mYDC+RQ*nx^vlV)Ef&(5;+j3|#
zA6pvQBtQV9!Ak6ck8vholh=^XxB{*^GA;?H6<M%uHKckRg${0XHZ}-eWJk)&JqVFy
z+C5j&ZJ+&hWZo(T-GF1kwvtX9kUwA)pM7wK20rY@9N2}l(T$WhpQ2mTY%(B#rr@<P
zy|bq!6Nl%Jx^hW6NRJLH%zTAzmlP>Iuk}Fyl;EGA|8xF-uD_r6-|zH4U%5Uu@R#mI
gqgbt5XP9|lmS=QS!l9kl$G(nUKUN7)#zcJle?Q@%mjD0&

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/PythonPoweredSmall.gif b/libstdc++-v3/docs/html/ext/pb_ds/PythonPoweredSmall.gif
new file mode 100644
index 0000000000000000000000000000000000000000..268980706ab40af54e7de6d03af2e0fd467b9bd6
GIT binary patch
literal 361
zcmV-v0hazpNk%w1VK)F40J8u9|NsBz=jYzu-qzOEy}iAJgoHvuLOD4(F)=YIDJd8j
z7!VK;2nY!O-T(k&r2qf`A^8LW000dDEC2ui05<>@000F4u*pd)bvWydt^eS}jU*SI
z&2y~Bqdv~du5a9`bp4{0a{xd<;n(^Vg1}=Da5yH3DkjW<${3qMDG@t_8iib8w50)Q
zuE+F4IgSp~+ALVQv2cFD!aA#O<MVNFY$GCfU^jbxeqeA*N={^i4I@x4FqJ-Wj*M9?
zgM=hdXLOlMrcQIFE|Db}FH;z=v52&*Ikj!AHY_kWH)OB8GPF6qq$Pi1s6(2|U&?uV
zov<AnMg@XlEPU8<-D%%Kkkk^^NX(mpNPM>IY@Z$FR)=n3>eyXUtK#`@$9APGNrR>a
z)e2GrJs}}uM%JuiMJx%s;YygV8z?Mk5ZFs#42~`qHhKifL!PdatxASK$x@|DlPzC1
HhyVaP_=1?P

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/acks.html b/libstdc++-v3/docs/html/ext/pb_ds/acks.html
new file mode 100644
index 000000000000..6612a4a8184f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/acks.html
@@ -0,0 +1,65 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Acknowledgments</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Acknowledgments</h1>
+
+    <ol>
+      <li>This library was partially written at <a href=
+      "http://www.haifa.il.ibm.com/">IBM's Haifa Research
+      Labs</a>.</li>
+
+      <li>The library is based heavily on policy-based design and
+      uses many useful techniques from [<a href=
+      "references.html#alexandrescu01modern">alexandrescu01modern</a>].</li>
+
+      <li>Two ideas are borrowed from the SGI-STL implementation
+      [<a href="references.html#sgi_stl">sgi_stl</a>]:
+
+        <ol>
+          <li>The prime-based resize policies use a list of primes
+          taken from the SGI-STL implementation.</li>
+
+          <li>The red-black trees contain both a root node and a
+          header node (containing metadata), connected in a way
+          that forward and reverse iteration can be performed
+          efficiently.</li>
+        </ol>
+      </li>
+
+      <li>Some test utilities borrow ideas from [<a href=
+      "references.html#boost_timer">boost_timer</a>].</li>
+
+      <li>We would like to thank Scott Meyers for useful comments
+      (without attributing to him any flaws in the design or
+      implementation of the library).</li>
+
+      <li>Much of the documentation is <a href=
+      "http://www.python.org/"><img src="PythonPoweredSmall.gif"
+      align="middle" width="55" height="22" alt="[Python Powered]"
+      border="0" /></a> (especially through <a href=
+      "http://home.gna.org/pychart/">PyChart</a>, <a href=
+      "http://www.crummy.com/software/BeautifulSoup/">Beautiful
+      Soup</a>, and <a href=
+      "http://starship.python.net/crew/aaron_watters/kjbuckets/">kjbuckets</a>)
+      and uses <a href="http://tidy.sourceforge.net/"><img src=
+      "checked_by_tidy.gif" align="middle" width="55" height="45"
+      alt="[HTML tidy]" border="0" /></a>. The CSS-driven menus are
+      slightly modified from <a href=
+      "http://www.brothercake.com/scripts/navmeister/page.php">Brothercake</a>
+      (hopefully without introducing errors).</li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..16cc6da870df0ad2a7899bfa366d4a8720e53114
GIT binary patch
literal 21668
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg
new file mode 100644
index 000000000000..02be62416478
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_tag_cd.svg
@@ -0,0 +1,491 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="11in"
+   height="8.5in"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   version="1.0"
+   sodipodi:docbase="/mnt/share/src/policy_based_data_structures/pb_ds_images"
+   sodipodi:docname="assoc_tag_diagram_2.svg"
+   inkscape:export-filename="/mnt/share/src/policy_based_data_structures/pb_ds_images/assoc_tag_diagram_2.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3311"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart"
+       style="overflow:visible">
+      <path
+         id="path3319"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(0.3,0,0,0.3,-1.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3337"
+         d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="scale(0.2,0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send"
+       style="overflow:visible">
+      <path
+         id="path3316"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-0.3,0,0,-0.3,1.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible">
+      <path
+         id="path3322"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-0.6,0,0,-0.6,3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path3346"
+         d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="scale(-0.8,-0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3331"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(1.1,0,0,1.1,-5.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path3328"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-1.1,0,0,-1.1,5.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="613.85775"
+     inkscape:cy="310.05621"
+     inkscape:document-units="in"
+     inkscape:current-layer="layer1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1278"
+     inkscape:window-height="973"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     gridtolerance="0.125in"
+     guidetolerance="0.125in">
+    <sodipodi:guide
+       orientation="horizontal"
+       position="629"
+       id="guide1307" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="449"
+       id="guide1309" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="269"
+       id="guide1311" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="496"
+       id="guide1313" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="361"
+       id="guide1315" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="226"
+       id="guide1317" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="631"
+       id="guide1319" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="766"
+       id="guide1321" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="91"
+       id="guide1345" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="901"
+       id="guide1347" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="539"
+       id="guide3390" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="359"
+       id="guide3392" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="280.5"
+       id="guide3324" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="172"
+       id="guide3326" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="427"
+       id="guide3328" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="711.5"
+       id="guide3340" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="179"
+       id="guide1395" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Benjamin Kosnik</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       y="562.32806"
+       x="237.8916"
+       height="23.200001"
+       width="80.769417"
+       id="rect1495"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1497"
+       width="80.769417"
+       height="23.200001"
+       x="132.8916"
+       y="562.32806" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1493"
+       width="80.769417"
+       height="23.200001"
+       x="21.891602"
+       y="562.32806" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1425"
+       width="141.64481"
+       height="23.200001"
+       x="209.57762"
+       y="382.56177" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3378"
+       width="141.64481"
+       height="23.200001"
+       x="640.77765"
+       y="382.56177" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans;stroke-miterlimit:4;stroke-dasharray:none"
+       x="710.40002"
+       y="397.09772"
+       id="use1337"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1391"
+         x="710.40003"
+         y="397.09772">basic_hash_table_tag</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="280"
+       y="397.09772"
+       id="text1339"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1385"
+         x="280"
+         y="397.09772">basic_tree_tag</tspan></text>
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3418"
+       width="141.64481"
+       height="23.200001"
+       x="101.57762"
+       y="472.5618" />
+    <rect
+       y="472.5618"
+       x="317.57761"
+       height="23.200001"
+       width="141.64481"
+       id="rect3420"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="171.20001"
+       y="486.29773"
+       id="text3394"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1387"
+         x="171.20001"
+         y="486.29773">tree_tag</tspan></text>
+    <text
+       sodipodi:linespacing="100%"
+       id="text3400"
+       y="486.29773"
+       x="388.39999"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1389"
+         x="388.39999"
+         y="486.29773">trie_tag</tspan></text>
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3380"
+       width="141.64481"
+       height="23.200001"
+       x="425.57764"
+       y="292.56177" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="495.20001"
+       y="307.09772"
+       id="text1323"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1384"
+         x="495.20001"
+         y="307.09772">associative_container_tag</tspan></text>
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 170.97058,472.5 L 170.97058,451 L 387.51871,450 L 387.51871,472.5"
+       id="path2244" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 280.5,450.53297 L 280.5,410.62445"
+       id="path3332" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3422"
+       width="141.64481"
+       height="23.200001"
+       x="533.57764"
+       y="472.5618" />
+    <rect
+       y="472.5618"
+       x="748.77765"
+       height="23.200001"
+       width="141.64481"
+       id="rect3424"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text3406"
+       y="486.29773"
+       x="601.20001"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1393"
+         x="601.20001"
+         y="486.29773">cc_hash_table_tag</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="818"
+       y="486.29773"
+       id="text3412"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1395"
+         x="818"
+         y="486.29773">gp_hash_table_tag</tspan></text>
+    <path
+       id="path3353"
+       d="M 601.47058,472.5 L 601.47058,451 L 818.01871,450 L 818.01871,472.5"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <path
+       id="path3355"
+       d="M 711,450.53297 L 711,410.62445"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       id="path3344"
+       d="M 281.18218,383.28102 L 281.18218,361.78102 L 711.79281,360.78102 L 711.79281,383.28102"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
+    <rect
+       y="383.1962"
+       x="425.625"
+       height="23.200001"
+       width="141.64481"
+       id="rect3376"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       sodipodi:linespacing="100%"
+       id="use1329"
+       y="397.73215"
+       x="497.24741"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1382"
+         x="497.24741"
+         y="397.73215">list_update_tag</tspan></text>
+    <path
+       id="path3347"
+       d="M 497.79886,384.13056 L 497.79886,323.40547"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="61.152512"
+       y="577.07874"
+       id="text1423"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1418"
+         x="61.152512"
+         y="577.07874">rb_tree_tag</tspan></text>
+    <text
+       sodipodi:linespacing="100%"
+       id="text1427"
+       y="577.07874"
+       x="277.95251"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1414"
+         x="277.95252"
+         y="577.07874">splay_tree_tag</tspan></text>
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none"
+       d="M 61.42308,563.28102 L 61.42308,541.78102 L 277.97121,540.78102 L 277.97121,563.28102"
+       id="path1431" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 170.9525,561.5357 L 170.9525,503.81235"
+       id="path1433" />
+    <rect
+       y="562.17499"
+       x="347.8916"
+       height="23.200001"
+       width="80.769417"
+       id="rect1469"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.94391561;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text1471"
+       y="576.71094"
+       x="388.80002"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1412"
+         x="388.80002"
+         y="576.71094">pat_trie_tag</tspan></text>
+    <path
+       id="path1475"
+       d="M 389.35146,563.10936 L 389.35146,502.38427"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="173.95251"
+       y="577.07874"
+       id="text1487"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1416"
+         x="173.95251"
+         y="577.07874">ov_tree_tag</tspan></text>
+  </g>
+</svg>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html
new file mode 100644
index 000000000000..245b81c9409d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_container_traits.html
@@ -0,0 +1,170 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>container_traits Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>container_traits</tt> Interface</h1>
+
+    <p>Traits of an associative-container based on its underlying
+    data structure.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Cntnr59189" id="Cntnr59189"><b>class</b> Cntnr</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Container type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Container Attributes</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="invalidation_guarantee3793555937" id=
+"invalidation_guarantee3793555937">invalidation_guarantee</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Invalidation guarantee.
+</pre>
+        </td>
+
+        <td>
+          <p>Invalidation-guarantee type.</p>
+
+          <p>This is either <a href=
+          "basic_invalidation_guarantee.html"><span class=
+          "c2"><tt>basic_invalidation_guarantee</tt></span></a>,
+          <a href="point_invalidation_guarantee.html"><span class=
+          "c2"><tt>point_invalidation_guarantee</tt></span></a>, or
+          <a href="range_invalidation_guarantee.html"><span class=
+          "c2"><tt>range_invalidation_guarantee</tt></span></a></p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="order_preserving1910229172" id=
+"order_preserving1910229172">order_preserving</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+True only if Cntnr objects guarantee storing  keys by order.
+</pre>
+        </td>
+
+        <td>
+          <p>Order-preserving indicator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="erase_can_throw153323856" id=
+"erase_can_throw153323856">erase_can_throw</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+True only if erasing a key can throw.
+</pre>
+        </td>
+
+        <td>
+          <p>Erase-throw indicator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reverse_iteration894617078" id=
+"reverse_iteration894617078">reverse_iteration</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+True only reverse iterators are supported.
+</pre>
+        </td>
+
+        <td>
+          <p>Reverse iteration indicator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="split_join_can_throw3200477759" id=
+"split_join_can_throw3200477759">split_join_can_throw</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+True only if split or join operations can throw.
+</pre>
+        </td>
+
+        <td>
+          <p>Split-join throw indicator.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html
new file mode 100644
index 000000000000..6c501e26bbd6
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_design.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Associative Containers</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Associative-Container Design</h1>
+
+    <ol>
+      <li><a href="ds_gen.html">Data-Structure Genericity</a></li>
+
+      <li class="c1">Genericity discusses generic manipulation of
+      containers based on different underlying
+      data structures.</li>
+
+      <li class="c1">Genericity discusses generic manipulation of
+      containers with different mapping semantics.</li>
+
+      <li><a href="tree_based_containers.html">Tree-Based
+      Containers</a> describes the design and policies of
+      tree-based containers.</li>
+
+      <li><a href="trie_based_containers.html">Trie-Based
+      Containers</a> describes the design and policies of
+      trie-based containers.</li>
+
+      <li><a href="hash_based_containers.html">Hash-Based
+      Containers</a> describes the design and policies of
+      hash-based containers.</li>
+
+      <li><a href="lu_based_containers.html">List-Based
+      Containers</a> describes the design and policies of
+      list-based containers with update policies.</li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html
new file mode 100644
index 000000000000..6c166987fcb9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_examples.html
@@ -0,0 +1,174 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Examples</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Associative-Container Examples</h1>
+
+    <h2><a name="basic_usage" id="basic_usage">Basic Use</a></h2>
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/basic_map.cc"><tt>basic_map.cc</tt></a>
+      Basic use of "maps".</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/basic_set.cc"><tt>basic_set.cc</tt></a>
+      Basic use of "sets".</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/erase_if.cc"><tt>erase_if.cc</tt></a>
+      Conditionally erasing values from a container object.</li>
+    </ol>
+
+    <h2><a name="generics" id="generics">Generics</a></h2>
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/assoc_container_traits.cc"><tt>assoc_container_traits.cc</tt></a>
+      Using <a href=
+      "assoc_container_traits.html"><tt>container_traits</tt></a> to query
+      about underlying data structure behavior.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_find_neg.cc"><tt>hash_find_neg.cc</tt></a>
+      A non-compiling example showing wrong use of finding keys in
+      hash-based containers.</li>
+    </ol>
+
+    <h2><a name="hash_based" id="hash_based">Hash-Based
+    Containers</a></h2>
+
+  
+    <h3><a name="resize_related" id="resize_related">Resize
+    Related</a></h3>
+
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_initial_size.cc"><tt>hash_initial_size.cc</tt></a>
+      Setting the initial size of a hash-based container
+      object.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_resize_neg.cc"><tt>hash_resize_neg.cc</tt></a>
+      A non-compiling example showing how not to resize a
+      hash-based container object.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_resize.cc"><tt>hash_resize.cc</tt></a>
+      Resizing the size of a hash-based container object.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_illegal_resize.cc"><tt>hash_illegal_resize.cc</tt></a>
+      Showing an illegal resize of a hash-based container
+      object.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_load_set_change.cc"><tt>hash_load_set_change.cc</tt></a>
+      Changing the load factors of a hash-based container
+      object.</li>
+    </ol>
+
+    <h3><a name="hash_related" id="hash_related">Hash-Function
+    Related</a></h3>
+
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_mod.cc"><tt>hash_mod.cc</tt></a>
+      Using a modulo range-hashing function for the case of an
+      unknown skewed key distribution.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/hash_shift_mask.cc"><tt>shift_mask.cc</tt></a>
+      Writing a range-hashing functor for the case of a known
+      skewed key distribution.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/store_hash.cc"><tt>store_hash.cc</tt></a>
+      Storing the hash value along with each key.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/ranged_hash.cc"><tt>ranged_hash.cc</tt></a>
+      Writing a ranged-hash functor.</li>
+    </ol>
+
+    <h2><a name="tree_like_based" id=
+    "tree_like_based">Tree-Like Containers (Trees and
+    Tries)</a></h2>
+
+ 
+    <h3><a name="node_invariants" id=
+    "node_invariants">Node-Invariants</a></h3>
+
+ 
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/tree_order_statistics.cc"><tt>tree_order_statistics.cc</tt></a>
+      Using trees for order statistics.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/tree_intervals.cc"><tt>tree_intervals.cc</tt></a>
+      Augmenting trees to support operations on line
+      intervals.</li>
+    </ol>
+
+    <h3><a name="split_join" id="split_join">Split and
+    Join</a></h3>
+
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/tree_join.cc"><tt>tree_join.cc</tt></a>
+      Joining two tree-based container objects.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/trie_split.cc"><tt>trie_split.cc</tt></a>
+      Splitting a PATRICIA trie container object.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/tree_order_statistics_join.cc"><tt>tree_order_statistics_join.cc</tt></a>
+      Order statistics while joining two tree-based container
+      objects.</li>
+    </ol>
+
+    <h2><a name="trie_based" id="trie_based">Trie-Based
+    Containers</a></h2>
+
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/trie_dna.cc"><tt>trie_dna.cc</tt></a>
+      Using a PATRICIA trie for DNA strings.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/trie_prefix_search.cc"><tt>trie_prefix_search.cc</tt></a>
+      Using a PATRICIA trie for finding all entries whose key
+      matches a given prefix.</li>
+    </ol>
+
+    <h2><a name="mmaps" id="mmaps">"Multimaps" and
+    "Multisets".</a></h2>
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/basic_multimap.cc"><tt>basic_multimap.cc</tt></a>
+      Basic use of "multimaps".</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/basic_multiset.cc"><tt>basic_multiset.cc</tt></a>
+      Basic use of "multisets".</li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html
new file mode 100644
index 000000000000..642f8480953a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_performance_tests.html
@@ -0,0 +1,345 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Associative-Container Performance Tests</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1><a name="assoc" id="assoc">Associative-Container
+    Performance Tests</a></h1>
+<h2><a name="settings" id="settings">Settings</a></h2>
+<p>This section describes performance tests and their results.
+    In the following, <a href="#gcc"><u>g++</u></a>, <a href="#msvc"><u>msvc++</u></a>, and <a href="#local"><u>local</u></a> (the build used for generating this
+    documentation) stand for three different builds:</p>
+<div id="gcc_settings_div">
+<div class="c1">
+<h3><a name="gcc" id="gcc"><u>g++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.644</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform -
+          Linux-2.6.12-9-386-i686-with-debian-testing-unstable</li>
+<li>Compiler - g++ (GCC) 4.0.2 20050808 (prerelease)
+          (Ubuntu 4.0.1-4ubuntu9) Copyright (C) 2005 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.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="msvc_settings_div">
+<div class="c1">
+<h3><a name="msvc" id="msvc"><u>msvc++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.554</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform - Windows XP Pro</li>
+<li>Compiler - Microsoft (R) 32-bit C/C++ Optimizing
+          Compiler Version 13.10.3077 for 80x86 Copyright (C)
+          Microsoft Corporation 1984-2002. All rights
+          reserved.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="local_settings_div"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h3><a name = "local"><u>local</u></a></h3><ul>
+<li>CPU speed - cpu MHz		: 2250.000</li>
+<li>Memory - MemTotal:      2076248 kB</li>
+<li>Platform - Linux-2.6.16-1.2133_FC5-i686-with-redhat-5-Bordeaux</li>
+<li>Compiler - g++ (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)
+Copyright (C) 2006 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.
+</li>
+</ul>
+</div><div style = "width: 100%; height: 20px"></div></div>
+<h2><a name="assoc_tests" id="assoc_tests">Tests</a></h2>
+<h3><a name="hash_based" id="hash_based">Hash-Based
+    Containers</a></h3>
+<ol>
+<li><a href="hash_text_find_find_timing_test.html">Hash-Based
+      Text <tt>find</tt> Find Timing Test</a></li>
+<li><a href="hash_random_int_find_find_timing_test.html">Hash-Based
+      Random-Integer <tt>find</tt> Find Timing Test</a></li>
+<li><a href="hash_random_int_subscript_find_timing_test.html">Hash-Based
+      Random-Integer Subscript Find Timing Test</a></li>
+<li><a href="hash_random_int_subscript_insert_timing_test.html">Hash-Based
+      Random-Integer Subscript Insert Timing Test</a></li>
+<li><a href="hash_zlob_random_int_find_find_timing_test.html">Hash-Based
+      Skewed-Distribution Random-Integer <tt>find</tt> Find Timing
+      Test</a></li>
+<li><a href="hash_random_int_erase_mem_usage_test.html">Hash-Based Erase
+      Memory Use Test</a></li>
+</ol>
+<h3><a name="tree_like_based" id="tree_like_based">Tree-Like-Based Containers</a></h3>
+<ol>
+<li><a href="tree_text_insert_timing_test.html">Tree-Based
+      and Trie-Based Text Insert Timing Test</a></li>
+<li><a href="tree_text_find_find_timing_test.html">Tree-Based
+      and Trie-Based Text <tt>find</tt> Find Timing Test</a></li>
+<li><a href="tree_text_lor_find_find_timing_test.html">Tree-Based
+      Locality-of-Reference Text <tt>find</tt> Find Timing
+      Test</a></li>
+<li><a href="tree_random_int_find_find_timing_test.html">Tree-Based
+      Random-Integer <tt>find</tt> Find Timing Test</a></li>
+<li><a href="tree_split_join_timing_test.html">Tree Split and
+      Join Timing Test</a></li>
+<li><a href="tree_order_statistics_timing_test.html">Tree
+      Order-Statistics Timing Test</a></li>
+</ol>
+<h3><a name="multimaps" id="multimaps">Multimaps</a></h3>
+<ol>
+<li><a href="multimap_text_find_timing_test_small.html">"Multimap"
+      Text Find Timing Test with <u>Small</u> Average Secondary-Key
+      to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_find_timing_test_large.html">"Multimap"
+      Text Find Timing Test with <u>Large</u> Average Secondary-Key
+      to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_timing_test_small.html">"Multimap"
+      Text Insert Timing Test with <u>Small</u> Average
+      Secondary-Key to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_timing_test_large.html">"Multimap"
+      Text Insert Timing Test with <u>Large</u> Average
+      Secondary-Key to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_mem_usage_test_small.html">"Multimap"
+      Text Insert Memory-Use Test with <u>Small</u> Average
+      Secondary-Key to Primary-Key Ratio</a></li>
+<li><a href="multimap_text_insert_mem_usage_test_large.html">"Multimap"
+      Text Insert Memory-Use Test with <u>Large</u> Average
+      Secondary-Key to Primary-Key Ratio</a></li>
+</ol>
+<h2><a name="assoc_observations" id="assoc_observations">Observations</a></h2>
+<h3><a name="dss_family_choice" id="dss_family_choice">Underlying Data-Structure Families</a></h3>
+<p>In general, hash-based containers (see <a href="hash_based_containers.html">Design::Associative
+    Containers::Hash-Based Containers</a>) have better timing
+    performance than containers based on different underlying-data
+    structures. The main reason to choose a tree-based (see
+    <a href="tree_based_containers.html">Design::Associative
+    Containers::Tree-Based Containers</a>) or trie-based container
+    (see <a href="trie_based_containers.html">Design::Associative
+    Containers::Trie-Based Containers</a>) is if a byproduct of the
+    tree-like structure is required: either order-preservation, or
+    the ability to utilize node invariants (see <a href="tree_based_containers.html#invariants">Design::Associative
+    Containers::Tree-Based Containers::Node Invariants</a> and
+    <a href="trie_based_containers.html#invariants">Design::Associative
+    Containers::Trie-Based Containers::Node Invariants</a>). If
+    memory-use is the major factor, an ordered-vector tree (see
+    <a href="tree_based_containers.html">Design::Associative
+    Containers::Tree-Based Containers</a>) gives optimal results
+    (albeit with high modificiation costs), and a list-based
+    container (see <a href="lu_based_containers.html">Design::Associative
+    Containers::List-Based Containers</a>) gives reasonable
+    results.</p>
+<h3><a name="hash_based_types" id="hash_based_types">Hash-Based
+    Container Types</a></h3>
+<p>Hash-based containers are typically either collision
+    chaining or probing (see <a href="hash_based_containers.html">Design::Associative
+    Containers::Hash-Based Containers</a>). Collision-chaining
+    containers are more flexible internally, and so offer better
+    timing performance. Probing containers, if used for simple
+    value-types, manage memory more efficiently (they perform far
+    fewer allocation-related calls). In general, therefore, a
+    collision-chaining table should be used. A probing container,
+    conversely, might be used efficiently for operations such as
+    eliminating duplicates in a sequence, or counting the number of
+    occurrences within a sequence. Probing containers might be more
+    useful also in multithreaded applications where each thread
+    manipulates a hash-based container: in the STL, allocators have
+    class-wise semantics (see [<a href="references.html#meyers96more">meyers96more</a>] - Item 10); a
+    probing container might incur less contention in this case.</p>
+<h3><a name="hash_based_policies" id="hash_based_policies">Hash-Based Containers' Policies</a></h3>
+<p>In hash-based containers, the range-hashing scheme (see
+    <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Hash-Based Containers::Hash Policies</a>) seems to
+    affect performance more than other considerations. In most
+    settings, a mask-based scheme works well (or can be made to
+    work well). If the key-distribution can be estimated a-priori,
+    a simple hash function can produce nearly uniform hash-value
+    distribution. In many other cases (<i>e.g.</i>, text hashing,
+    floating-point hashing), the hash function is powerful enough
+    to generate hash values with good uniformity properties
+    [<a href="references.html#knuth98sorting">knuth98sorting</a>];
+    a modulo-based scheme, taking into account all bits of the hash
+    value, appears to overlap the hash function in its effort.</p>
+<p>The range-hashing scheme determines many of the other
+    policies (see <a href="hash_based_containers.html#policy_interaction">Design::Hash-Based
+    Containers::Policy Interaction</a>). A mask-based scheme works
+    well with an exponential-size policy (see <a href="hash_based_containers.html#resize_policies">Design::Associative
+    Containers::Hash-Based Containers::Resize Policies</a>) ; for
+    probing-based containers, it goes well with a linear-probe
+    function (see <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Hash-Based Containers::Hash Policies</a>).</p>
+<p>An orthogonal consideration is the trigger policy (see
+    <a href="hash_based_containers.html#resize_policies">Design::Associative
+    Containers::Hash-Based Containers::Resize Policies</a>). This
+    presents difficult tradeoffs. <i>E.g.</i>, different load
+    factors in a load-check trigger policy yield a
+    space/amortized-cost tradeoff.</p>
+<h3><a name="tree_like_based_types" id="tree_like_based_types">Tree-Like-Based Container
+    Types</a></h3>
+<p>In general, there are several families of tree-based
+    underlying data structures: balanced node-based trees
+    (<i>e.g.</i>, red-black or AVL trees), high-probability
+    balanced node-based trees (<i>e.g.</i>, random treaps or
+    skip-lists), competitive node-based trees (<i>e.g.</i>, splay
+    trees), vector-based "trees", and tries. (Additionally, there
+    are disk-residing or network-residing trees, such as B-Trees
+    and their numerous variants. An interface for this would have
+    to deal with the execution model and ACID guarantees; this is
+    out of the scope of this library.) Following are some
+    observations on their application to different settings.</p>
+<p>Of the balanced node-based trees, this library includes a
+    red-black tree (see <a href="tree_based_containers.html">Design::Associative
+    Containers::Tree-Based Containers</a>), as does STL (in
+    practice). This type of tree is the "workhorse" of tree-based
+    containers: it offers both reasonable modification and
+    reasonable lookup time. Unfortunately, this data structure
+    stores a huge amount of metadata. Each node must contain,
+    besides a value, three pointers and a boolean. This type might
+    be avoided if space is at a premium [<a href="references.html#austern00noset">austern00noset</a>].</p>
+<p>High-probability balanced node-based trees suffer the
+    drawbacks of deterministic balanced trees. Although they are
+    fascinating data structures, preliminary tests with them showed
+    their performance was worse than red-black trees. The library
+    does not contain any such trees, therefore.</p>
+<p>Competitive node-based trees have two drawbacks. They are
+    usually somewhat unbalanced, and they perform a large number of
+    comparisons. Balanced trees perform one comparison per each
+    node they encounter on a search path; a splay tree performs two
+    comparisons. If the keys are complex objects, <i>e.g.</i>,
+    <tt>std::string</tt>, this can increase the running time.
+    Conversely, such trees do well when there is much locality of
+    reference. It is difficult to determine in which case to prefer
+    such trees over balanced trees. This library includes a splay
+    tree (see <a href="tree_based_containers.html">Design::Associative
+    Containers::Tree-Based Containers</a>).</p>
+<p>Ordered-vector trees (see <a href="tree_based_containers.html">Design::Associative
+    Containers::Tree-Based Containers</a>) use very little space
+    [<a href="references.html#austern00noset">austern00noset</a>].
+    They do not have any other advantages (at least in this
+    implementation).</p>
+<p>Large-fan-out PATRICIA tries (see <a href="trie_based_containers.html">Design::Associative
+    Containers::Trie-Based Containers</a>) have excellent lookup
+    performance, but they do so through maintaining, for each node,
+    a miniature "hash-table". Their space efficiency is low, and
+    their modification performance is bad. These tries might be
+    used for semi-static settings, where order preservation is
+    important. Alternatively, red-black trees cross-referenced with
+    hash tables can be used. [<a href="references.html#okasaki98mereable">okasaki98mereable</a>]
+    discusses small-fan-out PATRICIA tries for integers, but the
+    cited results seem to indicate that the amortized cost of
+    maintaining such trees is higher than that of balanced trees.
+    Moderate-fan-out trees might be useful for sequences where each
+    element has a limited number of choices, <i>e.g.</i>, DNA
+    strings (see <a href="assoc_examples.html#trie_based">Examples::Associative
+    Containers::Trie-Based Containers</a>).</p>
+<h3><a name="msc" id="msc">Mapping-Semantics
+    Considerations</a></h3>
+<p>Different mapping semantics were discussed in <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a> and
+    <a href="tutorial.html#assoc_ms">Tutorial::Associative
+    Containers::Associative Containers Others than Maps</a>. We
+    will focus here on the case where a keys can be composed into
+    primary keys and secondary keys. (In the case where some keys
+    are completely identical, it is trivial that one should use an
+    associative container mapping values to size types.) In this
+    case there are (at least) five possibilities:</p>
+<ol>
+<li>Use an associative container that allows equivalent-key
+      values (such as <tt>std::multimap</tt>)</li>
+<li>Use a unique-key value associative container that maps
+      each primary key to some complex associative container of
+      secondary keys, say a tree-based or hash-based container (see
+      <a href="tree_based_containers.html">Design::Associative
+      Containers::Tree-Based Containers</a> and <a href="hash_based_containers.html">Design::Associative
+      Containers::Hash-Based Containers</a>)</li>
+<li>Use a unique-key value associative container that maps
+      each primary key to some simple associative container of
+      secondary keys, say a list-based container (see <a href="lu_based_containers.html">Design::Associative
+      Containers::List-Based Containers</a>)</li>
+<li>Use a unique-key value associative container that maps
+      each primary key to some non-associative container
+      (<i>e.g.</i>, <tt>std::vector</tt>)</li>
+<li>Use a unique-key value associative container that takes
+      into account both primary and secondary keys.</li>
+</ol>
+<p>We do not think there is a simple answer for this (excluding
+    option 1, which we think should be avoided in all cases).</p>
+<p>If the expected ratio of secondary keys to primary keys is
+    small, then 3 and 4 seem reasonable. Both types of secondary
+    containers are relatively lightweight (in terms of memory use
+    and construction time), and so creating an entire container
+    object for each primary key is not too expensive. Option 4
+    might be preferable to option 3 if changing the secondary key
+    of some primary key is frequent - one cannot modify an
+    associative container's key, and the only possibility,
+    therefore, is erasing the secondary key and inserting another
+    one instead; a non-associative container, conversely, can
+    support in-place modification. The actual cost of erasing a
+    secondary key and inserting another one depends also on the
+    allocator used for secondary associative-containers (The tests
+    above used the standard allocator, but in practice one might
+    choose to use, <i>e.g.</i>, [<a href="references.html#boost_pool">boost_pool</a>]). Option 2 is
+    definitely an overkill in this case. Option 1 loses out either
+    immediately (when there is one secondary key per primary key)
+    or almost immediately after that. Option 5 has the same
+    drawbacks as option 2, but it has the additional drawback that
+    finding all values whose primary key is equivalent to some key,
+    might be linear in the total number of values stored (for
+    example, if using a hash-based container).</p>
+<p>If the expected ratio of secondary keys to primary keys is
+    large, then the answer is more complicated. It depends on the
+    distribution of secondary keys to primary keys, the
+    distribution of accesses according to primary keys, and the
+    types of operations most frequent.</p>
+<p>To be more precise, assume there are <i>m</i> primary keys,
+    primary key <i>i</i> is mapped to <i>n<sub>i</sub></i>
+    secondary keys, and each primary key is mapped, on average, to
+    <i>n</i> secondary keys (<i>i.e.</i>,
+    <i><b>E</b>(n<sub>i</sub>) = n</i>).</p>
+<p>Suppose one wants to find a specific pair of primary and
+    secondary keys. Using 1 with a tree based container
+    (<tt>std::multimap</tt>), the expected cost is
+    <i><b>E</b>(&Theta;(log(m) + n<sub>i</sub>)) = &Theta;(log(m) +
+    n)</i>; using 1 with a hash-based container
+    (<tt>std::tr1::unordered_multimap</tt>), the expected cost is
+    <i>&Theta;(n)</i>. Using 2 with a primary hash-based container
+    and secondary hash-based containers, the expected cost is
+    <i>O(1)</i>; using 2 with a primary tree-based container and
+    secondary tree-based containers, the expected cost is (using
+    the Jensen inequality [<a href="references.html#motwani95random">motwani95random</a>])
+    <i><b>E</b>(O(log(m) + log(n<sub>i</sub>)) = O(log(m)) +
+    <b>E</b>(O(log(n<sub>i</sub>)) = O(log(m)) + O(log(n))</i>,
+    assuming that primary keys are accessed equiprobably. 3 and 4
+    are similar to 1, but with lower constants. Using 5 with a
+    hash-based container, the expected cost is <i>O(1)</i>; using 5
+    with a tree based container, the cost is
+    <i><b>E</b>(&Theta;(log(mn))) = &Theta;(log(m) +
+    log(n))</i>.</p>
+<p>Suppose one needs the values whose primary key matches some
+    given key. Using 1 with a hash-based container, the expected
+    cost is <i>&Theta;(n)</i>, but the values will not be ordered
+    by secondary keys (which may or may not be required); using 1
+    with a tree-based container, the expected cost is
+    <i>&Theta;(log(m) + n)</i>, but with high constants; again the
+    values will not be ordered by secondary keys. 2, 3, and 4 are
+    similar to 1, but typically with lower constants (and,
+    additionally, if one uses a tree-based container for secondary
+    keys, they will be ordered). Using 5 with a hash-based
+    container, the cost is <i>&Theta;(mn)</i>.</p>
+<p>Suppose one wants to assign to a primary key all secondary
+    keys assigned to a different primary key. Using 1 with a
+    hash-based container, the expected cost is <i>&Theta;(n)</i>,
+    but with very high constants; using 1 with a tree-based
+    container, the cost is <i>&Theta;(nlog(mn))</i>. Using 2, 3,
+    and 4, the expected cost is <i>&Theta;(n)</i>, but typically
+    with far lower costs than 1. 5 is similar to 1.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html
new file mode 100644
index 000000000000..178aadf985f6
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_regression_tests.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Associative-Container Regression Tests</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Associative-Container Regression Tests</h1>
+
+    <h2><a name="assoc_desc" id="assoc_desc">Description</a></h2>
+
+    <p>The library contains a single comprehensive regression test.
+    For a given container type in <tt>pb_ds</tt>, the test creates
+    an object of the container type and an object of the
+    corresponding STL type (<i>e.g.</i>, <tt>std::set</tt>). It
+    then performs a random sequence of methods with random
+    arguments (<i>e.g.</i>, inserts, erases, and so forth) on both
+    objects. At each operation, the test checks the return value of
+    the method, and optionally both compares <tt>pb_ds</tt>'s
+    object with the STL's object as well as performing other
+    consistency checks on <tt>pb_ds</tt>'s object (<i>e.g.</i>,
+    order preservation, when applicable, or node invariants, when
+    applicable).</p>
+
+    <p>Additionally, the test integrally checks exception safety
+    and resource leaks. This is done as follows. A special
+    allocator type, written for the purpose of the test, both
+    randomly throws an exceptions when allocations are performed,
+    and tracks allocations and de-allocations. The exceptions thrown
+    at allocations simulate memory-allocation failures; the
+    tracking mechanism checks for memory-related bugs (<i>e.g.</i>,
+    resource leaks and multiple de-allocations). Both
+    <tt>pb_ds</tt>'s containers and the containers' value-types are
+    configured to use this allocator.</p>
+
+    <p>Due to compiler constraints, the test is split into the
+    several sources, each checking only some containers.</p>
+
+    <h2><a name="assoc_tests" id="assoc_tests">Tests</a></h2>
+
+    <h3><a name="assoc_tests_set" id="assoc_tests_set">"Set"
+    Tests</a></h3>
+
+    <p>The following check all "set" types:</p>
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc"><tt>hash_no_data_map_rand.cc</tt></a>
+      checks all hash-based "set" types.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc"><tt>list_update_no_data_map_rand.cc</tt></a>
+      checks all list-based "set" types.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc"><tt>tree_no_data_map_rand.cc</tt></a>
+      checks all tree-based "set" types.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc"><tt>trie_no_data_map_rand.cc</tt></a>
+      checks all PATRICIA-trie-based "set" types.</li>
+    </ol>
+
+    <h3><a name="assoc_tests_map" id="assoc_tests_map">"Map"
+    Tests</a></h3>
+
+    <p>The following check all "map" types:</p>
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/hash_data_map_rand.cc"><tt>hash_data_map_rand.cc</tt></a>
+      checks all hash-based "map" types.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc"><tt>list_update_data_map_rand.cc</tt></a>
+      checks all list-based "map" types.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/tree_data_map_rand.cc"><tt>tree_data_map_rand.cc</tt></a>
+      checks all tree-based "map" types.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/regression/trie_data_map_rand.cc"><tt>trie_data_map_rand.cc</tt></a>
+      checks all PATRICIA-trie-based "map" types.</li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html
new file mode 100644
index 000000000000..6e4474945d32
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/assoc_tests.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Associative-Container Tests</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Associative-Container Tests</h1>
+
+    <p><a href="assoc_regression_tests.html">Associative-Container
+    Regression Tests</a> describes the regression tests; <a href=
+    "assoc_performance_tests.html">Associative-Container
+    Performance Tests</a> describes the performance tests.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html
new file mode 100644
index 000000000000..5c44efe231c7
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/associative_container_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>associative_container_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>associative_container_tag</tt> Interface</h1>
+
+    <p>Basic associative-container data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="container_tag.html"><span class=
+"c2"><tt>container_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/balls_and_bins.png b/libstdc++-v3/docs/html/ext/pb_ds/balls_and_bins.png
new file mode 100644
index 0000000000000000000000000000000000000000..529c3ae41bc45cabbeeecd17a3a88d6a82b59e5b
GIT binary patch
literal 10139
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
Remvl%B(Ek{AY=08{{TMDT&Vy6

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html
new file mode 100644
index 000000000000..a6c569c2bb14
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_table.html
@@ -0,0 +1,436 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>basic_hash_table Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>basic_hash_table</tt> Interface</h1>
+
+    <p>An abstract basic hash-based associative container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Hash_Fn1515835" id=
+"Hash_Fn1515835"><b>class</b> Hash_Fn</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Hash functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Resize_Policy566860465" id=
+"Resize_Policy566860465"><b>class</b> Resize_Policy</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Resize policy.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Store_Hash218262104" id=
+"Store_Hash218262104"><b>bool</b> Store_Hash</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether the hash value will be stored along
+          with each key.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped-structure tag.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="hash_fn2015995" id="hash_fn2015995">hash_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Hash functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="resize_policy4084493169" id=
+"resize_policy4084493169">resize_policy</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Resize policy type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="store_hash280766104" id=
+"store_hash280766104">store_hash</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Store_Hash218262104"><tt>Store_Hash</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether a hash value is stored with each
+          entry.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~basic_hash_table
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#hash_fn2015995"><tt>hash_fn</tt></a> &amp;
+  get_hash_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#hash_fn2015995"><tt>hash_fn</tt></a> object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href="#hash_fn2015995"><tt>hash_fn</tt></a> &amp;
+  get_hash_fn
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#hash_fn2015995"><tt>hash_fn</tt></a> object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#eq_fn80245"><tt>eq_fn</tt></a> &amp;
+  get_eq_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href="#eq_fn80245"><tt>eq_fn</tt></a>
+          object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href="#eq_fn80245"><tt>eq_fn</tt></a> &amp;
+  get_eq_fn
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#eq_fn80245"><tt>eq_fn</tt></a> object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;
+  get_resize_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#resize_policy4084493169"><tt>resize_policy</tt></a>
+          object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;
+  get_resize_policy
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#resize_policy4084493169"><tt>resize_policy</tt></a>
+          object.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link8" id="link8">Private Methods</a></h2>
+
+    <h3><a name="link9" id="link9">Resize Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <b>void</b> 
+  do_resize
+  (size_type new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Resizes the container object to <span class=
+          "c1"><tt>new_size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html
new file mode 100644
index 000000000000..8110c0dfc4fe
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_hash_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>basic_hash_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>basic_hash_tag</tt> Interface</h1>
+
+    <p>Basic hash data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="associative_container_tag.html"><span class=
+"c2"><tt>associative_container_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html
new file mode 100644
index 000000000000..c4c242bbdedf
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_invalidation_guarantee.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>basic_invalidation_guarantee Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>basic_invalidation_guarantee</tt> Interface</h1>
+
+    <p>Signifies a basic invalidation guarantee that any iterator,
+    pointer, or reference to a container object's mapped value type
+    is valid as long as the container is not modified.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html
new file mode 100644
index 000000000000..f66d7a9f7a67
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree.html
@@ -0,0 +1,660 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>basic_tree Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>basic_tree</tt> Interface</h1>
+
+    <p>An abstract basic tree-like-based associative container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped-structure tag.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Update841554648" id=
+"Node_Update841554648"><b>class</b> Node_Update</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node updater.</p>
+
+          <p>Restores node-invariants when invalidated.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Policy_Tl42017403" id=
+"Policy_Tl42017403"><b>class</b> Policy_Tl</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Policy typelist.</p>
+
+          <p>Contains subclasses' policies.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#Node_Update841554648"><tt>Node_Update</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">Key-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>::const_key_reference
+</pre>
+        </td>
+
+        <td>
+          <p>Const key reference type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="node_update2404554648" id=
+"node_update2404554648">node_update</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Node_Update841554648"><tt>Node_Update</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node updater type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>::const_iterator
+</pre>
+        </td>
+
+        <td>
+          <p>Const range-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>::iterator
+</pre>
+        </td>
+
+        <td>
+          <p>Range-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reverse_iterator4151293083" id=
+"const_reverse_iterator4151293083">const_reverse_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Const reverse range-type iterator.
+</pre>
+        </td>
+
+        <td>
+          <p>Const reverse range-type <a href=
+          "#iterator10418194"><tt>iterator</tt></a>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reverse_iterator1896910345" id=
+"reverse_iterator1896910345">reverse_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Reverse range-type iterator.<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then this is synonymous to <a href="#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Reverse range-type <a href=
+          "#iterator10418194"><tt>iterator</tt></a>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link7" id="link7">Public Methods</a></h2>
+
+    <h3><a name="link8" id="link8">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~basic_tree
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Policy Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#node_update2404554648"><tt>node_update</tt></a> &amp;
+  get_node_update
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#node_update2404554648"><tt>node_update</tt></a>
+          object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href=
+"#node_update2404554648"><tt>node_update</tt></a> &amp;
+  get_node_update
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#node_update2404554648"><tt>node_update</tt></a>
+          object.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Find Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+  lower_bound
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the entry whose key is the smallest one at least as
+          large as <span class="c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+  lower_bound
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <tt><b>const</b></tt> <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the entry whose key is the smallest one at least as
+          large as <span class="c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+  upper_bound
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the entry whose key is the smallest one larger than
+          <span class="c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+  upper_bound
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a>
+          corresponding to the entry whose key is the smallest one
+          larger than <span class="c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link11" id="link11">Erase Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+  erase
+  (<a href="#iterator10418194"><tt>iterator</tt></a> it)
+</pre>
+        </td>
+
+        <td>
+          <p>Erases the value_type corresponding to the <a href=
+          "#iterator10418194"><tt>iterator</tt></a> <span class=
+          "c1"><tt>it</tt></span>. Returns the <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the next value_type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+  erase
+  (<a href=
+"#reverse_iterator1896910345"><tt>reverse_iterator</tt></a> it)
+</pre>
+        </td>
+
+        <td>
+          <p>Erases the value_type corresponding to the <a href=
+          "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+          <span class="c1"><tt>it</tt></span>. Returns the <a href=
+          "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+          corresponding to the previous value_type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link12" id="link12">Iteration Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+  rbegin
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+          corresponding to the last value_type in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+  rbegin
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+          corresponding to the last value_type in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+  rend
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#reverse_iterator1896910345"><tt>reverse_iterator</tt></a>
+          corresponding to the just-before-first value_type in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+  rend
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_reverse_iterator4151293083"><tt>const_reverse_iterator</tt></a>
+          corresponding to the just-before-first value_type in the
+          container.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link13" id="link13">Split and join
+    Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  join
+  (<span class=
+"c2"><tt>basic_tree</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Joins two trees. When this function returns,
+          <span class="c1"><tt>other</tt></span> will be
+          empty.</p>
+
+          <p>When calling this method, <span class=
+          "c1"><tt>other</tt></span>'s keys must be all larger or
+          all smaller than this object's keys, and <span class=
+          "c1"><tt>other</tt></span>'s policies must be
+          equivalent to this object's policies.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  split
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key, 
+    <span class=
+"c2"><tt>basic_tree</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Splits into two trees. When this function returns,
+          <span class="c1"><tt>other</tt></span> will contain
+          only keys larger than <span class=
+          "c1"><tt>r_key</tt></span>.</p>
+
+          <p>When calling this method, <span class=
+          "c1"><tt>other</tt></span>'s policies must be
+          equivalent to this object's policies.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html
new file mode 100644
index 000000000000..5647f551e950
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_assoc_container_const_node_iterator.html
@@ -0,0 +1,383 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>tree::const_node_iterator
+  Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt><span class=
+    "c2"><tt>tree</tt></span>::const_node_iterator</tt>
+    Interface</h1>
+
+    <p>Const node iterator.</p>
+
+    <p>This is an &amp;qout;iterator to an iterator&amp;qout; - it
+    iterates over nodes, and de-referencing it returns one of the
+    tree's iterators</p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">Iterator Definitions</a></h3>
+
+    <table class="c2" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator_category2821876439" id=
+"iterator_category2821876439">iterator_category</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+trivial_iterator_tag
+</pre>
+        </td>
+
+        <td>
+          <p>Category.</p>
+
+          <p>This tag identifies that the iterator has none of the
+          STL's iterators' movement abilities.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre class="c1">
+void
+</pre>
+        </td>
+
+        <td>
+          <p>Difference type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link3" id="link3">Value-Type Definitions</a></h3>
+
+    <p>Note that a node iterator's value type is actually a tree
+    iterator.</p>
+
+    <table class="c2" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's value type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's reference type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's const <a href=
+          "#reference54418471"><tt>reference</tt></a> type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Metadata Definitions</a></h3>
+
+    <p>These are only defined if <a href=
+    "basic_tree.html#Node_Update841554648"><span class="c2">
+    <tt>basic_tree</tt></span>::Node_Update</a>
+    is not <a href="null_tree_node_update.html"><span class=
+    "c2"><tt>null_tree_node_update</tt></span></a></p>
+
+    <table class="c2" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<tt><b>typename</b></tt> <a href=
+"basic_tree.html#Node_Update841554648"><span class="c2"><tt>basic_tree</tt></span>::Node_Update</a><tt>::metadata_type</tt>
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> Allocator::<b>template</b> rebind&lt;
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const metadata <a href=
+          "#reference54418471"><tt>reference</tt></a> type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c2" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> 
+  const_node_iterator
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Access Methods</a></h3>
+
+    <table class="c2" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_reference495461441"><tt>const_reference</tt></a>
+  <b>operator</b>*
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Access.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Metadata Access Methods</a></h3>
+
+    <p>These are only defined if <a href=
+    "basic_tree.html#Node_Update841554648"><span class="c2">
+    <tt>basic_tree</tt></span>::Node_Update</a>
+    is not <a href="null_tree_node_update.html"><span class=
+    "c2"><tt>null_tree_node_update</tt></span></a></p>
+
+    <table class="c2" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_metadata_reference1108857465"><tt>const_metadata_reference</tt></a>
+  get_metadata
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata access.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Movement Methods</a></h3>
+
+    <table class="c2" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <span class="c2"><tt>const_node_iterator</tt></span>
+  get_l_child
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the const node iterator associated with the
+          left node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <span class="c2"><tt>const_node_iterator</tt></span>
+  get_r_child
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the const node iterator associated with the
+          right node.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Comparison Methods</a></h3>
+
+    <table class="c2" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  <b>operator</b>==
+  (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Compares to a different iterator object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  <b>operator</b>!=
+  (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Compares (negatively) to a different iterator
+          object.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html
new file mode 100644
index 000000000000..c35ecad4a2d7
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/basic_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>basic_tree_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>basic_tree_tag</tt> Interface</h1>
+
+    <p>Basic tree-like data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="associative_container_tag.html"><span class=
+"c2"><tt>associative_container_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html
new file mode 100644
index 000000000000..47f42477be32
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/binary_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>binary_heap_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>binary_heap_tag</tt> Interface</h1>
+
+    <p>Binary-heap (array-based) data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..07f0953a661467d0953c8cf555161522bdc26b89
GIT binary patch
literal 5357
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..76e02f134f01c94919c0abf6d8912bd380b6e01e
GIT binary patch
literal 6710
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
aLFJ}~Z(p-ykp3S8(NfpHU843d<i7y+X~wPq

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/binary_priority_queue_random_int_push_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..b8a3b237124d077b6af7aebf5c169fc25dcb9c2c
GIT binary patch
literal 5373
zcmcgwXHZky+Kxv#ieN8*C~%~M5Fmg`5fG7Hq=+B{5C|Y3NGFu2G>?=h(jp>N1f@t<
zAVvj5A@rtTi1ZRjq=X=l?7PC5b7t<`nQ!j*{rL6_%)I+u>v^B&dDq@+?fhwGqPuVJ
ziM=owY@fc~C36_;H#iKo!(-1*aL0M#+!GjVC(O*qQU`=E7y<@E!C*KTj0l54><EE?
zAy6;`4u&AY5D+_wLcmZc7zzhN5n(8ZJr;+6;ZQIf4u&Jba1eVc5dkBjU_=~@NQ4m~
zfCPgOFbD;Ma4?7ngFpbV0W`n@lfh_+U59<45C|LsK|~-Rc3BXiPzV$bfg&PM5Ss-^
z;!p@24uK;ga1fgm7)wMUh&Tk1h#*3MBbbVSPzVTzfQSePR0XU77$6N;0$Lyk3Il8a
z4Y0suh%Ja6gA0d35m6|Jtq+t15e|pK5m7jZEf=r=Ng@tKB%+8AP!C9fu_y?Kf`}*x
z$OC==nqW4t1Ly}NfI`3;fC18gB^U~LfWiP9Km#m@?HoG|VsH_0IEZZ|&<Dzbh)Bc{
zA>b>J3s`_84kF?p;3IGv7yx*I;lOC17FY@V05rjDU<cp?1OtVDH2?#o!Aw94@BoDY
zHh_lMEn<%bX%K@80v!WJ0)3z?h=>rxZs2zN*(|m@%I@cOlh~xTeP_3K+e$XaZFkt+
z-WJTJysd%V{B2rn1>2PXG*}LxOTav!X}i?+O8kHS=ZX$L1&VU|>e=|iU|fgUe>-|f
zkz3%VV1UlG01F>fK(LdaD@@12Oi0(=$3MW|+0Vl_K<J#jlB}FUdQjGJ80=7p{v|ET
zkf)1T@ikRa2QL>-DmrScIcuyv4l>cy(Nr|r#ZkquWe_g-n*G|3-61~D@i3`=^Y<Ld
zZZ17dxX=##on5QH9sVzZXs*>fYT=eJYrpmE^YG(VGmykTv!VxAmt*8tlMnp^HHOBY
z6HrtNFbK>KtHflV8s&E$qTA2dt2CP8gg0J}8s~dmXfKZ18sk1Y>#CmDe_a|Mh7{x@
z-{Uhb4lDci;i<Xpk^Hm=k3Y@3o)1jXcsgc)zs6{!_hZLoGU{Dtkro}}`o)MBqq;^h
ziZ5>)JJTzlKA1T$^R`ZX_^CsZgoSQGg+=`EC#8<*{wpls*z21OyV3Ie+IH~v9hoS9
zDS6C6i%ewlNIvUWwQm03@idE?!=HJ3ggkHpr>r8LNL}CGc0M&j<9@L*JnEDwVRsiY
z%;i(x^!?FUlA`DMl%*|8s89hz3R;L5RYQN-gWkcZH0x@|l+Q(8CR?qfhOQ<*I<Y$5
zEl4f2^OMD_Yr3LCZ?LfAoanhE)BN-VH7&THf+n0#3oew4qr>~Y-&vZJ^|TY4u{-<i
z`pJmliPmsu`6o6|o;?#)e9wMDA!F{2la0i4?0lB&$xr}LUB%LoE(#uclfn7<wsLm|
z&%4^B6QF1qCB5TU6djH_jrJXUBf-dv65Tf|D$H1OP@Xw3NN8+PkT`oD{r2ws^b3cu
z#U2W2$6(fphEFYCvq=eL0nX*!@-=g=7-qYt!1`AuS=&=hwFK$Ug3bMf=>XLK1<HP+
zvS6`ssagowh$B$r>D)FeaR+jE9-2iVJ4-R=vo#7VqL3%wU4xR9fNTz?{h0lI8ZX{u
z7yeGP%4%|}U8kMUeqa})Q;=>?hMOoi@S^+%@M1Hh`h^x`dHUy!w|A8G6a79^qNgP=
z=bG><eZx*8T_)jR+(tcJNyb&4%kKAJMen|EF>(}+6|av@pv%(qWw-7J>zQYbdpaLS
zvu^N)U5fv(d3v~TB?@n3)$jS_>R)Rlk}qo~#ih49xJ|$&4Zmx;znyb!-2Qc_2-~_%
z_!ayrN$!cyCE}yo$hE^6{?_&DJUQvf-&HR>LBG0-B*t27WeMgq6;^RM4RX0-4gAZI
z0UT9lY;EWYvLtK&f&;N?%31b%s*swPIz`5Oi+%Ntz@LMfLlh2+zDJG&DI;AKw;j{C
ze*e@LQ|$Fl9v!h<;;bePY9C)sZcN#MKl&mFpU{^_s}7W#eSU6$qEl%uHR_w2p3q;G
zzIzgqDC=$~rC^%LchfolhX*%#bzH1B+iP_+wySZMD^7^G%%Nzh{Q&v>wPS<^<a{>#
za#gc8?)1rMr(-`yhdO7*`S1$dSFiiXp3TnQ7oSiYPr5MLAxuwR4eoBvHu$KXbj$L1
z-}^HTsm4lJM&|O(4GH&Q`FKy!BbYXQI6C3tWIZ;85aorD)^W(Hh7{<Am))8m<IuWc
z&W~N9lT&G3#lNPEXbS;+W!Q%biL76y(n~(nesxTxtbyXqz}5V!3MR3el{ps|!K};3
z%UPi<Sn}PH)vtFWkg%U6*X(YSo~uus)uSsE=ld&9H=GQN>1#l9zDnoD{sCQQibc`u
zn-uJ_4LICPHD;)#i=^nxGAX>*X2UxU>HHtBW+ofWZ(TMcED-D%@2y2oxm)<n)rm}5
zSV1joZi}%{=5ptHQGcAXBu)4k>cxH)#=UHn!g%2ULmzY<zUt6cVdD~EHqqGM@|&l(
zvzj^oVSEPU&1_)#w2hc@Zw}M_uJA9PDGPT!YPty?gF8sg-@xjg<q-Kl20zlqiZIIl
zEXkSPP_4`o*K-ogDjYf=e)QO0d^J|4sdM17SwWH(d{G<vyT-*5Zo^b*w1=RF8uml8
z;hcks(C^t%>kYHdBh1^n;|UGB&`UcPZIi}ndFg9Q?PfzfV`jrx!ier~`ft6)X#%^i
zM}7L)_IhYQi>Forxn)l&wAr~R&`Kt?b3JL6ZYrjq;}$`wiYkvfb*?v<sY+G)7x35<
zGF}H><(-<KT~ybj-{4IZPI&9%r@v+YhQFM<qq^r!mg)me_r#%vEJ;BO4^@O$FtBHe
z+cQs}v%HgUkG%kf=hmh9ato6APMNzw*Aod`<bx?=yvzvcItOP@Aqv@BktG|h-Mwjc
zlm6p)CzowAV<?bT=(5mOQl<?z6*_79YC!e6GTc4+KJr=@tRcj8UEqWT;r*ez1Zruj
z)<%9Ad5Xh0d9qwOnWuUWC0L8ylt@U&qwWk#<!g(eX|Sz=w&aJL^fgW<oQaCLnA@16
ze-U3|IJ0+#!+3m?@;koFPqo7CG~E4gIkzreF1OWTcY{~E+`C<cM#%0HwcJq#G3)Sy
zO=(W#^YjOGk2T=#$AcvqN3mWa0(=YOX=6ueuPJl1j{-!&yZ^DxCclf5dCa4@hum~8
zx`5_n<yC$l?|J7zQ+iK9_yG$1K8|6eRGoT!$uhfRhUUZ!c^TBj9CA8h8VCo1qiIff
zaL1=QU9i<clts<g+YnG5#)Qssw%rYRNr;h)%xYjzf6luqG+Qu53zjHb_(*Tx`!6<*
zgqQM+U^vyzHCsd|eqg*_iuAYyk1EvzDZ}-Nxvap9iVYnZ7SDJw>u@eKCGm(s=;10c
zP#X~ZLmw`>d{2yX8e7I*5)4`zy$LKO{drp2XRasFtnKr}2O6Q99OJyT5yO%_*~HlK
z_W{F;Zyw3T<XMN&x%BS;awu|e#MW@9e-XA?*uAUUaPtS5gYzAR@v(7Sa$T?3Z+@P3
zD-Emd%HC13k?zSi3l;E2H?$N6%+rxitMv*Elq-14+9}R{A{K%lhDuUfgtZlF4uzW@
z#_C=@T|OEA(8xHNMbc}`Q3%y9(^eQb*khQulBidBc<a|4ceP4|&@bhe6^{LAUHSSa
zdqO$)nfQ9Y@B6}|pn2h?&-XOzqevBZdBdNsb328Po@`Om7mNC1{Xw&}&(68wo?1co
zp&JJnw$ga<47C=cWB%fQ(ny0M5h4#$;?*0Qv)cqr1LsnX<kI)&kzaY=a48eKU^_!R
z;eJ*CGjwvkY0NrFHOTd%BRQV)U7XTV!0wgorh`Y#AX^F+zusU$X!R^_JLXw*LeX+B
z;WxRKSDtY_nMZv$O6w!#1stUlvep~&)2?71AyJ!Gl~?~XtYAdk2@5~+*4HvgE@+&l
za@Q(9G*w%siJIaf<Xj$k8|%}g{06-Tb%xnwEi2COw@q#An<(7B5&Pc3Z4*99J6@WF
zd;4+r>D_LVEqhv=`03DNu65L(HQM`x#i->g7qph22uGk4@nfRhRFf^zXh0O#x`SUu
zY1C;CGfT~_zz~w9s)RDc_(%os3Yjr-N9$Ftku>S&9UC&nEdr@Deh11y^<K_p>3njp
z<%0bD)9iOqJ7sn;bMl|jA1h8Vg2{E?1L>Wn4kiYC)B?_dDr?hFkG-R&V&M?g@no%4
zX>0f{ecSb%Vs%yWEH&)oj`CkE)zZrwl79VMVf216(sOhV>&U9PG=mYfwN`}LXaA!a
zp2`#cff;cF9=7OC83;OL`6qa;!|`?*Jc?gZkEnq+;^~#Xp-DO~m1be5FQ;K|Dc2QV
zN~n?jSnd!MyDGYj=GG`l-#rz041=+SV=%$wR;yjE*DSWuH-7c0;G`xAf{%<|KdG!-
zhg%(yniM}ek?NGV<RB$#o4utedSt`lW6fyG^35j^_G<R>hw$IuAYXDie2TN3{PtjJ
zhM$%M^}heAsI}kpR@y}j3BTk}SW%qYt^QQ_*E=aZw9-rve|x$->!@L##(}dP-ri|?
zyJ`$rB7wgsK{Y@0W(t+G9a5kp$0o2Zu4niJ443Tjd~yaS6K=EGWnpv<V_71<cV%O=
z&52YosI@eBX28U8C4N&4<DIx(?zNCAW&Oo&XpMtzSS?`SJ!HbOKB9Rf@}7t?c8R)N
zONeCn|MHs8k-!btctw=8z0>IBW@1a+^q682)=0_W?~4yfzFiH2rvkzPW<oX$%C@c>
zw@I_^nJZf5nS3W0x``(gIr{FDDd`Cr(rmoY(d<@~=(X4rh@Nw{ink&E=(3?agsZj-
zw6%g)ge;ZN$ah+D3+=w=x#M5kgYt#F8;Y3$Sq>9+C&6~%qKY}{|32ZCp;C)@6)FA1
zIPIg=IoBfH-X5$IJ?G1LH7haYgFfm@!MSR++#SBCuhJGTf+?{Yiu<}QvF{4ia?f1&
zTx-<CiswlTMufZ)X33^}OdC6_uVf?_&7l!$J*e5J^obl}{)WjTgY(9{bW|)DY!W-@
z^J*!0jK6jwzuV*Nuu`yC>8aCUcSHCS!2a}FvgsM^g;Ta3Us8Da?_vElkvund|JUD8
z|FH-B^9A*9ndk$q?u2Iy##Ymkbgc(?J)TU@O-!1n{fe8gzSIl0tMjtj{LEJJ%7NDM
z`vu?>;BOZj`LIao>Pz*7X7j~ykE3e$P0>q=u8f6PenYFp0{sD$%GbA_lD@Br<KI+R
z_O$mceD=olw%Zxzrt1zr8d-~)9mWf}&u>(T+KU+9M82i+sWRrK`qn=uK7Se1TQHqU
zc~;?{jr0oWcl7z@>s<UYOYuwSRK44ROXW(8H>JR8^jTd`Seool+KrhLs@5a2sXRet
z75+7g=AlmicEdYFfPE@TpD`bg6OtW_&ze#55${`UTxP<2l$h9-V^=lh(&t+)yr0{B
z#ReH`UUlu6C~qoF-N$=IIV0_x2fm0KbD@t;(RlI2N=<w*LnA5_(L`FW_2*Y>lP*Uh
z-5k73@Gf5NT_ZN0#JJh#NemUrRCrj5t`y&5<FqdNa#%|4A755(q$&jsTUs3rFY_c@
zmKmt_MQE5w#XcYR!l-2>s-V+iIwA}|j1*1mAmqH<kGhQ2wePA?%KSE}Gr271Qu(-J
z!m0gD(#!+iPEV?oUm_9l?aTDiYvEdzXOz#rhLg*aE-QOnmqX4e&xe$iPBl);o=z7R
z&(xK8-0D1FDB4w1^K|IDmCMTHWcA}$<dV)!u4Ou5A~sVvvt4$`-9<TVDyVa`Lz=w#
z?Q6%aCGjuT3aM{=*NQf&Im*KWhTch~FNQfwrj>&EQqM04c)B^CeN{s#B04dyscr^k
z<|)UKEEc`?xzz;m)tp~=cGJ!C96R6Z#L!e#4I0T;h$A^KMx*@sqjjU$=hQE{-p^_e
z3#hIp#}BJ{yQ&4vit^Ni4!4Ckb{mS_T&X^`{53b-sDIi+da^<r{<f&2@9HP#IArCO
z%omAtZeP{^{VDf+OSj}esYW+5JaST=OFkf<<rE~7AsG5dV>u%xV{~*~8@?1LPy<^T
zp-}Ph(pqr0*?zgsOoJgr?Ctr%)w)p|$?kT(go|6OTSLaAClz5XrQo|$e*WbpYe~bt
z0;{~R4?Z%9x;)Bz(dWCq7EkG{T^4CmHp1@2KXvl(JC5gmd|6=2TyV>sr@JF-_!j!n
zV{w!RR^Z#14&05GDB<3%jznCTPj6Zc{^L_oSVN)8mHL$%vo(&qraQrj<nCXGdniwe
W|4sF?;ePfHNBTM@m&z_W-uo9js$*pU

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html
new file mode 100644
index 000000000000..6b5e849e42b5
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/binomial_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>binomial_heap_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>binomial_heap_tag</tt> Interface</h1>
+
+    <p>Binomial-heap data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html
new file mode 100644
index 000000000000..e07c51e3a641
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_max_collision_check_resize_trigger.html
@@ -0,0 +1,532 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>cc_hash_max_collision_check_resize_trigger
+  Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>cc_hash_max_collision_check_resize_trigger</tt>
+    Interface</h1>
+
+    <p>A resize trigger policy based on collision checks. It keeps
+    the simulated load factor lower than some given load
+    factor.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="External_Load_Access1313998607" id=
+"External_Load_Access1313998607"><b>bool</b> External_Load_Access </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Specifies whether the load factor can be accessed
+          externally. The two options have different trade-offs in
+          terms of flexibility, genericity, and encapsulation.</p>
+        </td>
+
+        <td><tt><b>false</b></tt></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="external_load_access3976598639" id=
+"external_load_access3976598639">external_load_access</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether loads can be accessed externally</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  cc_hash_max_collision_check_resize_trigger
+  (float load = 0.5)
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor, or constructor taking
+          <span class="c1"><tt>load</tt></span>, a load factor
+          which it will attempt to maintain.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>cc_hash_max_collision_check_resize_trigger</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Load Access Methods</a></h3>
+
+    <p>These methods are only available if the external access
+    parameter is set.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> float
+  get_load
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the current load.</p>
+
+          <p>Calling this method will not compile when <a href=
+          "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+          == <tt><b>false</b></tt>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  set_load
+  (float load)
+</pre>
+        </td>
+
+        <td>
+          <p>Sets the <span class="c1"><tt>load</tt></span>; does
+          not resize the container.</p>
+
+          <p>It is the responsibility of the user to pass an
+          appropriate <span class="c1"><tt>load</tt></span> to this
+          function. Calling this method will not compile when
+          <a href=
+          "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+          == <tt><b>false</b></tt>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link7" id="link7">Protected Methods</a></h2>
+
+    <h3><a name="link8" id="link8">Insert Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Find Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during a find operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Erase Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link11" id="link11">Content Change
+    Notifications</a></h3>
+
+    <p>Notifications called when the content of the table changes
+    in a way that can affect the resize policy.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_inserted
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was inserted.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erased
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was erased.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_cleared
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was cleared.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link12" id="link12">Size Change
+    Notifications</a></h3>
+
+    <p>Notifications called when the table changes size.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized as a result of this
+          object's signifying that a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_externally_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized externally.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link13" id="link13">Queries</a></h3>
+
+    <p>Called to query whether/how to resize.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b> 
+  is_resize_needed
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  is_grow_needed
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size, <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a grow is needed.</p>
+
+          <p>This method is called only if this object indicated is
+          needed.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..85b9eca4ff621bae92b74d47a17dfff387c69101
GIT binary patch
literal 7074
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
CDD!6k

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..4f578c65b1ea26bb94ad1a75c4e30d9a054ef87e
GIT binary patch
literal 8534
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_find_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1234aa11d8fc2886d6b0b36dabca8282272d79c
GIT binary patch
literal 7235
zcmcgxc{tSnx1R_hOH!1qg+zvikR_6&k$sP`4-zH&NE1aNL^8%MTlQVVm`d`Ev5tM;
z_uVko`P|QR@AJFQbDw*k=iYzr=P_o^`<(MSuh%)B&wQ2%)6>ypVY<i!fk0Ta?%y?l
zKxm*4$cgY%wBX7%Ourfep@rya8)<+h1OkIVkPrwK0wF*k0M&xQATT5ZhK0Zg5Ewvp
zB4H3D5`x4+kOT-4pvGch5G)dc#X_(I2o|8G5?~Ml5<<X22m}ZL0FfX73<4k_02Tre
zAOL89*dR2B1tx>h0JRQvL&9KK7>ode0o1afg+#)TSQwH3LjqJ5pc9LPVX-hQ0fq&r
zq`+7L5=Own2m}}b06BuGFaQYyurPoC1Hh^vYY+@14YCAjfj+P>hz&x6SYR?h6-2ec
z4U0q)kVt^44=f8>SS%7tKw<%^T#yCmBw&#Q0+IlL>OoRqEE2#X0Rj>L<$?VGX@c2c
zJ3##)2~Z)(8UzDLgDk;NkOx>8#0H^3EP&cMsvESyjex}h)JB5(z_Or4AYcgq*jG?4
z$O3d?0Rk2P`v`U#Yyij$3<nzxss&pK_5-8|W`pejIe~&fg&=DX3?vO^g0w&$U||p&
zga)W1qDF&m&;~aEoEX?hP#;(pv<Lt|9pK;bQ(63-D0QBHheRdyx9`;P{%s|d<KOO3
zr~OwjmGWN=)Zzc7MOE;(5(o|M4&ao)=7F02mioIV{=ffoM7`hzi!wgDZ|(_!Fmq5}
zC%Q*p9)XMeUK(azhEI`RzP8UDAsU8y0-DZGJ-s~bpSwKs5|Edcm6W=H@ku!kfp9ly
z-BmO4OI}S`uFWds2-%0Ztehk?zX1QVoh&$K^5f2PdEhz}ws+jiRL$Dj$~l=Ki|>Z$
zASE=Y6P)Q>swe)hZyB!;C;d+3MPiMwWtT&AgAfq91v)*yuLvET4D*QGxo;aM6@wFa
zWCNe8akqye_&CZguXLE?Z_42=F)p5EQdEUX^le!q<lpN5`uINcK=eA!Q^tg8A>@Yz
zFOIN#ATwZ|V4a$qcGjehzpJ&9O!!DtkEm+po3plJ!2>$2yK35V8J9Ov&fMf_BE@>&
zmc3ZtWy;t2{1~=XMt=H@89v58PyL%xUvF)b^_=-7F8L>swcZ?fuN!%zj>$Q<qfoO$
zu8zm#ayzdsZ{-?H%pHFmcal1>l!6jDw!Yj}Z#-aO_3_Ejxc=b5L1&Dg8J@fPX|8o-
zn`@Oe-mBuc;?ubHGUK+%wPnI_k1ZpoI)C@9bV<8-LxZ!`sj@)Iu^^tk`?=kL-nsmx
zuBzwe()Wz>Q5)O%oGb+8%5t__8l^gQ+V{^PI@++%g5!W^{R5?t5|h(MKcZr`*dyq2
zr^ZQg>#IT%OWt-lTP<ocyo9)L=L`L#NA8Fwxtv^IPnj0)o)*WZOV*2jVebHT%z|d`
zGUIbRKBW9w_r1}+D=1!epvfPVMSS}Lx56{+xo|r0{wGl{g-P*FEw8r%O<Ye(Yz~@Q
z)kI;gv!CsvKED;_t_fu~Zq9VYy>FC(mOq{!?~Q78tWxTNXU*gYMQw4raO`Zk9xZ;x
z1uu4R@Kim|=CUGT7MoNl-7kqWJJ$1@#*E7(8zXCLBY3x;!(cb?1Rvl!R7B~0Yvf-j
zgV@~3>)R_oJuNWo!!r`!LxN{{gjk82qPjHDgMJRB=TSrRbsuHNje!<H)xuuIwSGVS
z>$@-d5&Vn$#kYPGcdowwQ6*87ub!`Da<OFZz{u*Io9Y04o&Nc*!BR!7b<>Q#2y<}^
zN?!xr_M+eEIoFRqu>ze?TkhQPOV*MyMe06wnZ1!al|=lPoyrHUX^YT^==vT(D?aha
zM@N~j^4aUMSL;6>kJ=pU`DMAz=9U$NcWH11O*PzwYPe)ys$%S;B~5ibP<Tv?Kp<C_
zWw(WIb_>T}ZhC%|C2w!P+gfy416u2md)ivqjBUNI^^cg0>t>H7SE`LByJu#OuH>o4
z!Om87A)jRL@K51O0LO!M2*AbXx(|gW)8+!LrR{e|jxXXlJDFcs-9k<7pa*v!w3p0W
zMg;-zI|p3_O}hJdiRPz_6sXvuuzjgz;357CeurxVt)+$kr$Nw68C>wA82o%_n<j)N
zZJ=YAvlJ5cXerP~ZNr*VAWB3s3j+h2|7i-eSuCGJWepHYE?&6Gb!1&=_=^VMa=Pb;
zVWvR)#AqncL(^t<cdB*azY3oKe#Y=opqAeO$4qsAOD_?#B%FE^t|sV6N7|C8D>;Ev
zYF%?xg?5x5UR+&j8YoaYiXr{@lG#J+E6}*=GHhN&WOZ2{Y;ZAyHp`vhO8b|`^GSKP
z$lbSxkn2kt<EP5L#!0Z;<;~`+q2+bg&9VPzcIO`cK?G_L;M6(7Or*$k=r1k#423Cv
zpxi_IFWn+(4fRI&UKyxN&FuMv&>0C*!X?+S2F89})_5t!n_W!$taB<-bIE#kz$*)P
zb;8#Vhp^PlgX4aU29few$`<bj=zm||@WJ^-8JMCJJQ!|>XbfjuUe!2(ZxknWtNWxt
za1f@a-ONp%R|k3DEk%($#<I8&6X(6(`YzATaOPK8awXWAvRCBh=t3Ej&MeG|NY}M9
zwLiG`Qoql8lAnR;L3>#I+KIGo=H-ZTj<q*q%dx>eW<=!)b(Ad&XWUk5A=^UJ3zO*E
zh!5*>6)R_OG65_6wG8ztuTV=;o)<;0!qWwQ29(Rw&|xtjRq1e-#vR^q%^bEJNj&O^
zUmm!fnJ_yVYWNmgA+P37Ll-mlQP_1`KV6`JyFad{_4XfB$Z#(D!W5mq=(|5*PoMpw
zT=>OatA;%<detyppe3L@>UO)UgZ^znsMKrY_pbT7&^2_5;f!tqH}oHJQrYW)>qs*J
z+n&7J(d?}n$>}z;jECbzSDA(N*k_f^HQiDdgqwzQZE-ae11FSVGxOFl5-Iws#bZgr
z%b`30(IfXmUM&xmLC+*qFDkA9)f!U)_Y48`dV%$mlRDB-rK*kcIr4<N(<f({IPd!D
znuH^~2FDfnE`Sm_Nl9fQuW#*k)O6T)Tte#nD<&49LrZ6#Q<9gDIlUSD^ChhBT_rS_
z?ER0|qSV>wvvJ~jdItgJsSHd^^PJhmh{W`rtuhavj86ECB208-J1JHep?BwbjJtG#
zh-Z2_PfU!E*exRby2`Yar%%S;qu0o_R#K{|SOBT}Fb%<R^KxhFLpz@o@YsF70K{&j
zO6=h+Q@U#q+{e}iV;{XM;7mid56Q3C7DIXgVX!UyMCK!Fog?ew@sB%<0H%Jub*UAY
z-BLC$M=uTovt+p=>-KI#F!RU*aXI3E5x4#_vvgS2?45lUPzki|fI}Hl>S`@Gwyr*3
z8vSc$%MrlDksY!Z=qOOps_7H~#4->I?l+vcg>t;7(v4RDTuOOT*<6eIeNpdou!+_}
z>7GBbZXu%f2juJY7KE{Vt<CqGKzD2A%m!NQ<dOCH1-edWE$9SY)=i{I-m9@!|9%qx
zZ{O|{BPO3^Ap|R*GNZ^>Dx)=8i2f69R~8*_RY!cC7eWSp$8qIHzvY`dlz78J{;gH}
z-u%*W>($Z8xYIA5UJo209~?-1PD;FA`+lcO>3EQ2K4zKH3wyQeu_HAe8DNpJNhXuU
zaHo-{Ar->|m(q7Y*XH-e7b!;Ox6rYUJkc|6`#ncPGtGohgQ!oPuvbERQsWrX=eVgC
zrr8q7merFEO2jHN)L>f4Ky#vh{IX!6(uUNy9BGRyw#B2=*?h0|Nn;m6p6A9uv%qk$
z3SYwdZXTDtolj1jM(!W0^ujCEw$6c-(5R?+x}xczxBItxTMzI=ou<j&@QfwLm_zYp
zhMk(Um-L+~e0~Wf);RWaAB?5_xju8^2BJxe$`=%!+y7A9(Ww2pI+OM<3H7ezShoQT
zq6gx&O-^<#i}NpGK-H=rILwZ;c=EKw(jUX^H=H#FKWBeExM6suOlCzD$|+y<S;D}e
zwbuLom8Mq+gFn4@T}<S{dhl#?xa2bODi+=DRK41sMR_=^vh&lpBmn5JUE);Gt!lCK
z?o`My#7Q}tlmg?;i6-8k7fhki1@#**Y?oUf%=%#Xz!Ud;)l)PHrhH_w*W#^nT>FIS
zc(IA&kMbX*3v5drj)n^lp)cWvJow2!>a?V6%zeXLxB$j%tke5S*GGipt~5t`hZplk
zv?FEoB=6$vP{pc*25Z?u)#jvOQ>v!zw=TGW;V%n`MmIs2__RynSJ#}gIQEM_T&2d&
zYY(^wcxn<u5MQeBk!Q9<J361=>rgA*HE8on$0R+HcygFW{z|{?C1c)iSJL0Q%H%Yt
z>saITz4*d{aQo~0mjmsn#l}sCy}6NCn<n`7{0TJSYV^wla*_g3%I=_DL(e{KGtx=q
zsRJ!>>%c&DvcXBg5OKOE0gAL7$|5oEtZVTN>e>ZDXAW!$oLu2M2JnKA>Vu4r-B20!
za~kvR%Hi^ki}vy*l^-k~)YvzKliRFg?eaE`n8^DyZ}Sj-83=>Z%H0vtxIz_c=g6;%
z!frUfWd&Z~4gDN*(V6^6OW9v#@R(9opF=v|hxrkgR~p&iWEPI0PS(n2N3tiUmyzKe
zA4bwK0nT#`=N<0Meq-tH|IS~KYa2;>1&9qoDE&xo8pjo3W=yhWZqJGMmKHo&<sQkd
zEbVp+e5;4rcsvq;Ka@#*jN(#V7MGH%4KcRQTv19EAXI#EH$wBqobH%j|Go7fNXpX2
zM(p)y`Y@$<ym;H$#hLf>8z%8jViZZ2$0y3-gnCZYtR5uQvd$fj%wD?pCG51*k=6A6
zE(xyMZ}5Q=CvlkN3)JjfL<u!sK>J!(u(z<4#Wg)v_aAoVYoCK|H&~1{OFoU+l%Pm@
zw9%AtHk<Raq$)N#$kpp9hguqT1j|t*wV>>9I#BrtS^*Jw<#y4~)O&nV!!M0~1BP6G
zB>C9%IjWAVU^k2#<uQIb6CZ^a4}Y_9LM?f)S(kB|U8^P8R9@>!qzAxoST0*eUJf1C
zn>sC2yA^)L<Jj;xAgB}maD*}MnP?uklwI@SP2f@fNs>WF+6fD1z5?%;@WgM&%+9<{
z__f?mf6$ArQT5-&Ye!02<GK7UKiwXu^QPXV1W?Kk+QJeKz0*Bbc1WcUkS)RqDmz<6
z*CD=u<E3kB`1;ta`HXK}aRnILHwfoTlJ=rro}0TbM=Mccdpdx^)>25;br(%T;g(N~
z1uNT2K~i@3DAgfZ1tG=<^SpPMl$a;#zB{xouPQyA{2FQg?VV0;H|hu@VuKTik+1I6
z;Cd><f1!*r(NVybkYwVLy(-qOU+O<F71Or<PSYf%-jtaCm>}e~$@=!p_NZ%1rDH(;
zkK@cooVYl3*_~cu9>Tpz1zFXu!{hozWhb^$6J4jelSmjN7Z?SzZnxBGT6^Bz@ZEc`
zez@}mBXj+ovS9CCk&t6<PlL5DYEb5b5?b&<&aM|M=rih%FYJ4VxF)Ob(8p&6hmXY+
z`HazgyD|Hs%&BpP)}6Hu&H2F_+ofZ#w}&PLXZAk;{)Yn5Xrq4m^!O$+hGT5|vF6F%
z6s_JB&M#9En?@xzOF_DA>7FqsNmG>ttV-3e2;8GCe(id{{IdE18{Xo~>hyS)VZ0<s
zX=NcxF}P=yzkNC{RE}}4rNd3eOxsJ6sX%C|qml39gqp&e0ygYaUd{&>;R$Srg^Z8!
z-PE_ELSG)-leJl7OWrin67Kl+MCN^_r}X{2h|LAjoa^!Vn?bUvj}5~5t0kV19XjYA
zm(>)r@Tz$`j`T_|v8}PTXZq!fy?c(|qhDkA8mf$DY=hHwG&60}Iw|$O**fp0zR=X<
z-ua4uPU7g%$#{hPbROcI$-9xmQAB8GM3W<f4N2iAT+}H1Xw#_6>!F^F`f9DebM}Sg
zL(SQ(2e+9mTuud`<;GPCF{VQo*x~k;?Y^F~pFUi&aEZP*4_z?3n0+1h1^37~+jwOk
zzPj)J1NZ0|a~(QQdA#Z6<K?&~slPT)$!I@9ohYIOuQi*C1iHQ-(N(e@aH$Gb0>Koz
zU-CnGqe>iu2muJLKCOD!S8aLVu#Rq<rsU+d)qlBv|KZYzX}(Nb>ye5K1g{PBAoKpQ
zdP?O={z0ZwYwJu<gkBDKXfQ6&k$KcO4_~TY<uj))lui5JosQX@r$dB|hQ|0gtf^N#
zzq8V8J)qqahG%a1&>d<rV02;JaU`vcj4?2tS`W6n(sUWd5gCxsqgOBOKN5*gQb@ga
z6~5sw8=#%o##lN=NZMJP-}JTj57M4Fw!PKSsN=e=y9G?%{rO%*HrlXvuTDU9%<1kb
ztLn}5A;r728R64zG<e3<i_4`ZM^+PCx&{W&X0#n`*zwIE@9sypC~KI_=0r4oK;pGy
zxDj-l5|WCS_m!w<9zVVj;2m(WtUE3VuibnkT+JTOFjJg*%it!MGWa_&{eJkFu@X-{
zwHq9N!oqdR^K)&EMoT^)#@5?EWSU%=w-MUsuR<#>7fsyQ^exZ}B>r>3D<2~|5bD>U
zufIip;wpGcIZyk`t!HQpeIsa}WwlYU(aQeXw<^U63h6h#e7p6)bC7f8c+}-MAo%uN
zIq-`tEi}zWF}u*8)|xXR={FnY7FItbTo|R9xH*>>bo`MTZ;2~B6y@)0t-a>%`g_=^
z&h#67X>+Crmfq>?ZBxW*Okb3oMcszVqdxbRa-4f*q|ioi;c0(ax=p#XguMmr@b-sH
zOTzZ|+!4L{+aUpsjf3VF=0#4xfJ-goX_B#~-n-IMKLpCiycW!KBBJ<0%RoP|a-C#a
za&GI4F>mU4Mrx8nua=^#`#i<V<VR&DX6BpjUN+KI9na?Soq1@@x`DmKycgXaA|gCl
zR&j}#7ur7}JY3p<Fi85b0_e^${TU3M<IV7YTyRa{+0X{vrnS4zE3wtUL4d(2QB=(6
zXPk5aW#kH7bJ7;o*W+q-?OV#a4}XTr)dVTWxTiMmvBAbaO@E;Ui#4Yhcepp}l{zHq
z8GQi_8QwIt<J4&UPy7n;u;urQNsk}|5&G;*C%k}S0JQhZ_Iql=&G=oNBv%e2SAU~3
zSa^KKJv>n~G&P6b*FpR1PM^1`=+S^1cNh>WTyl4<lB~iv`iC`{NP5Xz=9#|g`$}<O
zc`<%XF2}Wr$5#r|78(Ft9k!X7^KNlzp8CdSGa~kGG<5sw-3A?z&9Tu>G(9Rjre%;5
zB`j#eF%+fldFsX6gxU^z_sM0)!i5fYVzBgvjl01)v{HU;YE)C>A0q+P-zn?#YqH;h
z&Q}|X>?@K#F7KWGC>J175}h75SK3d^C~jiOs%x%)U!%ORS4S)j2@RV)Cl>Y0efw4Q
zsVdtqrh1EBGGo#!J2uUj17RWXA|YWtc<D`_=B}@ffYrH3@<wdfuW_sMD5V>Pffmhp
z^o;v=zaTF%tL8&%p-tae2D^G>VPImjbBebxuOD|Gb5;Ne+I<enf%c8t=CT85EHuAn
zSkgTVy17HMcu{NS`&saW%%al?cUrhPGB5BlX=vL@G)!*tSx<;xTS~^To`%7WVNH<N
zSL{m88^Mcc-;sXJjQa1c((}*)ha)P;8gF}PI5PbAxYhNxE~$oz?7ij7Pl-C~>rBgW
zZ}#fi<M~KiFY9k!3P8WSs3h1K>N(s|5R@phif2xw{l7ke{9it@lmxHC!ciRJvcfE2
z?e<|kP0cEx9M76|<~}X>MY?^nrwhG;UnyyHI@zrXU7xRKSsgIYEHpZ<Is^AUm3t=r
zaxuxyr6uaqH;U_TgL5%5c|+O^J}m<o!wuaL7vSemi*2l<yPpud2qx5GH|uCMFRw9>
zefvwryp_DVz{AG~OUKX@6sp#OA6sUmaphkNU0wPq_#OsWeEz#Et@ellLTRJJe5e~v
zOS}+Y$d>7t_njiS5?5w8<WpR4llwlUyV`S>PSJ5Ct~x~=Iv{4BTj|!x-^rW~!I9um
zTxy(s5e*&tBdmrV@!#Ry>lXH9KW#MKLLAw(^>GW#elG-rvv0f^XzIq;oU~RxtgdCr
zaojb722ajcq@a(sxr^ugoi!<^ccV{dm$`ZJD78kILR*R9vpvkys)r-(UG_eoF*ldI
z`&+j+-)UZZ?-PF<d%zvdP0x`Uer{;M-tb|}=C_tUPSe~rqczrSA${KY!+zqEO6dy1
zlQqc;5naFO#?tc`MW&-PAN9{BIaZsVD(0mZQGBAv_bqa`rudaD!ZUlq0t*|o9p3B|
zufAElOxQ@882V#7e8z5QQ|d{jhgE|k!ZYMwOY)@df4ukO{o6hTyNSLfvi8@TD~&@Z
zlF)Bi@T}F>6^ncSaetpJuM4l(=#6&5j82J8x?=BDKeMZ}y487cy%+Av^9VQOQMi>T
ze$SrAXLM+DrQAYX^Y6#7;lOi6ZUZ}yo8<_Pi@5*u<E4l01K!S}cH}^rYTN!I-hPR%
zYMruwhp^E#r1L0>S8*XEqR(e&Yh^$UYFSxLjCW$7N7;U^N~zXX^yy?iTeMo~I8^o;
zQRD2Ed%Yuym-O?VtD@V66QuV)o}mA?H{bvB;_Mlsz^`ZZ>2+w8=U8k)sDGgJ;kATl
zqZv&}*x5&`ZT$Ja*sLDY?+)=S#ecri*?N{<y6sT2Y!?>mpVar>7#`2OFw1BlxckDF
zyV|8q$!l;Ke0G=6U+l1I(9>C&?~p<VRLZ2K>=~qE<_WL$&M7>IIi)P+%|O~ZDLZo&
zr=4`~R&h@hv<T9ulE+&eKH_87<JU9$h70BY^NOh&@z(UG<xKs+$bHFE(j^sEgDLO4
tw}dX3{;*MIfskmNRiUqFNHkZE7}j&Q<?MJ;f~h~hXldx&ExuzD{BKUSO4a}X

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..1db2cc0c6a8b4ddbbfcc49fa5f65cdcef89d990e
GIT binary patch
literal 6811
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca4db96f457f3d6db6712a03f84434af3ad3e584
GIT binary patch
literal 8445
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
DaO5S8

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_find_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..0b51d9432a9e40c342f61cfe6bec6123771ea479
GIT binary patch
literal 7230
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e494038125307760faed5281441a5c85c4c3036
GIT binary patch
literal 7636
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..48fcf76c048c88b3e69f9021057c2391b237ac79
GIT binary patch
literal 9396
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
RcJ;o8qP*I(3R$z@{{p}Z1n~d>

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_random_int_subscript_timing_test_insert_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..39c96ad8daf3900880a53f2b5ec4dba63c5169da
GIT binary patch
literal 6840
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
Nj;i*pLS>7Pe*?z$bt(V=

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html
new file mode 100644
index 000000000000..fec6bec1b51b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_table.html
@@ -0,0 +1,724 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>cc_hash_table Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>cc_hash_table</tt> Interface</h1>
+
+    <p>A concrete collision-chaining hash-based associative
+    container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Hash_Fn1515835" id=
+"Hash_Fn1515835"><b>class</b> Hash_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Hash functor.</p>
+        </td>
+
+        <td>
+          <pre>
+__gnu_cxx::hash&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using gcc;
+          <pre>
+stdext::hash_value&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using Visual C++ .net
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor.</p>
+        </td>
+
+        <td>
+          <pre>
+std::equal_to&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Comb_Hash_Fn320611039" id=
+"Comb_Hash_Fn320611039"><b>class</b> Comb_Hash_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Combining hash functor.</p>
+
+          <p>If <a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a> is
+          not <a href="null_hash_fn.html"><span class=
+          "c2"><tt>null_hash_fn</tt></span></a>, then this is the
+          ranged-hash functor; otherwise, this is the range-hashing
+          functor.</p>
+
+          <p>(See <a href=
+          "hash_based_containers.html#hash_policies">Design::Hash-Based
+          Containers::Hash Policies</a>.)</p>
+        </td>
+
+        <td>
+          <pre>
+<a href="direct_mask_range_hashing.html"><span class=
+"c2"><tt>direct_mask_range_hashing</tt></span></a>
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Resize_Policy566860465" id=
+"Resize_Policy566860465"><b>class</b> Resize_Policy </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Resize policy.</p>
+        </td>
+
+        <td>
+          If <tt><a href=
+          "#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a></tt>
+          is <tt><a href=
+          "direct_mask_range_hashing.html"><span class=
+          "c2"><tt>direct_mask_range_hashing</tt></span></a></tt>,
+          then
+          <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+  <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+  <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+  <b>false</b>,
+  <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;
+</pre>otherwise,
+          <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+  <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+  <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;,
+  <b>false</b>,
+  <b>typename</b> <a href=
+"#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>::size_type&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Store_Hash218262104" id=
+"Store_Hash218262104"><b>bool</b> Store_Hash </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether the hash value will be stored along
+          with each key.</p>
+
+          <p>If <tt><a href=
+          "#hash_fn2015995"><tt>hash_fn</tt></a></tt> is <a href=
+          "null_hash_fn.html"><span class=
+          "c2"><tt>null_hash_fn</tt></span></a>, then the container
+          will not compile if this value is
+          <tt><b>true</b></tt></p>
+        </td>
+
+        <td>
+          <pre>
+<tt><b>false</b></tt>
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_hash_table.html"><span class=
+"c2"><tt>basic_hash_table</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="hash_fn2015995" id="hash_fn2015995">hash_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Hash functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="resize_policy4084493169" id=
+"resize_policy4084493169">resize_policy</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Resize policy type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="comb_hash_fn1883611199" id=
+"comb_hash_fn1883611199">comb_hash_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Comb_Hash_Fn320611039"><tt>Comb_Hash_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Combining hash functor type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  cc_hash_table
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  cc_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a> object of
+          the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  cc_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, and <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  cc_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, and <span class=
+          "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+          <a href=
+          "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  cc_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn, 
+    <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, <span class=
+          "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+          <a href=
+          "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+          object of the container object, and <span class=
+          "c1"><tt>r_resize_policy</tt></span> will be copied by
+          the <a href=
+          "#resize_policy4084493169"><tt>resize_policy</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  cc_hash_table
+  (It first_it, 
+    It last_it)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of
+          value_types. The value_types between <span class=
+          "c1"><tt>first_it</tt></span> and <span class=
+          "c1"><tt>last_it</tt></span> will be inserted into the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  cc_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects. The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  cc_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, and <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  cc_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, and <span class=
+          "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+          <a href=
+          "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  cc_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;r_comb_hash_fn, 
+    <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, <span class=
+          "c1"><tt>r_comb_hash_fn</tt></span> will be copied by the
+          <a href=
+          "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+          object of the container object, and <span class=
+          "c1"><tt>r_resize_policy</tt></span> will be copied by
+          the <a href=
+          "#resize_policy4084493169"><tt>resize_policy</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  cc_hash_table
+  (<b>const</b> <span class=
+"c2"><tt>cc_hash_table</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~cc_hash_table
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>cc_hash_table</tt></span> &amp;
+  <b>operator</b>=
+  (<b>const</b> <span class=
+"c2"><tt>cc_hash_table</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Assignment operator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>cc_hash_table</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;
+  get_comb_hash_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+          object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href=
+"#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a> &amp;
+  get_comb_hash_fn
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#comb_hash_fn1883611199"><tt>comb_hash_fn</tt></a>
+          object.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html
new file mode 100644
index 000000000000..fb6f59358303
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/cc_hash_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>cc_hash_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>cc_hash_tag</tt> Interface</h1>
+
+    <p>Collision-chaining hash data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_hash_tag.html"><span class=
+"c2"><tt>basic_hash_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..fde6b41bf94f13ea35145fb7a5fba18fabca9dee
GIT binary patch
literal 7355
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
KP^(mZg!>OyWTVjl

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..2449e1de324c4d44bbc4f2d10433d3ab840c69a9
GIT binary patch
literal 9557
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
YVK1I_Y^}H597s`7(2y^AVix?r00NZQp8x;=

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/ccgp_hash_random_int_subscript_timing_test_insert_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..11dca77fcfebe11183fad329103472d6cc2a2b2e
GIT binary patch
literal 7572
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/checked_by_tidy.gif b/libstdc++-v3/docs/html/ext/pb_ds/checked_by_tidy.gif
new file mode 100644
index 0000000000000000000000000000000000000000..47c2c4859c5ef857eaa98b53d509fee17deebac4
GIT binary patch
literal 1367
zcmXZbe{2**6bJC>FS=Yow@})}6x&0BoD{;*YPbN}UQ1~Y3he^1EJcDtfo4L2Yz>gr
zh`5E)uC=t66m>O6$!SGS3HF47OHvG*HVwnCW<rcvN+ekz(Zv`XCCIpY`pqXVZ{AGu
z_Mcr@TfHQ-wHOow3WDtaP{tg_Y{o3c2xFMJ14<cn7$x3~cS%!JW+}{)nS~gMGNLh}
zGNLddGvZDl!#cxJhBby&h82coh7rS%nHn=yW-82-nTePQnPD(PVTQ~MktJ1@MBYws
ztK)6<;x>d@acb$*ic(9a7NR6hNt6<e5|t8#;wZ%$#VW;aFH?*th7?QGMAVR}0jVaY
zKA$>P(y`(Wap?|;Iz)Ad;t=S;Ne9Or9CfhfVAa8jgJlOJ2TLAPb4=AS6~~kv6FR0l
zksJd$O2}nfQJW-e;#OqixQ#U%t2S0_EZb(nHsiLb*`}JJ*rsf25sM@&Y*;vHVYi7}
zShp~;%(!LhmI1A#Y$cJE5G^%AykLS|CNXtlK$4LDJ7X^<HWS#8aRQ}CI4+s))HGa1
zT#BoqI23dxtSdoX5p+4E%K=>$bSbPUAx#cw$gc@N<AKHjRrafh_lUe204fhu4k#$3
zKu!^PB_JpQP&go?utx-P1jquAc_4EDAsLAQBmxxSQG`Q+fCRS!#B+!P5TX<aq3Dqy
zltNJSrwA~@!w7(39)<x70mun1?}_9}Mf6LeAVqjjSdhX%j0j>7hyf7sgRn~gK^G5#
zoG0K10k;C+2S5OT2Y~YeIN-)Tc>}La#s9RRa!>Qt*5+-+ds|v}7O&sgT)eWju70Wy
zlz0!k-vn?Bq;Z8cr(+fGXG~cf8hJQzK+P(6MQ`M1gGqU%a|aub!fL>0*Ub6rp})3!
zYF$UuNY$IQAI;l(DRa@Z<CW1_TP|uXVywTmcS&8xoV<DUYu<hOWOClX+E~2t%#-0u
ztu13+B^A%qKYnp+dgaE!)@wIrugY1_)IUD0y<vW&Z_|(cpY>nv?BknW9f*l5_>+fO
zdd}1A1H13M_vpb_-)-30alRqf*Cw?6wrb0Ute^6?Ul`h*=4)D<i(bFivuxq|b3e@A
zRuDd!_Q}+oCubktPFqlPZg<1WYdVM4uB$pewkhkwmu_**8P~FJ{29Ga<Qp9m2cFM-
z`_Q1u1=GgQ+$z{{m0kR2xYN2Rwa+L$yfm|uAL-iFJD?Bk81xU+IDGo`*D7bdGZE&F
z+}$%}->#Y4H#HWmuF!&eSJba9o;7l#BKv$vZ+dld*Z9WeSyc@+bI+b$*Y5Mj{8uN9
zoa*UZ`1QoJH{|@lv17|de!i6T+_ll02YrdmkH-Rh%b~(>Rw3V(e~?=;oViks_4!)v
z^^Z;JZ!hcKo*w+YyJy|K{Nda!6EkAIg(XMZeaG`Aa{Dq0>&uI!*yXnUP2(HwHu&r8
zo<-KaKd!`XbC0i-e$X|&EA&g5wEDyy?S(ZbI!I}6#pI#Cd%k#f|LFDV<t=3gJ}ujS
z<bL_0w?=1H<+OD?s5mM5Tklt$${#1EHh(VNtSbuKCEu1A9S^?A*!&26IsCn^yc{h3
E7j==YWdHyG

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/concepts.html b/libstdc++-v3/docs/html/ext/pb_ds/concepts.html
new file mode 100644
index 000000000000..9f6c22462548
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/concepts.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Concepts</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Concepts</h1>
+
+    <h2><a name="concepts_find_and_range_iterators" id=
+    "concepts_find_and_range_iterators">Point and Range Methods and
+    Iterators</a></h2>
+
+    <p>A point-type iterator is an iterator that refers to a
+    specific element, <i>e.g.</i> as returned through an
+    associative-container's <tt>find</tt> method; a range-type
+    iterator is an iterator that is used to go over a sequence of
+    elements, <i>e.g.</i>, as returned by a container's
+    <tt>find</tt> method. A point-type method is a method that
+    returns a point-type iterator; a range-type method is a method
+    that returns a range-type iterator.</p>
+
+    <p>For most containers, these types are synonymous; for
+    self-organizing containers, such as hash-based containers or
+    priority queues, these are inherently different (in any
+    implementation, including that of the STL), but in
+    <tt>pb_ds</tt> this is made explicit - they are distinct
+    types.</p>
+
+ 
+    <h2><a name="invalidation_guarantees" id=
+    "invalidation_guarantees">Invalidation Guarantees</a></h2>
+
+    <p>If one manipulates a container object, then iterators
+    previously obtained from it can be invalidated. In some cases a
+    previously-obtained iterator cannot be de-referenced; in other
+    cases, the iterator's next or previous element might have
+    changed unpredictably. This corresponds exactly to the question
+    whether a point-type or range-type iterator (see previous
+    concept) is valid or not. In <tt>pb_ds</tt> one can query a
+    container (in compile time) what are its invalidation
+    guarantees.</p>
+
+     <h2><a name="prm_sec" id="prm_sec">Primary and Secondary Keys
+    and Associative Containers</a></h2>
+
+    <p>In <tt>pb_ds</tt> there are no associative containers which
+    allow multiple values with equivalent keys (such as the STL's
+    <tt>std::multimap</tt>, for example). Instead, one maps the
+    unique part of a key - the primary key, into an
+    associative-container of the (originally) non-unique parts of
+    the key - the secondary key. A primary associative-container is
+    an associative container of primary keys; a secondary
+    associative-container is an associative container of secondary
+    keys.</p>
+
+ 
+    <h2><a name="concepts_null_policies" id=
+    "concepts_null_policies">Null Policy Classes</a></h2>
+
+    <p>Associative containers are typically parametrized by
+    various policies. For example, a hash-based associative
+    container is parametrized by a hash-functor, transforming each
+    key into an non-negative numerical type. Each such value is
+    then further mapped into a position within the table. The
+    mapping of a key into a position within the table is therefore
+    a two-step process.</p>
+
+    <p>In some cases, instantiations are <i>redundant</i>. For
+    example, when the keys are integers, it is possible to use a
+    <i>redundant</i> hash policy, which transforms each key into
+    its value.</p>
+
+    <p>In some other cases, these policies are <i>irrelevant</i>.
+    For example, a hash-based associative container might transform
+    keys into positions within a table by a different method than
+    the two-step method described above. In such a case, the hash
+    functor is simply irrelevant.</p>
+
+    <p><tt>pb_ds</tt> uses special pre-defined "null policies"
+    classes for these cases. Some null policies in <tt>pb_ds</tt>
+    are:</p>
+
+    <ol>
+      <li><a href=
+      "null_mapped_type.html"><tt>null_mapped_type</tt></a></li>
+
+      <li><a href=
+      "null_tree_node_update.html"><tt>null_tree_node_update</tt></a></li>
+
+      <li><a href=
+      "null_trie_node_update.html"><tt>null_trie_node_update</tt></a></li>
+
+      <li><a href=
+      "null_hash_fn.html"><tt>null_hash_fn</tt></a></li>
+
+      <li><a href=
+      "null_probe_fn.html"><tt>null_probe_fn</tt></a></li>
+    </ol>
+
+    <p>A "set" in <tt>pb_ds</tt>, for example, is an associative
+    container with its <tt>Data_Parameter</tt> instantiated by
+    <a href="null_mapped_type.html"><tt>null_mapped_type</tt></a>.
+    <a href=
+    "tree_based_containers.html#invariants">Design::Tree-Based
+    Containers::Node Invariants</a> explains another case where a
+    null policy is needed.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/contact.html b/libstdc++-v3/docs/html/ext/pb_ds/contact.html
new file mode 100644
index 000000000000..3d506c975c76
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/contact.html
@@ -0,0 +1,22 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Contact</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Contact</h1>
+
+    <p>For anything relevant, please write to <a href=
+    "mailto:pbassoc@gmail.com">pbassoc@gmail.com</a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_base.html b/libstdc++-v3/docs/html/ext/pb_ds/container_base.html
new file mode 100644
index 000000000000..a0741307e0f1
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/container_base.html
@@ -0,0 +1,1063 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>container_base Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>container_base</tt> Interface</h1>
+
+    <p>An abstract basic associative container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Data structure tag.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Policy_Tl42017403" id=
+"Policy_Tl42017403"><b>class</b> Policy_Tl</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Policy typelist.</p>
+
+          <p>Contains subclasses' policies.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Container
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::difference_type
+</pre>
+        </td>
+
+        <td>
+          <p>Difference type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Categories</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="container_category1247973216" id=
+"container_category1247973216">container_category</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Tag278938"><tt>Tag</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>The underlying mapped-structure tag of the
+          container.</p>
+
+          <p>This is one of:</p>
+
+          <ol>
+            <li><a href="cc_hash_tag.html"><span class=
+            "c2"><tt>cc_hash_tag</tt></span></a></li>
+
+            <li><a href="gp_hash_tag.html"><span class=
+            "c2"><tt>gp_hash_tag</tt></span></a></li>
+
+            <li><a href="rb_tree_tag.html"><span class=
+            "c2"><tt>rb_tree_tag</tt></span></a></li>
+
+            <li><a href="ov_tree_tag.html"><span class=
+            "c2"><tt>ov_tree_tag</tt></span></a></li>
+
+            <li><a href="splay_tree_tag.html"><span class=
+            "c2"><tt>splay_tree_tag</tt></span></a></li>
+
+            <li><a href="pat_trie_tag.html"><span class=
+            "c2"><tt>pat_trie_tag</tt></span></a></li>
+
+            <li><a href="list_update_tag.html"><span class=
+            "c2"><tt>list_update_tag</tt></span></a></li>
+          </ol>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Key-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href="#Key2501"><tt>Key</tt></a>&gt;::other::value_type
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Key2501"><tt>Key</tt></a> type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_reference2411522399" id=
+"key_reference2411522399">key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Key2501"><tt>Key</tt></a> reference
+          type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::const_reference
+</pre>
+        </td>
+
+        <td>
+          <p>Const key reference type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_pointer1299054769" id=
+"key_pointer1299054769">key_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::pointer
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Key2501"><tt>Key</tt></a> pointer type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_pointer3735194427" id=
+"const_key_pointer3735194427">const_key_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::const_pointer
+</pre>
+        </td>
+
+        <td>
+          <p>Const key pointer type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Mapped-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="mapped_type1308374436" id=
+"mapped_type1308374436">mapped_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Mapped318655"><tt>Mapped</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Mapped318655"><tt>Mapped</tt></a> type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="mapped_reference4153801225" id=
+"mapped_reference4153801225">mapped_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Mapped318655"><tt>Mapped</tt></a> reference
+          type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_mapped_reference2113216667" id=
+"const_mapped_reference2113216667">const_mapped_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::const_reference
+</pre>
+        </td>
+
+        <td>
+          <p>Const mapped reference type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="mapped_pointer337953771" id=
+"mapped_pointer337953771">mapped_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::pointer
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Mapped318655"><tt>Mapped</tt></a> pointer
+          type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_mapped_pointer4207700301" id=
+"const_mapped_pointer4207700301">const_mapped_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#mapped_type1308374436"><tt>mapped_type</tt></a>&gt;::other::const_pointer
+</pre>
+        </td>
+
+        <td>
+          <p>Const mapped pointer type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Value-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then <a href=
+"#Key2501"><tt>Key</tt></a><br />
+Otherwise, <a href="#Mapped318655"><tt>Mapped</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Value type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p>Value reference type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_reference
+</pre>
+        </td>
+
+        <td>
+          <p>Const value <a href=
+          "#reference54418471"><tt>reference</tt></a> type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="pointer2179769" id="pointer2179769">pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::pointer
+</pre>
+        </td>
+
+        <td>
+          <p>Value pointer type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_pointer
+</pre>
+        </td>
+
+        <td>
+          <p>Const Value <a href=
+          "#pointer2179769"><tt>pointer</tt></a> type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_point_iterator2364676009" id=
+"const_point_iterator2364676009">const_point_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Const point-type iterator.
+</pre>
+        </td>
+
+        <td>
+          <p>Const point-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="point_iterator2789896775" id=
+"point_iterator2789896775">point_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<br />
+Point-type iterator.<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then this is synonymous to <a href="#const_point_iterator2364676009"><tt>const_point_iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Point-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Const range-type iterator.
+</pre>
+        </td>
+
+        <td>
+          <p>Const range-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<br />
+Range-type iterator.<br />
+If <a href="#Mapped318655"><tt>Mapped</tt></a> is <a href=
+"null_mapped_type.html"><span class=
+"c2"><tt>null_mapped_type</tt></span></a>, then this is synonymous to <a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Range-type iterator.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link10" id="link10">Public Methods</a></h2>
+
+    <h3><a name="link11" id="link11">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~container_base
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link12" id="link12">Information Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  size
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the number of distinct <a href=
+          "#value_type279018186"><tt>value_type</tt></a> objects
+          the container object is storing.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  max_size
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an upper bound on the number of distinct
+          <a href="#value_type279018186"><tt>value_type</tt></a>
+          objects this container can store.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  empty
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns whether the container object is not storing
+          any <a href=
+          "#value_type279018186"><tt>value_type</tt></a>
+          objects.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link13" id="link13">Insert Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+std::pair&lt;<a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a>, <b>bool</b>&gt;
+  insert
+  (<a href=
+"#const_reference495461441"><tt>const_reference</tt></a> r_val)
+</pre>
+        </td>
+
+        <td>
+          <p>Inserts a <a href=
+          "#value_type279018186"><tt>value_type</tt></a> object. If
+          no <a href="#value_type279018186"><tt>value_type</tt></a>
+          with <span class="c1"><tt>r_val</tt></span>'s key was in
+          the container object, inserts and returns (<a href=
+          "#point_iterator2789896775"><tt>point_iterator</tt></a>
+          object associated with <span class=
+          "c1"><tt>r_val</tt></span>, <tt><b>true</b></tt>);
+          otherwise just returns (<a href=
+          "#point_iterator2789896775"><tt>point_iterator</tt></a>
+          object associated with <span class=
+          "c1"><tt>r_val</tt></span>'s key,
+          <tt><b>false</b></tt>).</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#mapped_reference4153801225"><tt>mapped_reference</tt></a>
+  <b>operator</b>[]
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Subscript operator.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link14" id="link14">Find Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#point_iterator2789896775"><tt>point_iterator</tt></a> 
+  find
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#point_iterator2789896775"><tt>point_iterator</tt></a>
+          corresponding to the <a href=
+          "#value_type279018186"><tt>value_type</tt></a> with
+          <span class="c1"><tt>r_key</tt></span> as its key, or the
+          <a href=
+          "#point_iterator2789896775"><tt>point_iterator</tt></a>
+          corresponding to the just-after-last entry if no such
+          <a href=
+          "#value_type279018186"><tt>value_type</tt></a>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#const_point_iterator2364676009"><tt>const_point_iterator</tt></a> 
+  find
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_point_iterator2364676009"><tt>const_point_iterator</tt></a>
+          corresponding to the <a href=
+          "#value_type279018186"><tt>value_type</tt></a> with
+          <span class="c1"><tt>r_key</tt></span> as its key, or the
+          <a href=
+          "#const_point_iterator2364676009"><tt>const_point_iterator</tt></a>
+          corresponding to the just-after-last entry if no such
+          <a href=
+          "#value_type279018186"><tt>value_type</tt></a>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link15" id="link15">Erase Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>bool</b>
+  erase
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Erases the <a href=
+          "#value_type279018186"><tt>value_type</tt></a> associated
+          with <span class="c1"><tt>r_key</tt></span>. returns
+          <tt><b>false</b></tt> iff <span class=
+          "c1"><tt>r_key</tt></span> was not contained.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+  <b>class</b> Pred&gt;
+<a href="#size_type55424436"><tt>size_type</tt></a> 
+  erase_if
+  (Pred prd)
+</pre>
+        </td>
+
+        <td>
+          <p>Erases any <a href=
+          "#value_type279018186"><tt>value_type</tt></a> satisfying
+          the predicate <span class="c1"><tt>prd</tt></span> (this
+          is transactional, either all matching <a href=
+          "#value_type279018186"><tt>value_type</tt></a>s are
+          erased, or, if an exception is thrown (for types whose
+          erase can throw an exception) none); returns the number
+          of <a href=
+          "#value_type279018186"><tt>value_type</tt></a>s
+          erased.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  clear
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Clears the container object.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link16" id="link16">Iteration Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+  begin
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the first <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+  begin
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a>
+          corresponding to the first <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#iterator10418194"><tt>iterator</tt></a>
+  end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the just-after-last <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#const_iterator98626788"><tt>const_iterator</tt></a>
+  end
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a>
+          corresponding to the just-after-last <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/container_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..52553278cac2614875adc035c8b109bcff3631b2
GIT binary patch
literal 11884
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg b/libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg
new file mode 100644
index 000000000000..3b5a9818967d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/container_cd.svg
@@ -0,0 +1,418 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="11in"
+   height="8.5in"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   version="1.0"
+   sodipodi:docbase="/mnt/share/src/policy_based_data_structures/current/pb_ds/doc"
+   sodipodi:docname="container_cd.svg"
+   inkscape:export-filename="/mnt/share/src/policy_based_data_structures/current/pb_ds/doc/container_cd.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3311"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart"
+       style="overflow:visible">
+      <path
+         id="path3319"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(0.3,0,0,0.3,-1.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3337"
+         d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="scale(0.2,0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send"
+       style="overflow:visible">
+      <path
+         id="path3316"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-0.3,0,0,-0.3,1.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible">
+      <path
+         id="path3322"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-0.6,0,0,-0.6,3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path3346"
+         d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="scale(-0.8,-0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3331"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(1.1,0,0,1.1,-5.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path3328"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-1.1,0,0,-1.1,5.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="396.81316"
+     inkscape:cy="280"
+     inkscape:document-units="in"
+     inkscape:current-layer="layer1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1278"
+     inkscape:window-height="973"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     gridtolerance="0.125in"
+     guidetolerance="0.125in">
+    <sodipodi:guide
+       orientation="horizontal"
+       position="629"
+       id="guide1307" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="449"
+       id="guide1309" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="269"
+       id="guide1311" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="496"
+       id="guide1313" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="361"
+       id="guide1315" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="226"
+       id="guide1317" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="631"
+       id="guide1319" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="766"
+       id="guide1321" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="91"
+       id="guide1345" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="901"
+       id="guide1347" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="539"
+       id="guide3390" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="359"
+       id="guide3392" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="280.5"
+       id="guide3324" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="172"
+       id="guide3326" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="388"
+       id="guide3328" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="711.5"
+       id="guide3340" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Benjamin Kosnik</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect1425"
+       width="141.64481"
+       height="23.200001"
+       x="209.57762"
+       y="382.56177" />
+    <rect
+       y="382.56177"
+       x="425.57761"
+       height="23.200001"
+       width="141.64481"
+       id="rect3376"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3378"
+       width="141.64481"
+       height="23.200001"
+       x="640.77765"
+       y="382.56177" />
+    <text
+       sodipodi:linespacing="100%"
+       id="use1329"
+       y="397.09772"
+       x="497.20001"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1703"
+         x="497.20001"
+         y="397.09772">list_update</tspan><tspan
+         sodipodi:role="line"
+         id="tspan1705"
+         x="497.20001"
+         y="406.69772" /></text>
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="712.40002"
+       y="397.09772"
+       id="use1337"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1707"
+         x="712.40002"
+         y="397.09772">basic_hash_table</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="282"
+       y="397.09772"
+       id="text1339"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1701"
+         x="282"
+         y="397.09772">basic_tree</tspan></text>
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3418"
+       width="141.64481"
+       height="23.200001"
+       x="101.57762"
+       y="472.5618" />
+    <rect
+       y="472.5618"
+       x="317.57761"
+       height="23.200001"
+       width="141.64481"
+       id="rect3420"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3422"
+       width="141.64481"
+       height="23.200001"
+       x="533.57764"
+       y="472.5618" />
+    <rect
+       y="472.5618"
+       x="748.77765"
+       height="23.200001"
+       width="141.64481"
+       id="rect3424"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="171.20001"
+       y="486.29773"
+       id="text3394"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1715"
+         x="171.20001"
+         y="486.29773">tree</tspan><tspan
+         sodipodi:role="line"
+         id="tspan1717"
+         x="171.20001"
+         y="495.89773" /></text>
+    <text
+       sodipodi:linespacing="100%"
+       id="text3400"
+       y="486.29773"
+       x="386.39999"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1709"
+         x="386.39999"
+         y="486.29773">trie</tspan><tspan
+         sodipodi:role="line"
+         id="tspan1711"
+         x="386.39999"
+         y="495.89773" /></text>
+    <text
+       sodipodi:linespacing="100%"
+       id="text3406"
+       y="486.29773"
+       x="601.20001"
+       style="font-size:9.60000038px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1713"
+         x="601.20001"
+         y="486.29773">cc_hash_table</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="818"
+       y="486.29773"
+       id="text3412"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1719"
+         x="818"
+         y="486.29773">gp_hash_table</tspan></text>
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3380"
+       width="141.64481"
+       height="23.200001"
+       x="425.57764"
+       y="292.56177" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="497.20001"
+       y="307.09772"
+       id="text1323"
+       sodipodi:linespacing="100%"
+       inkscape:export-xdpi="90"
+       inkscape:export-ydpi="90"
+       inkscape:export-filename="/mnt/share/src/policy_based_data_structures/pb_ds_images/container_diagram.png"><tspan
+         sodipodi:role="line"
+         id="tspan1369"
+         x="497.20001"
+         y="307.09772">container_base</tspan></text>
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.97031623px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 170.97058,472.5 L 170.97058,451 L 387.51871,450 L 387.51871,472.5"
+       id="path2244" />
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 280.5,450.53297 L 280.5,410.62445"
+       id="path3332" />
+    <path
+       id="path3353"
+       d="M 601.47058,472.5 L 601.47058,451 L 818.01871,450 L 818.01871,472.5"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:0.97031623px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path3355"
+       d="M 711,450.53297 L 711,410.62445"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <path
+       id="path3344"
+       d="M 281.18218,383.28102 L 281.18218,361.78102 L 711.79281,360.78102 L 711.79281,383.28102"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.3682909px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       id="path3347"
+       d="M 497.75146,383.49616 L 497.75146,322.77107"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+  </g>
+</svg>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/container_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/container_tag.html
new file mode 100644
index 000000000000..b9f05319dc2d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/container_tag.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>container _tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>container _tag</tt> Interface</h1>
+
+    <p>Basic data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html
new file mode 100644
index 000000000000..142cca19570e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/counter_lu_policy.html
@@ -0,0 +1,259 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>counter_lu_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>counter_lu_policy</tt> Interface</h1>
+
+    <p>A list-update policy that moves elements to the front of the
+    list based on the counter algorithm.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/list_update_policy.hpp"><tt>list_update_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Max_Count39887466" id=
+"Max_Count39887466">size_t Max_Count </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Maximum count.</p>
+
+          <p>When some element is accessed this number of times, it
+          will be moved to the front of the list.</p>
+        </td>
+
+        <td>5</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+
+          <p>This is used only for definitions, e.g., the size
+          type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="max_count52407466" id="max_count52407466">max_count</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Max_Count39887466"><tt>Max_Count</tt></a>
+}
+</pre>
+        </td>
+
+        <td>
+          <p>Maximum count.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Metadata-Type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Some class containing a counter.
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata on which this functor operates.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p>Reference to metadata on which this functor
+          operates.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Metadata Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#metadata_type2849297114"><tt>metadata_type</tt></a>
+  <b>operator</b>()
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Creates a metadata object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>bool</b> 
+  <b>operator</b>()
+  (<a href=
+"#metadata_reference583863863"><tt>metadata_reference</tt></a> r_metadata) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Decides whether a metadata object should be moved to
+          the front of the list.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/design.html b/libstdc++-v3/docs/html/ext/pb_ds/design.html
new file mode 100644
index 000000000000..e83bd4dd20a8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/design.html
@@ -0,0 +1,96 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Design</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Design</h1>
+
+    <p>The <tt>pb_ds</tt> namespace contains:</p>
+
+    <ol>
+      <li>Exception classes (see <a href=
+      "interface.html#exceptions_common">Interface::Exceptions::Common</a>)</li>
+
+      <li>Invalidation-guarantee tags (see <a href=
+      "ds_gen.html#inv_guar">Design::Invalidation Guarantees</a>
+      and <a href=
+      "interface.html#ds_inv_tag">Interface::Data-Structure Tags
+      and Traits::Invalidation-Guarantee Tags</a>).</li>
+
+      <li>Associative Containers (see <a href=
+      "tree_based_containers.html">Design::Associative
+      Containers::Tree-Based Containers</a>, <a href=
+      "trie_based_containers.html">Design::Associative
+      Containers::Trie-Based Containers</a>, <a href=
+      "hash_based_containers.html">Design::Associative
+      Containers::Hash-Based Containers</a>, and <a href=
+      "lu_based_containers.html">Design::Associative
+      Containers::List-Based Containers</a>, and <a href=
+      "interface.html#containers_assoc">Interface::Containers::Associative
+      Containers</a>).</li>
+
+      <li>Associative Container tags and traits
+      (see <a href="ds_gen.html">Design::Associative
+      Containers::Data-Structure Genericity</a>, <a href=
+      "interface.html#ds_ts_assoc">Interface::Data-Structure Tags
+      and Traits::Data-Structure Tags::Associative-Containers</a>,
+      and <a href=
+      "interface.html#container_traits">Interface::Data-Structure Tags and
+      Traits::Data-Structure
+      Traits::Associative-Containers</a>).</li>
+
+     <li>Associative Container policies (see
+      <a href="tree_based_containers.html">Design::Associative
+      Containers::Tree-Based Containers</a>, <a href=
+      "trie_based_containers.html">Design::Associative
+      Containers::Trie-Based Containers</a>, <a href=
+      "hash_based_containers.html">Design::Associative
+      Containers::Hash-Based Containers</a>, and <a href=
+      "lu_based_containers.html">Design::Associative
+      Containers::List-Based Containers</a>, and <a href=
+      "interface.html#ds_policy_classes">Interface::Container
+      Policy Classes</a>).</li>
+
+
+      <li>Mapped types for setting the mapping semantics of
+      associative containers (see <a href=
+      "tutorial.html#assoc_ms">Tutorial::Associative
+      Containers::Associative Containers Others than Maps</a> and
+      <a href="interface.html#ds_pol">Interface::Mapped-Type
+      Policies</a>).</li>
+
+
+      <li>Priority Queues (see <a href="pq_design.html">Design::Priority
+      Queues</a> and <a href=
+      "interface.html#containers_pq">Interface::Containers::Priority
+      Queues</a>).</li>
+
+      <li>Priority Queue tags and traits
+      (see <a href="pq_design.html#pq_traits">Design::Priority
+      Queues::Traits</a>, <a href=
+      "interface.html#ds_ts_pq">Interface::Data-Structure Tags and
+      Traits::Data-Structure Tags::Priority Queues</a>, and
+      <a href="interface.html#container_traits">Interface::Data-Structure
+      Tags and Traits::Data-Structure Traits::Priority
+      Queues</a>).</li>
+   </ol>
+
+
+    <p><a href="assoc_design.html">Associative-Container Design</a>
+    describes associative-container design.</p>
+
+    <p><a href="pq_design.html">Priority-Queue Design</a> describes
+    priority-queue design.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/different_underlying_dss.png b/libstdc++-v3/docs/html/ext/pb_ds/different_underlying_dss.png
new file mode 100644
index 0000000000000000000000000000000000000000..adee1263600f811c4fa883a6ce11e6e840ea0eba
GIT binary patch
literal 31858
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
W6yvb$9jrYB{8LfTl&_Js4E=xd(ty4I

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html
new file mode 100644
index 000000000000..1a7d39b70c25
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/direct_mask_range_hashing.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>direct_mask_range_hashing Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>direct_mask_range_hashing</tt> Interface</h1>
+
+    <p>A mask range-hashing class (uses a bit-mask).</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>direct_mask_range_hashing</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Notification Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the policy object that the container's size
+          has changed to <span class="c1"><tt>size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Operators.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  <b>operator</b>()
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> hash) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Transforms the hash value <span class=
+          "c1"><tt>hash</tt></span> into a ranged-hash value (using
+          a bit-mask).</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html
new file mode 100644
index 000000000000..33c99338ad16
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/direct_mod_range_hashing.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>direct_mod_range_hashing Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>direct_mod_range_hashing</tt> Interface</h1>
+
+    <p>A mod range-hashing class (uses the modulo function).</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>direct_mod_range_hashing</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Notification Methods</a></h3>
+
+    <h3><a name="link8" id="link8">Operators.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  <b>operator</b>()
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> hash) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Transforms the hash value <span class=
+          "c1"><tt>hash</tt></span> into a ranged-hash value (using
+          a modulo operation).</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html b/libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html
new file mode 100644
index 000000000000..681af4edf720
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/disclaimer.html
@@ -0,0 +1,34 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>What, me worry?</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h2>Disclaimer and Copyright</h2>
+
+    <p>Revised 16 February, 2004</p>&copy; Copyright Ami Tavory and
+    Vladimir Dreizin, IBM-HRL, 2004, and Benjamin Kosnik, Red Hat,
+    2004.
+
+    <p>Permission to use, copy, modify, sell, and distribute this
+    software is hereby granted without fee, provided that the above
+    copyright notice appears in all copies, and that both that
+    copyright notice and this permission notice appear in
+    supporting documentation.</p>
+
+    <p>None of the above authors, nor IBM Haifa Research
+    Laboratories, Red Hat, or both, make any representation about
+    the suitability of this software for any purpose. It is
+    provided "as is" without express or implied warranty.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html b/libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html
new file mode 100644
index 000000000000..5c3eea6a4236
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/ds_gen.html
@@ -0,0 +1,344 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Data-Structure Genericity</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Data-Structure Genericity</h1>
+
+    <h2><a name="problem" id="problem">The Basic Problem</a></h2>
+
+    <p>The design attempts to address the following problem. When
+    writing a function manipulating a generic container object,
+    what is the behavior of the object? <i>E.g.</i>, suppose one
+    writes</p>
+    <pre>
+<b>template</b>&lt;<b>typename</b> Cntnr&gt;
+<b>void</b>
+some_op_sequence(Cntnr &amp;r_container)
+{
+    ...
+}
+</pre>then one needs to address the following questions in the body
+of <tt>some_op_sequence</tt>:
+
+    <ol>
+      <li>Which types and methods does <tt>Cntnr</tt> support?
+      Containers based on hash tables can be queries for the
+      hash-functor type and object; this is meaningless for
+      tree-based containers. Containers based on trees can be
+      split, joined, or can erase iterators and return the
+      following iterator; this cannot be done by hash-based
+      containers.</li>
+
+      <li>What are the guarantees of <tt>Cntnr</tt>? A container
+      based on a probing hash-table invalidates all iterators when
+      it is modified; this is not the case for containers based on
+      node-based trees. Containers based on a node-based tree can
+      be split or joined without exceptions; this is not the case
+      for containers based on vector-based trees.</li>
+
+      <li>How does the container maintain its elements? Tree-based
+      and Trie-based containers store elements by key order;
+      others, typically, do not. A container based on a splay trees
+      or lists with update policies "cache" "frequently accessed"
+      elements; containers based on most other underlying
+      data structures do not.</li>
+    </ol>
+
+    <p>The remainder of this section deals with these issues.</p>
+
+    <h2><a name="ds_hierarchy" id="ds_hierarchy">Container
+    Hierarchy</a></h2>
+
+    <p>Figure <a href="#cd">Container class hierarchy</a> shows the
+    container hierarchy.</p>
+
+    <h6 class="c1"><a name="cd" id="cd"><img src="container_cd.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Container class hierarchy.</h6>
+
+    <ol>
+      <li><a href=
+      "container_base.html"><tt>container_base</tt></a> is an
+      abstract base class for associative containers.</li>
+
+      <li>Tree-Like-Based Associative-Containers:
+
+        <ol>
+          <li><a href=
+          "basic_tree.html"><tt>basic_tree</tt></a>
+          is an abstract base class for tree-like-based
+          associative-containers</li>
+
+          <li><a href=
+          "tree.html"><tt>tree</tt></a>
+          is a concrete base class for tree-based
+          associative-containers</li>
+
+          <li><a href=
+          "trie.html"><tt>trie</tt></a>
+          is a concrete base class trie-based
+          associative-containers</li>
+        </ol>
+      </li>
+
+      <li>Hash-Based Associative-Containers:
+
+        <ol>
+          <li><a href=
+          "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+          is an abstract base class for hash-based
+          associative-containers</li>
+
+          <li><a href=
+          "cc_hash_table.html"><tt>cc_hash_table</tt></a>
+          is a concrete collision-chaining hash-based
+          associative-containers</li>
+
+          <li><a href=
+          "gp_hash_table.html"><tt>gp_hash_table</tt></a>
+          is a concrete (general) probing hash-based
+          associative-containers</li>
+        </ol>
+      </li>
+
+      <li>List-Based Associative-Containers:
+
+        <ol>
+          <li><a href=
+          "list_update.html"><tt>list_update</tt></a> -
+          list-based update-policy associative container</li>
+        </ol>
+      </li>
+    </ol>
+
+    <p>The hierarchy is composed naturally so that commonality is
+    captured by base classes. Thus <tt><b>operator[]</b></tt> is
+    defined <a href=
+    "container_base.html"><tt>container_base</tt></a>, since
+    all containers support it. Conversely <tt>split</tt> is defined
+    in <a href=
+    "basic_tree.html"><tt>basic_tree</tt></a>,
+    since only tree-like containers support it. <a href=
+    "#container_traits">Data-Structure Tags and Traits</a> discusses how
+    to query which types and methods each container supports.</p>
+
+    <h2><a name="container_traits" id="container_traits">Data-Structure Tags and
+    Traits</a></h2>
+
+    <p>Tags and traits are very useful for manipulating generic
+    types. For example, if <tt>It</tt> is an iterator class, then
+    <tt><b>typename</b> It::iterator_category</tt> or
+    <tt><b>typename</b>
+    std::iterator_traits&lt;It&gt;::iterator_category</tt> will
+    yield its category, and <tt><b>typename</b>
+    std::iterator_traits&lt;It&gt;::value_type</tt> will yield its
+    value type.</p>
+
+    <p><tt>pb_ds</tt> contains a tag hierarchy corresponding to the
+    hierarchy in Figure <a href="#cd">Class hierarchy</a>. The tag
+    hierarchy is shown in Figure <a href=
+    "#tag_cd">Data-structure tag class hierarchy</a>.</p>
+
+    <h6 class="c1"><a name="tag_cd" id="tag_cd"><img src=
+    "assoc_container_tag_cd.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Data-structure tag class hierarchy.</h6>
+
+    <p><a href=
+    "container_base.html"><tt>container_base</tt></a>
+    publicly defines <tt>container_category</tt> as one of the classes in
+    Figure <a href="#tag_cd">Data-structure tag class
+    hierarchy</a>. Given any container <tt>Cntnr</tt>, the tag of
+    the underlying data structure can be found via
+    <tt><b>typename</b> Cntnr::container_category</tt>.</p>
+
+    <p>Additionally, a traits mechanism can be used to query a
+    container type for its attributes. Given any container
+    <tt>Cntnr</tt>, then <tt><a href=
+    "assoc_container_traits.html">pb_ds::container_traits</a>&lt;Cntnr&gt;</tt>
+    is a traits class identifying the properties of the
+    container.</p>
+
+    <p>To find if a container can throw when a key is erased (which
+    is true for vector-based trees, for example), one can
+    use</p><a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::erase_can_throw</tt>,
+    for example.
+
+    <p>Some of the definitions in <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a> are
+    dependent on other definitions. <i>E.g.</i>, if <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::order_preserving</tt>
+    is <tt><b>true</b></tt> (which is the case for containers based
+    on trees and tries), then the container can be split or joined;
+    in this case, <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
+    indicates whether splits or joins can throw exceptions (which
+    is true for vector-based trees); otherwise <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>
+    will yield a compilation error. (This is somewhat similar to a
+    compile-time version of the COM model [<a href=
+    "references.html#mscom">mscom</a>]).</p>
+
+    <h2><a name="find_range" id="find_range">Point-Type and
+    Range-Type Methods and Iterators</a></h2>
+
+    <h3><a name="it_unordered" id="it_unordered">Iterators in
+    Unordered Container Types</a></h3>
+
+    <p><tt>pb_ds</tt> differentiates between two types of methods
+    and iterators: point-type methods and iterators, and range-type
+    methods and iterators (see <a href=
+    "motivation.html#assoc_diff_it">Motivation::Associative
+    Containers::Differentiating between Iterator Types</a> and
+    <a href="tutorial.html#assoc_find_range">Tutorial::Associative
+    Containers::Point-Type and Range-Type Methods and
+    Iterators</a>). Each associative container's interface includes
+    the methods:</p>
+    <pre>
+const_point_iterator
+find(const_key_reference r_key) const;                
+
+point_iterator
+find(const_key_reference r_key);         
+    
+std::pair&lt;point_iterator,<b>bool</b>&gt;
+insert(const_reference r_val);
+</pre>
+
+    <p>The relationship between these iterator types varies between
+    container types. Figure <a href=
+    "#point_iterators_cd">Point-type and range-type iterators</a>-A
+    shows the most general invariant between point-type and
+    range-type iterators: <tt>iterator</tt>, <i>e.g.</i>, can
+    always be converted to <tt>point_iterator</tt>. Figure <a href=
+    "#point_iterators_cd">Point-type and range-type iterators</a>-B
+    shows invariants for order-preserving containers: point-type
+    iterators are synonymous with range-type iterators.
+    Orthogonally, Figure <a href="#point_iterators_cd">Point-type
+    and range-type iterators</a>-C shows invariants for "set"
+    containers: iterators are synonymous with const iterators.</p>
+
+    <h6 class="c1"><a name="point_iterators_cd" id=
+    "point_iterators_cd"><img src="point_iterators_cd.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Point-type and range-type iterators.</h6>
+
+    <p>Note that point-type iterators in self-organizing containers
+    (<i>e.g.</i>, hash-based associative containers) lack movement
+    operators, such as <tt><b>operator++</b></tt> - in fact, this
+    is the reason why <tt>pb_ds</tt> differentiates from the STL's
+    design on this point.</p>
+
+    <p>Typically, one can determine an iterator's movement
+    capabilities in the STL using
+    <tt>std::iterator_traits&lt;It&gt;iterator_category</tt>, which
+    is a <tt><b>struct</b></tt> indicating the iterator's movement
+    capabilities. Unfortunately, none of the STL's predefined
+    categories reflect a pointer's <u>not</u> having any movement
+    capabilities whatsoever. Consequently, <tt>pb_ds</tt> adds a
+    type <a href=
+    "trivial_iterator_tag.html"><tt>trivial_iterator_tag</tt></a>
+    (whose name is taken from a concept in [<a href=
+    "references.html#sgi_stl">sgi_stl</a>]), which is the category
+    of iterators with no movement capabilities. All other STL tags,
+    such as <tt>forward_iterator_tag</tt> retain their common
+    use.</p>
+
+    <h3><a name="inv_guar" id="inv_guar">Invalidation
+    Guarantees</a></h3>
+
+    <p><a href=
+    "motivation.html#assoc_inv_guar">Motivation::Associative
+    Containers::Differentiating between Iterator
+    Types::Invalidation Guarantees</a> posed a problem. Given three
+    different types of associative containers, a modifying
+    operation (in that example, <tt>erase</tt>) invalidated
+    iterators in three different ways: the iterator of one
+    container remained completely valid - it could be de-referenced
+    and incremented; the iterator of a different container could
+    not even be de-referenced; the iterator of the third container
+    could be de-referenced, but its "next" iterator changed
+    unpredictably.</p>
+
+    <p>Distinguishing between find and range types allows
+    fine-grained invalidation guarantees, because these questions
+    correspond exactly to the question of whether point-type
+    iterators and range-type iterators are valid. <a href=
+    "#invalidation_guarantee_cd">Invalidation guarantees class
+    hierarchy</a> shows tags corresponding to different types of
+    invalidation guarantees.</p>
+
+    <h6 class="c1"><a name="invalidation_guarantee_cd" id=
+    "invalidation_guarantee_cd"><img src=
+    "invalidation_guarantee_cd.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Invalidation guarantees class hierarchy.</h6>
+
+    <ol>
+      <li><a href=
+      "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a>
+      corresponds to a basic guarantee that a point-type iterator,
+      a found pointer, or a found reference, remains valid as long
+      as the container object is not modified.</li>
+
+      <li><a href=
+      "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>
+      corresponds to a guarantee that a point-type iterator, a
+      found pointer, or a found reference, remains valid even if
+      the container object is modified.</li>
+
+      <li><a href=
+      "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a>
+      corresponds to a guarantee that a range-type iterator remains
+      valid even if the container object is modified.</li>
+    </ol>
+
+    <p>As shown in <a href=
+    "tutorial.html#assoc_find_range">Tutorial::Associative
+    Containers::Point-Type and Range-Type Methods and
+    Iterators</a>, to find the invalidation guarantee of a
+    container, one can use</p>
+    <pre>
+<b>typename</b> <a href=
+"assoc_container_traits.html">container_traits</a>&lt;Cntnr&gt;::invalidation_guarantee
+</pre>
+
+    <p>which is one of the classes in Figure <a href=
+    "#invalidation_guarantee_cd">Invalidation guarantees class
+    hierarchy</a>.</p>
+
+    <p>Note that this hierarchy corresponds to the logic it
+    represents: if a container has range-invalidation guarantees,
+    then it must also have find invalidation guarantees;
+    correspondingly, its invalidation guarantee (in this case
+    <a href=
+    "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a>)
+    can be cast to its base class (in this case <a href=
+    "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>).
+    This means that this this hierarchy can be used easily using
+    standard metaprogramming techniques, by specializing on the
+    type of <tt>invalidation_guarantee</tt>.</p>
+
+    <p>(These types of problems were addressed, in a more general
+    setting, in [<a href=
+    "references.html#meyers96more">meyers96more</a>] - Item 2. In
+    our opinion, an invalidation-guarantee hierarchy would solve
+    these problems in all container types - not just associative
+    containers.)</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_1.png b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..9470a65b56852600adf6f89b495c50ae45e50d75
GIT binary patch
literal 16350
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_2.png b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..d2ac91c1ab0200bb03a3d58239aa6b03f72f6d2a
GIT binary patch
literal 18206
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
bY_y+gS`TU0egHpUgCHZJC|>-=FyQ|Iy@7aM

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_3.png b/libstdc++-v3/docs/html/ext/pb_ds/embedded_lists_3.png
new file mode 100644
index 0000000000000000000000000000000000000000..08ecb0ffe161627c846b6cc048986bb6fd8e7bab
GIT binary patch
literal 5612
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
I44lIM0|5U)YXATM

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/examples.html b/libstdc++-v3/docs/html/ext/pb_ds/examples.html
new file mode 100644
index 000000000000..03c7a3910037
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/examples.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Examples</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Examples</h1>
+
+    <p><a href="assoc_examples.html">Associative-Container
+    Examples</a> shows examples for associative containers;
+    <a href="pq_examples.html">Priority-Queue Examples</a> shows
+    examples for priority queues.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/exceptions.html b/libstdc++-v3/docs/html/ext/pb_ds/exceptions.html
new file mode 100644
index 000000000000..3b50c27aa047
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/exceptions.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>container_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>container_error</tt> Interface</h1>
+
+<p>Base class for associative-container exceptions.</p>
+
+<p>Defined in: <a href=
+		"../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+<h2><a name="link1" id="link1">Base Classes</a></h2>
+
+<table class="c1" width="100%" border="1" summary="Bases">
+<tr>
+<td width="80%" align="left"><b>Class</b></td>
+
+<td width="20%" align="left"><b>Derivation Type</b></td>
+</tr>
+
+<tr>
+<td>
+<pre>
+std::logic_error
+</pre>
+</td>
+
+<td>
+<p>public</p>
+</td>
+</tr>
+</table>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..d86299b7e3ec1f3fd57d866f3b5edb7fd35fdcf2
GIT binary patch
literal 6194
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b31b7f27ca70c8909918fe056b3a64af5ece172
GIT binary patch
literal 7916
zcmch6XH-*BwB}9d(xq1s3spdZfFObj(tDE*0-=SDgiZiKl&YW-=|z!_bg4nA5W3Pr
zlOnwrDPrCYZ>?GLX3d{@Gi&ZzDf^tgzy0lRpWK{#?@JvmW$H`pmjD2uR#j2d0{|!r
z03f;KMBqqFn*k#L5CJ+G21=j_05AZ60{|KTumFH3STGm>g99)$0K)<>JYf<J1K@A~
zjt1aZ0FEd4qG13U4xrHh8VjKDgitIDz`_A68o*)!EFMGx@Gt-m2k>YBj|K3c0b+yD
zAQl)5dgBRs2nQSnL&IQL7z|HH3tDhE4337uu`oEEzyh2^!(nJN42^}M@dQ$!FBT5N
zqG4Dp42uUjf}t=x9EL~3@K_ig%nGsw!9da=OOO^g2POuwL1+*Q48{`*BG}-8hQqON
zIG#`+m=?6qXgC@RN8<_Qf-JyEEE<l*!m)U;dXN<83&*43cq|+bmIvwq(gdSHIl%fs
z5@3ZOYY+@14YCAXK^|aY5F3OBvG4@t2-Bbq9#}LQPY@EU4@?VMSS%Wg2XzI@1zCWT
zXgn5;2XzFM1_c0lf$pHtV6~u>pdKJiFdCEt<OCKBRtT~N!9dbrBuES70VW2qL1;Xo
zMFekf8nnR!4|WU`608qQ3tCt_p3uOH_7hlKbd=D~izX3BUFc3|?}d~Eju+|>x_wbF
zf$~KSgyvt+B2;jZ34{ih1K1@{Jg}yVR2M7p|NEPLKoA$0l)^*B#2Wx8FB4vn;pvdS
z;NTS>r6)f6?r<NZjh8*3q_4xH?C9?8<8ABZ<l)03efy4xnD~3&bY=kHa8OlzVBnXw
znQrnfPmoc`q%34#DF0VbTEf2PeXZq>Ji%r2N_QKKl-SkyGP0ONZ~)J9T|OX|nwVTA
z41fsG@$is9iSratC`NL+L?{HR$D^Qd>AySaH9k0Cy^^{Ol{|v+e?582RowN`{wd<a
z&!Ni)RaPb=ZkWzYO!uYYx<BZGh>5cuBDnI>8xNv(A{3zhBt^JGF;_`Icsv@79P1Tn
zs7w8Ia(==zA@1=zc~&NMaj3_|NEub%v!oFi+_V*v%mMe(-<$0fU0&{v_T0}s?sxbd
zQd>0Fa@qZ7iQ=OVt%812RLg(=a^vmp$EIHCK)MO7lu<3r^7(T1opt4?tL7pM-1-&I
z<U*)@?w4EjNYLvQ64wHYagEQ)eDG^Cku0dxiD7-H#8g`Jk;~tIPw=q_Yk8l7oIC@H
z5YZ!T^TzDjvBp&AxtF&&9-*RA8HPe$X6BCThnARIx7Z4n>rlWUb<qLukV1>E$9fIZ
z>Dn}dt7d<737pkU7Q0PkT@p43cbnR*FqOP2Vp6a9VlGdz)^-q%7n}N_eCD>8ur+pL
zPBLU^A^Fl^aag{EM$!=JV&wGfvUAme-51BYf`p^#9aYKN#TX~y;KPPw0UO=ZyEmoc
zZ?^>RY_p!5O;gmKpTQdn;y|~%@ra>(>B$$gH%d98lf`0zTJ!JuY?V~c0o;xd--O_#
z@1q)`s~A#NZ%#zf3NHQ$=|dFqTIb0RE~DvH)F#H0_*f(PAE$CU^o0=73;H<*(Ycka
z(z{*0g3+n^qoTRw<>!H2qmHwY#sjhFH}tG3D9vltzx~U|4q+N>($Rp)h>AK~Mv%3T
zic=MJmSrAM9<wat{HXCp@eJDoRH3%u?;CD3IRCb#ejRtpfseU2=!wV&Ss84k;wrgl
z2LoERy|Qk`;lk+Vyoa^|V5Cc1P6fMUe%`$UpPbmnNAwoUC<i%`8*-~V)5gq2^2HS@
zvpR&SiI2(urEoUn{+OpNH=M|qW(vvkIyBBX$iawGiiwLLOE%uzDCCEx#=qrUE!%zS
zCShBp%_Lv{a78if3bS=%o-EG0dUWr8c~ova72`H0U|oA-RFL>srE2wIX~0Im$N3yl
zu|U54a7qhl$3t3*Dz#@!R!r8-kw!Bw;)<7o%Nez0hhc-f7DK}cRzLsM>&!`!e4do`
zH&&Jv_|<7S04{#))QgG!k+Yzb)n`o)QM8I?GtK*^5%6z%xA@0gVFqm7;meQgy#*~c
zz6Hu?9%ljT^>x0sI!C;Z;`l;-osjXTx?%6qyH6eJRx$0#L5vax&>zWRV_(uYgl6M}
zr@sk|AaQ0(rk!KNpC?_OHHY|I{Z{O2==5NcaiZlJE_XD@)BTytRU^IkXi?tGv6OYm
zp_#6e%j(CMA7RszgGlAO7L}Bj_AFS{p2S+|tjl%a$jeI)m(T7;-LBcUk$4yvY*pVX
zqO10V&*Y#a@PTwk(-gbwu<lYo#@c8mN9JGL^!`tQGsOajoEL^A)WF!+5@;{+6GNTH
zolSx(h<Jq&*KclF3tB2aWpX$smCk8w4^k`EeMB)qMK4-71DaghdAkl8y@Ng`&T&<@
z^o6r7%H+(YykCm9a68}i2;k~maod|Ws%OdySZ-(EM9#Y7uwzNMn`{!<8ZPr)d@smO
z-X&Ga_()|=r3qa%^X!0XG~%u<i!5?J7)nR=^Ix9p*>G<tSCqP2C4WL+-ssh@6F0OK
z-xvH!PrEt8-0Mn~Jm(GJuF&P;rM2;Gf6*URO49FROX|{qYnxju96XsW?9>rvH77Ua
zBuyp-L^aZXF#mF^VS0~rDRD;uRxuVe6xo_?FFWI01)g!eN=Y%S9~yskwnw+gT0Y3~
z$H_~bQq3a9k!W&M+zHVU?El=C?iDe=Or@Gdj+qN(V!M%fi)~jHqZukE)~t<oWK($@
zn!H)f=h_h*80||{+|}7o8fIBC`0+ftI!q+DC_Ah~TIac0VPwyn!@-Zm;gMn1PE=Y!
z7$Z*U$lT`>+oFgZBqAj+6(3J?w{ViVW*#HZlZ=ULqxgfUv=hAbt<}h!CAm5>(D^ow
zVxpts>we8<E{T+`bfwi+m7G@BQ@oRKpYihp?=v|a1NOIl+)lLuG{(lmL09^Pw<|KA
zaEOw7=AH}NSKGWKZaO)5USTPWY0Ae;C2i)O^9P;Eu6G|}zX}={6#!>`q%#`iF*J%&
zF-NK0y8~6sf-ZfsB*zHf_VS`Rd-*R_mPxCR&tzg>aMkI3j1o7t?>F!~HHDNSeiw~c
zHNd{XRxB5vIlcX=_7>&VvuA>H7d>X(aVcwYb8F!?8XFUKOMFXF&hxB{o9u5ul?ku*
z??yPZKP~aZLDFJ!vkL`Kr`);e^>J`g?X1>axXP`gS!j3O$@---&M`2%l>W-CpOS5@
zwoai!zM_7YCq^y96690rSk;{SvVbe9f0jLEb<YCz)z2D(Pgl{dpVKOGXbh~Cl323H
zjZs0o$KKG!L3eU+=}kx8!q~$m2NINUlAjpf3N0RT8d+W`JHIo-F&I;$%gFS0{a0Sq
z!lkXYRg&#Wo-JJOW^U8n4Zoq9ljWc?>Lk*8(1~-5Vs{+0s<7XDI>4-WPNbeYT7)f2
z?mkRYR=4dT>O8xPd84(3<|sP8MVo~mr$>_M;~_UO=let7q&h6|zVCO@fJ~9m2FLea
z9-^JOAL7VV-1!za);0RxP<^nLE6)(VVb~PG78pa~qg|VxSop>E^LBNk3W^?iLp@ZX
z)<+1l=S0!H-FG0QprKCnpbJWT4fxO9!K)JDjd&97PCck^7gXC;R84I&{!S&vxY;Je
zgL=f!%+s1`!+4LO!M5)xu{#LymR;<j_wyT8;m*#VNgKJ4x_Ss?aR>9<u3@T^$5%%o
zn%Hm)5@lqU=_ZBf$+M+r#nO#GjW}6J@)<7UxYoCm4+HW~3=PU8z(tGmOs1RQa`{lA
z_Tz6)`{PT5v2_8xZ+2y$J(~A^bH6N+-U(4lF5mfJ__FszP_|JSx20<4Id^_cG!(+}
zpsA=u#)`$YvGb6~%rlGJfk$RYnR=s`U&Gs}GP0bB%=t?fME|TJvgT;<=BWP}4dG|f
z7`9TU9;jf#xnc=JbcDgi4aGF8tgScf(Fp={P~z}CEtLkxR?N7o0y*8i*jpH~nMfK%
zN>b8vI)ztq411`^L<P`&kOFeC#VV#Gz4$yQU48DUuyc>F`!W>c>9BO&`Wwt|Dkj$Y
z2ck<7kuUb1S*{Mj3F2n~1RK*!j$%9r|KDxb5H~OyM1HKHNZ}MGfOfv|O{Un$pa=+c
z)JskQqo&R!AzEmnZu<sjH+@V=+F2T&3upg8__q4I9V;Ob$4sSxMn`p2JZ!5?V=P0U
z1C?>$X@fsog<^^>qM`~TH9h^?Nxg>IMu;X^CyzLrdqU#gQDDZg$l`5LP_tL$?tQ-u
z+L9zG^6^_rbHxop;9&n8VyK8|zIvTm8P(8~ry9cqO38+R?7?T;D4ft!*(pl5m`oHo
z5~cQh8K}&C!4R!qea{h31^YKGHKL*vYu|A|ep&e|QG(5*8hX~MHPqcG#fbP)P{Rc_
zfj#_2mMm8-v61s0O_T>M=p%77%BjrZaav@r*>Tt6vJFqlADO(s@mEC49+z%T5Y-%1
z$Sln^{?V(8X)3DVjwFCE5PzC)ob<g-x*h+Wdi9m|^zJp#-+^2Z;@*bJCpT*KyFzy_
za)hGwx8j`1hD}O~)_SAd7hxJGF%-%3fi^FTnmpqh)7&d1)j8FTu`fpVdpJXT%Lr>D
zO{=>{_S@(1R{e3cloOmGEh7061PYPlgXUQ$I9_b7JttAL8(8LO=2&$<!>P)l@G!z&
ze1(Kaj|bCg9pH~-p@jr0CXgmkGJ|K#{v*WrwbL`sUbw73u@)b3pdzh;al^jfdibu)
z=!=u>EBLY3|H_qpZZ+MR@0CtQ{#`dhjbE!r^|SA?FXU%yPxg$QuHQVoh+JMRqIb7G
zm(b`q_de`$v6=tDP0aj>>?qoeYcr;<npih`iYe{biC9feJ+#M_%$mpawLygOi{0FH
zUGep8CcACkLV4L9OGd|*H`)xYe9wQ-g}gh`Z{~K;qAbXKENK63&%k;HBH$}J4$I$B
zsX{*YRz{gpf0q$9=r@14FK?Ogn*mO7$Fik@L+_BM{|uFYh?!Fgyq^-d&hRlR?O#o3
z*qcw1l8^dcr=*=t$&WbMDmzLocIej)xTaqbAaxglxVz{&{Nzz*<g&*q(P$5_bx_(z
zN^Cc*eR4Hc<N30mIz!fYZNS@k=h_dl+v%jKuCMp1biydkO;iKlLz}8Z^jX%!D~T8b
zoAEH`bnnCXb56X8bN7vD_XM^DSKrFM7LgXS>X5m5L(=-OX<<q#MPx$yXrf7NR$Eh=
zMqr(zkchYfy#U9&_KgSS5;C$6IWDPRmp7@13}`*MEcPa<|FqU#x@pdl#cofzxHg)e
zoo&?jyHVP%qn@^y_@4FZ;C5khQFc_;hie5j49Ri(jzk$6PX@*pP+w-c7H9s7uTuv`
zDE)h8=4rpVbuhlZo7dN=+dgfS9d%u+hqp)n&kDEV{=C;WnHxUpMaDUOT3vSbsX~}D
z*ADyS8$Q=$ubRB=v{*f!il}6@x31GDUChXQoOz6tAaftN-z9Z>vUsgJtfcO9sW4w>
z<}trXUYf9KhidHQ9j_-++HA;3Z{;a-o6k3E+=BJ)6jcz7VT{sp(a{XcC<fg*{mBv4
z)2FYW!QiA6w&>Sd<-a`MRF~P1ZH1V5j$O$rs14tJ8+hVTxoKqZ&*M;2U4#AcW0A(3
zX>C^DIRo65h?(afIZW_9&3I-@n&M<pDV$pee?|Kf3rm!jXmCxT#*rDHv1`Zl8DP)1
z7?t(P)`wOhkpcRHk4n}9iF?&>2$8X18l+!)UF_||R7?O3s9|DREktpb%UtztW_bEu
zBZ{jo!?mNyE8dw-?S;+cW6G!w<8P%8!W~;vh~EO>SwbK>8T<=_{C6*I|Bo(<?cUC@
zW(`@TQ+kG8eL=@V$LKnWK(IP)qB18jcQ*<D9BG%U`lObNysvJFuKZ87XKS(T^4+z>
zFwZ(oRD6kgtsc{;9Tm*;2>v_1ZO?HV`P1DxA`hRp4TYG(=Xo$viYK@J$G6*%LT4-P
zK051J-DVXONjjan*`9iNtzPPi+dg=eldzZPZol7mUMMdN^VCCKeev_<mgK<ef2aHd
zr~Tmd2YkM`=X6cMr`A9IU`*M6vbO5vlWU%KKgozjnvp5SMzadpuqIXhV0gA2x!~B)
z=bhJbzvpH%hceDJ<J$S5uH^2t^yGhLs(88GIpmwVtP&cWtQll1zC9Z4S~;3;amc|s
zY}FP4HIJEj%kK@=q7uqQd&%QzjNhYx-N*KY|LM>b0kvyw^DaH5rdll{f;Qe2%WI)A
zXq6(1Iv5Mn>h24>dj8Cs_4g4b@gI9MX%2)Aynm5QLlP|*D_P!JWGyi-pZpJ6&%hIP
z+mYyOM@)l_wfiIWMjO$P{TyVNRI(A!jT|DC3}T9X{P)GMl>!plE=KyyI)b(h^~J9N
zSO_F;iTE`#n+d#s$%QL;mv?IcZo`XdhmXqcb1%I?8tJX`oE!S^DGb#w-A&{q6^m{#
zZTFr~m1Ezs>%Uv%)PC*!qYod(X`Zbfucq&m8Y6BU%H8<n$*08>=xopF!1M<%Bk9<%
z1LL7|z(1V%%b|PEw7H%pYqp)Tq5rQhGqA*%1D26|03TA~E#gW!u!|)!7vi?=H|f)W
z4qK@qp=pbf?k*y(F87ms8R#i#J^GDpzFy8Nzx3#|XhjPZy6M(DyEIeS|26%IU|VEN
z6HaPCznNZsX;Q~N&M&Veev7!S_R}AEb=7s>o_dpb<&>EH?Xk2?#5-zRu&x6>g$`4(
z-b%X+4Z|RPH_j6AdwDIWcoOo*0F?7Z#ohRC=)`)8Bx$-ivE)8a#{TDwGQC6)nnx3y
z%D*&JvMcY=S>LuF$&5_OV+`B8GI8NQOpzo^XMI=yHG7XaJ+YBwm##E}-aVT)M9^X$
z=Zv%GMax7&sSEsR6atxI-vNkGA_r}$=V6ewy*Fnh?CKqco2on*PyP#!0<@Sa1VW?o
zom07>NYCN+|HbVpj3hQ-LbyVj#4DeqXnZtzn<;q;$Ebk1m7-Wv%2Gle2M~`#O*V55
zdZCaS6r0kl$m1r*pgx>AD<ye3Ne(6Nm|Ki@kTNdr)>-p?oh&F65k5X{pwf?^-D_GZ
zV^8_ZNM|kd&V)blyQ{&Gc5^!8V>neJ(=F-3ag!?iQJd}i-8bn`oluh@sP6`I7O^y}
z;Q{&e?nLJ9$20$sV^h4yvdbjD!X*j7VJn`(=5C?TA5AnfM3xhVLIYR8(TF=N!ne*!
zx}<py^8a7o%$woGEWU&C9dV=-H6@?c`R_-3n}hrE{?^a9E;Y?Z>{pwRD)mugD%Ia!
zJDqF)vSpb0oIry=r}l^x@sl8yZTh*s_H9?MYP;Lpz4H!VZ>W69w@1D)lct4aP%G^R
zK(vmy%`Dg24ZDz|N#ng&jiW-9QCJO3b67{kHg4Zo$nOrs_RK!SEn~5i<!^GZ?rqJd
zEL3d6!g3T=Nx=($*Tlagmb5!xIz0WAyy|^6)c(lh8Z83rLj198jX#d#Jw^HXK&1gn
zjcb-z(eFbW6zl)NXg2Bf;I$Sd-WYL<8EyWB__KX&xmHo-#n;j^?KN_|+Mmt`)!19S
zGlF3Z%yjYfPd{K|KE3cq-Vlu*>=1o#42!o7d5ebr*mb<}I+<(vUyk|GJA~0<cAP)@
zGjB<ejM_-L%8caKgf$O`Pg?`~Id85MhmT}PTSDy~#{HdnB|eRPD8E1>`mccR`26II
zkJkYg^7oqW;0Ud`yHh9q@=;OI>DyOlCVerV$ez8zciSg=TPNuWxp{tz?%JW(p7_@L
z+#aU)sW)q|vvKlEb3N%Lo^+sA`D&7L-qz>)CtdB0!xG!7c5R5W@-1hxpPNhK(*Xt{
zom`fUu!Jm11ry@J%ul;QckVs8(^JnWZ&_13qcjpxpA}K%i>-!A&1dxaQC-<hUd<wc
zQn_L|z6MNvSP~hYtk^RB6p#1udtJ|RHzbsIRW*&W8X_s*vX6F~0yU%&Z4GqkxBOl3
znGJ6wh-oTJ^P_0d>dJ87BbGi3lZ6`Wvfl5%BvyXgeWkGZPOrsFz;NxKPrI_QU*xuN
zfU0)mvG*O9#m2X@B+ws!M$&<j&waArDF-J5XZ{9Hn?noz-1s3xUpecYr$6}eQ6@Q(
z!`F`72068yMw5)s1MbKE6`{*&&g3TP-e^N`=!6vJKHJm!%KanKhr`1Qhho_O>jsu2
zne~?E{7x0f!Fln%9aL=+75K0&FaGi%m#%8S<U?kSrzaNIF$Nb>Y5yYkfCc6V4~`{g
zCT(H*y5yLaB7aiWtbhF(8(4EXF8JrSUr)*!$@+M4_alz|sM0llSLBK14x&@uHPx9Y
zDyHu<pB2w<3zHLz#8o)+DI3ynS6hy#a(vNod>2EsfLcpRkmw7&ThpWaDZFuT0d<di
z=+Gc~NT`%F_~$F-G|GI9jF?MeAlaS5SHqt9WVf5>ihsNmWA>L3+j)0TmB&#e*y6y<
z=IFC+Hhs~6e*${3q(rJyha#W#&IIStKeV^FT3RWfe|g;L=JMEYiC0&a<`B6i0fyW`
zT}x1jb0hL{iC}u<&y(HgeBN4jx~z;HMT+CQmRA+Tc>n9ufZ<voNe){xt?lEMnZ1pO
z0_3%4C#WDH+{1_?hh{l42T@B>Xb@=+0zR54>GDgjw_@th^4$xamAQ~^c$3crl9Qvi
zoyuWs^xMbx_N%NvDUt8UM14Hu<tW6ede(+b>#!BVOejm=-vKDVY$OTjV8Nk1OG9p@
zExGKQ3n51*?lkukPYsw6`#Ik-hnpBFpi0Te%kP}~JRFAJt7djn7wz>TsXOK7!Hgcj
zsFE1wJPj(D`(@OMt44bJA6h<8Km9&e1q_r#f{x-peGkGlX+uD6;HU=Q;*@FKVuf&9
zx~VVRZ|4!&AD9~HBh_^A9`7(f_G8QPF#J{;<6ME#(=4uYigIdxh%Ctf$^ZI%#GT%{
zf+esthGWORv1W%elD>JA-TdYoviZ7*Wn#a|l3M*$o%gW|W2O<k?FR~+uT$dwK-A4M
zo1QGh*j0&fuSylS+CL58iGT9LtGVSmHPNLVq0u?<+j4Zu5?c#$1q&{=W}XnM)G1BN
zuAD-fwtuO{4yp@o>tAfWe21n7N9Ts=D0W&x&*X3Ooz1p{hIW~mnR!02D*cxX^c{LZ
zt~vD7;oR)w%uLlq>p5`j=Ip$Xe<PO|mGRZpOe{xBYXfvyH3`4-JH*b9{<Oy<8T3`T
z30}jOcUt7g-ZCo%9Mpw9TQ&;z_6$zjyYtoc>Me|&DV4rdj^w~~e}s#NlZv{6E=jNL
z>x^QctTX`@q#3h+e2Jv{;3+e1M^6LQ(-wWfQKvolUfM#;X;R>avC%G*<}|o*0q`^1
zvFdkH@j#pdwFq@KuxXQ0Q!}5_JT;mqsvv(WYE{bSy4?H4FD0!Xvl+5v>83}G%&}t|
z{$Be(wPPf=K7BA+y`JC-hT2f942~O_|9J0`(syQ~+zENF8Ru5~^*Sv$sVNU-WbJz?
z!mpvOt@`N~g61H}^Ppz_p#mzh(F&!FdnL4Qkn(QwdV<}BZ(c1E3-pHd)hl#7tn~l&
cY1qk?UekhZYt{S7gy)2+N?MAg53R%h1HxK@MF0Q*

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_find_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7082f2860514bac85590c14eca7a93a1763475e
GIT binary patch
literal 6140
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
CJ2GGZ

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..b9fbe00deff6081db30bf14fae9d942fe652f8dd
GIT binary patch
literal 6110
zcmcgwc{tQ>*B@kQgvc&i`5|S=P{`6)8cSKSFA*|i&y4J3kiEz{cCwVQgb1OCs74qe
zgfg=4``Wzscz*BmKF=TTdtJ{z@AtZ9Zs$Jde9q^bbARu--O>8G2nHxO6as-TXlbh7
zhCnFc5D3M6Iw~+z)_uwx0-=KF-!#$yA_M}1K#&j!76QRTASAK`gF#?O2n-8>;UO>*
zS&4)}kVps;3qj%`ND|o=3xi;h5G)pg#Y3<pvMU}2!6PAfECi2-;7I@pLV`g^NC*iF
zA>kn;AOLIt4X}VSuqKh?kRK!rhK0fKFc^s(7Dz}W42gvy@h~Kb%mOH}NEj9i!{T9B
z5}6dR#Uo*OEDVo_;YolaaD|bOFcKC<!ox@)Dqs!30BOJy&;mLT7+?cvfCZdM<b=pF
zc(6z$9*HE8^8;algvBDUcqEoYP8YBMN<0>c$0PA1kUby;Y>^}^l7vT+Kzg7afF|$;
z<pB8u5+Fms8h`=PfF&>mJV0Q84WI!QiCj6d8pz<mW3eQ1Awhm1ERgVcES?1F3ep8E
zfD%i>V@aTnpwgfKfEO?ag$CJzQi6H_n!p>B18@QfgA4&{00u|{Pe2Rs0D%EEfF_Y!
zM79QMAcKblItB^}@&jRkgeQ^64Loi?nZ<EO$^ATT5}DL--O24eE+v`cadpVuK2DfS
z`8Wr1^N(qfGdPX}puutgT>`}eIUR>OUWxzjUk?6(yddaFPfc?a1VYb3{!kFcf)BwY
zKU%{KZRmkS``CIpKr{^X1rSaiC^X96>%J#iK<=`vgp_pJ!)$g4gw<S29d6{CwUj+t
zTPSc^V-G9iPB~?-JZ-O>{Z*!m$7qpKT`r(}ZcXgAXo+94S+_Do|E?Yfr0J|EUGF0d
zgyBCLobm){Xo{mT^O+Dm3Tg^&{nL5mVeG=JoLdS;^@mZOz;!Apr3@H|C#kirCXZOj
z+XteUBwQzIqR%flPTa+z+Kbr`yVd-4B2vwr!ZOIgmHfYME;vA!*P<|sd>>m<-qd$?
z^BMHv<j%FfH<uRYxK=;nqPHvjL-8cmaLB{%L6^>gBXqgX1U|y#o{MrFe^9lwWQ)}E
zZFhxvRHkNq)6SY3f1!a@gTLEAOS1F62^fs{f}Suz4nOH1VG3%~Dn`ycu<(2ui6Dri
zG_QIebUnUzFu3hiE`U;fjL{`v0yc314T6uwW8V_h;rro6lEo^&)3GR#B@K#JHr|U)
zqqJ``&u*=sqIT;%fB)#hx_O7@NMW<6Kz)G?wOiJP!_n8*?I#WkQPTX=C+cq0_-(vo
z9DdC~eZmwyV-T3z@F^4niC1QQz4u4Z&f=kp;VLXh^u;9|OH@*SC8px>gm;;vkOcaJ
zSGDbq4oPj!iQ@$In68yMy!BqcPTgWp1ggK}S)`}vi?XeUyvw0Q5xgbl>_>?yIk6N1
z?-F`Fx>M6ASk=2SuM-GJelB4``&V55=3BkR$r$TOfjJ3QQ|8LKJ-_^3NAIikKArM5
zaz6Zt=|3uC&Y7MG>UX^)Eo#E=XXEXt^i1Jix9?R4h6AjdeQSJQH~wn&&3Q=;t-`CH
zI9x<7rM0A3wOrmkXv6iWL8~V+w=7q0N&b;H>qiCT_vXxrePzKaocw);<^H&`VqZgM
z`&>bn(z<d@?@#xqv?9Baaa=3Kv%j_1x~q$Z-@FTP{j9>gD_pQC+;C4TRcGS!5&L1w
z>U_TiJcPwyHfTXlJHR*%{i?Y0UgBH*sD-AR%Na+-;uRR>Kjw1<vr0EBrPoe<u3VWO
zEW7h`iZ_OJO5AkaJypEhv9e90E^UI_N}_*ZihnrJ*DY2eZR|_MO35(W1hxm}me9W?
z9fJ5#^2KAmJ3_S+TOCwOr}I0<kaZ&bh%wSFOsVxO0of$;GN9+M=cvsXC%DBqa5vpr
zBrT~*9BVT1xrV-uza;i0pMHXMiPO_8)6t~}RT1cj2LRF4?`@@i8@Z@ae_xtybKt|8
zDn{KuB`}so{7QLaiaAul=H}L_=6=~iZ>|^dt7`tDwJXZ2XQAWu$)2C%GWAq;hN`Hp
z^fdyg(yu>x90$6eeivrBmG*MXd9UZyR{xfMBfSuuQSH+oE1wl#xHSVJ|Ir-Dj*Z?r
z>-_!#B2stx%G$7|Mds?MWk=xw4@NGSHFvYsg%<NVnFE{Kim^?v-nS-cz7v@+ld|(-
zE%b26!93xx4&pQIRbETAIs722^o9evSL0VXz8!sG<BHL;qefo<0U9$iRTsXWAWJNY
zzKLCsE*kb(7RlKyY~GaK`}|`KV<QoC(V-^LTSbrEIw;39L3uonHK*AUk;z_R|7_=%
zIknp#y60^Ay&mWnc`Kr~8O)8IRntd2VL@K#lE1jZ{ySL&JH4!0oH>U|a+GX>`Y4aa
zihs5pN8jpcsM-}}Kf5Hf@}VEP|GRK>SVQF1x3An&oDJ8Yhi>1@mb~)wO3!kg6jrvb
z=HsBqma4>Lc;21$j(w!N@faiaOlGr9<9dmo%8J3IW@S<3U(Z``?xBS%`r>I?mjVsw
z0}9{4<pTA>SQy^X&4x1%(RPRg*61n?ycRyUfVAytyRvucr;KRdDu8ps<%O`=q9^uE
z9fI@&+dfa0q~Sk_*12<RdwyhUlfU`;zX5i2?v!J6%Pc3jQOjP{kFG4e0^Xbt$WGf@
zJ9egn4t#OhU4uM@Pu>ETl3eF+X8g$tg4Xhr7iRM~&Ty?dd^)Kuvwbe_%nd94WJN)*
zm%h*#1i|07r{G4HBRu+}%?Y$BQ_UV>A&ejr?t(hJBAU~^V(2M5V=fuS65mV)Wh;Do
zRkXv80xHB6_Lf88_kJFoXxF*~b*(u+I$Qa}emo^(J=rdx3Nc9AQ6&28-l=8l*?uUc
zM@c;9{rkL7i2DC*>3{F+|1wCkPE~UDsq__DJ?lfUCMnFgX|D!Xu)UV7?(gy1xq5rk
z#$_{Z=&W9IpuD8(kGenmpSL^GETFMggy*Cf(;6&st+XDCwS-T8C_CCV!K~1CHK#96
z*9Y$r0-#s_5_`Pe-|<4D7=zdLesg~~E#=_y*wQ}oCAJ-R(@=1-VqxH9h#p5V<4|p*
zC)>_9tx9EwFG>E6Nq^b2Wa+>|-ugEwF|ieian*`Vbm)m{E*UC)tNYZDCZFTG=fy{@
zG1+(UlFLVqrAs_96?6X70BTP@ofw^n#^QRo^i#Aq)chukXNbH-!}F^y>3y-h-5uZ5
z@lWU6XYAI#q(!hMCmN(;pln^!s7rh$ib4#{hVU%E=ETjND2A~r>dRwWYwf_SWu0pQ
zsS@WPw9o1kfkv*I#y(+a;2>o_&XV4d#dY)0${(c=Q6`;7r*%Y>@9%rVisHVYhnHCM
z70|}PDql62xf*eT0ToB@c(`gW(e#;YD;dVaAIcu-^G?Sp+C1&cP_EP*-cRV$VMP<I
zhb4E16H@QC8uSdkKeE=?@{fqwtdASd%e(d_Y6{a(#vsxv?pN%^LM)!pVG$`weyq9!
zZS?kFsr7$b@YMOkaEO9!4<f#~JamK7>TaZi+rYP4jQe<8nDbG7U9GLpp<T_z8H-f&
zm%*>P6k}^cXof0*`paanqT}`=_l3iIZBw05vX#My_02sm45`PC#H@`MpUU#@J}6Zj
zl4jYjmHwlsheU-K*wmR-eCQOxIfuLq2^ldynZ2>(Pdd1^jd}ANMt!utD0RU1M@C@Z
z$R+U7-rhxz+Z+Ug&62!K?093M%1!)8*{3e4bGey;W<g35g)r(AK9Z1bmq%5`R~O2i
zUYqdm2VX^SyrcU|qv@CDO=JhrMxUpwehlbjO+BDRV>m9(?hGFGKG>XEE$H0-D{@FI
z%B25b-r-<q<9xrwXxdrpQUQPOFAoq*1ix#NM*8DnOAD^nBQBdCV_6Hi<8I3`QK#g?
zsHx9~Iw>4nFxjZ&_1U};0@aTCs27^C64SyOp7T2hT_o^YQnK(ObtuQ=VCk-{F8d#(
z|6i7OSzXI3ZXR0TzMF}4@P%P+w0|qz@t?CO;>BQYoFM-5>~!83SL@6T<xc!!!9ax=
zO*pH_CE4h_$k@w|t#zhEpsECC+@$sOh4O2B3HrTJyR~B6Pp8z!PdpjFnr@;g6eF4=
zgAz4!@1?gcm#7Yn{ty@98da^4>+n1yyE93-nwqAya&k<BcK}_FI6;S0KyyuM_1r2=
zjB*~~Uv~An)V}$MZmn=e7y)<b9nh*xr%2=`3gm1S`qql^N4oXtXIxYGzA34(6tDYQ
zs4Q6VelJI>Ra^<XPraH8QZ*?y$IX6;s1?@I^}_hgnb9VG?j#uL<60ry@kDK7#5=j2
zwU8ml+8kbDpgX4?_a;IrX3yFF7p)fkD5d>Ry_(%ORM5s8i@Ns$;c9o-8ADu#DZ>)<
zPn-BW;_<EB&sNT7pxmKTjIr4&ix$DLxrV~K)<g%Zs6Rp$3Mt5k+0{<C-I8D!g89e$
z+-{U$L2YVyULNzwBRGAe3f&JuqtiBd0-m%J&+B7kdDiGTWdXvfv-g>W%j~|atqhYE
zx5SxC9q60*4RP=fVY_evCPN&(&j{bj)AhRd*S}kg?ebB3sIe+~hRLyr*hoF2+56eR
zd3*@|`z-wTz~!MdR89RD;-N&vJ>;QOX)SdZ8yCR?_foe`k6L(>^Zd&F0l4{)I@&~?
zDkmOHr2P~e{%F*1f2HZ0t<2B!mUmBAO!zaZ`F+0|?MzhUmYURJ`nqM=(<&9UP_*k$
z)%R#-dcWMUk7l@UtKhACO{mj*RFXNa(Q!1yCQP0uibhesp|+GDzMmG1rzxP&(_I}z
zDNY)9Yc^i4YUV7U=!voEcsWo$skASk-B2O`NMy#{Xp5^bPj=7kKF__1f4zt#*DWWu
zwg#-19j&1)UN!i6FQsP{_vlYieuO`wVLjorOB9GJY`t@Mh3@=)PmU%Wh12zaD83`C
zP7wuGshq+f@yRN5Zl}9C2TOxRKb9W7qG6Rex2i?O-J;i+FD^yL3I6=|(!tBmLHX*n
zR=-LY{0z-J;c*~T@Y5J9+FuG#Yw!-8u6X{xiJakTonvwKs6}&uhn-edL#0_`sH<iR
z!pY2wgJ1!>f*Jm=?gsE+Lxbh1HK`n#0tzPG^?0>Pk<li!;&>3B-hLN5XZX+Z8Dl!T
z6q41IjfG}>yqU1i`JBxkyYb;=o_!c!+rW4Bb{hv9w^;)pJR~d5HshGT)%lryY>JAp
zy9!>VZUdfsI|sx(rIV<Kv^_{>J%4G+rv+TJ*!;D59XMY?Frt}<{C+JNpl!J9bBG8=
z-<vE|$5VH3%MjlUqLxc;%~-rI!7!=RxTyxZt~DT*(;XIgnE2Wgfl|z*y}BAi!0iTf
zh?yqn$&IC2PqWuu7w1-KWn>dNl-KXo*%OJ%YD!rPsQO*A{?kBR+%oSp>C*ZNf=$RO
zRA=>ibE^0%ePbllfmrO+#PY>dU(Hfrs%$*P;`<I?@x2Y9DBFkHZ#_0tY!@b&8|8S%
z+uLjQuGEdgFHrC83CTXoe<Cpijr2H>so7F|*+^Gv{LML9!oFw5X|_PSKVQL1vm(je
zcERs<^Nn=XaRx#cF_G(`4j)gg%9kUHBlwN!<e@rA`4dC3@IwLPN|gcUx;Xz#DPtkC
z=L!!G^Q5=@6F;d>CW4p!$u3-Fi#B3G7CW{k<#$gt<n)5l!^ri_AM(#lnlt`*wmj|>
z%+KR9P1guc>X%P;FR_q;9>l$?h_6`7EqlnWB3hKNNhinpO_{cY?P^k@<Gg%0Uq>X7
z_HycAcaToGv-d34pK<O@ki~ZeO@jhNdW(rAAr0|ho9|crZp~g~Zdt*Sui!6KmGd1l
zC;C$u8{BA{S@UB$urI$bc^7uSEQw~X9cqCzAESsly<?~Mb-ML{4ng=-QtEzAL<n)4
zIcn@O*B@8qvBP?1^K7X;9c|_)5hb3N77Ua1{u129DsNuT(5w|Yo|ol_9TabbO4}B6
zySFFhWb8JWwFyoMd3{iac{76b6laLD<I4^HJ#3tCM%aG>tP7OAv$1aWAX@y|wK1ta
zZE=7rTWm65Hmwa`{An2GOQ^ARHtwWQzO}j5rvA2>6M)2AV`Mqkcsqed*do3VEJ^1{
z5T(2;i)5E8GpVI_%Lw;HW~DpqoRG8k!eP8xFI!M~63xoLob~>%bKrlhlW-nrH&`XD
z`;_!V^<M}3iZxESu9B4Y?pn}|a|~dIn5lK1)Y=Q#d)x0QMEHk6uz)nr+|c5~a}*nB
zZW@}&7EF`Ov}Db%8<a@e`(AFp!vaU94BJLhFh4Zk>-ReCCBJ%DBrs41hpSB+wq@|M
zjvTUu9}Z9~auK6t8tSxDxb`*+^KcF6JSWq63qREwm*TrhM5wXfTUu@WKg6HFGZOBN
ziWwuP3`KL#4aV7H{X+bB9=QJetbBi}UpV&<_y;^Pp=b2phJ&)uwc|?_C##V|883V4
zY(-*ore6N!qJvnXxeAeUDZ}Mlelb)!O}$0NWNKTgcnX#pZq{&+WnbPBoqV|(V-{NZ
zJ-Fpaz_7F}YOhQ3@yI3pjEgQ?x6CXZ*f#UW=bu5vzAN=_RF%)ag3c3lFH-jfR7p=>
zNbf=1A-rfd3tcY3mm`H?UM6??HXFGQB<W?hB0ekS`3f~Y;C*n#CQkWdSxU`8N^!?5
z@mWY7F5d;tbkk-i#r{QOgjn*rFYD)$blQ*K{P~Ac97^j#6_VHK|1pJUJgBb-C>~e8
z&~y7Tld&LEToM8p+2iU$f!`&z4Slxt_h!`IUU%f{oOxcTUGBO4DNsAUi)+l%!2MpX
z%e*%$N-Q;F?*%@FHPRwOui+rc_GM`NNl{bN?E2(&KTAKjN0TYMxncZ9_Y6VTjVfgp
zUnJ+M%#|uOV-x$;D(1s9s*`}5?JkmYR+cXYlhNZ=G0&%y>`T4=)Xox$<nAgDr;Z~W
zB|2<38m<^koZ#d>zS{cSmnr!wUXK|nrs2`@-b7hL^aX449;KxpI2NdGPSd+i8-`<`
zWFzdq8F2!msz$0N%Kzws?4LJknq^s+TVl%ZdrZCNuntf0m|zkXl39w++HQ+|HPP%g
zpDDN1k!0ZWRK+sJF%%=}S?BJY6kVrTz4YPv@4jcXRL}weS>n?|`H4sbPi~<D2IJ&f
z(7@dNWVtuoy?u8dSFyC%Zu<x`>zXyk)1Wyl)t`L}!m1AUF|vR!RAjt#pEu&LJX`Vj
zOW?c2w~m@Sc1fp-@&%x{tOw<Gm&9l6V#nhXWxDLo5S@mnq%PAvyQHd`-c6N23x3o8
c{sljzHKunMR*&iDAm5B?Y3Qm~sNTi=7Yw*%e*gdg

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..c693ed3869b7047bf872cc6d84dc02a819e6e0c0
GIT binary patch
literal 7570
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_find_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..248ff6b8872c9be6335a328fce6eaa8006537f74
GIT binary patch
literal 6314
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
Ljde=3Z({!oHCeXA

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..ac4f838fe261c5bfdd897368d9880ed8306e6031
GIT binary patch
literal 6763
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
PHNC2$rb30hMaX{ujY)wS

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fa08a0c2c307a32fad055befe104cf103fa1984
GIT binary patch
literal 8499
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_random_int_subscript_timing_test_insert_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f1d740b817a6872d1fcf9cc03f6eb884ade320f
GIT binary patch
literal 6721
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html
new file mode 100644
index 000000000000..446359b4a891
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_table.html
@@ -0,0 +1,891 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>gp_hash_table Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>gp_hash_table</tt> Interface</h1>
+
+    <p>A concrete general-probing hash-based associative
+    container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Hash_Fn1515835" id=
+"Hash_Fn1515835"><b>class</b> Hash_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Hash functor.</p>
+        </td>
+
+        <td>
+          <pre>
+__gnu_cxx::hash&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using gcc;
+          <pre>
+stdext::hash_value&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>if using Visual C++ .net
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor.</p>
+        </td>
+
+        <td>
+          <pre>
+std::equal_to&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Comb_Probe_Fn1603930855" id=
+"Comb_Probe_Fn1603930855"><b>class</b> Comb_Probe_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Combining probe functor.</p>
+
+          <p>If <a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a> is
+          <a href="null_hash_fn.html"><span class=
+          "c2"><tt>null_hash_fn</tt></span></a>, and <a href=
+          "#Probe_Fn8454835"><tt>Probe_Fn</tt></a> is <a href=
+          "null_probe_fn.html"><span class=
+          "c2"><tt>null_probe_fn</tt></span></a>, then this is the
+          ranged-probe functor; otherwise, this is the
+          range-hashing functor.</p>
+
+          <p>(See <a href=
+          "hash_based_containers.html#hash_policies">Design::Hash-Based
+          Containers::Hash Policies</a>.)</p>
+        </td>
+
+        <td><a href="direct_mask_range_hashing.html"><span class=
+        "c2"><tt>direct_mask_range_hashing</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Probe_Fn8454835" id=
+"Probe_Fn8454835"><b>class</b> Probe_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Probe functor.</p>
+        </td>
+
+        <td>
+          If <tt><a href=
+          "#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a></tt>
+          is <a href="direct_mask_range_hashing.html"><span class=
+          "c2"><tt>direct_mask_range_hashing</tt></span></a>, then
+          <pre>
+<a href="linear_probe_fn.html"><span class=
+"c2"><tt>linear_probe_fn</tt></span></a>&lt;
+  <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>otherwise,
+          <pre>
+<a href="quadratic_probe_fn.html"><span class=
+"c2"><tt>quadratic_probe_fn</tt></span></a>&lt;
+  <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Resize_Policy566860465" id=
+"Resize_Policy566860465"><b>class</b> Resize_Policy </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Resize policy.</p>
+        </td>
+
+        <td>
+          If <tt><a href=
+          "#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a></tt>
+          is <tt><a href=
+          "direct_mask_range_hashing.html"><span class=
+          "c2"><tt>direct_mask_range_hashing</tt></span></a></tt>,
+          then
+          <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+  <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+  <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+  <b>false</b>,
+  <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>otherwise,
+          <pre>
+<a href="hash_standard_resize_policy.html"><span class=
+"c2"><tt>hash_standard_resize_policy</tt></span></a>&lt;
+  <a href="hash_exponential_size_policy.html"><span class=
+"c2"><tt>hash_exponential_size_policy</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+  <a href="hash_load_check_resize_trigger.html"><span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span></a>&lt;
+    <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;,
+  <b>false</b>,
+  <b>typename</b> <a href=
+"#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>::size_type&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Store_Hash218262104" id=
+"Store_Hash218262104"><b>bool</b> Store_Hash </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether the hash value will be stored along
+          with each key.</p>
+
+          <p>If <tt><a href=
+          "#hash_fn2015995"><tt>hash_fn</tt></a></tt> is <a href=
+          "null_hash_fn.html"><span class=
+          "c2"><tt>null_hash_fn</tt></span></a>, then the container
+          will not compile if this value is
+          <tt><b>true</b></tt></p>
+        </td>
+
+        <td>
+          <pre>
+<tt><b>false</b></tt>
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_hash_table.html"><span class=
+"c2"><tt>basic_hash_table</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="hash_fn2015995" id="hash_fn2015995">hash_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Hash_Fn1515835"><tt>Hash_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Hash functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="comb_probe_fn828996423" id=
+"comb_probe_fn828996423">comb_probe_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Comb_Probe_Fn1603930855"><tt>Comb_Probe_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Combining probe functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="probe_fn10954995" id="probe_fn10954995">probe_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Probe_Fn8454835"><tt>Probe_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Probe functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="resize_policy4084493169" id=
+"resize_policy4084493169">resize_policy</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Resize policy type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  gp_hash_table
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  gp_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  gp_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, and <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  gp_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, and <span class=
+          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+          the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  gp_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
+    <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, <span class=
+          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+          the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object of the container object, and <span class=
+          "c1"><tt>r_probe_fn</tt></span> will be copied by the
+          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+          of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  gp_hash_table
+  (<b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn, 
+    <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn,
+    <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, <span class=
+          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+          the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object of the container object, <span class=
+          "c1"><tt>r_probe_fn</tt></span> will be copied by the
+          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+          of the container object, and <span class=
+          "c1"><tt>r_resize_policy</tt></span> will be copied by
+          the <a href=
+          "#Resize_Policy566860465"><tt>Resize_Policy</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  gp_hash_table
+  (It first_it, 
+    It last_it)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of
+          value_types. The value_types between <span class=
+          "c1"><tt>first_it</tt></span> and <span class=
+          "c1"><tt>last_it</tt></span> will be inserted into the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  gp_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects. The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  gp_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects. The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, and <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  gp_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects. The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, and <span class=
+          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+          the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  gp_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn,
+    <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects. The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, <span class=
+          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+          the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object of the container object, and <span class=
+          "c1"><tt>r_probe_fn</tt></span> will be copied by the
+          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+          of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  gp_hash_table
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#hash_fn2015995"><tt>hash_fn</tt></a> &amp;r_hash_fn, 
+    <b>const</b> <a href=
+"#eq_fn80245"><tt>eq_fn</tt></a> &amp;r_eq_fn, 
+    <b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;r_comb_probe_fn, 
+    <b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;r_probe_fn,      
+    <b>const</b> <a href=
+"#resize_policy4084493169"><tt>resize_policy</tt></a> &amp;r_resize_policy)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects. The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_hash_fn</tt></span> will be copied by the
+          <a href="#hash_fn2015995"><tt>hash_fn</tt></a> object of
+          the container object, <span class=
+          "c1"><tt>r_eq_fn</tt></span> will be copied by the
+          <a href="#eq_fn80245"><tt>eq_fn</tt></a> object of the
+          container object, <span class=
+          "c1"><tt>r_comb_probe_fn</tt></span> will be copied by
+          the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object of the container object, <span class=
+          "c1"><tt>r_probe_fn</tt></span> will be copied by the
+          <a href="#probe_fn10954995"><tt>probe_fn</tt></a> object
+          of the container object, and <span class=
+          "c1"><tt>r_resize_policy</tt></span> will be copied by
+          the <a href=
+          "#resize_policy4084493169"><tt>resize_policy</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  gp_hash_table
+  (<b>const</b> <span class=
+"c2"><tt>gp_hash_table</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~gp_hash_table
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>gp_hash_table</tt></span> &amp;
+  <b>operator</b>=
+  (<b>const</b> <span class=
+"c2"><tt>gp_hash_table</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Assignment operator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>gp_hash_table</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;
+  get_comb_probe_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href=
+"#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a> &amp;
+  get_comb_probe_fn
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#comb_probe_fn828996423"><tt>comb_probe_fn</tt></a>
+          object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#probe_fn10954995"><tt>probe_fn</tt></a> &amp;
+  get_probe_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#probe_fn10954995"><tt>probe_fn</tt></a> object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href=
+"#probe_fn10954995"><tt>probe_fn</tt></a> &amp;
+  get_probe_fn
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#probe_fn10954995"><tt>probe_fn</tt></a> object.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html
new file mode 100644
index 000000000000..720984fff2fc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/gp_hash_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>gp_hash_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>gp_hash_tag</tt> Interface</h1>
+
+    <p>General-probing hash data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_hash_tag.html"><span class=
+"c2"><tt>basic_hash_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html
new file mode 100644
index 000000000000..fed7a4869d0b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_based_containers.html
@@ -0,0 +1,835 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Hash-Based Containers</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Hash Table Design</h1>
+
+    <h2><a name="overview" id="overview">Overview</a></h2>
+
+    <p>The collision-chaining hash-based container has the
+    following declaration.</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    <b>typename</b> Hash_Fn = std::hash&lt;Key&gt;,
+    <b>typename</b> Eq_Fn = std::equal_to&lt;Key&gt;,
+    <b>typename</b> Comb_Hash_Fn = <a href=
+"direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
+    <b>typename</b> Resize_Policy = <i>default explained below.</i>
+     <b>bool</b> Store_Hash = <b>false</b>,
+     <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"cc_hash_table.html">cc_hash_table</a>;
+</pre>
+
+    <p>The parameters have the following meaning:</p>
+
+    <ol>
+      <li><tt>Key</tt> is the key type.</li>
+
+      <li><tt>Mapped</tt> is the mapped-policy, and is explained in
+      <a href="tutorial.html#assoc_ms">Tutorial::Associative
+      Containers::Associative Containers Others than Maps</a>.</li>
+
+      <li><tt>Hash_Fn</tt> is a key hashing functor.</li>
+
+      <li><tt>Eq_Fn</tt> is a key equivalence functor.</li>
+
+      <li><tt>Comb_Hash_Fn</tt> is a <i>range-hashing_functor</i>;
+      it describes how to translate hash values into positions
+      within the table. This is described in <a href=
+      "#hash_policies">Hash Policies</a>.</li>
+
+      <li><tt>Resize_Policy</tt> describes how a container object
+      should change its internal size. This is described in
+      <a href="#resize_policies">Resize Policies</a>.</li>
+
+      <li><tt>Store_Hash</tt> indicates whether the hash value
+      should be stored with each entry. This is described in
+      <a href="#policy_interaction">Policy Interaction</a>.</li>
+
+      <li><tt>Allocator</tt> is an allocator
+      type.</li>
+    </ol>
+
+    <p>The probing hash-based container has the following
+    declaration.</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    <b>typename</b> Hash_Fn = std::hash&lt;Key&gt;,
+    <b>typename</b> Eq_Fn = std::equal_to&lt;Key&gt;,
+    <b>typename</b> Comb_Probe_Fn = <a href=
+"direct_mask_range_hashing.html">direct_mask_range_hashing</a>&lt;&gt;
+    <b>typename</b> Probe_Fn = <i>default explained below.</i>
+    <b>typename</b> Resize_Policy = <i>default explained below.</i>
+    <b>bool</b> Store_Hash = <b>false</b>,
+    <b>typename</b> Allocator =  std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"gp_hash_table.html">gp_hash_table</a>;
+</pre>
+
+    <p>The parameters are identical to those of the
+    collision-chaining container, except for the following.</p>
+
+    <ol>
+      <li><tt>Comb_Probe_Fn</tt> describes how to transform a probe
+      sequence into a sequence of positions within the table.</li>
+
+      <li><tt>Probe_Fn</tt> describes a probe sequence policy.</li>
+    </ol>
+
+    <p>Some of the default template values depend on the values of
+    other parameters, and are explained in <a href=
+    "#policy_interaction">Policy Interaction</a>.</p>
+
+    <h2><a name="hash_policies" id="hash_policies">Hash
+    Policies</a></h2>
+
+    <h3><a name="general_terms" id="general_terms">General
+    Terms</a></h3>
+
+    <p>Following is an explanation of some functions which hashing
+    involves. Figure <a href=
+    "#hash_ranged_hash_range_hashing_fns">Hash functions,
+    ranged-hash functions, and range-hashing functions</a>)
+    illustrates the discussion.</p>
+
+    <h6 class="c1"><a name="hash_ranged_hash_range_hashing_fns" id=
+    "hash_ranged_hash_range_hashing_fns"><img src=
+    "hash_ranged_hash_range_hashing_fns.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Hash functions, ranged-hash functions, and
+    range-hashing functions.</h6>
+
+    <p>Let <i>U</i> be a domain (<i>e.g.</i>, the integers, or the
+    strings of 3 characters). A hash-table algorithm needs to map
+    elements of <i>U</i> "uniformly" into the range <i>[0,..., m -
+    1]</i> (where <i>m</i> is a non-negative integral value, and
+    is, in general, time varying). <i>I.e.</i>, the algorithm needs
+    a <i>ranged-hash</i> function</p>
+
+    <p><i>f : U &times; Z<sub>+</sub> &rarr; Z<sub>+</sub></i>
+    ,</p>
+
+    <p>such that for any <i>u</i> in <i>U</i> ,</p>
+
+    <p><i>0 &le; f(u, m) &le; m - 1</i> ,</p>
+
+    <p>and which has "good uniformity" properties [<a href=
+    "references.html#knuth98sorting">knuth98sorting</a>]. One
+    common solution is to use the composition of the hash
+    function</p>
+
+    <p><i>h : U &rarr; Z<sub>+</sub></i> ,</p>
+
+    <p>which maps elements of <i>U</i> into the non-negative
+    integrals, and</p>
+
+    <p class="c2">g : Z<sub>+</sub> &times; Z<sub>+</sub> &rarr;
+    Z<sub>+</sub>,</p>
+
+    <p>which maps a non-negative hash value, and a non-negative
+    range upper-bound into a non-negative integral in the range
+    between 0 (inclusive) and the range upper bound (exclusive),
+    <i>i.e.</i>, for any <i>r</i> in <i>Z<sub>+</sub></i>,</p>
+
+    <p><i>0 &le; g(r, m) &le; m - 1</i> .</p>
+
+    <p>The resulting ranged-hash function, is</p>
+
+    <p><i><a name="ranged_hash_composed_of_hash_and_range_hashing"
+    id="ranged_hash_composed_of_hash_and_range_hashing">f(u , m) =
+    g(h(u), m)</a></i> (1) .</p>
+
+    <p>From the above, it is obvious that given <i>g</i> and
+    <i>h</i>, <i>f</i> can always be composed (however the converse
+    is not true). The STL's hash-based containers allow specifying
+    a hash function, and use a hard-wired range-hashing function;
+    the ranged-hash function is implicitly composed.</p>
+
+    <p>The above describes the case where a key is to be mapped
+    into a <i>single position</i> within a hash table, <i>e.g.</i>,
+    in a collision-chaining table. In other cases, a key is to be
+    mapped into a <i>sequence of positions</i> within a table,
+    <i>e.g.</i>, in a probing table. Similar terms apply in this
+    case: the table requires a <i>ranged probe</i> function,
+    mapping a key into a sequence of positions withing the table.
+    This is typically achieved by composing a <i>hash function</i>
+    mapping the key into a non-negative integral type, a
+    <i>probe</i> function transforming the hash value into a
+    sequence of hash values, and a <i>range-hashing</i> function
+    transforming the sequence of hash values into a sequence of
+    positions.</p>
+
+    <h3><a name="range_hashing_fns" id=
+    "range_hashing_fns">Range-Hashing Functions</a></h3>
+
+    <p>Some common choices for range-hashing functions are the
+    division, multiplication, and middle-square methods [<a href=
+    "references.html#knuth98sorting">knuth98sorting</a>], defined
+    as</p>
+
+    <p><i><a name="division_method" id="division_method">g(r, m) =
+    r mod m</a></i> (2) ,</p>
+
+    <p><i>g(r, m) = &lceil; u/v ( a r mod v ) &rceil;</i> ,</p>
+
+    <p>and</p>
+
+    <p><i>g(r, m) = &lceil; u/v ( r<sup>2</sup> mod v ) &rceil;</i>
+    ,</p>
+
+    <p>respectively, for some positive integrals <i>u</i> and
+    <i>v</i> (typically powers of 2), and some <i>a</i>. Each of
+    these range-hashing functions works best for some different
+    setting.</p>
+
+    <p>The division method <a href="#division_method">(2)</a> is a
+    very common choice. However, even this single method can be
+    implemented in two very different ways. It is possible to
+    implement <a href="#division_method">(2)</a> using the low
+    level <i>%</i> (modulo) operation (for any <i>m</i>), or the
+    low level <i>&amp;</i> (bit-mask) operation (for the case where
+    <i>m</i> is a power of 2), <i>i.e.</i>,</p>
+
+    <p><i><a name="division_method_prime_mod" id=
+    "division_method_prime_mod">g(r, m) = r % m</a></i> (3) ,</p>
+
+    <p>and</p>
+
+    <p><i><a name="division_method_bit_mask" id=
+    "division_method_bit_mask">g(r, m) = r &amp; m - 1, (m =
+    2<sup>k</sup>)</a></i> for some <i>k)</i> (4),</p>
+
+    <p>respectively.</p>
+
+    <p>The <i>%</i> (modulo) implementation <a href=
+    "#division_method_prime_mod">(3)</a> has the advantage that for
+    <i>m</i> a prime far from a power of 2, <i>g(r, m)</i> is
+    affected by all the bits of <i>r</i> (minimizing the chance of
+    collision). It has the disadvantage of using the costly modulo
+    operation. This method is hard-wired into SGI's implementation
+    [<a href="references.html#sgi_stl">sgi_stl</a>].</p>
+
+    <p>The <i>&amp;</i> (bit-mask) implementation <a href=
+    "#division_method_bit_mask">(4)</a> has the advantage of
+    relying on the fast bit-wise and operation. It has the
+    disadvantage that for <i>g(r, m)</i> is affected only by the
+    low order bits of <i>r</i>. This method is hard-wired into
+    Dinkumware's implementation [<a href=
+    "references.html#dinkumware_stl">dinkumware_stl</a>].</p>
+
+    <h3><a name="hash_policies_ranged_hash_policies" id=
+    "hash_policies_ranged_hash_policies">Ranged-Hash
+    Functions</a></h3>
+
+    <p>In cases it is beneficial to allow the
+    client to directly specify a ranged-hash hash function. It is
+    true, that the writer of the ranged-hash function cannot rely
+    on the values of <i>m</i> having specific numerical properties
+    suitable for hashing (in the sense used in [<a href=
+    "references.html#knuth98sorting">knuth98sorting</a>]), since
+    the values of <i>m</i> are determined by a resize policy with
+    possibly orthogonal considerations.</p>
+
+    <p>There are two cases where a ranged-hash function can be
+    superior. The firs is when using perfect hashing [<a href=
+    "references.html#knuth98sorting">knuth98sorting</a>]; the
+    second is when the values of <i>m</i> can be used to estimate
+    the "general" number of distinct values required. This is
+    described in the following.</p>
+
+    <p>Let</p>
+
+    <p class="c2">s = [ s<sub>0</sub>,..., s<sub>t - 1</sub>]</p>
+
+    <p>be a string of <i>t</i> characters, each of which is from
+    domain <i>S</i>. Consider the following ranged-hash
+    function:</p>
+
+    <p><a name="total_string_dna_hash" id=
+    "total_string_dna_hash"><i>f<sub>1</sub>(s, m) = &sum; <sub>i =
+    0</sub><sup>t - 1</sup> s<sub>i</sub> a<sup>i</sup></i> mod
+    <i>m</i></a> (5) ,</p>
+
+    <p>where <i>a</i> is some non-negative integral value. This is
+    the standard string-hashing function used in SGI's
+    implementation (with <i>a = 5</i>) [<a href=
+    "references.html#sgi_stl">sgi_stl</a>]. Its advantage is that
+    it takes into account all of the characters of the string.</p>
+
+    <p>Now assume that <i>s</i> is the string representation of a
+    of a long DNA sequence (and so <i>S = {'A', 'C', 'G',
+    'T'}</i>). In this case, scanning the entire string might be
+    prohibitively expensive. A possible alternative might be to use
+    only the first <i>k</i> characters of the string, where</p>
+
+    <p>k <sup>|S|</sup> &ge; m ,</p>
+
+    <p><i>i.e.</i>, using the hash function</p>
+
+    <p><a name="only_k_string_dna_hash" id=
+    "only_k_string_dna_hash"><i>f<sub>2</sub>(s, m) = &sum; <sub>i
+    = 0</sub><sup>k - 1</sup> s<sub>i</sub> a<sup>i</sup></i> mod
+    <i>m</i></a> , (6)</p>
+
+    <p>requiring scanning over only</p>
+
+    <p><i>k =</i> log<i><sub>4</sub>( m )</i></p>
+
+    <p>characters.</p>
+
+    <p>Other more elaborate hash-functions might scan <i>k</i>
+    characters starting at a random position (determined at each
+    resize), or scanning <i>k</i> random positions (determined at
+    each resize), <i>i.e.</i>, using</p>
+
+    <p><i>f<sub>3</sub>(s, m) = &sum; <sub>i =
+    r</sub>0</i><sup>r<sub>0</sub> + k - 1</sup> s<sub>i</sub>
+    a<sup>i</sup> mod <i>m</i> ,</p>
+
+    <p>or</p>
+
+    <p><i>f<sub>4</sub>(s, m) = &sum; <sub>i = 0</sub><sup>k -
+    1</sup> s<sub>r</sub>i</i> a<sup>r<sub>i</sub></sup> mod
+    <i>m</i> ,</p>
+
+    <p>respectively, for <i>r<sub>0</sub>,..., r<sub>k-1</sub></i>
+    each in the (inclusive) range <i>[0,...,t-1]</i>.</p>
+
+    <p>It should be noted that the above functions cannot be
+    decomposed as <a href=
+    "#ranged_hash_composed_of_hash_and_range_hashing">(1)</a> .</p>
+
+    <h3><a name="pb_ds_imp" id="pb_ds_imp">Implementation</a></h3>
+
+    <p>This sub-subsection describes the implementation of the
+    above in <tt>pb_ds</tt>. It first explains range-hashing
+    functions in collision-chaining tables, then ranged-hash
+    functions in collision-chaining tables, then probing-based
+    tables, and, finally, lists the relevant classes in
+    <tt>pb_ds</tt>.</p>
+
+    <h4>Range-Hashing and Ranged-Hashes in Collision-Chaining
+    Tables</h4>
+
+    <p><a href=
+    "cc_hash_table.html"><tt>cc_hash_table</tt></a> is
+    parametrized by <tt>Hash_Fn</tt> and <tt>Comb_Hash_Fn</tt>, a
+    hash functor and a combining hash functor, respectively.</p>
+
+    <p>In general, <tt>Comb_Hash_Fn</tt> is considered a
+    range-hashing functor. <a href=
+    "cc_hash_table.html"><tt>cc_hash_table</tt></a>
+    synthesizes a ranged-hash function from <tt>Hash_Fn</tt> and
+    <tt>Comb_Hash_Fn</tt> (see <a href=
+    "#ranged_hash_composed_of_hash_and_range_hashing">(1)</a>
+    above). Figure <a href="#hash_range_hashing_seq_diagram">Insert
+    hash sequence diagram</a> shows an <tt>insert</tt> sequence
+    diagram for this case. The user inserts an element (point A),
+    the container transforms the key into a non-negative integral
+    using the hash functor (points B and C), and transforms the
+    result into a position using the combining functor (points D
+    and E).</p>
+
+    <h6 class="c1"><a name="hash_range_hashing_seq_diagram" id=
+    "hash_range_hashing_seq_diagram"><img src=
+    "hash_range_hashing_seq_diagram.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Insert hash sequence diagram.</h6>
+
+    <p>If <a href=
+    "cc_hash_table.html"><tt>cc_hash_table</tt></a>'s
+    hash-functor, <tt>Hash_Fn</tt> is instantiated by <a href=
+    "null_hash_fn.html"><tt>null_hash_fn</tt></a> (see <a href=
+    "concepts.html#concepts_null_policies">Interface::Concepts::Null
+    Policy Classes</a>), then <tt>Comb_Hash_Fn</tt> is taken to be
+    a ranged-hash function. Figure <a href=
+    "#hash_range_hashing_seq_diagram2">Insert hash sequence diagram
+    with a null hash policy</a> shows an <tt>insert</tt> sequence
+    diagram. The user inserts an element (point A), the container
+    transforms the key into a position using the combining functor
+    (points B and C).</p>
+
+    <h6 class="c1"><a name="hash_range_hashing_seq_diagram2" id=
+    "hash_range_hashing_seq_diagram2"><img src=
+    "hash_range_hashing_seq_diagram2.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Insert hash sequence diagram with a null hash
+    policy.</h6>
+
+    <h4>Probing Tables</h4>
+
+    <p><a href=
+    "gp_hash_table.html"></a><tt>gp_hash_table</tt> is
+    parametrized by <tt>Hash_Fn</tt>, <tt>Probe_Fn</tt>, and
+    <tt>Comb_Probe_Fn</tt>. As before, if <tt>Probe_Fn</tt> and
+    <tt>Comb_Probe_Fn</tt> are, respectively, <a href=
+    "null_hash_fn.html"><tt>null_hash_fn</tt></a> and <a href=
+    "null_probe_fn.html"><tt>null_probe_fn</tt></a>, then
+    <tt>Comb_Probe_Fn</tt> is a ranged-probe functor. Otherwise,
+    <tt>Hash_Fn</tt> is a hash functor, <tt>Probe_Fn</tt> is a
+    functor for offsets from a hash value, and
+    <tt>Comb_Probe_Fn</tt> transforms a probe sequence into a
+    sequence of positions within the table.</p>
+
+    <h4>Pre-Defined Policies</h4>
+
+    <p><tt>pb_ds</tt> contains some pre-defined classes
+    implementing range-hashing and probing functions:</p>
+
+    <ol>
+      <li><a href=
+      "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+      and <a href=
+      "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+      are range-hashing functions based on a bit-mask and a modulo
+      operation, respectively.</li>
+
+      <li><a href=
+      "linear_probe_fn.html"><tt>linear_probe_fn</tt></a>, and
+      <a href=
+      "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a> are
+      a linear probe and a quadratic probe function,
+      respectively.</li>
+    </ol>Figure <a href="#hash_policy_cd">Hash policy class
+    diagram</a> shows a class diagram.
+
+    <h6 class="c1"><a name="hash_policy_cd" id=
+    "hash_policy_cd"><img src="hash_policy_cd.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Hash policy class diagram.</h6>
+
+    <h2><a name="resize_policies" id="resize_policies">Resize
+    Policies</a></h2>
+
+    <h3><a name="general" id="general">General Terms</a></h3>
+
+    <p>Hash-tables, as opposed to trees, do not naturally grow or
+    shrink. It is necessary to specify policies to determine how
+    and when a hash table should change its size. Usually, resize
+    policies can be decomposed into orthogonal policies:</p>
+
+    <ol>
+      <li>A <i>size policy</i> indicating <i>how</i> a hash table
+      should grow (<i>e.g.,</i> it should multiply by powers of
+      2).</li>
+
+      <li>A <i>trigger policy</i> indicating <i>when</i> a hash
+      table should grow (<i>e.g.,</i> a load factor is
+      exceeded).</li>
+    </ol>
+
+    <h3><a name="size_policies" id="size_policies">Size
+    Policies</a></h3>
+
+    <p>Size policies determine how a hash table changes size. These
+    policies are simple, and there are relatively few sensible
+    options. An exponential-size policy (with the initial size and
+    growth factors both powers of 2) works well with a mask-based
+    range-hashing function (see <a href=
+    "#hash_policies">Range-Hashing Policies</a>), and is the
+    hard-wired policy used by Dinkumware [<a href=
+    "references.html#dinkumware_stl">dinkumware_stl</a>]. A
+    prime-list based policy works well with a modulo-prime range
+    hashing function (see <a href="#hash_policies">Range-Hashing
+    Policies</a>), and is the hard-wired policy used by SGI's
+    implementation [<a href=
+    "references.html#sgi_stl">sgi_stl</a>].</p>
+
+    <h3><a name="trigger_policies" id="trigger_policies">Trigger
+    Policies</a></h3>
+
+    <p>Trigger policies determine when a hash table changes size.
+    Following is a description of two policies: <i>load-check</i>
+    policies, and collision-check policies.</p>
+
+    <p>Load-check policies are straightforward. The user specifies
+    two factors, <i>&alpha;<sub>min</sub></i> and
+    <i>&alpha;<sub>max</sub></i>, and the hash table maintains the
+    invariant that</p>
+
+    <p><i><a name="load_factor_min_max" id=
+    "load_factor_min_max">&alpha;<sub>min</sub> &le; (number of
+    stored elements) / (hash-table size) &le;
+    &alpha;<sub>max</sub></a></i> (1) .</p>
+
+    <p>Collision-check policies work in the opposite direction of
+    load-check policies. They focus on keeping the number of
+    collisions moderate and hoping that the size of the table will
+    not grow very large, instead of keeping a moderate load-factor
+    and hoping that the number of collisions will be small. A
+    maximal collision-check policy resizes when the longest
+    probe-sequence grows too large.</p>
+
+    <p>Consider Figure <a href="#balls_and_bins">Balls and
+    bins</a>. Let the size of the hash table be denoted by
+    <i>m</i>, the length of a probe sequence be denoted by
+    <i>k</i>, and some load factor be denoted by &alpha;. We would
+    like to calculate the minimal length of <i>k</i>, such that if
+    there were <i>&alpha; m</i> elements in the hash table, a probe
+    sequence of length <i>k</i> would be found with probability at
+    most <i>1/m</i>.</p>
+
+    <h6 class="c1"><a name="balls_and_bins" id=
+    "balls_and_bins"><img src="balls_and_bins.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Balls and bins.</h6>
+
+    <p>Denote the probability that a probe sequence of length
+    <i>k</i> appears in bin <i>i</i> by <i>p<sub>i</sub></i>, the
+    length of the probe sequence of bin <i>i</i> by
+    <i>l<sub>i</sub></i>, and assume uniform distribution. Then</p>
+
+    <p><a name="prob_of_p1" id=
+    "prob_of_p1"><i>p<sub>1</sub></i></a> = (3)</p>
+
+    <p class="c2"><b>P</b>(l<sub>1</sub> &ge; k) =</p>
+
+    <p><i><b>P</b>(l<sub>1</sub> &ge; &alpha; ( 1 + k / &alpha; - 1
+    ) &le;</i> (a)</p>
+
+    <p><i>e ^ ( - ( &alpha; ( k / &alpha; - 1 )<sup>2</sup> ) /2
+    )</i> ,</p>
+
+    <p>where (a) follows from the Chernoff bound [<a href=
+    "references.html#motwani95random">motwani95random</a>]. To
+    calculate the probability that <i>some</i> bin contains a probe
+    sequence greater than <i>k</i>, we note that the
+    <i>l<sub>i</sub></i> are negatively-dependent [<a href=
+    "references.html#dubhashi98neg">dubhashi98neg</a>]. Let
+    <i><b>I</b>(.)</i> denote the indicator function. Then</p>
+
+    <p><a name="at_least_k_i_n_some_bin" id=
+    "at_least_k_i_n_some_bin"><i><b>P</b>( exists<sub>i</sub>
+    l<sub>i</sub> &ge; k ) =</i> (3)</a></p>
+
+    <p class="c2"><b>P</b> ( &sum; <sub>i = 1</sub><sup>m</sup>
+    <b>I</b>(l<sub>i</sub> &ge; k) &ge; 1 ) =</p>
+
+    <p><i><b>P</b> ( &sum; <sub>i = 1</sub><sup>m</sup> <b>I</b> (
+    l<sub>i</sub> &ge; k ) &ge; m p<sub>1</sub> ( 1 + 1 / (m
+    p<sub>1</sub>) - 1 ) ) &le;</i> (a)</p>
+
+    <p class="c2">e ^ ( ( - m p<sub>1</sub> ( 1 / (m p<sub>1</sub>)
+    - 1 ) <sup>2</sup> ) / 2 ) ,</p>
+
+    <p>where (a) follows from the fact that the Chernoff bound can
+    be applied to negatively-dependent variables [<a href=
+    "references.html#dubhashi98neg">dubhashi98neg</a>]. Inserting
+    <a href="#prob_of_p1">(2)</a> into <a href=
+    "#at_least_k_i_n_some_bin">(3)</a>, and equating with
+    <i>1/m</i>, we obtain</p>
+
+    <p><i>k ~ &radic; ( 2 &alpha;</i> ln <i>2 m</i> ln<i>(m) )
+    )</i> .</p>
+
+    <h3><a name="imp_pb_ds" id="imp_pb_ds">Implementation</a></h3>
+
+    <p>This sub-subsection describes the implementation of the
+    above in <tt>pb_ds</tt>. It first describes resize policies and
+    their decomposition into trigger and size policies, then
+    describes pre-defined classes, and finally discusses controlled
+    access the policies' internals.</p>
+
+    <h4>Resize Policies and Their Decomposition</h4>
+
+    <p>Each hash-based container is parametrized by a
+    <tt>Resize_Policy</tt> parameter; the container derives
+    <tt><b>public</b></tt>ly from <tt>Resize_Policy</tt>. For
+    example:</p>
+    <pre>
+<a href="cc_hash_table.html">cc_hash_table</a>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    ...
+    <b>typename</b> Resize_Policy
+    ...&gt; :
+        <b>public</b> Resize_Policy
+</pre>
+
+    <p>As a container object is modified, it continuously notifies
+    its <tt>Resize_Policy</tt> base of internal changes
+    (<i>e.g.</i>, collisions encountered and elements being
+    inserted). It queries its <tt>Resize_Policy</tt> base whether
+    it needs to be resized, and if so, to what size.</p>
+
+    <p>Figure <a href="#insert_resize_sequence_diagram1">Insert
+    resize sequence diagram</a> shows a (possible) sequence diagram
+    of an insert operation. The user inserts an element; the hash
+    table notifies its resize policy that a search has started
+    (point A); in this case, a single collision is encountered -
+    the table notifies its resize policy of this (point B); the
+    container finally notifies its resize policy that the search
+    has ended (point C); it then queries its resize policy whether
+    a resize is needed, and if so, what is the new size (points D
+    to G); following the resize, it notifies the policy that a
+    resize has completed (point H); finally, the element is
+    inserted, and the policy notified (point I).</p>
+
+    <h6 class="c1"><a name="insert_resize_sequence_diagram1" id=
+    "insert_resize_sequence_diagram1"><img src=
+    "insert_resize_sequence_diagram1.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Insert resize sequence diagram.</h6>
+
+    <p>In practice, a resize policy can be usually orthogonally
+    decomposed to a size policy and a trigger policy. Consequently,
+    the library contains a single class for instantiating a resize
+    policy: <a href=
+    "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+    is parametrized by <tt>Size_Policy</tt> and
+    <tt>Trigger_Policy</tt>, derives <tt><b>public</b></tt>ly from
+    both, and acts as a standard delegate [<a href=
+    "references.html#gamma95designpatterns">gamma95designpatterns</a>]
+    to these policies.</p>
+
+    <p>Figures <a href="#insert_resize_sequence_diagram2">Standard
+    resize policy trigger sequence diagram</a> and <a href=
+    "#insert_resize_sequence_diagram3">Standard resize policy size
+    sequence diagram</a> show sequence diagrams illustrating the
+    interaction between the standard resize policy and its trigger
+    and size policies, respectively.</p>
+
+    <h6 class="c1"><a name="insert_resize_sequence_diagram2" id=
+    "insert_resize_sequence_diagram2"><img src=
+    "insert_resize_sequence_diagram2.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Standard resize policy trigger sequence
+    diagram.</h6>
+
+    <h6 class="c1"><a name="insert_resize_sequence_diagram3" id=
+    "insert_resize_sequence_diagram3"><img src=
+    "insert_resize_sequence_diagram3.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Standard resize policy size sequence
+    diagram.</h6>
+
+    <h4>Pre-Defined Policies</h4>
+
+    <p>The library includes the following
+    instantiations of size and trigger policies:</p>
+
+    <ol>
+      <li><a href=
+      "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+      implements a load check trigger policy.</li>
+
+      <li><a href=
+      "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
+      implements a collision check trigger policy.</li>
+
+      <li><a href=
+      "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+      implements an exponential-size policy (which should be used
+      with mask range hashing).</li>
+
+      <li><a href=
+      "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+      implementing a size policy based on a sequence of primes
+      [<a href="references.html#sgi_stl">sgi_stl</a>] (which should
+      be used with mod range hashing</li>
+    </ol>
+
+    <p>Figure <a href="#resize_policy_cd">Resize policy class
+    diagram</a> gives an overall picture of the resize-related
+    classes. <a href=
+    "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+    is parametrized by <tt>Resize_Policy</tt>, which it subclasses
+    publicly. This class is currently instantiated only by <a href=
+    "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.
+    <a href=
+    "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+    itself is parametrized by <tt>Trigger_Policy</tt> and
+    <tt>Size_Policy</tt>. Currently, <tt>Trigger_Policy</tt> is
+    instantiated by <a href=
+    "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>,
+    or <a href=
+    "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>;
+    <tt>Size_Policy</tt> is instantiated by <a href=
+    "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>,
+    or <a href=
+    "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>.</p>
+
+    <h6 class="c1"><a name="resize_policy_cd" id=
+    "resize_policy_cd"><img src="resize_policy_cd.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Resize policy class diagram.</h6>
+
+    <h4>Controlled Access to Policies' Internals</h4>
+
+    <p>There are cases where (controlled) access to resize
+    policies' internals is beneficial. <i>E.g.</i>, it is sometimes
+    useful to query a hash-table for the table's actual size (as
+    opposed to its <tt>size()</tt> - the number of values it
+    currently holds); it is sometimes useful to set a table's
+    initial size, externally resize it, or change load factors.</p>
+
+    <p>Clearly, supporting such methods both decreases the
+    encapsulation of hash-based containers, and increases the
+    diversity between different associative-containers' interfaces.
+    Conversely, omitting such methods can decrease containers'
+    flexibility.</p>
+
+    <p>In order to avoid, to the extent possible, the above
+    conflict, the hash-based containers themselves do not address
+    any of these questions; this is deferred to the resize policies,
+    which are easier to change or replace. Thus, for example,
+    neither <a href=
+    "cc_hash_table.html"><tt>cc_hash_table</tt></a> nor
+    <a href=
+    "gp_hash_table.html"><tt>gp_hash_table</tt></a>
+    contain methods for querying the actual size of the table; this
+    is deferred to <a href=
+    "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>.</p>
+
+    <p>Furthermore, the policies themselves are parametrized by
+    template arguments that determine the methods they support
+    ([<a href=
+    "references.html#alexandrescu01modern">alexandrescu01modern</a>]
+    shows techniques for doing so). <a href=
+    "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+    is parametrized by <tt>External_Size_Access</tt> that
+    determines whether it supports methods for querying the actual
+    size of the table or resizing it. <a href=
+    "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+    is parametrized by <tt>External_Load_Access</tt> that
+    determines whether it supports methods for querying or
+    modifying the loads. <a href=
+    "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
+    is parametrized by <tt>External_Load_Access</tt> that
+    determines whether it supports methods for querying the
+    load.</p>
+
+    <p>Some operations, for example, resizing a container at
+    run time, or changing the load factors of a load-check trigger
+    policy, require the container itself to resize. As mentioned
+    above, the hash-based containers themselves do not contain
+    these types of methods, only their resize policies.
+    Consequently, there must be some mechanism for a resize policy
+    to manipulate the hash-based container. As the hash-based
+    container is a subclass of the resize policy, this is done
+    through virtual methods. Each hash-based container has a
+    <tt><b>private</b></tt> <tt><b>virtual</b></tt> method:</p>
+    <pre>
+<b>virtual void</b>
+    do_resize
+    (size_type new_size);
+</pre>
+
+    <p>which resizes the container. Implementations of
+    <tt>Resize_Policy</tt> can export public methods for resizing
+    the container externally; these methods internally call
+    <tt>do_resize</tt> to resize the table.</p>
+
+    <h2><a name="policy_interaction" id="policy_interaction">Policy
+    Interaction</a></h2>
+
+    <p>Hash-tables are unfortunately especially susceptible to
+    choice of policies. One of the more complicated aspects of this
+    is that poor combinations of good policies can form a poor
+    container. Following are some considerations.</p>
+
+    <h3><a name="policy_interaction_probe_size_trigger" id=
+    "policy_interaction_probe_size_trigger">Probe Policies, Size
+    Policies, and Trigger Policies</a></h3>
+
+    <p>Some combinations do not work well for probing containers.
+    For example, combining a quadratic probe policy with an
+    exponential size policy can yield a poor container: when an
+    element is inserted, a trigger policy might decide that there
+    is no need to resize, as the table still contains unused
+    entries; the probe sequence, however, might never reach any of
+    the unused entries.</p>
+
+    <p>Unfortunately, <tt>pb_ds</tt> cannot detect such problems at
+    compilation (they are halting reducible). It therefore defines
+    an exception class <a href=
+    "insert_error.html"><tt>insert_error</tt></a> to throw an
+    exception in this case.</p>
+
+    <h3><a name="policy_interaction_hash_trigger" id=
+    "policy_interaction_hash_trigger">Hash Policies and Trigger
+    Policies</a></h3>
+
+    <p>Some trigger policies are especially susceptible to poor
+    hash functions. Suppose, as an extreme case, that the hash
+    function transforms each key to the same hash value. After some
+    inserts, a collision detecting policy will always indicate that
+    the container needs to grow.</p>
+
+    <p>The library, therefore, by design, limits each operation to
+    one resize. For each <tt>insert</tt>, for example, it queries
+    only once whether a resize is needed.</p>
+
+    <h3><a name="policy_interaction_eq_sth_hash" id=
+    "policy_interaction_eq_sth_hash">Equivalence Functors, Storing
+    Hash Values, and Hash Functions</a></h3>
+
+    <p><a href=
+    "cc_hash_table.html"><tt>cc_hash_table</tt></a> and
+    <a href=
+    "gp_hash_table.html"><tt>gp_hash_table</tt></a> are
+    parametrized by an equivalence functor and by a
+    <tt>Store_Hash</tt> parameter. If the latter parameter is
+    <tt><b>true</b></tt>, then the container stores with each entry
+    a hash value, and uses this value in case of collisions to
+    determine whether to apply a hash value. This can lower the
+    cost of collision for some types, but increase the cost of
+    collisions for other types.</p>
+
+    <p>If a ranged-hash function or ranged probe function is
+    directly supplied, however, then it makes no sense to store the
+    hash value with each entry. <tt>pb_ds</tt>'s container will
+    fail at compilation, by design, if this is attempted.</p>
+
+    <h3><a name="policy_interaction_size_load_check" id=
+    "policy_interaction_size_load_check">Size Policies and
+    Load-Check Trigger Policies</a></h3>
+
+    <p>Assume a size policy issues an increasing sequence of sizes
+    <i>a, a q, a q<sup>1</sup>, a q<sup>2</sup>, ...</i> For
+    example, an exponential size policy might issue the sequence of
+    sizes <i>8, 16, 32, 64, ...</i></p>
+
+    <p>If a load-check trigger policy is used, with loads
+    <i>&alpha;<sub>min</sub></i> and <i>&alpha;<sub>max</sub></i>,
+    respectively, then it is a good idea to have:</p>
+
+    <ol>
+      <li><i>&alpha;<sub>max</sub> ~ 1 / q</i></li>
+
+      <li><i>&alpha;<sub>min</sub> &lt; 1 / (2 q)</i></li>
+    </ol>
+
+    <p>This will ensure that the amortized hash cost of each
+    modifying operation is at most approximately 3.</p>
+
+    <p><i>&alpha;<sub>min</sub> ~ &alpha;<sub>max</sub></i> is, in
+    any case, a bad choice, and <i>&alpha;<sub>min</sub> &gt;
+    &alpha;<sub>max</sub></i> is horrendous.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html
new file mode 100644
index 000000000000..059fa48d7f51
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_exponential_size_policy.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>hash_exponential_size_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>hash_exponential_size_policy</tt> Interface</h1>
+
+    <p>A size policy whose sequence of sizes form an exponential
+    sequence (typically powers of 2)</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  hash_exponential_size_policy
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> start_size = 8, 
+    <a href=
+"#size_type55424436"><tt>size_type</tt></a> grow_factor = 2)
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor, or constructor taking a
+          <span class="c1"><tt>start_size</tt></span>, or
+          constructor taking a start size and <span class=
+          "c1"><tt>grow_factor</tt></span>. The policy will use the
+          sequence of sizes <span class=
+          "c1"><tt>start_size</tt></span>, <span class=
+          "c1"><tt>start_size</tt></span> * <span class=
+          "c1"><tt>grow_factor</tt></span>, <span class=
+          "c1"><tt>start_size</tt></span> * <span class=
+          "c1"><tt>grow_factor</tt></span>^2, ...</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  swap
+  (<span class=
+"c2"><tt>hash_exponential_size_policy</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Size methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+  get_nearest_larger_size
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Given a size <span class="c1"><tt>size</tt></span>,
+          returns a size that is larger.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+  get_nearest_smaller_size
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Given a size <span class="c1"><tt>size</tt></span>,
+          returns a size that is smaller.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html
new file mode 100644
index 000000000000..0013e0127c07
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_load_check_resize_trigger.html
@@ -0,0 +1,583 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>hash_load_check_resize_trigger Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>hash_load_check_resize_trigger</tt> Interface</h1>
+
+    <p>A resize trigger policy based on a load check. It keeps the
+    load factor between some load factors load_min and
+    load_max.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="External_Load_Access1313998607" id=
+"External_Load_Access1313998607"><b>bool</b> External_Load_Access </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Specifies whether the load factor can be accessed
+          externally. The two options have different trade-offs in
+          terms of flexibility, genericity, and encapsulation.</p>
+        </td>
+
+        <td><tt><b>false</b></tt></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="external_load_access3976598639" id=
+"external_load_access3976598639">external_load_access</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether loads can be accessed externally</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  hash_load_check_resize_trigger
+  (float load_min = 0.125, 
+    float load_max = 0.5)
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor, or constructor taking
+          <span class="c1"><tt>load_min</tt></span> and
+          <span class="c1"><tt>load_max</tt></span> load factors
+          between which this policy will keep the actual load.</p>
+
+          <p>It is the responsibility of the user to ensure that
+          <span class="c1"><tt>load_min</tt></span> is smaller than
+          <span class="c1"><tt>load_max</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>hash_load_check_resize_trigger</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  <b>virtual</b>
+    ~hash_load_check_resize_trigger
+    ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Load Access Methods</a></h3>
+
+    <p>These methods are only available if the external access
+    parameter is set.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> std::pair&lt;float, float&gt;
+  get_loads
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a pair of the minimal and maximal loads,
+          respectively.</p>
+
+          <p>Calling this method will not compile when <a href=
+          "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+          == <tt><b>false</b></tt>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  set_loads
+  (std::pair&lt;float, float&gt; load_pair)
+</pre>
+        </td>
+
+        <td>
+          <p>Sets the loads through a pair of the minimal and
+          maximal loads, respectively.</p>
+
+          <p>Calling this method resizes the container, and might
+          throw an exception. It is the responsibility of the user
+          to pass appropriate loads to this function. Calling this
+          method will not compile when <a href=
+          "#External_Load_Access1313998607"><tt>External_Load_Access</tt></a>
+          == <tt><b>false</b></tt>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link7" id="link7">Protected Methods</a></h2>
+
+    <h3><a name="link8" id="link8">Insert Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Find Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during a find operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Erase Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link11" id="link11">Content Change
+    Notifications.</a></h3>
+
+    <p>Notifications called when the content of the table changes
+    in a way that can affect the resize policy.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_inserted
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was inserted. the total number of
+          entries in the table is <span class=
+          "c1"><tt>num_entries</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erased
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was erased.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_cleared
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was cleared.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link12" id="link12">Size Change
+    Notifications.</a></h3>
+
+    <p>Notifications called when the table changes size.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized as a result of this
+          object's signifying that a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_externally_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized externally.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link13" id="link13">Queries</a></h3>
+
+    <p>Called to query whether/how to resize.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b> 
+  is_resize_needed
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  is_grow_needed
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size, 
+    <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a grow is needed.</p>
+
+          <p>This method is called only if this object indicated
+          resize is needed. The actual <span class=
+          "c1"><tt>size</tt></span> of the table is <span class=
+          "c1"><tt>size</tt></span>, and the number of entries in
+          it is <span class="c1"><tt>num_entries</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link14" id="link14">Private Methods</a></h2>
+
+    <h3><a name="link15" id="link15">Overrides</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <b>void</b>
+  do_resize
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Resizes to <span class=
+          "c1"><tt>new_size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_policy_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..f3122a112fc9dbff20f7f10a7c87f1cf86097c7e
GIT binary patch
literal 25302
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html
new file mode 100644
index 000000000000..cf67dabe078e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_prime_size_policy.html
@@ -0,0 +1,149 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>hash_prime_size_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>hash_prime_size_policy</tt> Interface</h1>
+
+    <p>A size policy whose sequence of sizes form a
+    nearly-exponential sequence of primes.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  hash_prime_size_policy
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> start_size = 8)
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor, or constructor taking a
+          <span class="c1"><tt>start_size</tt></span> The policy
+          will use the sequence of sizes approximately <span class=
+          "c1"><tt>start_size</tt></span>, <span class=
+          "c1"><tt>start_size</tt></span> * 2, <span class=
+          "c1"><tt>start_size</tt></span> * 2^2, ...</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (<span class=
+"c2"><tt>hash_prime_size_policy</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Size methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+  get_nearest_larger_size
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Given a size <span class="c1"><tt>size</tt></span>,
+          returns a size that is larger.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+  get_nearest_smaller_size
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Given a size <span class="c1"><tt>size</tt></span>,
+          returns a size that is smaller.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html
new file mode 100644
index 000000000000..073c84c2bbaf
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Locality of Reference Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Erase Memory-Use Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of uniform i.i.d. integer keys
+    into a container, then erases all keys except one. It measures
+    the final size of the container.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc"><tt>hash_random_int_erase_mem_usage.cc</tt></a>
+    2000 2000 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks how containers adjust internally as their
+    logical size decreases (see <a href="motivation.html#assoc_ers_methods">Motivation::Associative
+    Containers::Slightly Different Methods::Methods Related to
+    Erase</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NHG">NHG</a>, <a href="#NHM">NHM</a> and
+    <a href="#NHL">NHL</a> show the results for the native and
+    collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a> and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_hash_random_int_erase_mem_usage_test">
+<div id="NHG_assoc">
+<div id="NHG_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="hash_random_int_erase_mem_usage_test_gcc.png" alt="no image" /></a></h6>NHG: Native, collision-chaing, and probing, hash random int erase test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_set_ncah-
+<tt>std::tr1::unordered_set</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_hash_random_int_erase_mem_usage_test">
+<div id="NHM_assoc">
+<div id="NHM_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="hash_random_int_erase_mem_usage_test_msvc.png" alt="no image" /></a></h6>NHM: Native, collision-chaing, and probing, hash random int erase test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_set_ncah-
+<tt>stdext::hash_set</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_hash_random_int_erase_mem_usage_test">
+<div id="NHM_assoc">
+<div id="NHM_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="hash_random_int_erase_mem_usage_test_msvc.png" alt="no image" /></a></h6>NHM: Native, collision-chaing, and probing, hash random int erase test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_set_ncah-
+<tt>stdext::hash_set</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_hash_random_int_erase_mem_usage_test">
+<div id="NHL_assoc">
+<div id="NHL_Native_456_collision-chaing_456_and_probing_456_hash_random_int_erase_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="hash_random_int_erase_mem_usage_test_local.png" alt="no image" /></a></h6>NHL: Native, collision-chaing, and probing, hash random int erase test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>STL hash-based containers act very differently than trees in
+    this respect. When erasing numerous keys from an STL
+    associative-container, the resulting memory user varies greatly
+    depending on whether the container is tree-based or hash-based.
+    As noted in <a href="motivation.html#assoc_methods">Motivation::Choice of
+    Methods</a> , this is a fundamental consequence of the STL's
+    associative containers' interface, it is not due to a specific
+    implementation.</p>
+<p>(See <a href="priority_queue_text_pop_mem_usage_test.html">Priority Queue
+    Text <tt>pop</tt> Memory Use Test</a> for a similar phenomenon
+    regarding priority queues.)</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..c552506a7557aa598a9de877bbe45bd20bda39f2
GIT binary patch
literal 6356
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
P@4@OSn##pWkAnXTmi`&%

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..dbd3ee9d3c0aa66fd5bfa7454a1737742f331420
GIT binary patch
literal 7405
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_erase_mem_usage_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c23d46da395543715ebbbac37665e0ff0fe7192
GIT binary patch
literal 6401
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html
new file mode 100644
index 000000000000..7e7f2084b080
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_find_find_timing_test.html
@@ -0,0 +1,247 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Random Int Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Random-Integer <tt>find</tt> Find Timing
+    Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with uniform i.i.d.
+    integer keys into a container, then performs a series of finds
+    using <tt>find</tt>. It measures the average time
+    for<tt>find</tt> as a function of the number of values
+    inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/random_int_find_timing.cc"><tt>random_int_find_timing_test</tt></a>
+    200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    hash-tables (see <a href="hash_based_containers.html">Design::Associative
+    Containers::Associative Containers::Hash-Based Containers</a>),
+    range-hashing functions, and trigger policies (see <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Hash-Based Containers::Hash Policies</a> and
+    <a href="hash_based_containers.html#resize_policies">Design::Associative
+    Containers::Hash-Based Containers::Resize Policies</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>,
+    and <a href="#NCCL">NCCL</a> show the results for the native
+    and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NGPG">NGPG</a>, <a href="#NGPM">NGPM</a>, and <a href="#NGPL">NGPL</a> show the results
+    for the native and probing types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>
+    respectively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_cc_hash_random_int_find_timing_test">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="cc_hash_random_int_find_timing_test_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_cc_hash_random_int_find_timing_test">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="cc_hash_random_int_find_timing_test_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_cc_hash_random_int_find_timing_test">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="cc_hash_random_int_find_timing_test_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPG_res_div">
+<div id="NGPG_gcc">
+<div id="NGPG_gp_hash_random_int_find_timing_test">
+<div id="NGPG_assoc">
+<div id="NGPG_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPG" id="NGPG"><img src="gp_hash_random_int_find_timing_test_gcc.png" alt="no image" /></a></h6>NGPG: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPM_res_div">
+<div id="NGPM_msvc">
+<div id="NGPM_gp_hash_random_int_find_timing_test">
+<div id="NGPM_assoc">
+<div id="NGPM_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPM" id="NGPM"><img src="gp_hash_random_int_find_timing_test_msvc.png" alt="no image" /></a></h6>NGPM: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPL_res_div">
+<div id="NGPL_local">
+<div id="NGPL_gp_hash_random_int_find_timing_test">
+<div id="NGPL_assoc">
+<div id="NGPL_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPL" id= "NGPL"><img src="gp_hash_random_int_find_timing_test_local.png" alt="no image" /></a></h6>NGPL: Native and collision-chaining hash random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, the choice of underlying hash-table (see
+    <a href="hash_based_containers.html">Design::Associative
+    Containers::Hash-Based Containers</a> ) affects performance
+    most, then the range-hashing scheme (See <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Hash-Based Containers::Hash Policies</a> ), and,
+    only finally, other policies.</p>
+<p>When comparing Figures <a href="#NCCG">NCCG</a> and <a href="#NCCM">NCCM</a> to <a href="#NGPG">NGPG</a> and <a href="#NGPM">NGPM</a> , respectively, it is apparent that the
+    probing containers are less efficient than the
+    collision-chaining containers (both
+    <tt>std::tr1::unordered_map</tt> and <tt>stdext::hash_map</tt>
+    use collision-chaining) in this case.</p>
+<p>( <a href="hash_random_int_subscript_insert_timing_test.html">Hash-Based
+    Random-Integer Subscript Insert Timing Test</a> shows a
+    different case, where the situation is reversed; <a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+    Container Types</a> discusses some further considerations.)</p>
+<p>Within each type of hash-table, the range-hashing scheme
+    affects performance more than other policies; <a href="hash_text_find_find_timing_test.html#observations">Hash-Based
+    Text <tt>find</tt> Find Timing Test::Observations</a> discusses
+    this. In Figures <a href="#NCCG">NCCG</a> , <a href="#NCCM">NCCM</a> , <a href="#NGPG">NGPG</a> , and <a href="#NGPM">NGPM</a> , it should be noted that
+    <tt>std::tr1::unordered_map</tt> and <tt>stdext::hash_map</tt>
+    are hard-wired currently to mod-based and mask-based schemes,
+    respectively.</p>
+<p><a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+    Container Types</a> summarizes some observations on hash-based
+    containers; <a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+    Containers' Policies</a> summarizes some observations on
+    hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html
new file mode 100644
index 000000000000..adee8f0b1bd9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_find_timing_test.html
@@ -0,0 +1,220 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Random Int Subscript Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Random-Integer <tt><b>operator</b>[]</tt>
+    FindTiming Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with uniform i.i.d.
+    integer keys into a container, then performs a series of finds
+    using <tt><b>operator</b>[]</tt>. It measures the average time
+    for <tt><b>operator</b>[]</tt> as a function of the number of
+    values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc"><tt>hash_random_int_subscript_find_timing_test</tt></a>
+    200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    hash-tables (see <a href="hash_based_containers.html">Design::Hash-Based Containers</a>
+    ), range-hashing functions, and trigger policies (see <a href="hash_based_containers.html#hash_policies">Design::Hash-Based
+    Containers::Hash Policies</a> and <a href="hash_based_containers.html#resize_policies">Design::Hash-Based
+    Containers::Resize Policies</a> ).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>,
+    and <a href="#NCCL">NCCL</a> show the results for the native
+    and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NGPG">NGPG</a>, <a href="#NGPM">NGPM</a>, and <a href="#NGPL">NGPL</a> show the results
+    for the native and probing types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_cc_hash_random_int_subscript_timing_test_find">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="cc_hash_random_int_subscript_timing_test_find_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_cc_hash_random_int_subscript_timing_test_find">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="cc_hash_random_int_subscript_timing_test_find_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_cc_hash_random_int_subscript_timing_test_find">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="cc_hash_random_int_subscript_timing_test_find_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash random int find timing test using <tt><b>operator</b></tt>[] - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPG_res_div">
+<div id="NGPG_gcc">
+<div id="NGPG_gp_hash_random_int_subscript_timing_test_find">
+<div id="NGPG_assoc">
+<div id="NGPG_Native_and_probing_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPG" id="NGPG"><img src="gp_hash_random_int_subscript_timing_test_find_gcc.png" alt="no image" /></a></h6>NGPG: Native and probing hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPM_res_div">
+<div id="NGPM_msvc">
+<div id="NGPM_gp_hash_random_int_subscript_timing_test_find">
+<div id="NGPM_assoc">
+<div id="NGPM_Native_and_probing_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPM" id="NGPM"><img src="gp_hash_random_int_subscript_timing_test_find_msvc.png" alt="no image" /></a></h6>NGPM: Native and probing hash random int find timing test using <tt><b>operator</b></tt>[] - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPL_res_div">
+<div id="NGPL_local">
+<div id="NGPL_gp_hash_random_int_subscript_timing_test_find">
+<div id="NGPL_assoc">
+<div id="NGPL_Native_and_probing_hash_random_int_find_timing_test_using__tt__b_operator_455b__455tt__457"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPL" id= "NGPL"><img src="gp_hash_random_int_subscript_timing_test_find_local.png" alt="no image" /></a></h6>NGPL: Native and probing hash random int find timing test using <tt><b>operator</b></tt>[] - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>This test shows similar results to <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+    Random-Integer <tt>find</tt> Find Timing Test</a> .</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html
new file mode 100644
index 000000000000..37a8644a4964
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_random_int_subscript_insert_timing_test.html
@@ -0,0 +1,365 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Random Int Subscript Insert Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Random-Integer <tt><b>operator</b>[]</tt> Insert
+    Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with uniform i.i.d.
+    integer keys into a container, using
+    <tt><b>operator</b>[]</tt>. It measures the average time for
+    <tt><b>operator</b>[]</tt> as a function of the number of
+    values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc"><tt>hash_random_int_subscript_insert_timing_test</tt></a>
+    200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test primarily checks the effect of different underlying
+    hash-tables (see <a href="hash_based_containers.html">Design::Associative
+    Containers::Associative Containers::Hash-Based
+    Containers</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>,
+    and <a href="#NCCL">NCCL</a> show the results for the native
+    and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NGPG">NGPG</a>, <a href="#NGPM">NGPM</a>, and <a href="#NGPL">NGPL</a> show the results
+    for the native and probing types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>
+    respectively; Figures <a href="#CCGPG">CCGPG</a>, <a href="#CCGPM">CCGPM</a>, and <a href="#CCGPL">CCGPL</a> compare the
+    results for the collision-chaining and probing types of
+    <tt>pb_ds</tt> only, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>
+    respectively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_cc_hash_random_int_subscript_timing_test_insert">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="cc_hash_random_int_subscript_timing_test_insert_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_cc_hash_random_int_subscript_timing_test_insert">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="cc_hash_random_int_subscript_timing_test_insert_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_cc_hash_random_int_subscript_timing_test_insert">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="cc_hash_random_int_subscript_timing_test_insert_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash random int insert timing test using <tt><b>operator</b></tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPG_res_div">
+<div id="NGPG_gcc">
+<div id="NGPG_gp_hash_random_int_subscript_timing_test_insert">
+<div id="NGPG_assoc">
+<div id="NGPG_Native_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPG" id="NGPG"><img src="gp_hash_random_int_subscript_timing_test_insert_gcc.png" alt="no image" /></a></h6>NGPG: Native and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPM_res_div">
+<div id="NGPM_msvc">
+<div id="NGPM_gp_hash_random_int_subscript_timing_test_insert">
+<div id="NGPM_assoc">
+<div id="NGPM_Native_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPM" id="NGPM"><img src="gp_hash_random_int_subscript_timing_test_insert_msvc.png" alt="no image" /></a></h6>NGPM: Native and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NGPL_res_div">
+<div id="NGPL_local">
+<div id="NGPL_gp_hash_random_int_subscript_timing_test_insert">
+<div id="NGPL_assoc">
+<div id="NGPL_Native_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NGPL" id= "NGPL"><img src="gp_hash_random_int_subscript_timing_test_insert_local.png" alt="no image" /></a></h6>NGPL: Native and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="CCGPG_res_div">
+<div id="CCGPG_gcc">
+<div id="CCGPG_ccgp_hash_random_int_subscript_timing_test_insert">
+<div id="CCGPG_assoc">
+<div id="CCGPG_Collision-chaining_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="CCGPG" id="CCGPG"><img src="ccgp_hash_random_int_subscript_timing_test_insert_gcc.png" alt="no image" /></a></h6>CCGPG: Collision-chaining and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="CCGPM_res_div">
+<div id="CCGPM_msvc">
+<div id="CCGPM_ccgp_hash_random_int_subscript_timing_test_insert">
+<div id="CCGPM_assoc">
+<div id="CCGPM_Collision-chaining_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="CCGPM" id="CCGPM"><img src="ccgp_hash_random_int_subscript_timing_test_insert_msvc.png" alt="no image" /></a></h6>CCGPM: Collision-chaining and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="linear_probe_fn.html"><tt>linear_probe_fn</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="CCGPL_res_div">
+<div id="CCGPL_local">
+<div id="CCGPL_ccgp_hash_random_int_subscript_timing_test_insert">
+<div id="CCGPL_assoc">
+<div id="CCGPL_Collision-chaining_and_probing_hash_random_int_insert_timing_test_using__tt__b_operator_455b__455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="CCGPL" id= "CCGPL"><img src="ccgp_hash_random_int_subscript_timing_test_insert_local.png" alt="no image" /></a></h6>CCGPL: Collision-chaining and probing hash random int insert timing test using <tt><b>operator</b></tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, as in <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+    <tt>find</tt> Find Timing Test</a> and <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+    Random-Integer <tt>find</tt> Find Timing Test</a> , the choice
+    of underlying hash-table underlying hash-table (see <a href="hash_based_containers.html">Design::Associative
+    Containers::Hash-Based Containers</a> ) affects performance
+    most, then the range-hashing scheme (See <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Hash-Based Containers::Hash Policies</a> ), and,
+    only finally, other policies.</p>
+<p>There are some differences, however:</p>
+<ol>
+<li>In this setting, probing tables function sometimes more
+      efficiently than collision-chaining tables (see Figures
+      <a href="#CCGPG">CCGPG</a> and <a href="#CCGPM">CCGPM</a> ).
+      This is explained shortly.</li>
+<li>The performance graphs have a "saw-tooth" shape. The
+      average insert time rises and falls. As values are inserted
+      into the container, the load factor grows larger. Eventually,
+      a resize occurs. The reallocations and rehashing are
+      relatively expensive. After this, the load factor is smaller
+      than before.</li>
+</ol>
+<p>Collision-chaining containers use indirection for greater
+    flexibility; probing containers store values contiguously, in
+    an array (see Figure <a href="motivation.html#different_underlying_data_structures">Motivation::Different
+    underlying data structures</a> A and B, respectively). It
+    follows that for simple data types, probing containers access
+    their allocator less frequently than collision-chaining
+    containers, (although they still have less efficient probing
+    sequences). This explains why some probing containers fare
+    better than collision-chaining containers in this case.</p>
+<p>Within each type of hash-table, the range-hashing scheme
+    affects performance more than other policies. This is similar
+    to the situation in <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+    <tt>find</tt> Find Timing Test</a> and <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+    Random-Integer <tt>find</tt> Find Timing Test</a>.
+    Unsurprisingly, however, containers with <u>lower</u>
+<i>alpha<sub>max</sub></i> perform <u>worse</u> in this case,
+    since more re-hashes are performed.</p>
+<p><a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+    Container Types</a> summarizes some observations on hash-based
+    containers; <a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+    Containers' Policies</a> summarizes some observations on
+    hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram.png
new file mode 100644
index 0000000000000000000000000000000000000000..5c37407dda69b82a195f69f86ab51e13377aaaca
GIT binary patch
literal 12962
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_range_hashing_seq_diagram2.png
new file mode 100644
index 0000000000000000000000000000000000000000..87763caacc783b5b5d89426b10469d3d7aa3c9c0
GIT binary patch
literal 8918
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_ranged_hash_range_hashing_fns.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e0d7f4037b6c0b0c02b62c90dc0ab7c2b2f3e15
GIT binary patch
literal 19773
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
Bwf+DA

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html
new file mode 100644
index 000000000000..70d6086d5033
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_standard_resize_policy.html
@@ -0,0 +1,795 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>hash_standard_resize_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>hash_standard_resize_policy</tt> Interface</h1>
+
+    <p>A resize policy which delegates operations to size and
+    trigger policies.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Policy1072992366" id=
+"Size_Policy1072992366"><b>class</b> Size_Policy </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size policy type.</p>
+        </td>
+
+        <td><a href=
+        "hash_exponential_size_policy.html"><span class="c2"><tt>hash_exponential_size_policy</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Trigger_Policy3611271815" id=
+"Trigger_Policy3611271815"><b>class</b> Trigger_Policy </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Trigger policy type.</p>
+        </td>
+
+        <td><a href=
+        "hash_load_check_resize_trigger.html"><span class=
+        "c2"><tt>hash_load_check_resize_trigger</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="External_Size_Access1380482982" id=
+"External_Size_Access1380482982"><b>bool</b> External_Size_Access </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether physical sizes can be accessed
+          externally.</p>
+        </td>
+
+        <td><tt><b>false</b></tt></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="trigger_policy4019166151" id=
+"trigger_policy4019166151">trigger_policy</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Trigger policy type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_policy1385592366" id=
+"size_policy1385592366">size_policy</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size policy type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="external_size_access4043083014" id=
+"external_size_access4043083014">external_size_access</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether sizes can be accessed
+          externally.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  hash_standard_resize_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  hash_standard_resize_policy
+  (<b>const</b> <a href=
+"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;r_size_policy)
+</pre>
+        </td>
+
+        <td>
+          <p>constructor taking some policies <span class=
+          "c1"><tt>r_size_policy</tt></span> will be copied by the
+          <a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+          object of this object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  hash_standard_resize_policy
+  (<b>const</b> <a href=
+"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;r_size_policy,
+    <b>const</b> <a href=
+"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &amp;r_trigger_policy)
+</pre>
+        </td>
+
+        <td>
+          <p>constructor taking some policies. <span class=
+          "c1"><tt>r_size_policy</tt></span> will be copied by the
+          <a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+          object of this object. <span class=
+          "c1"><tt>r_trigger_policy</tt></span> will be copied by
+          the <a href=
+          "#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+          object of this object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~hash_standard_resize_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b> 
+  swap
+  (<span class=
+"c2"><tt>hash_standard_resize_policy</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Policy Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;
+  get_size_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#Size_Policy1072992366"><tt>Size_Policy</tt></a> object
+          used.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href=
+"#Size_Policy1072992366"><tt>Size_Policy</tt></a> &amp;
+  get_size_policy
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#Size_Policy1072992366"><tt>Size_Policy</tt></a> object
+          used.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &amp;
+  get_trigger_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+          object used.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href=
+"#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a> &amp;
+  get_trigger_policy
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#Trigger_Policy3611271815"><tt>Trigger_Policy</tt></a>
+          object used.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Size Access Methods</a></h3>
+
+    <p>These methods are available only if the external size
+    parameter indicates that external size access is allowed.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a> 
+  get_actual_size
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the actual size of the container.</p>
+
+          <p>This method returns the number of entries (used and
+          unused) in the container. It is different from the
+          container's size method, which returns the number of used
+          entries. Calling this method will not compile when
+          <a href=
+          "#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
+          == <tt><b>false</b></tt>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  resize
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> suggested_new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Resizes the container to <span class=
+          "c1"><tt>suggested_new_size</tt></span>, a suggested size
+          (the actual size will be determined by the <a href=
+          "#Size_Policy1072992366"><tt>Size_Policy</tt></a>
+          object).</p>
+
+          <p>Calling this method will not compile when <a href=
+          "#External_Size_Access1380482982"><tt>External_Size_Access</tt></a>
+          == <tt><b>false</b></tt>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link10" id="link10">Protected Methods</a></h2>
+
+    <h3><a name="link11" id="link11">Insert Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link12" id="link12">Find Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during a find operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link13" id="link13">Erase Search
+    Notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link14" id="link14">Content Change
+    Notifications</a></h3>
+
+    <p>Notifications called when the content of the table changes
+    in a way that can affect the resize policy.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_inserted
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was inserted.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erased
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was erased.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_cleared
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was cleared.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link15" id="link15">Size Change
+    Notifications</a></h3>
+
+    <p>Notifications called when the table changes size.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized to <span class=
+          "c1"><tt>new_size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link16" id="link16">Queries</a></h3>
+
+    <p>Called to query whether/how to resize.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  is_resize_needed
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+  get_new_size
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size, 
+    <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_used_e) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries what the new <span class=
+          "c1"><tt>size</tt></span> should be, when the container
+          is resized naturally. The current size of the container
+          is <span class="c1"><tt>size</tt></span>, and the number
+          of used entries within the container is <span class=
+          "c1"><tt>num_used_e</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link17" id="link17">Private Methods</a></h2>
+
+    <h3><a name="link18" id="link18">Overrides</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <b>void</b>
+  do_resize
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Resizes to <span class=
+          "c1"><tt>new_size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html
new file mode 100644
index 000000000000..fafa245a93f8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_text_find_find_timing_test.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Text Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Text <tt>find</tt> Find Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    a container, then performs a series of finds using
+    <tt>find</tt> . It measures the average time for <tt>find</tt>
+    as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/text_find_timing.cc"><tt>text_find_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different range-hashing
+    functions, trigger policies, and cache-hashing policies (see
+    <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Associative Containers::Hash-Based Containers::Hash
+    Policies</a> and <a href="hash_based_containers.html#resize_policies">Design::Associative
+    Containers::Hash-Based Containers::Resize Policies</a> ).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NCCG">NCCG</a>, <a href="#NCCM">NCCM</a>
+    and <a href="#NCCL">NCCL</a> show the results for the native
+    and collision-chaining types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respetively.</p>
+<div id="NCCG_res_div">
+<div id="NCCG_gcc">
+<div id="NCCG_text_find_timing_test_hash">
+<div id="NCCG_assoc">
+<div id="NCCG_Native_and_collision-chaining_hash_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCG" id="NCCG"><img src="text_find_timing_test_hash_gcc.png" alt="no image" /></a></h6>NCCG: Native and collision-chaining hash text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCM_res_div">
+<div id="NCCM_msvc">
+<div id="NCCM_text_find_timing_test_hash">
+<div id="NCCM_assoc">
+<div id="NCCM_Native_and_collision-chaining_hash_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCM" id="NCCM"><img src="text_find_timing_test_hash_msvc.png" alt="no image" /></a></h6>NCCM: Native and collision-chaining hash text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NCCL_res_div">
+<div id="NCCL_local">
+<div id="NCCL_text_find_timing_test_hash">
+<div id="NCCL_assoc">
+<div id="NCCL_Native_and_collision-chaining_hash_text_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NCCL" id= "NCCL"><img src="text_find_timing_test_hash_local.png" alt="no image" /></a></h6>NCCL: Native and collision-chaining hash text find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, the range-hashing scheme (See <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Hash-Based Containers::Hash Policies</a> ) affects
+    performance more than other policies. As Figure <a href="#NCCG">NCCG</a> shows, containers using mod-based
+    range-hashing (including the native hash-based container, which
+    is currently hard-wired to this scheme) have lower performance
+    than those using mask-based range-hashing. A modulo-based
+    range-hashing scheme's main benefit is that it takes into
+    account all hash-value bits. Standard string hash-functions are
+    designed to create hash values that are nearly-uniform as is [
+    <a href="references.html#knuth98sorting">knuth98sorting</a>
+    ].</p>
+<p>Trigger policies (see <a href="hash_based_containers.html#resize_policies">Design::Associative
+    Containers::Hash-Based Containers::Resize Policies</a> ),
+    <i>i.e.</i> the load-checks constants, affect performance to a
+    lesser extent.</p>
+<p>Perhaps surprisingly, storing the hash value alongside each
+    entry affects performance only marginally, at least in
+    <tt>pb_ds</tt> 's implementation. (Unfortunately, it was not
+    possible to run the tests with <tt>std::tr1::unordered_map</tt>
+    's <tt>cache_hash_code = <b>true</b></tt> , as it appeared to
+    malfuntion.)</p>
+<p><a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+    Containers' Policies</a> summarizes some observations on
+    hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html
new file mode 100644
index 000000000000..f7156b1b7a65
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_find_timing_test.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash Skewed Distribution Memory Use Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Hash-Based Skewed-Distribution Random-Integer <tt>find</tt>
+    Find Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with a markedly
+    non-uniform i.i.d. integer keys into a container, then performs
+    a series of finds using <tt>find</tt> . It measures the average
+    time for <tt>find</tt> as a function of the number of values in
+    the containers. The keys are generated as follows. First, a
+    uniform integer is created; it is then shifted left 8 bits.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc"><tt>hash_zlob_random_int_find_timing_test</tt></a>
+    200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different range-hashing
+    functions and trigger policies (see <a href="hash_based_containers.html#hash_policies">Design::Associative
+    Containers::Hash-Based Containers::Hash Policies</a> and
+    <a href="hash_based_containers.html#resize_policies">Design::Associative
+    Containers::Hash-Based Containers::Resize Policies</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NHG">NHG</a>, <a href="#NHM">NHM</a>, and
+    <a href="#NHL">NHL</a> show the results for various hash-based
+    associative-containers in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>MSVC++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_hash_zlob_random_int_find_timing_test">
+<div id="NHG_assoc">
+<div id="NHG_Skewed-distribution_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="hash_zlob_random_int_find_timing_test_gcc.png" alt="no image" /></a></h6>NHG: Skewed-distribution random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+n_hash_map_ncah-
+<tt>std::tr1::unordered_map</tt> with <tt>cache_hash_code</tt> = <tt><b>false</b></tt></li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_hash_zlob_random_int_find_timing_test">
+<div id="NHM_assoc">
+<div id="NHM_Skewed-distribution_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="hash_zlob_random_int_find_timing_test_msvc.png" alt="no image" /></a></h6>NHM: Skewed-distribution random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_map_ncah-
+<tt>stdext::hash_map</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+<li>
+gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map-
+<a href="gp_hash_table.html"><tt>gp_hash_table</tt></a>
+ with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, and <tt>Probe_Fn</tt> = <a href="quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>
+</li>
+<li>
+cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/1</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_hash_zlob_random_int_find_timing_test">
+<div id="NHL_assoc">
+<div id="NHL_Skewed-distribution_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="hash_zlob_random_int_find_timing_test_local.png" alt="no image" /></a></h6>NHL: Skewed-distribution random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this setting, the keys' distribution is so skewed that
+    the unerlying hash-table type affects performance marginally.
+    (This is in contrast with <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+    <tt>find</tt> Find Timing Test</a> , <a href="hash_random_int_find_find_timing_test.html">Hash-Based
+    Random-Integer <tt>find</tt> Find Timing Test</a> , <a href="hash_random_int_subscript_find_timing_test.html">Hash-Based
+    Random-Integer Subscript Find Timing Test</a> and <a href="hash_random_int_subscript_insert_timing_test.html">Hash-Based
+    Random-Integer Subscript Insert Timing Test</a> .)</p>
+<p>The range-hashing scheme affects performance dramatically. A
+    mask-based range-hashing scheme effectively maps all values
+    into the same bucket. Access degenerates into a search within
+    an unordered linked-list. In Figures <a href="#NHG">NHG</a> and
+    <a href="#NHM">NHM</a> , it should be noted that
+    <tt>std::tr1::unordered_map</tt> and <tt>stdext::hash_map</tt>
+    are hard-wired currently to mod-based and mask-based schemes,
+    respectively.</p>
+<p>When observing the settings of this test, it is apparent
+    that the keys' distribution is far from natural. One might ask
+    if the test is not contrived to show that, in some cases,
+    mod-based range hashing does better than mask-based range
+    hashing. This is, in fact just the case. We did not encounter a
+    more natural case in which mod-based range hashing is better.
+    In our opnion, real-life key distributions are handled better
+    with an appropriate hash function and a mask-based
+    range-hashing function. (<a href="../../../../testsuite/ext/pb_ds/example/hash_shift_mask.cc"><tt>shift_mask.cc</tt></a>
+    shows an example of handling this a-priori known skewed
+    distribution with a mask-based range-hashing function). If hash
+    performance is bad, a <i>&Chi;<sup>2</sup></i> test can be used
+    to check how to transform it into a more uniform
+    distribution.</p>
+<p>For this reason, <tt>pb_ds</tt>'s default range-hashing
+    function is mask-based.</p>
+<p><a href="assoc_performance_tests.html#hash_based_types">Observations::Hash-Based
+    Container Types</a> summarizes some observations on hash-based
+    containers; <a href="assoc_performance_tests.html#hash_based_policies">Observations::Hash-Based
+    Containers' Policies</a> summarizes some observations on
+    hash-based containers' policies.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..8d170db1a2aede74640d042caba4082ba914b545
GIT binary patch
literal 6910
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
a1C}!wqQ?>QO(n)Z2gU}b`mgnF;r|V`r1JIv

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..0be2f00fa63e49b970f46ac8a2c4e0e99cb917b9
GIT binary patch
literal 8436
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
N)>P9~EmN_H_+Ju)0G$8;

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/hash_zlob_random_int_find_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..874e7a780e66b2e2765c51cdb856daf45bf504c6
GIT binary patch
literal 7204
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/index.html b/libstdc++-v3/docs/html/ext/pb_ds/index.html
new file mode 100644
index 000000000000..9288544d04c2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/index.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Policy-Based Data Structures</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Policy-Based Data Structures</h1>
+
+    <h5>Ami Tavory and Vladimir Dreizin, IBM Haifa Research
+    Laboratories, and Benjamin Kosnik, Red Hat</h5>
+
+    <h5><a href="mailto:pbassoc@gmail.com">pbassoc@gmail.com</a></h5>
+
+    <p>This is a library of policy-based elementary
+    data structures: associative containers and priority queues. It
+    is designed for high-performance, flexibility, semantic safety,
+    and conformance to the corresponding containers in <tt>std</tt>
+    and std::tr1 (except for some points where it differs by
+    design).</p>
+
+    <p>The documentation is organized as follows:</p>
+
+    <ol>
+      <li>
+        <a href="introduction.html">Introductory</a>
+
+        <ol>
+          <li><a href="introduction.html">Introduction</a></li>
+
+          <li><a href="motivation.html">Motivation</a></li>
+
+          <li><a href="prerequisites.html">Usage
+          Prerequisites</a></li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="interface.html">Interface</a>
+
+        <ol>
+          <li><a href="tutorial.html">Short Tutorial</a></li>
+
+          <li><a href="concepts.html">Concepts</a></li>
+
+          <li><a href="interface.html">Specifics</a</li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="design.html">Design</a>
+
+        <ol>
+          <li>
+            <a href="assoc_design.html">Associative Containers</a>
+
+            <ol>
+              <li><a href="ds_gen.html">Data-Structure
+              Genericity and Interface</a> </li>
+
+              <li><a href="tree_based_containers.html">Tree-Based
+              Containers</a></li>
+
+              <li><a href="trie_based_containers.html">Trie-Based
+              Containers</a></li>
+
+              <li><a href="hash_based_containers.html">Hash-Based
+              Containers</a></li>
+
+              <li><a href="lu_based_containers.html">List-Based
+              Containers</a> </li>
+            </ol>
+          </li>
+
+          <li><a href="pq_design.html">Priority Queues</a></li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="examples.html">Examples</a>
+
+        <ol>
+          <li><a href="assoc_examples.html">Associative
+          Containers</a></li>
+
+          <li><a href="pq_examples.html">Priority Queues</a></li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="tests.html">Tests</a>
+
+        <ol>
+          <li>
+            <a href="assoc_tests.html">Associative Containers</a>
+
+            <ol>
+              <li><a href="assoc_regression_tests.html">Regression
+              Tests</a></li>
+
+              <li><a href=
+              "assoc_performance_tests.html">Performance
+              Tests</a></li>
+            </ol>
+          </li>
+
+          <li>
+            <a href="pq_tests.html">Priority Queues</a>
+
+            <ol>
+              <li><a href="pq_regression_tests.html">Regression
+              Tests</a></li>
+
+              <li><a href="pq_performance_tests.html">Performance
+              Tests</a></li>
+            </ol>
+          </li>
+        </ol>
+      </li>
+
+      <li>
+        <a href="misc.html">Misc.</a>
+
+        <ol>
+          <li><a href="acks.html">Acknowledgments</a></li>
+
+          <li><a href="contact.html">Contact</a></li>
+
+          <li><a href="disclaimer.html">Disclaimer and
+          Copyright</a></li>
+
+          <li><a href="references.html">References</a></li>
+        </ol>
+      </li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_error.html b/libstdc++-v3/docs/html/ext/pb_ds/insert_error.html
new file mode 100644
index 000000000000..f67160fe582e
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/insert_error.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>insert_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>insert_error</tt> Interface</h1>
+
+<p>An entry cannot be inserted into a container object for logical
+reasons (not, e.g., if memory is unavailable, in which case the
+allocator's exception will be thrown).</p>
+
+    <p>This exception may be thrown, e.g., when a probe sequence in
+    a probing hash table does not encounter any free positions,
+    even though free positions are available.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="exceptions.html"><span class=
+"c2"><tt>insert_error</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram1.png
new file mode 100644
index 0000000000000000000000000000000000000000..f64764ec931c93f57928adaf846bf83ea509894f
GIT binary patch
literal 25834
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
NuE6EN0p-i2$}i1_eDweT

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram2.png
new file mode 100644
index 0000000000000000000000000000000000000000..e4645973eeb1faa7957ddf93353a35f3d6da2ca9
GIT binary patch
literal 25522
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png b/libstdc++-v3/docs/html/ext/pb_ds/insert_resize_sequence_diagram3.png
new file mode 100644
index 0000000000000000000000000000000000000000..5535c5fe6038661f5ca70d56269822e83b04457d
GIT binary patch
literal 24542
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
Dx$?qM

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/interface.html b/libstdc++-v3/docs/html/ext/pb_ds/interface.html
new file mode 100644
index 000000000000..a48a8bbadde8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/interface.html
@@ -0,0 +1,446 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1>Interface Specifics</h1>
+
+<p>Following are the library's interface specifics. <a href=
+    "tutorial.html">Short Tutorial</a> is a short tutorial, and
+    <a href="concepts.html">Concepts</a> describes some
+    concepts.</p>
+    <hr />
+
+    <h2><a name="namespaces" id="namespaces">Namespace</a></h2>
+
+    <p>All code is enclosed in namespace <tt>pb_ds</tt>. Nested within
+    this is namespace <tt>detail</tt>, which contains the parts of this
+    library that are considered implementation details.</p>
+    <hr />
+
+    <h2><a name="containers" id="containers">Containers</a></h2>
+
+    <h3><a name="containers_assoc" id=
+    "containers_assoc">Associative Containers</a></h3>
+
+    <ol>
+      <li><a href=
+      "container_base.html"><tt>container_base</tt></a> -
+      abstract base class for associative containers.</li>
+
+      <li>Hash-based:
+
+        <ol>
+          <li><a href=
+          "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+          - abstract base class for hash-based
+          containers</li>
+
+          <li><a href=
+          "cc_hash_table.html"><tt>cc_hash_table</tt></a>
+          - concrete collision-chaining hash-based
+          containers</li>
+
+          <li><a href=
+          "gp_hash_table.html"><tt>gp_hash_table</tt></a>
+          - concrete (general) probing hash-based
+          containers</li>
+        </ol>
+      </li>
+
+      <li>Tree-based:
+
+        <ol>
+          <li><a href=
+          "basic_tree.html"><tt>basic_tree</tt></a>
+          - abstract base class for tree and trie based
+          containers</li>
+
+          <li><a href=
+          "tree.html"><tt>tree</tt></a>
+          - concrete base class for tree-based
+          containers</li>
+
+          <li><a href=
+          "trie.html"><tt>trie</tt></a>
+          - concrete base class for trie-based
+          containers</li>
+        </ol>
+      </li>
+
+      <li>List-based:
+
+        <ol>
+          <li><a href=
+          "list_update.html"><tt>list_update</tt></a> -
+          singly-linked list with update-policy container</li>
+        </ol>
+      </li>
+    </ol>
+
+    <h3><a name="containers_pq" id="containers_pq">Priority
+    Queues</a></h3>
+
+    <ol>
+      <li><a href="priority_queue.html"><tt>priority_queue</tt></a>
+      - priority queue</li>
+    </ol>
+    <hr />
+
+    <h2><a name="tag" id="tag">Container Tags and
+    Traits</a></h2>
+
+    <h3><a name="ds_ts" id="ds_ts">Container Tags</a></h3>
+
+    <h4><a name="ds_ts_common" id="ds_ts_common">Common</a></h4>
+
+    <ol>
+      <li><a href="container_tag.html"><tt>container_tag</tt></a> -
+      base class for data structure tags</li>
+    </ol>
+
+    <h4><a name="ds_ts_assoc" id=
+    "ds_ts_assoc">Associative-Containers</a></h4>
+
+     <ol>
+      <li><a href=
+      "associative_container_tag.html"><tt>associative_container_tag</tt></a> -
+      base class for associative-container data structure tags</li>
+
+      <li><a href=
+      "basic_hash_tag.html"><tt>basic_hash_tag</tt></a> -
+      base class for hash-based structure tags</li>
+
+      <li><a href="cc_hash_tag.html"><tt>cc_hash_tag</tt></a>
+      - collision-chaining hash structure tag</li>
+
+      <li><a href="gp_hash_tag.html"><tt>gp_hash_tag</tt></a>
+      - (general) probing hash structure tag</li>
+
+      <li><a href=
+      "basic_tree_tag.html"><tt>basic_tree_tag</tt></a>
+      - base class for tree-like structure tags</li>
+
+      <li><a href=
+      "tree_tag.html"><tt>tree_tag</tt></a> -
+      base class for tree structure tags</li>
+
+      <li><a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+      - red-black tree structure tag/li&gt;</li>
+
+      <li><a href=
+      "splay_tree_tag.html"><tt>splay_tree_tag</tt></a> -
+      splay tree structure tag</li>
+
+      <li><a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+      - ordered-vector tree structure tag</li>
+
+      <li><a href=
+      "trie_tag.html"><tt>trie_tag</tt></a> -
+      trie structure tag</li>
+
+      <li><a href=
+      "pat_trie_tag.html"><tt>pat_trie_tag</tt></a> -
+      PATRICIA trie structure tag</li>
+
+      <li><a href="list_update_tag.html"><tt>list_update_tag</tt></a> - list
+      (with updates) structure tag</li>
+    </ol>
+
+    <h4><a name="ds_ts_pq" id="ds_ts_pq">Priority-Queues</a></h4>
+
+     <ol>
+      <li><a href=
+      "priority_queue_tag.html"><tt>priority_queue_tag</tt></a> - base
+      class for priority-queue data structure tags</li>
+
+      <li><a href=
+      "pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a> -
+      pairing-heap structure tag.</li>
+
+      <li><a href=
+      "binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+      - binomial-heap structure tag</li>
+
+      <li><a href=
+      "rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+      - redundant-counter binomial-heap (<i>i.e.</i>, a heap where
+      binomial trees form a sequence that is similar to a
+      de-amortized bit-addition algorithm) structure tag</li>
+
+      <li><a href=
+      "binary_heap_tag.html"><tt>binary_heap_tag</tt></a> -
+      binary heap (based on an array or an array of nodes)
+      structure tag</li>
+
+      <li><a href=
+      "thin_heap_tag.html"><tt>thin_heap_tag</tt></a> - thin
+      heap (an alternative [<a href=
+      "references.html#kt99fat_heaps">kt99fat_heaps</a>] to
+      Fibonacci heap) data structure tag.</li>
+    </ol>
+
+    <h3><a name="ds_inv_tag" id="ds_inv_tag">Invalidation-Guarantee
+    Tags</a></h3>
+
+    <ol>
+      <li><a href=
+      "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a>
+      - weakest invalidation guarantee</li>
+
+      <li><a href=
+      "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>
+      - stronger invalidation guarantee</li>
+
+      <li><a href=
+      "range_invalidation_guarantee.html"><tt>range_invalidation_guarantee</tt></a>
+      - strongest invalidation guarantee</li>
+    </ol>
+
+    <h3><a name="container_traits" id="container_traits">Container
+    Traits</a></h3>
+
+    <ol>
+      <li><a href="pq_container_traits.html"><tt>container_traits</tt></a> -
+      traits for determining underlying data structure 
+      properties</li>
+    </ol>
+    <hr />
+
+    <h2><a name="ds_policy_classes" id=
+    "ds_policy_classes">Container Policy Classes</a></h2>
+
+    <h3><a name="hash_related_policies" id=
+    "hash_related_policies">Hash Policies</a></h3>
+
+    <h4>Hash and Probe Policies</h4>
+
+    <ol>
+      <li>Hash Functions:
+
+        <ol>
+          <li><a href="null_hash_fn.html"><tt>null_hash_fn</tt></a>
+          - type indicating one-step range-hashing</li>
+        </ol>
+      </li>
+
+      <li>Range-Hashing Functions:
+
+        <ol>
+          <li><a href="sample_range_hashing.html">Sample
+          range-hashing function</a> - interface required of a
+          range-hashing functor</li>
+
+          <li><a href=
+          "direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+          - (bit) mask-based range hashing functor</li>
+
+          <li><a href=
+          "direct_mod_range_hashing.html"><tt>direct_mod_range_hashing</tt></a>
+          - modulo-based range hashing functor</li>
+        </ol>
+      </li>
+
+      <li>Probe Functions:
+
+        <ol>
+          <li><a href="sample_probe_fn.html">Sample probe
+          function</a> - interface required of a probe functor</li>
+
+          <li><a href=
+          "null_probe_fn.html"><tt>null_probe_fn</tt></a> - type
+          indicating one-step ranged-probe</li>
+
+          <li><a href=
+          "linear_probe_fn.html"><tt>linear_probe_fn</tt></a> -
+          linear-probe functor</li>
+
+          <li><a href=
+          "quadratic_probe_fn.html"><tt>quadratic_probe_fn</tt></a>-
+          quadratic-probe functor</li>
+        </ol>
+      </li>
+
+      <li>Ranged-Hash Functions:
+
+        <ol>
+          <li><a href="sample_ranged_hash_fn.html">Sample
+          ranged-hash function</a> - interface required of a
+          ranged-hash functor</li>
+        </ol>
+      </li>
+
+      <li>Ranged-Probe Functions:
+
+        <ol>
+          <li><a href="sample_ranged_probe_fn.html">Sample
+          ranged-probe function</a> - interface required of a
+          ranged-probe functor</li>
+        </ol>
+      </li>
+    </ol>
+
+    <h4>Resize Policies</h4>
+    <ol>
+      <li>Resize Policies:
+
+        <ol>
+          <li><a href="sample_resize_policy.html">Sample resize
+          policy</a> - interface required of a resize policy</li>
+
+          <li><a href=
+          "hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+          - standard resize policy</li>
+        </ol>
+      </li>
+
+      <li>Size Policies:
+
+        <ol>
+          <li><a href="sample_size_policy.html">Sample size
+          policy</a> - interface required of a size policy</li>
+
+          <li><a href=
+          "hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+          - exponential size policy (typically used with (bit) mask
+          range-hashing)</li>
+
+          <li><a href=
+          "hash_prime_size_policy.html"><tt>hash_prime_size_policy</tt></a>
+          - prime size policy (typically used with modulo
+          range-hashing)</li>
+        </ol>
+      </li>
+
+      <li>Trigger Policies:
+
+        <ol>
+          <li><a href="sample_resize_trigger.html">Sample trigger
+          policy</a> - interface required of a trigger policy</li>
+
+          <li><a href=
+          "hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+          - trigger policy based on load checks</li>
+
+          <li><a href=
+          "cc_hash_max_collision_check_resize_trigger.html"><tt>cc_hash_max_collision_check_resize_trigger</tt></a>
+          - trigger policy based on collision checks</li>
+        </ol>
+      </li>
+    </ol>
+
+    <h3><a name="tree_related_policies" id=
+    "tree_related_policies">Tree Policies</a></h3>
+
+    <h4>Tree Node-Update Policies</h4>
+
+
+<ol>
+<li><a href="sample_tree_node_update.html">Sample node
+updater policy</a> - interface required of a tree
+node-updating functor</li>
+
+<li><a href=
+     "null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+- null policy indicating no updates are required</li>
+
+<li><a href=
+     "tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+- updater enabling order statistics queries</li>
+</ol>
+
+<h3><a name="trie_related_policies" id=
+     "trie_related_policies">Trie Policies</a></h3>
+
+
+<h4>Trie Element-Access Traits</h4>
+
+    <ol>
+      <li><a href="sample_trie_e_access_traits.html">Sample
+      element-access traits</a> - interface required of
+      element-access traits</li>
+
+      <li><a href=
+      "string_trie_e_access_traits.html"><tt>string_trie_e_access_traits</tt></a>
+      - String element-access traits</li>
+    </ol>
+
+    <h4>Trie Node-Update Policies</h4>
+
+
+<ol>
+<li><a href="sample_trie_node_update.html">Sample node
+updater policy</a> - interface required of a trie node
+updater</li>
+
+<li><a href=
+     "null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+- null policy indicating no updates are required</li>
+
+<li><a href=
+     "trie_prefix_search_node_update.html"><tt>trie_prefix_search_node_update</tt></a>
+- updater enabling prefix searches</li>
+
+<li><a href=
+     "trie_order_statistics_node_update.html"><tt>trie_order_statistics_node_update</tt></a>
+- updater enabling order statistics queries</li>
+</ol>
+
+<h3><a name="list_related_policies" id=
+     "list_related_policies">List Policies</a></h3>
+
+<h4>List Update Policies</h4>
+
+
+    <ol>
+      <li><a href="sample_update_policy.html">Sample list update
+      policy</a> - interface required of a list update policy</li>
+
+      <li><a href=
+      "move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+      - move-to-front update algorithm</li>
+
+      <li><a href=
+      "counter_lu_policy.html"><tt>counter_lu_policy</tt></a> -
+      counter update algorithm</li>
+    </ol>
+
+    <h3><a name="ds_pol" id="ds_pol">Mapped-Type Policies</a></h3>
+
+
+    <ol>
+      <li><a href=
+      "null_mapped_type.html"><tt>null_mapped_type</tt></a> - data
+      policy indicating that a container is a "set"</li>
+    </ol>
+    <hr />
+
+    <h2><a name="exceptions" id="exceptions">Exceptions</a></h2>
+
+
+    <ol>
+      <li><a href="exceptions.html"><tt>container_error</tt></a>
+      - base class for all policy-based data structure errors</li>
+
+      <li><a href=
+      "insert_error.html"><tt>insert_error</tt></a></li>
+
+      <li><a href="join_error.html"><tt>join_error</tt></a></li>
+
+      <li><a href=
+      "resize_error.html"><tt>resize_error</tt></a></li>
+    </ol>
+
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/introduction.html b/libstdc++-v3/docs/html/ext/pb_ds/introduction.html
new file mode 100644
index 000000000000..b3ccbd76aee4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/introduction.html
@@ -0,0 +1,120 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Introduction</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Introduction</h1>
+
+    <p>This section describes what problems the library attempts to
+    solve. <a href="motivation.html">Motivation</a> describes the
+    reasons we think it solves these problems better than similar
+    libraries.</p>
+
+    <h2><a name="assoc" id="assoc">Associative Containers</a></h2>
+
+    <ol>
+      <li>Associative containers depend on their policies to a very
+      large extent. Implicitly hard-wiring policies can hamper their
+      performance and limit their functionality. An efficient
+      hash-based container, for example, requires policies for
+      testing key equivalence, hashing keys, translating hash
+      values into positions within the hash table, and determining
+      when and how to resize the table internally. A tree-based
+      container can efficiently support order statistics,
+      <i>i.e.</i>, the ability to query what is the order of each
+      key within the sequence of keys in the container, but only if
+      the container is supplied with a policy to internally update
+      meta-data. There are many other such examples.<p></p></li>
+
+      <li>Ideally, all associative containers would share the same
+      interface. Unfortunately, underlying data structures and
+      mapping semantics differentiate between different containers.
+      For example, suppose one writes a generic function
+      manipulating an associative container <tt>Cntnr</tt>:
+        <pre>
+template&lt;typename Cntnr&gt;
+  void
+  some_op_sequence(Cntnr&amp; r_cnt)
+  {
+    ...
+  }
+</pre>
+
+then what can one assume about <tt>Cntnr</tt>? The answer
+varies according to its underlying data structure. If the
+underlying data structure of <tt>Cntnr</tt> is based on a tree or
+trie, then the order of elements is well defined; otherwise, it is
+not, in general. If the underlying data structure of <tt>Cntnr</tt>
+is based on a collision-chaining hash table, then modifying
+r_<tt>Cntnr</tt> will not invalidate its iterators' order; if the
+underlying data structure is a probing hash table, then this is not
+the case. If the underlying data structure is based on a tree or
+trie, then <tt>r_cnt</tt> can efficiently be split; otherwise, it
+cannot, in general. If the underlying data structure is a red-black
+tree, then splitting <tt>r_cnt</tt> is exception-free; if it is an
+ordered-vector tree, exceptions can be thrown.
+      <p></p></li>
+    </ol>
+
+    <h2><a name="pq" id="pq">Priority Queues</a></h2>
+
+    <p>Priority queues are useful when one needs to efficiently
+    access a minimum (or maximum) value as the set of values
+    changes.</p>
+
+    <ol>
+      <li>Most useful data structures for priority queues have a
+      relatively simple structure, as they are geared toward
+      relatively simple requirements. Unfortunately, these structures
+      do not support access to an arbitrary value, which turns out to
+      be necessary in many algorithms. Say, decreasing an arbitrary
+      value in a graph algorithm. Therefore, some extra mechanism is
+      necessary and must be invented for accessing arbitrary
+      values. There are at least two alternatives: embedding an
+      associative container in a priority queue, or allowing
+      cross-referencing through iterators. The first solution adds
+      significant overhead; the second solution requires a precise
+      definition of iterator invalidation. Which is the next
+      point...<p></p></li>
+
+      <li>Priority queues, like hash-based containers, store values in
+      an order that is meaningless and undefined externally.  For
+      example, a <tt>push</tt> operation can internally reorganize the
+      values. Because of this characteristic, describing a priority
+      queues' iterator is difficult: on one hand, the values to which
+      iterators point can remain valid, but on the other, the logical
+      order of iterators can change unpredictably.<p></p></li>
+
+      <li>Roughly speaking, any element that is both inserted to a
+      priority queue (<i>e.g.</i>, through <tt>push</tt>) and removed
+      from it (<i>e.g.</i>, through <tt>pop</tt>), incurs a
+      logarithmic overhead (in the amortized sense). Different
+      underlying data structures place the actual cost differently:
+      some are optimized for amortized complexity, whereas others
+      guarantee that specific operations only have a constant
+      cost. One underlying data structure might be chosen if modifying
+      a value is frequent (Dijkstra's shortest-path algorithm),
+      whereas a different one might be chosen
+      otherwise. Unfortunately, an array-based binary heap - an
+      underlying data structure that optimizes (in the amortized
+      sense) <tt>push</tt> and <tt>pop</tt> operations, differs from
+      the others in terms of its invalidation guarantees. Other design
+      decisions also impact the cost and placement of the overhead, at
+      the expense of more difference in the the kinds of operations
+      that the underlying data structure can support. These
+      differences pose a challenge when creating a uniform interface
+      for priority queues.<p></p></li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f9d1243c6a3f44738f275d382f3db7fa6348a67
GIT binary patch
literal 8331
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
Mo;+Hh?Rfov0Tqgph5!Hn

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_erase.png b/libstdc++-v3/docs/html/ext/pb_ds/invalidation_guarantee_erase.png
new file mode 100644
index 0000000000000000000000000000000000000000..940a27f714200282776652f8273f29af49f11a4d
GIT binary patch
literal 25884
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
HO4R=Vq3LT{

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/join_error.html b/libstdc++-v3/docs/html/ext/pb_ds/join_error.html
new file mode 100644
index 000000000000..3441e1fb20ba
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/join_error.html
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>join_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>join_error</tt> Interface</h1>
+
+<p>A join cannot be performed logical reasons (i.e., the ranges of the
+					       two container objects
+					       being joined
+					       overlaps.</p>
+
+					       <p>Defined in: <a href=
+					       "../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+					       <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+					       <table class="c1" width="100%" border="1" summary="Bases">
+					       <tr>
+					       <td width="80%" align="left"><b>Class</b></td>
+
+					       <td width="20%" align="left"><b>Derivation Type</b></td>
+					       </tr>
+
+					       <tr>
+					       <td>
+<pre><a href="exceptions.html"><span class="c2"><tt>join_error</tt></span></a>
+</pre>
+ </td>
+
+<td>
+<p>public</p>
+</td>
+</tr>
+					       </table>
+					       </div>
+					       </body>
+					       </html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html
new file mode 100644
index 000000000000..2141c2657cef
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/linear_probe_fn.html
@@ -0,0 +1,140 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>linear_probe_fn Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>linear_probe_fn</tt> Interface</h1>
+
+    <p>A probe sequence policy using fixed increments.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class="c2"><tt>linear_probe_fn</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Offset Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  <b>operator</b>()
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <span class="c1"><tt>i</tt></span>-th
+          offset from the hash value.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/list_update.html b/libstdc++-v3/docs/html/ext/pb_ds/list_update.html
new file mode 100644
index 000000000000..93785acfd9ce
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/list_update.html
@@ -0,0 +1,316 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>list_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>list_update</tt> Interface</h1>
+
+    <p>A list-update based associative container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Eq_Fn60085" id="Eq_Fn60085"><b>class</b> Eq_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor.</p>
+        </td>
+
+        <td>
+          <pre>
+std::equal_to&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Update_Policy1671938590" id=
+"Update_Policy1671938590"><b>class</b> Update_Policy </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Update policy (determines when an element will be
+          moved to the front of the list.</p>
+        </td>
+
+        <td><a href="move_to_front_lu_policy.html"><span class=
+        "c2"><tt>move_to_front_lu_policy</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="container_base.html"><span class=
+"c2"><tt>container_base</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">Policy definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="eq_fn80245" id="eq_fn80245">eq_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Eq_Fn60085"><tt>Eq_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Equivalence functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="update_policy894603998" id=
+"update_policy894603998">update_policy</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Update_Policy1671938590"><tt>Update_Policy</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>List update policy type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  list_update
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  list_update
+  (It first_it, 
+    It last_it)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of
+          value_types. The value_types between <span class=
+          "c1"><tt>first_it</tt></span> and <span class=
+          "c1"><tt>last_it</tt></span> will be inserted into the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  list_update
+  (<b>const</b> <span class=
+"c2"><tt>list_update</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~list_update
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>list_update</tt></span> &amp;
+  <b>operator</b>=
+  (<b>const</b> <span class=
+"c2"><tt>list_update</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Assignment operator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class="c2"><tt>list_update</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html
new file mode 100644
index 000000000000..a35dc8cdab83
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/list_update_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>list_update_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>list_update_tag</tt> Interface</h1>
+
+    <p>List-update data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="associative_container_tag.html"><span class=
+"c2"><tt>associative_container_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/lu.png b/libstdc++-v3/docs/html/ext/pb_ds/lu.png
new file mode 100644
index 0000000000000000000000000000000000000000..7c96dcaf665e3a68487de5480dfc8875080cd8df
GIT binary patch
literal 20987
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
A4FCWD

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html
new file mode 100644
index 000000000000..c8693437d9e3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/lu_based_containers.html
@@ -0,0 +1,229 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>List-Based Containers</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>List-Update Design</h1>
+
+    <h2><a name="overview" id="overview">Overview</a></h2>
+
+    <p>The list-based container has the following declaration:</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    <b>typename</b> Eq_Fn = std::equal_to&lt;Key&gt;,
+    <b>typename</b> Update_Policy = <a href=
+"move_to_front_lu_policy.html">move_to_front_lu_policy&lt;&gt;</a>,
+    <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href="list_update.html">list_update</a>;
+</pre>
+
+    <p>The parameters have the following meaning:</p>
+
+    <ol>
+      <li><tt>Key</tt> is the key type.</li>
+
+      <li><tt>Mapped</tt> is the mapped-policy, and is explained in
+      <a href="tutorial.html#assoc_ms">Tutorial::Associative
+      Containers::Associative Containers Others than Maps</a>.</li>
+
+      <li><tt>Eq_Fn</tt> is a key equivalence functor.</li>
+
+      <li><tt>Update_Policy</tt> is a policy updating positions in
+      the list based on access patterns. It is described in the
+      following subsection.</li>
+
+      <li><tt>Allocator</tt> is an allocator
+      type.</li>
+    </ol>
+
+    <p>A list-based associative container is a container that
+    stores elements in a linked-list. It does not order the
+    elements by any particular order related to the keys.
+    List-based containers are primarily useful for creating
+    "multimaps" (see <a href=
+    "motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Avoiding Multiple Keys</a> and <a href=
+    "tutorial.html#assoc_ms">Tutorial::Associative
+    Containers::Associative Containers Others than Maps</a>). In
+    fact, list-based containers are designed in <tt>pb_ds</tt>
+    expressly for this purpose. This is explained further in
+    <a href="#mmaps">Use for "Multimaps"</a>.</p>
+
+    <p>List-based containers might also be useful for some rare
+    cases, where a key is encapsulated to the extent that only
+    key-equivalence can be tested. Hash-based containers need to
+    know how to transform a key into a size type, and tree-based
+    containers need to know if some key is larger than another.
+    List-based associative containers, conversely, only need to
+    know if two keys are equivalent.</p>
+
+    <p>Since a list-based associative container does not order
+    elements by keys, is it possible to order the list in some
+    useful manner? Remarkably, many on-line competitive [<a href=
+    "references.html#motwani95random">motwani95random</a>]
+    algorithms exist for reordering lists to reflect access
+    prediction [<a href=
+    "references.html#andrew04mtf">andrew04mtf</a>].</p>
+
+    <h2><a name="list_updates" id="list_updates">List
+    Updates</a></h2>
+
+    <h3><a name="general" id="general">General Terms</a></h3>
+
+    <p>Figure <a href="#simple_list">A simple list</a> shows a
+    simple list of integer keys. If we search for the integer 6, we
+    are paying an overhead: the link with key 6 is only the fifth
+    link; if it were the first link, it could be accessed
+    faster.</p>
+
+    <h6 class="c1"><a name="simple_list" id="simple_list"><img src=
+    "simple_list.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">A simple list.</h6>
+
+    <p>List-update algorithms reorder lists as elements are
+    accessed. They try to determine, by the access history, which
+    keys to move to the front of the list. Some of these algorithms
+    require adding some metadata alongside each entry.</p>
+
+    <p>For example, Figure <a href="#lu">The counter algorithm</a>
+    -A shows the counter algorithm. Each node contains both a key
+    and a count metadata (shown in bold). When an element is
+    accessed (<i>e.g.</i> 6) its count is incremented, as shown in
+    Figure <a href="#lu">The counter algorithm</a> -B. If the count
+    reaches some predetermined value, say 10, as shown in Figure
+    <a href="#lu">The counter algorithm</a> -C, the count is set to
+    0 and the node is moved to the front of the list, as in Figure
+    <a href="#lu">The counter algorithm</a> -D.</p>
+
+    <h6 class="c1"><a name="lu" id="lu"><img src="lu.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">The counter algorithm.</h6>
+
+    <h3><a name="imp_pb_ds" id="imp_pb_ds">Implementation</a></h3>
+
+    <p><tt>pb_ds</tt> allows instantiating lists with policies
+    implementing any algorithm moving nodes to the front of the
+    list (policies implementing algorithms interchanging nodes are
+    unsupported).</p>
+
+    <p>Associative containers based on lists are parametrized by a
+    <tt>Update_Policy</tt> parameter. This parameter defines the
+    type of metadata each node contains, how to create the
+    metadata, and how to decide, using this metadata, whether to
+    move a node to the front of the list. A list-based associative
+    container object derives (publicly) from its update policy.
+    Figure <a href="#update_policy_cd">A list and its update
+    policy</a> shows the scheme, as well as some predefined
+    policies (which are explained below).</p>
+
+    <h6 class="c1"><a name="update_policy_cd" id=
+    "update_policy_cd"><img src="update_policy_cd.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">A list and its update policy.</h6>
+
+    <p>An instantiation of <tt>Update_Policy</tt> must define
+    internally <tt>update_metadata</tt> as the metadata it
+    requires. Internally, each node of the list contains, besides
+    the usual key and data, an instance of <tt><b>typename</b>
+    Update_Policy::update_metadata</tt>.</p>
+
+    <p>An instantiation of <tt>Update_Policy</tt> must define
+    internally two operators:</p>
+    <pre>
+update_metadata
+<b>operator</b>()();
+
+<b>bool</b>
+<b>operator</b>()(update_metadata &amp;);
+</pre>
+
+    <p>The first is called by the container object, when creating a
+    new node, to create the node's metadata. The second is called
+    by the container object, when a node is accessed (<i>e.g.</i>,
+    when a find operation's key is equivalent to the key of the
+    node), to determine whether to move the node to the front of
+    the list.</p>
+
+    <p>The library contains two predefined implementations of
+    list-update policies [<a href=
+    "references.html#andrew04mtf">andrew04mtf</a>]. The first is
+    <a href=
+    "counter_lu_policy.html"><tt>counter_lu_policy</tt></a>, which
+    implements the counter algorithm described above. The second is
+    <a href=
+    "move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>,
+    which unconditionally move an accessed element to the front of
+    the list. The latter type is very useful in <tt>pb_ds</tt>,
+    since there is no need to associate metadata with each element
+    (this is explained further in <a href="#mmaps">Use for
+    "Multimaps"</a>).</p>
+
+    <h2><a name="mmaps" id="mmaps">Use for "Multimaps"</a></h2>
+
+    <p>In <tt>pb_ds</tt>, there are no equivalents for the STL's
+    multimaps and multisets; instead one uses an associative
+    container mapping primary keys to secondary keys (see <a href=
+    "motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a> and
+    <a href="tutorial.html#assoc_ms">Tutorial::Associative
+    Containers::Associative Containers Others than Maps</a>).</p>
+
+    <p>List-based containers are especially useful as associative
+    containers for secondary keys. In fact, they are implemented
+    here expressly for this purpose.</p>
+
+    <p>To begin with, these containers use very little per-entry
+    structure memory overhead, since they can be implemented as
+    singly-linked lists. (Arrays use even lower per-entry memory
+    overhead, but they are less flexible in moving around entries,
+    and have weaker invalidation guarantees).</p>
+
+    <p>More importantly, though, list-based containers use very
+    little per-container memory overhead. The memory overhead of an
+    empty list-based container is practically that of a pointer.
+    This is important for when they are used as secondary
+    associative-containers in situations where the average ratio of
+    secondary keys to primary keys is low (or even 1).</p>
+
+    <p>In order to reduce the per-container memory overhead as much
+    as possible, they are implemented as closely as possible to
+    singly-linked lists.</p>
+
+    <ol>
+      <li>List-based containers do not store internally the number
+      of values that they hold. This means that their <tt>size</tt>
+      method has linear complexity (just like <tt>std::list</tt>).
+      Note that finding the number of equivalent-key values in an
+      STL multimap also has linear complexity (because it must be
+      done, <i>e.g.</i>, via <tt>std::distance</tt> of the
+      multimap's <tt>equal_range</tt> method), but usually with
+      higher constants.</li>
+
+      <li>Most associative-container objects each hold a policy
+      object (<i>e.g.</i>, a hash-based container object holds a
+      hash functor). List-based containers, conversely, only have
+      class-wide policy objects.</li>
+    </ol>
+
+    <p>See also <a href=
+    "assoc_performance_tests.html#msc">Associative-Container
+    Performance Tests::Observations::Mapping-Semantics
+    Considerations</a>.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/misc.html b/libstdc++-v3/docs/html/ext/pb_ds/misc.html
new file mode 100644
index 000000000000..01029e13454b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/misc.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Misc.</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Misc.</h1>
+
+    <p><a href="acks.html" title="Acknowledgements">Acks</a>
+    contains acknowledgments; <a href="contact.html">Contact</a>
+    contains contact information;<a href=
+    "disclaimer.html">Disclaimer and Copyright</a> is a standard
+    disclaimer, and <a href="references.html">References</a>
+    contains references.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/motivation.html b/libstdc++-v3/docs/html/ext/pb_ds/motivation.html
new file mode 100644
index 000000000000..420fc6451031
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/motivation.html
@@ -0,0 +1,993 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Motivation</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Motivation</h1>
+
+    <p>Many fine associative-container libraries were already
+    written, most notably, the STL's associative containers. Why
+    then write another library? This section shows some possible
+    advantages of this library, when considering the challenges in
+    <a href="introduction.html">Introduction</a>. Many of these
+    points stem from the fact that the STL introduced
+    associative-containers in a two-step process (first
+    standardizing tree-based containers, only then adding
+    hash-based containers, which are fundamentally different), did
+    not standardize priority queues as containers, and (in our
+    opinion) overloads the iterator concept.</p>
+
+    <h2><a name="assoc" id="assoc">Associative Containers</a></h2>
+
+    <h3><a name="assoc_policies" id="assoc_policies">More
+    Configuration Choices</a></h3>
+
+    <p>Associative containers require a relatively large number of
+    policies to function efficiently in various settings. In some
+    cases this is needed for making their common operations more
+    efficient, and in other cases this allows them to support a
+    larger set of operations</p>
+
+    <ol>
+      <li>Hash-based containers, for example, support look-up and
+      insertion methods (<i>e.g.</i>, <tt>find</tt> and
+      <tt>insert</tt>). In order to locate elements quickly, they
+      are supplied a hash functor, which instruct how to transform
+      a key object into some size type; <i>e.g.</i>, a hash functor
+      might transform <tt>"hello"</tt> into <tt>1123002298</tt>. A
+      hash table, though, requires transforming each key object
+      into some size-type type in some specific domain;
+      <i>e.g.</i>, a hash table with a 128-long table might
+      transform <tt>"hello"</tt> into position 63. The policy by
+      which the hash value is transformed into a position within
+      the table can dramatically affect performance (see <a href=
+      "hash_based_containers.html#hash_policies">Design::Associative
+      Containers::Hash-Based Containers::Hash Policies</a>).
+      Hash-based containers also do not resize naturally (as
+      opposed to tree-based containers, for example). The
+      appropriate resize policy is unfortunately intertwined with
+      the policy that transforms hash value into a position within
+      the table (see <a href=
+      "hash_based_containers.html#resize_policies">Design::Associative
+      Containers::Hash-Based Containers::Resize Policies</a>).
+
+        <p><a href=
+        "assoc_performance_tests.html#hash_based">Associative-Container
+        Performance Tests::Hash-Based Containers</a> quantifies
+        some of these points.</p>
+      </li>
+
+      <li>Tree-based containers, for example, also support look-up
+      and insertion methods, and are primarily useful when
+      maintaining order between elements is important. In some
+      cases, though, one can utilize their balancing algorithms for
+      completely different purposes.
+
+        <p>Figure <a href="#node_invariants">Metadata for
+        order-statistics and interval intersections</a>-A, for
+        example, shows a tree whose each node contains two entries:
+        a floating-point key, and some size-type <i>metadata</i>
+        (in bold beneath it) that is the number of nodes in the
+        sub-tree. (<i>E.g.</i>, the root has key 0.99, and has 5
+        nodes (including itself) in its sub-tree.) A container based
+        on this data structure can obviously answer efficiently
+        whether 0.3 is in the container object, but it can also
+        answer what is the order of 0.3 among all those in the
+        container object [<a href=
+        "references.html#clrs2001">clrs2001</a>] (see <a href=
+        "assoc_examples.html#tree_like_based">Associative Container
+        Examples::Tree-Like-Based Containers (Trees and
+        Tries)</a>).</p>
+
+        <p>As another example, Figure <a href=
+        "#node_invariants">Metadata for order-statistics and
+        interval intersections</a>-B shows a tree whose each node
+        contains two entries: a half-open geometric line interval,
+        and a number <i>metadata</i> (in bold beneath it) that is
+        the largest endpoint of all intervals in its sub-tree.
+        (<i>E.g.</i>, the root describes the interval <i>[20,
+        36)</i>, and the largest endpoint in its sub-tree is 99.) A
+        container based on this data structure can obviously answer
+        efficiently whether <i>[3, 41)</i> is in the container
+        object, but it can also answer efficiently whether the
+        container object has intervals that intersect <i>[3,
+        41)</i> (see <a href=
+        "assoc_examples.html#tree_like_based">Associative Container
+        Examples::Tree-Like-Based Containers (Trees and
+        Tries)</a>). These types of queries are very useful in
+        geometric algorithms and lease-management algorithms.</p>
+
+        <p>It is important to note, however, that as the trees are
+        modified, their internal structure changes. To maintain
+        these invariants, one must supply some policy that is aware
+        of these changes (see <a href=
+        "tree_based_containers.html#invariants">Design::Associative
+        Containers::Tree-Based Containers::Node Invariants</a>);
+        without this, it would be better to use a linked list (in
+        itself very efficient for these purposes).</p>
+
+        <p><a href=
+        "assoc_performance_tests.html#tree_like_based">Associative-Container
+        Performance Tests::Tree-Like-Based Containers</a>
+        quantifies some of these points.</p>
+      </li>
+    </ol>
+
+    <h6 class="c1"><a name="node_invariants" id=
+    "node_invariants"><img src="node_invariants.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Metadata for order-statistics and interval
+    intersections.</h6>
+
+    <h3><a name="assoc_ds_genericity" id="assoc_ds_genericity">More
+    Data Structures and Traits</a></h3>
+
+    <p>The STL contains associative containers based on red-black
+    trees and collision-chaining hash tables. These are obviously
+    very useful, but they are not ideal for all types of
+    settings.</p>
+
+    <p>Figure <a href=
+    "#different_underlying_data_structures">Different underlying
+    data structures</a> shows different underlying data structures
+    (the ones currently supported in <tt>pb_ds</tt>). A shows a
+    collision-chaining hash-table, B shows a probing hash-table, C
+    shows a red-black tree, D shows a splay tree, E shows a tree
+    based on an ordered vector(implicit in the order of the
+    elements), F shows a PATRICIA trie, and G shows a list-based
+    container with update policies.</p>
+
+    <p>Each of these data structures has some performance benefits,
+    in terms of speed, size or both (see <a href=
+    "assoc_performance_tests.html">Associative-Container
+    Performance Tests</a> and <a href=
+    "assoc_performance_tests.html#dss_family_choice">Associative-Container
+    Performance Tests::Observations::Underlying Data-Structure
+    Families</a>). For now, though, note that <i>e.g.</i>,
+    vector-based trees and probing hash tables manipulate memory
+    more efficiently than red-black trees and collision-chaining
+    hash tables, and that list-based associative containers are
+    very useful for constructing "multimaps" (see <a href=
+    "#assoc_mapping_semantics">Alternative to Multiple Equivalent
+    Keys</a>, <a href=
+    "assoc_performance_tests.html#multimaps">Associative Container
+    Performance Tests::Multimaps</a>, and <a href=
+    "assoc_performance_tests.html#msc">Associative Container
+    Performance Tests::Observations::Mapping-Semantics
+    Considerations</a>).</p>
+
+    <h6 class="c1"><a name="different_underlying_data_structures"
+    id="different_underlying_data_structures"><img src=
+    "different_underlying_dss.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Different underlying data structures.</h6>
+
+    <p>Now consider a function manipulating a generic associative
+    container, <i>e.g.</i>,</p>
+    <pre>
+<b>template</b>&lt;
+    <b>class</b> Cntnr&gt;
+<b>int</b> 
+    some_op_sequence
+    (Cntnr &amp;r_cnt)
+{
+    ...
+}
+</pre>
+
+    <p>Ideally, the underlying data structure of <tt>Cntnr</tt>
+    would not affect what can be done with <tt>r_cnt</tt>.
+    Unfortunately, this is not the case.</p>
+
+    <p>For example, if <tt>Cntnr</tt> is <tt>std::map</tt>, then
+    the function can use <tt>std::for_each(r_cnt.find(foo),
+    r_cnt.find(bar), foobar)</tt> in order to apply <tt>foobar</tt>
+    to all elements between <tt>foo</tt> and <tt>bar</tt>. If
+    <tt>Cntnr</tt> is a hash-based container, then this call's
+    results are undefined.</p>
+
+    <p>Also, if <tt>Cntnr</tt> is tree-based, the type and object
+    of the comparison functor can be accessed. If <tt>Cntnr</tt> is
+    hash based, these queries are nonsensical.</p>
+
+    <p>There are various other differences based on the container's
+    underlying data structure. For one, they can be constructed by,
+    and queried for, different policies. Furthermore:</p>
+
+    <ol>
+      <li>Containers based on C, D, E and F store elements in a
+      meaningful order; the others store elements in a meaningless
+      (and probably time-varying) order. By implication, only
+      containers based on C, D, E and F can support erase
+      operations taking an iterator and returning an iterator to
+      the following element without performance loss (see <a href=
+      "#assoc_ers_methods">Slightly Different Methods::Methods
+      Related to Erase</a>).</li>
+
+      <li>Containers based on C, D, E, and F can be split and
+      joined efficiently, while the others cannot. Containers based
+      on C and D, furthermore, can guarantee that this is
+      exception-free; containers based on E cannot guarantee
+      this.</li>
+
+      <li>Containers based on all but E can guarantee that erasing
+      an element is exception free; containers based on E cannot
+      guarantee this. Containers based on all but B and E can
+      guarantee that modifying an object of their type does not
+      invalidate iterators or references to their elements, while
+      containers based on B and E cannot. Containers based on C, D,
+      and E can furthermore make a stronger guarantee, namely that
+      modifying an object of their type does not affect the order
+      of iterators.</li>
+    </ol>
+
+    <p>A unified tag and traits system (as used for the STL's
+    iterators, for example) can ease generic manipulation of
+    associative containers based on different underlying
+    data structures (see <a href=
+    "tutorial.html#assoc_ds_gen">Tutorial::Associative
+    Containers::Determining Containers' Attributes</a> and <a href=
+    "ds_gen.html#container_traits">Design::Associative
+    Containers::Data-Structure Genericity::Data-Structure Tags and
+    Traits</a>).</p>
+
+    <h3><a name="assoc_diff_it" id="assoc_diff_it">Differentiating
+    between Iterator Types</a></h3>
+
+    <p>Iterators are centric to the STL's design, because of the
+    container/algorithm/iterator decomposition that allows an
+    algorithm to operate on a range through iterators of some
+    sequence (<i>e.g.</i>, one originating from a container).
+    Iterators, then, are useful because they allow going over a
+    <u>sequence</u>. The STL also uses iterators for accessing a
+    <u>specific</u> element - <i>e.g.</i>, when an associative
+    container returns one through <tt>find</tt>. The STL, however,
+    consistently uses the same types of iterators for both
+    purposes: going over a range, and accessing a specific found
+    element. Before the introduction of hash-based containers to
+    the STL, this made sense (with the exception of priority
+    queues, which are discussed in <a href="#pq">Priority
+    Queues</a>).</p>
+
+    <p>Using the STL's associative containers together with
+    non-order-preserving associative containers (and also because
+    of priority-queues container), there is a possible need for
+    different types of iterators for self-organizing containers -
+    the iterator concept seems overloaded to mean two different
+    things (in some cases). The following subsections explain this;
+    <a href="tutorial.html#assoc_find_range">Tutorial::Associative
+    Containers::Point-Type and Range-Type Methods</a> explains an
+    alternative design which does not complicate the use of
+    order-preserving containers, but is better for unordered
+    containers; <a href=
+    "ds_gen.html#find_range">Design::Associative
+    Containers::Data-Structure Genericity::Point-Type and
+    Range-Type Methods</a> explains the design further.</p>
+
+    <h4><a name="assoc_find_it_range_it" id=
+    "assoc_find_it_range_it">Using Point-Type Iterators for
+    Range-Type Operations</a></h4>
+
+    <p>Suppose <tt>cntnr</tt> is some associative container, and
+    say <tt>c</tt> is an object of type <tt>cntnr</tt>. Then what
+    will be the outcome of</p>
+    <pre>
+std::for_each(c.find(1), c.find(5), foo);
+</pre>
+
+    <p>If <tt>cntnr</tt> is a tree-based container object, then an
+    in-order walk will apply <tt>foo</tt> to the relevant elements,
+    <i>e.g.</i>, as in Figure <a href="#range_it_in_hts">Range
+    iteration in different data structures</a> -A. If <tt>c</tt> is
+    a hash-based container, then the order of elements between any
+    two elements is undefined (and probably time-varying); there is
+    no guarantee that the elements traversed will coincide with the
+    <i>logical</i> elements between 1 and 5, <i>e.g.</i>, as in
+    Figure <a href="#range_it_in_hts">Range iteration in different
+    data structures</a>-B.</p>
+
+    <h6 class="c1"><a name="range_it_in_hts" id=
+    "range_it_in_hts"><img src="point_iterators_range_ops_1.png"
+    alt="no image" /></a></h6>
+
+    <h6 class="c1">Range iteration in different
+    data structures.</h6>
+
+    <p>In our opinion, this problem is not caused just because
+    red-black trees are order preserving while collision-chaining
+    hash tables are (generally) not - it is more fundamental. Most
+    of the STL's containers order sequences in a well-defined
+    manner that is determined by their <u>interface</u>: calling
+    <tt>insert</tt> on a tree-based container modifies its sequence
+    in a predictable way, as does calling <tt>push_back</tt> on a
+    list or a vector. Conversely, collision-chaining hash tables,
+    probing hash tables, priority queues, and list-based containers
+    (which are very useful for "multimaps") are self-organizing
+    data structures; the effect of each operation modifies their
+    sequences in a manner that is (practically) determined by their
+    <u>implementation</u>.</p>
+
+    <p>Consequently, applying an algorithm to a sequence obtained
+    from most containers <u>may or may not</u> make sense, but
+    applying it to a sub-sequence of a self-organizing container
+    <u>does not</u>.</p>
+
+    <h4><a name="assoc_range_it_for_find_it" id=
+    "assoc_range_it_for_find_it">The Cost of Enabling Range
+    Capabilities to Point-Type Iterators</a></h4>
+
+    <p>Suppose <tt>c</tt> is some collision-chaining hash-based
+    container object, and one calls <tt>c.find(3)</tt>. Then what
+    composes the returned iterator?</p>
+
+    <p>Figure <a href="#find_its_in_hash_tables">Point-type
+    iterators in hash tables</a>-A shows the simplest (and most
+    efficient) implementation of a collision-chaining hash table.
+    The little box marked <tt>point_iterator</tt> shows an object
+    that contains a pointer to the element's node. Note that this
+    "iterator" has no way to move to the next element (<i>i.e.</i>,
+    it cannot support <tt><b>operator</b>++</tt>). Conversely, the
+    little box marked <tt>iterator</tt> stores both a pointer to
+    the element, as well as some other information (<i>e.g.</i>,
+    the bucket number of the element). the second iterator, then,
+    is "heavier" than the first one- it requires more time and
+    space. If we were to use a different container to
+    cross-reference into this hash-table using these iterators - it
+    would take much more space. As noted in <a href=
+    "#assoc_find_it_range_it">Using Point-Type Iterators for
+    Range-Type Operations</a>, nothing much can be done by
+    incrementing these iterators, so why is this extra information
+    needed?</p>
+
+    <p>Alternatively, one might create a collision-chaining
+    hash-table where the lists might be linked, forming a
+    monolithic total-element list, as in Figure <a href=
+    "#find_its_in_hash_tables">Point-type iterators in hash
+    tables</a>-B (this seems similar to the Dinkumware design
+    [<a href="references.html#dinkumware_stl">dinkumware_stl</a>]).
+    Here the iterators are as light as can be, but the hash-table's
+    operations are more complicated.</p>
+
+    <h6 class="c1"><a name="find_its_in_hash_tables" id=
+    "find_its_in_hash_tables"><img src=
+    "point_iterators_range_ops_2.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Point-type iterators in hash tables.</h6>
+
+    <p>It should be noted that containers based on
+    collision-chaining hash-tables are not the only ones with this
+    type of behavior; many other self-organizing data structures
+    display it as well.</p>
+
+    <h4><a name="assoc_inv_guar" id="assoc_inv_guar">Invalidation
+    Guarantees</a></h4>
+
+    <p>Consider the following snippet:</p>
+    <pre>
+it = c.find(3);
+
+c.erase(5);
+</pre>
+
+    <p>Following the call to <tt>erase</tt>, what is the validity
+    of <tt>it</tt>: can it be de-referenced? can it be
+    incremented?</p>
+
+    <p>The answer depends on the underlying data structure of the
+    container. Figure <a href=
+    "#invalidation_guarantee_erase">Effect of erase in different
+    underlying data structures</a> shows three cases: A1 and A2
+    show a red-black tree; B1 and B2 show a probing hash-table; C1
+    and C2 show a collision-chaining hash table.</p>
+
+    <h6 class="c1"><a name="invalidation_guarantee_erase" id=
+    "invalidation_guarantee_erase"><img src=
+    "invalidation_guarantee_erase.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Effect of erase in different underlying
+    data structures.</h6>
+
+    <ol>
+      <li>Erasing 5 from A1 yields A2. Clearly, an iterator to 3
+      can be de-referenced and incremented. The sequence of
+      iterators changed, but in a way that is well-defined by the
+      <u>interface</u>.</li>
+
+      <li>Erasing 5 from B1 yields B2. Clearly, an iterator to 3 is
+      not valid at all - it cannot be de-referenced or incremented;
+      the order of iterators changed in a way that is (practically)
+      determined by the <u>implementation</u> and not by the
+      <u>interface</u>.</li>
+
+      <li>Erasing 5 from C1 yields C2. Here the situation is more
+      complicated. On the one hand, there is no problem in
+      de-referencing <tt>it</tt>. On the other hand, the order of
+      iterators changed in a way that is (practically) determined
+      by the <u>implementation</u> and not by the
+      <u>interface</u>.</li>
+    </ol>
+
+    <p>So in classic STL, it is not always possible to express
+    whether <tt>it</tt> is valid or not. This is true also for
+    <tt>insert</tt>, <i>e.g.</i>. Again, the iterator concept seems
+    overloaded.</p>
+
+    <h3><a name="assoc_methods" id="assoc_methods">Slightly
+    Different Methods</a></h3>
+
+    <p>[<a href="references.html#meyers02both">meyers02both</a>]
+    points out that a class's methods should comprise only
+    operations which depend on the class's internal structure;
+    other operations are best designed as external functions.
+    Possibly, therefore, the STL's associative containers lack some
+    useful methods, and provide some other methods which would be
+    better left out (<i>e.g.</i>, [<a href=
+    "references.html#sgi_stl">sgi_stl</a>] ).</p>
+
+    <h4><a name="assoc_ers_methods" id="assoc_ers_methods">Methods
+    Related to Erase</a></h4>
+
+    <ol>
+      <li>Order-preserving STL associative containers provide the
+      method
+        <pre>
+iterator 
+    erase
+    (iterator it)
+</pre>which takes an iterator, erases the corresponding element,
+and returns an iterator to the following element. Also hash-based
+STL associative containers provide this method. This <u>seemingly
+increases</u> genericity between associative containers, since, <i>
+        e.g.</i>, it is possible to use
+        <pre>
+<b>typename</b> C::iterator it = c.begin();
+<b>typename</b> C::iterator e_it = c.end();
+
+<b>while</b>(it != e_it)
+    it = pred(*it)? c.erase(it) : ++it;
+</pre>in order to erase from a container object <tt>
+        c</tt> all element which match a predicate <tt>pred</tt>.
+        However, in a different sense this actually
+        <u>decreases</u> genericity: an integral implication of
+        this method is that tree-based associative containers'
+        memory use is linear in the total number of elements they
+        store, while hash-based containers' memory use is unbounded
+        in the total number of elements they store. Assume a
+        hash-based container is allowed to decrease its size when
+        an element is erased. Then the elements might be rehashed,
+        which means that there is no "next" element - it is simply
+        undefined. Consequently, it is possible to infer from the
+        fact that STL hash-based containers provide this method
+        that they cannot downsize when elements are erased
+        (<a href="assoc_performance_tests.html#hash_based">Performance
+        Tests::Hash-Based Container Tests</a> quantifies this.) As
+        a consequence, different code is needed to manipulate
+        different containers, assuming that memory should be
+        conserved. <tt>pb_ds</tt>'s non-order preserving
+        associative containers omit this method.
+      </li>
+
+      <li>All of <tt>pb_ds</tt>'s associative containers include a
+      conditional-erase method
+        <pre>
+<b>template</b>&lt;
+    <b>class</b> Pred&gt;
+size_type
+    erase_if
+    (Pred pred)
+</pre>which erases all elements matching a predicate. This is
+probably the only way to ensure linear-time multiple-item erase
+which can actually downsize a container.
+      </li>
+
+      <li>STL associative containers provide methods for
+      multiple-item erase of the form
+        <pre>
+size_type
+    erase
+    (It b, 
+        It e)
+</pre>erasing a range of elements given by a pair of iterators. For
+tree-based or trie-based containers, this can implemented more
+efficiently as a (small) sequence of split and join operations. For
+other, unordered, containers, this method isn't much better than an
+external loop. Moreover, if <tt>c</tt> is a hash-based container,
+then, <i>e.g.</i>, <tt>c.erase(c.find(2), c.find(5))</tt> is almost
+certain to do something different than erasing all elements whose
+keys are between 2 and 5, and is likely to produce other undefined
+behavior.
+      </li>
+    </ol>
+
+    <h4><a name="assoc_split_join_methods" id=
+    "assoc_split_join_methods">Methods Related to Split and
+    Join</a></h4>
+
+    <p>It is well-known that tree-based and trie-based container
+    objects can be efficiently split or joined [<a href=
+    "references.html#clrs2001">clrs2001</a>]. Externally splitting
+    or joining trees is super-linear, and, furthermore, can throw
+    exceptions. Split and join methods, consequently, seem good
+    choices for tree-based container methods, especially, since as
+    noted just before, they are efficient replacements for erasing
+    sub-sequences. <a href=
+    "assoc_performance_tests.html#tree_like_based">Performance
+    Tests::Tree-Like-Based Container Tests</a> quantifies this.</p>
+
+    <h4><a name="assoc_insert_methods" id=
+    "assoc_insert_methods">Methods Related to Insert</a></h4>
+
+    <p>STL associative containers provide methods of the form</p>
+    <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+size_type
+    insert
+    (It b,
+        It e);
+</pre>for inserting a range of elements given by a pair of
+iterators. At best, this can be implemented as an external loop,
+or, even more efficiently, as a join operation (for the case of
+tree-based or trie-based containers). Moreover, these methods seem
+similar to constructors taking a range given by a pair of
+iterators; the constructors, however, are transactional, whereas
+the insert methods are not; this is possibly confusing.
+
+    <h4><a name="assoc_equiv_comp_methods" id=
+    "assoc_equiv_comp_methods">Functions Related to
+    Comparison</a></h4>
+
+    <p>Associative containers are parametrized by policies
+    allowing to test key equivalence; <i>e.g.</i> a hash-based
+    container can do this through its equivalence functor, and a
+    tree-based container can do this through its comparison
+    functor. In addition, some STL associative containers have
+    global function operators, <i>e.g.</i>,
+    <tt><b>operator</b>==</tt> and <tt><b>operator</b>&lt;=</tt>,
+    that allow comparing entire associative containers.</p>
+
+    <p>In our opinion, these functions are better left out. To
+    begin with, they do not significantly improve over an external
+    loop. More importantly, however, they are possibly misleading -
+    <tt><b>operator</b>==</tt>, for example, usually checks for
+    equivalence, or interchangeability, but the associative
+    container cannot check for values' equivalence, only keys'
+    equivalence; also, are two containers considered equivalent if
+    they store the same values in different order? this is an
+    arbitrary decision.</p>
+
+    <h3><a name="assoc_mapping_semantics" id=
+    "assoc_mapping_semantics">Alternative to Multiple Equivalent
+    Keys</a></h3>
+
+    <p>Maps (or sets) allow mapping (or storing) unique-key values.
+    The STL, however, also supplies associative containers which
+    map (or store) multiple values with equivalent keys:
+    <tt>std::multimap</tt>, <tt>std::multiset</tt>,
+    <tt>std::tr1::unordered_multimap</tt>, and
+    <tt>unordered_multiset</tt>. We first discuss how these might
+    be used, then why we think it is best to avoid them.</p>
+
+    <p>Suppose one builds a simple bank-account application that
+    records for each client (identified by an <tt>std::string</tt>)
+    and account-id (marked by an <tt><b>unsigned long</b></tt>) -
+    the balance in the account (described by a
+    <tt><b>float</b></tt>). Suppose further that ordering this
+    information is not useful, so a hash-based container is
+    preferable to a tree based container. Then one can use</p>
+    <pre>
+std::tr1::unordered_map&lt;std::pair&lt;std::string, <b>unsigned long</b>&gt;, <b>float</b>, ...&gt;
+</pre>which <u>hashes every combination of client and
+account-id</u>. This might work well, except for the fact that it
+is now impossible to efficiently list all of the accounts of a
+specific client (this would practically require iterating over all
+entries). Instead, one can use
+    <pre>
+std::tr1::unordered_multimap&lt;std::pair&lt;std::string, <tt><b>unsigned long</b></tt>&gt;, <b>float</b>, ...&gt;
+</pre>which <u>hashes every client</u>, and <u>decides equivalence
+based on client</u> only. This will ensure that all accounts
+belonging to a specific user are stored consecutively.
+
+    <p>Also, suppose one wants an integers' priority queue
+    (<i>i.e.,</i> a container that supports <tt>push</tt>,
+    <tt>pop</tt>, and <tt>top</tt> operations, the last of which
+    returns the largest <tt><b>int</b></tt>) that also supports
+    operations such as <tt>find</tt> and <tt>lower_bound</tt>. A
+    reasonable solution is to build an adapter over
+    <tt>std::set&lt;<b>int</b>&gt;</tt>. In this adapter,
+    <i>e.g.</i>, <tt>push</tt> will just call the tree-based
+    associative container's <tt>insert</tt> method; <tt>pop</tt>
+    will call its <tt>end</tt> method, and use it to return the
+    preceding element (which must be the largest). Then this might
+    work well, except that the container object cannot hold
+    multiple instances of the same integer (<tt>push(4)</tt>,
+    <i>e.g.</i>, will be a no-op if <tt>4</tt> is already in the
+    container object). If multiple keys are necessary, then one
+    might build the adapter over an
+    <tt>std::multiset&lt;<b>int</b>&gt;</tt>.</p>
+
+    <p class="c1">STL non-unique-mapping containers, then, are
+    useful when (1) a key can be decomposed in to a primary key and
+    a secondary key, (2) a key is needed multiple times, or (3) any
+    combination of (1) and (2).</p>
+
+    <p>Figure <a href="#embedded_lists_1">Non-unique mapping
+    containers in the STL's design</a> shows how the STL's design
+    works internally; in this figure nodes shaded equally represent
+    equivalent-key values. Equivalent keys are stored consecutively
+    using the properties of the underlying data structure: binary
+    search trees (Figure <a href="#embedded_lists_1">Non-unique
+    mapping containers in the STL's design</a>-A) store
+    equivalent-key values consecutively (in the sense of an
+    in-order walk) naturally; collision-chaining hash tables
+    (Figure <a href="#embedded_lists_1">Non-unique mapping
+    containers in the STL's design</a>-B) store equivalent-key
+    values in the same bucket, the bucket can be arranged so that
+    equivalent-key values are consecutive.</p>
+
+    <h6 class="c1"><a name="embedded_lists_1" id=
+    "embedded_lists_1"><img src="embedded_lists_1.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Non-unique mapping containers in the STL's
+    design.</h6>
+
+    <p>Put differently, STL non-unique mapping
+    associative-containers are associative containers that map
+    primary keys to linked lists that are embedded into the
+    container. Figure <a href="#embedded_lists_2">Effect of
+    embedded lists in STL multimaps</a> shows again the two
+    containers from Figure <a href="#embedded_lists_1">Non-unique
+    mapping containers in the STL's design</a>, this time with the
+    embedded linked lists of the grayed nodes marked
+    explicitly.</p>
+
+    <h6 class="c1"><a name="embedded_lists_2" id=
+    "embedded_lists_2"><img src="embedded_lists_2.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Effect of embedded lists in STL multimaps.</h6>
+
+    <p>These embedded linked lists have several disadvantages.</p>
+
+    <ol>
+      <li>The underlying data structure embeds the linked lists
+      according to its own consideration, which means that the
+      search path for a value might include several different
+      equivalent-key values. For example, the search path for the
+      the black node in either of Figures <a href=
+      "#embedded_lists_1">Non-unique mapping containers in the
+      STL's design</a> A or B, includes more than a single gray
+      node.</li>
+
+      <li>The links of the linked lists are the underlying
+      data structures' nodes, which typically are quite structured.
+      <i>E.g.</i>, in the case of tree-based containers (Figure
+      <a href="#embedded_lists_2">Effect of embedded lists in STL
+      multimaps</a>-B), each "link" is actually a node with three
+      pointers (one to a parent and two to children), and a
+      relatively-complicated iteration algorithm. The linked lists,
+      therefore, can take up quite a lot of memory, and iterating
+      over all values equal to a given key (<i>e.g.</i>, through
+      the return value of the STL's <tt>equal_range</tt>) can be
+      expensive.</li>
+
+      <li>The primary key is stored multiply; this uses more
+      memory.</li>
+
+      <li>Finally, the interface of this design excludes several
+      useful underlying data structures. <i>E.g.</i>, of all the
+      unordered self-organizing data structures, practically only
+      collision-chaining hash tables can (efficiently) guarantee
+      that equivalent-key values are stored consecutively.</li>
+    </ol>
+
+    <p>The above reasons hold even when the ratio of secondary keys
+    to primary keys (or average number of identical keys) is small,
+    but when it is large, there are more severe problems:</p>
+
+    <ol>
+      <li>The underlying data structures order the links inside
+      each embedded linked-lists according to their internal
+      considerations, which effectively means that each of the
+      links is unordered. Irrespective of the underlying
+      data structure, searching for a specific value can degrade to
+      linear complexity.</li>
+
+      <li>Similarly to the above point, it is impossible to apply
+      to the secondary keys considerations that apply to primary
+      keys. For example, it is not possible to maintain secondary
+      keys by sorted order.</li>
+
+      <li>While the interface "understands" that all equivalent-key
+      values constitute a distinct list (<i>e.g.</i>, through
+      <tt>equal_range</tt>), the underlying data structure
+      typically does not. This means, <i>e.g.</i>, that operations
+      such as erasing from a tree-based container all values whose
+      keys are equivalent to a a given key can be super-linear in
+      the size of the tree; this is also true also for several
+      other operations that target a specific list.</li>
+    </ol>
+
+    <p>In <tt>pb_ds</tt>, therefore, all associative containers map
+    (or store) unique-key values. One can (1) map primary keys to
+    secondary associative-containers (<i>i.e.</i>, containers of
+    secondary keys) or non-associative containers (2) map identical
+    keys to a size-type representing the number of times they
+    occur, or (3) any combination of (1) and (2). Instead of
+    allowing multiple equivalent-key values, <tt>pb_ds</tt>
+    supplies associative containers based on underlying
+    data structures that are suitable as secondary
+    associative-containers (see <a href=
+    "assoc_performance_tests.html#msc">Associative-Container
+    Performance Tests::Observations::Mapping-Semantics
+    Considerations</a>).</p>
+
+    <p>Figures <a href="#embedded_lists_3">Non-unique mapping
+    containers in <tt>pb_ds</tt></a> A and B show the equivalent
+    structures in <tt>pb_ds</tt>'s design, to those in Figures
+    <a href="#embedded_lists_1">Non-unique mapping containers in
+    the STL's design</a> A and B, respectively. Each shaded box
+    represents some size-type or secondary
+    associative-container.</p>
+
+    <h6 class="c1"><a name="embedded_lists_3" id=
+    "embedded_lists_3"><img src="embedded_lists_3.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Non-unique mapping containers in the
+    <tt>pb_ds</tt>.</h6>
+
+    <p>In the first example above, then, one would use an
+    associative container mapping each user to an associative
+    container which maps each application id to a start time (see
+    <a href=
+    "../../../../testsuite/ext/pb_ds/example/basic_multimap.cc"><tt>basic_multimap.cc</tt></a>);
+    in the second example, one would use an associative container
+    mapping each <tt><b>int</b></tt> to some size-type indicating
+    the number of times it logically occurs (see <a href=
+    "../../../../testsuite/ext/pb_ds/example/basic_multiset.cc"><tt>basic_multiset.cc</tt></a>).</p>
+
+    <p><a href=
+    "assoc_performance_tests.html#multimaps">Associative-Container
+    Performance Tests::Multimaps</a> quantifies some of these
+    points, and <a href=
+    "assoc_performance_tests.html#msc">Associative-Container
+    Performance Tests::Observations::Mapping-Semantics
+    Considerations</a> shows some simple calculations.</p>
+
+    <p><a href="assoc_examples.html#mmaps">Associative-Container
+    Examples::Multimaps</a> shows some simple examples of using
+    "multimaps".</p>
+
+    <p><a href="lu_based_containers.html">Design::Associative
+    Containers::List-Based Containers</a> discusses types of
+    containers especially suited as secondary
+    associative-containers.</p>
+
+    <h2><a name="pq" id="pq">Priority Queues</a></h2>
+
+    <h3><a name="pq_more_ops" id="pq_more_ops">Slightly Different
+    Methods</a></h3>
+
+    <p>Priority queues are containers that allow efficiently
+    inserting values and accessing the maximal value (in the sense
+    of the container's comparison functor); <i>i.e.</i>, their
+    interface supports <tt>push</tt> and <tt>pop</tt>. The STL's
+    priority queues indeed support these methods, but they support
+    little else. For algorithmic and software-engineering purposes,
+    other methods are needed:</p>
+
+    <ol>
+      <li>Many graph algorithms [<a href=
+      "references.html#clrs2001">clrs2001</a>] require increasing a
+      value in a priority queue (again, in the sense of the
+      container's comparison functor), or joining two
+      priority-queue objects.</li>
+
+      <li>It is sometimes necessary to erase an arbitrary value in
+      a priority queue. For example, consider the <tt>select</tt>
+      function for monitoring file descriptors:
+        <pre>
+<b>int</b> 
+    select
+    (<b>int</b> nfds,             
+        fd_set *readfds,                
+        fd_set *writefds,
+        fd_set *errorfds, 
+        <b>struct</b> timeval *timeout);
+</pre>then, as the <tt>select</tt> manual page [<a href=
+"references.html#select_man">select_man</a>] states:
+
+        <p><q>The nfds argument specifies the range of file
+        descriptors to be tested. The select() function tests file
+        descriptors in the range of 0 to nfds-1.</q></p>
+
+        <p>It stands to reason, therefore, that we might wish to
+        maintain a minimal value for <tt>nfds</tt>, and priority
+        queues immediately come to mind. Note, though, that when a
+        socket is closed, the minimal file description might
+        change; in the absence of an efficient means to erase an
+        arbitrary value from a priority queue, we might as well
+        avoid its use altogether.</p>
+
+        <p><a href="pq_examples.html#xref">Priority-Queue
+        Examples::Cross-Referencing</a> shows examples for these
+        types of operations.</p>
+      </li>
+
+      <li>STL containers typically support iterators. It is
+      somewhat unusual for <tt>std::priority_queue</tt> to omit
+      them (see, <i>e.g.</i>, [<a href=
+      "references.html#meyers01stl">meyers01stl</a>]). One might
+      ask why do priority queues need to support iterators, since
+      they are self-organizing containers with a different purpose
+      than abstracting sequences. There are several reasons:
+
+        <ol>
+          <li>Iterators (even in self-organizing containers) are
+          useful for many purposes, <i>e.g.</i>, cross-referencing
+          containers, serialization, and debugging code that uses
+          these containers.</li>
+
+          <li>The STL's hash-based containers support iterators,
+          even though they too are self-organizing containers with
+          a different purpose than abstracting sequences.</li>
+
+          <li>In STL-like containers, it is natural to specify the
+          interface of operations for modifying a value or erasing
+          a value (discussed previously) in terms of a iterators.
+          This is discussed further in <a href=
+          "pq_design.html#pq_it">Design::Priority
+          Queues::Iterators</a>. It should be noted that the STL's
+          containers also use iterators for accessing and
+          manipulating a specific value. <i>E.g.</i>, in hash-based
+          containers, one checks the existence of a key by
+          comparing the iterator returned by <tt>find</tt> to the
+          iterator returned by <tt>end</tt>, and not by comparing a
+          pointer returned by <tt>find</tt> to <tt>NULL</tt>.</li>
+        </ol>
+      </li>
+    </ol>
+
+    <p><a href="pq_performance_tests.html">Performance
+    Tests::Priority Queues</a> quantifies some of these points.</p>
+
+    <h3><a name="pq_ds_genericity" id="pq_ds_genericity">More Data
+    Structures and Traits</a></h3>
+
+    <p>There are three main implementations of priority queues: the
+    first employs a binary heap, typically one which uses a
+    sequence; the second uses a tree (or forest of trees), which is
+    typically less structured than an associative container's tree;
+    the third simply uses an associative container. These are
+    shown, respectively, in Figures <a href=
+    "#pq_different_underlying_dss">Underlying Priority-Queue
+    Data-Structures</a> A1 and A2, B, and C.</p>
+
+    <h6 class="c1"><a name="pq_different_underlying_dss" id=
+    "pq_different_underlying_dss"><img src=
+    "pq_different_underlying_dss.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Underlying Priority-Queue Data-Structures.</h6>
+
+    <p>No single implementation can completely replace any of the
+    others. Some have better <tt>push</tt> and <tt>pop</tt>
+    amortized performance, some have better bounded (worst case)
+    response time than others, some optimize a single method at the
+    expense of others, <i>etc.</i>. In general the "best"
+    implementation is dictated by the problem (see <a href=
+    "pq_performance_tests.html#pq_observations">Performance
+    Tests::Priority Queues::Observations</a>).</p>
+
+    <p>As with associative containers (see <a href=
+    "#assoc_ds_genericity">Associative Containers::Traits for
+    Underlying Data-Structures</a>), the more implementations
+    co-exist, the more necessary a traits mechanism is for handling
+    generic containers safely and efficiently. This is especially
+    important for priority queues, since the invalidation
+    guarantees of one of the most useful data structures - binary
+    heaps - is markedly different than those of most of the
+    others.</p>
+
+    <p><a href="pq_design.html#pq_traits">Design::Priority
+    Queues::Traits</a> discusses this further.</p>
+
+    <h3><a name="pq_binary_heap" id="pq_binary_heap">Binary Heap
+    Implementation</a></h3>
+
+    <p>Binary heaps are one of the most useful underlying
+    data structures for priority queues. They are very efficient in
+    terms of memory (since they don't require per-value structure
+    metadata), and have the best amortized <tt>push</tt> and
+    <tt>pop</tt> performance for primitive types (<i>e.g.</i>,
+    <tt><b>int</b></tt>s).</p>
+
+    <p>The STL's <tt>priority_queue</tt> implements this data
+    structure as an adapter over a sequence, typically
+    <tt>std::vector</tt> or <tt>std::deque</tt>, which correspond
+    to Figures <a href="#pq_different_underlying_dss">Underlying
+    Priority-Queue Data-Structures</a> A1 and A2, respectively.</p>
+
+    <p>This is indeed an elegant example of the adapter concept and
+    the algorithm/container/iterator decomposition (see [<a href=
+    "references.html#nelson96stlpq">nelson96stlpql</a>]). There are
+    possibly reasons, however, why a binary-heap priority queue
+    would be better implemented as a container instead of a
+    sequence adapter:</p>
+
+    <ol>
+      <li><tt>std::priority_queue</tt> cannot erase values from its
+      adapted sequence (irrespective of the sequence type). This
+      means that the memory use of an <tt>std::priority_queue</tt>
+      object is always proportional to the maximal number of values
+      it ever contained, and not to the number of values that it
+      currently contains (see <a href=
+      "priority_queue_text_pop_mem_usage_test.html">Priority Queue
+      Text <tt>pop</tt> Memory Use Test</a>); this implementation
+      of binary heaps acts very differently than other underlying
+      data structures (<i>e.g.</i>, pairing heaps).</li>
+
+      <li>Some combinations of adapted sequences and value types
+      are very inefficient or just don't make sense. If one uses
+      <tt>std::priority_queue&lt;std::vector&lt;std::string&gt;
+      &gt; &gt;</tt>, for example, then not only will each
+      operation perform a logarithmic number of
+      <tt>std::string</tt> assignments, but, furthermore, any
+      operation (including <tt>pop</tt>) can render the container
+      useless due to exceptions. Conversely, if one uses
+      <tt>std::priority_queue&lt;std::deque&lt;<b>int</b>&gt; &gt;
+      &gt;</tt>, then each operation uses incurs a logarithmic
+      number of indirect accesses (through pointers) unnecessarily.
+      It might be better to let the container make a conservative
+      deduction whether to use the structure in Figures <a href=
+      "#pq_different_underlying_dss">Underlying Priority-Queue
+      Data-Structures</a> A1 or A2.</li>
+
+      <li>There does not seem to be a systematic way to determine
+      what exactly can be done with the priority queue.
+
+        <ol>
+          <li>If <tt>p</tt> is a priority queue adapting an
+          <tt>std::vector</tt>, then it is possible to iterate over
+          all values by using <tt>&amp;p.top()</tt> and
+          <tt>&amp;p.top() + p.size()</tt>, but this will not work
+          if <tt>p</tt> is adapting an <tt>std::deque</tt>; in any
+          case, one cannot use <tt>p.begin()</tt> and
+          <tt>p.end()</tt>. If a different sequence is adapted, it
+          is even more difficult to determine what can be
+          done.</li>
+
+          <li>If <tt>p</tt> is a priority queue adapting an
+          <tt>std::deque</tt>, then the reference return by
+          <tt>p.top()</tt> will remain valid until it is popped,
+          but if <tt>p</tt> adapts an <tt>std::vector</tt>, the
+          next <tt>push</tt> will invalidate it. If a different
+          sequence is adapted, it is even more difficult to
+          determine what can be done.</li>
+        </ol>
+      </li>
+
+      <li>Sequence-based binary heaps can still implement
+      linear-time <tt>erase</tt> and <tt>modify</tt> operations.
+      This means that if one needs, <i>e.g.</i>, to erase a small
+      (say logarithmic) number of values, then one might still
+      choose this underlying data structure. Using
+      <tt>std::priority_queue</tt>, however, this will generally
+      change the order of growth of the entire sequence of
+      operations.</li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html
new file mode 100644
index 000000000000..35190924e1e5
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/move_to_front_lu_policy.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>move_to_front_lu_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>move_to_front_lu_policy</tt> Interface</h1>
+
+    <p>A list-update policy that unconditionally moves elements to
+    the front of the list.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/list_update_policy.hpp"><tt>list_update_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+
+          <p>This is used only for definitions, e.g., the size
+          type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Metadata-Type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="null_lu_metadata.html"><span class=
+"c2"><tt>null_lu_metadata</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata on which this functor operates.</p>
+
+          <p>In this case, none.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;  
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p>Reference to metadata on which this functor
+          operates.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Metadata Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#metadata_type2849297114"><tt>metadata_type</tt></a>
+  <b>operator</b>()
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Creates a metadata object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b> 
+  <b>operator</b>()
+  (<a href=
+"#metadata_reference583863863"><tt>metadata_reference</tt></a> r_metadata) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Decides whether a metadata object should be moved to
+          the front of the list.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html
new file mode 100644
index 000000000000..e3b1a2cd6bc2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Find Timing Test with Large Average
+  Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Find Timing Test with Large Average
+    Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+    first item of each pair is a string from an arbitrary text
+    [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+    the second is a uniform i.i.d.integer. The container is a
+    "multimap" - it considers the first member of each pair as a
+    primary key, and the second member of each pair as a secondary
+    key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>). There
+    are 100 distinct primary keys, and the ratio of secondary keys
+    to primary keys ranges to about 20.</p>
+<p>The test measures the average find-time as a function of the
+    number of values inserted. For <tt>pb_ds</tt>'s containers, it
+    finds the secondary key from a container obtained from finding
+    a primary key. For the native multimaps, it searches a range
+    obtained using <tt>std::equal_range</tt> on a primary key.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_find_timing.cc"><tt>multimap_text_find_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 100 3 4 4)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the find-time scalability of different
+    "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for "multimaps" which
+    use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+    "multimaps" which use a hash-based container for primary keys,
+    in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+    <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+    and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_find_timing_test_large_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_find_timing_test_large_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_find_timing_test_large_s2p_tree">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_find_timing_test_large_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_find_timing_test_large_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_find_timing_test_large_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_find_timing_test_large_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_find_timing_test_large_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_find_timing_test_large_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_find_timing_test_large_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_find_timing_test_large_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_find_timing_test_large_s2p_hash_local.png" alt="no image" /></a></h6>NHL:  Native and primary hash-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+    Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..03a62f52b0436666ab6829c36e48af3cc6321566
GIT binary patch
literal 6323
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
L8(%8AU?2V;PvSx-

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..32a61cac9bdedb9421c0e3dffc6ce7a9064e05b2
GIT binary patch
literal 7299
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_hash_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..4462d289afd0d90b8dabc9c453fcb24cd628d7ec
GIT binary patch
literal 6490
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
PtF*qhkyiedJE8vp_7AZf

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..89e464481fd932d84c01a89f2f23c1c3132108e9
GIT binary patch
literal 6284
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..10b3980edab6b26b2ef76e829a2abb8bb2d4f237
GIT binary patch
literal 6706
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
Bby5HT

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_large_s2p_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..20320953e0d7f7d28f7a12161cb6f9d24bb73b58
GIT binary patch
literal 6204
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
Ur`T0i=Dw?*wxL#`#@~<s0Ru=1CIA2c

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html
new file mode 100644
index 000000000000..cec52ff80904
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Find Timing Test with Small Average
+  Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Find Timing Test with Small Average
+    Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+    first item of each pair is a string from an arbitrary text
+    [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+    the second is a uniform i.i.d.integer. The container is a
+    "multimap" - it considers the first member of each pair as a
+    primary key, and the second member of each pair as a secondary
+    key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>). There
+    are 400 distinct primary keys, and the ratio of secondary keys
+    to primary keys ranges from 1 to 5.</p>
+<p>The test measures the average find-time as a function of the
+    number of values inserted. For <tt>pb_ds</tt>'s containers, it
+    finds the secondary key from a container obtained from finding
+    a primary key. For the native multimaps, it searches a range
+    obtained using <tt>std::equal_range</tt> on a primary key.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_find_timing.cc"><tt>multimap_text_find_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 400 1 1 6)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the find-time scalability of different
+    "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for "multimaps" which
+    use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+    "multimaps" which use a hash-based container for primary keys,
+    in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+    <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+    and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_find_timing_test_small_s2p_tree">
+<div id="NTG_assoc">
+<div id="NHG_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_find_timing_test_small_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: NHG Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_find_timing_test_small_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_find_timing_test_small_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_find_timing_test_small_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_find_timing_test_small_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_find_timing_test_small_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_find_timing_test_small_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_find_timing_test_small_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_find_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_find_timing_test_small_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types find timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_find_timing_test_small_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_find_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_find_timing_test_small_s2p_hash_local.png" alt="no image" /></a></h6>NHL:  Native and primary hash-based multimap types find timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+    Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..60e850937a9eebfeeab0765a360102d6a75d7879
GIT binary patch
literal 6237
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
Fe*?HXTmS$7

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..a8fa261177bce2458a317d801c38283704538f5c
GIT binary patch
literal 6732
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_hash_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..11aa9e07b6a0dcc4ea8452390a2e2a8e479432a8
GIT binary patch
literal 6268
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..f54369b15b4a147f3348d9407344d6d670abe2c6
GIT binary patch
literal 6064
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
Q=2@q%rlCfO`kkPE1IKpHo&W#<

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..b3d10612f79eaf952b68426306839bf0938898e3
GIT binary patch
literal 6396
zcmcgwcT`hNln+fJ7(tNop){pP6$v#;6_gHALpK7EqEd{a^pYS*2PpyR5CkGdFo1Mp
zp%@!gP(-9FRfvF;?1XR6**#~^{<mk}Ie9O4=Fac_?!7a2=Dh?fi;FN0Ar1%x0y8!;
zu!caGkq`(|3X}!3gsCU%K_Dy;D>GX|AVMH;2m}p*;2{ty1VU#>a5w~xhQRR<I28h?
zGdj_52pSDR;~{7&1Wjk?;^7cH8iL0|@Kgw%&KOFCL#Sv76%V0OAyhg*g3#d*IvPU9
zL+Dfp9S8s$Km#l=7--WOb{H2L4#&gcR5+Z@FbgC!8ji-p(Ns8^&R_vL@n|?6564sC
zcshd=(50f`R6LwYg;VK(BNz&&qv3QsoKA()fmOg7fC18gC7=cRfMI|QpaB*bOlLU6
zkimsVqp4^#o#7ua3nV-qji;jVbcVZt1?Z&W(Nrp$N(bHpQa~3?$D`>~G#$7H;sI!a
z(I6bae?S6w2v`F!KpL<Fs(=SD46p$-z@jrE$LIz!xTttMoe@ajA216fDiu$qgSY~B
z0SnNHr&IBC5JwPc5CFgnsDnTQZ$T(QJOE8F8iWII0uBQY0c!vTNQ04p7T^I418e|I
zXQYUs4Z490E;`5<2qf?im<1A*PG=-=Km80A`x#~Ab3aK8Qu}ddq<24*437KJVPt#X
zVFu-W9~jBsr^WDK-x7cZ(*a}&1P}PMZ)$%g{=eV6Lc)ZB(Srd-jyE9?P9DaOsc$S|
z2Q-Re43QWce>5f-732jmw6PMq=<R<KbJHWpCjcX+aYj{9Njc|s0Y3!77i?^xXM5-2
zVgYA%nHaaBR{z^TorSL5CecRt5!U<eD(M+9t!J+`C!gTH1B<s(y$(@QBEN?S@<KUD
z5EK)?n0zNQmKJIzv}BMw$^IiZ#+_OfHO@p~CYKa^&!xl^7NLJ1m(J~<Om;)o>GT}E
z`4DZ9r5=Ln*%L}2h{*?Jwi2FIUnsm0MH0MQR>clq_4a+7DJ*g%Pg(P>c28VSO44z2
z{KAfHUF-=n8!1bjtc5#90}pyWTS}fiYAxv%MG7%!AgFNLi)u_@ie+HfK{i4w;?siz
zlq-`hPLa}u7Ah6dq^8{N50li5@-yf5!nIi`S5B1SoG8AuENy1W53%v?ul)9w6$emu
zQsA$h-RKh&c1pDoAzkyx5c?(ng7s*2ZhK+to`D;l2svfwFSUw>M=ci!vfM)o-!}Zq
z!ruBvk=mzcihVF*ME@v)MKnp96*j0UM&ybj)Uu#lSzv?rbdj^VHtrBq8(ZFAerOHU
z;1)YH@d}y6eCz<_!~+3{`g<hMDcp&{5*&Z#6o2Jc?Jx<l|5e}9d%2g0@yRP`7x!vR
z)9Ign?kUOr6Pi~YCD(bY!F;e;-DT~3PlNO#jn%8x-9_BuexV!Rle+Q&*BeQSlK$aq
zFJm{T_2d3e-qrM`a@1&)d_;J>Oj9u0>$~n4nOhMO<Ic-(K;zEg%svpNrDw7B>tGO>
zoQdD8L%BV|?3EgamsW+O)p(t~cLAz~=(c-q6qdVH(V}WSG-=0iNz2T({q3sGmBX_7
zi?WVicV1=WThLI{X``@IdpU!_sN$sIa5v1m2QAj?Q{PzeBq@$?-R5?sB)?yywh9J=
zam5d>mSs75QOsALYTbNh_~f>aWUPYdjB2~D>KlEV!4#Pdahp9a6khStqK*Jv>J<0T
zw`*EjZ(<&e200_!UvTIjK`mZ!F3U-6B_Fy(mOh$2-!o*1y_GcK3acfEB#>;wA|GCJ
z6_Y)}`npzhx_eCo<{;SmrLwJQulxJ19;&2@=e+Is>(OFq0eIGBL`PX-zy4^pCai4O
zSU$|P<eid%<o!qM8^*uQLixxVo-qS)039RrVEtb2&)VFDjR$|U2kwi8^$ZH-#whw1
z)%S@CNDFGE8j9|^<a)>bD)aoX=2g#T*K>l1b!GWNZBx`V{u5!qouyKW-)KYEJ@MAa
ze9X;dAekI6vnyHU<KMWM>6&xBYGs_W#v*LfeOjjqU)G%5hj2<&W$TC%%)oER=;-z0
z7aqqGsy{_LVO=NcisEM<e$H(Bhwp#`Pr`v^lVzvfo`R3XviO62cizuOd%g%zsYXHl
zFkq4DBVVrVwV$TfrNJGQM0)zBs@8?_PCF`zt)3fd$NJ8Di*Q0E`LiP~K~d2ySc;R{
zj}L24Jzqo_m}b(1WYJ%c#&wr<ODieiLt1W&Jw@_@sb(-8rPaeI7?+e06KBLdAC0@T
zlWImx0=01t{@-^SiBc^5MliX$57S)>t+78@Rd@OeWpwS7?y$@2BBR*;d--5PMv)+#
zZO-{j`tx5$52f|0`oT@T?G#ihvT1jMe)zLfgbGZD&;#x3dRsKE=+nYk>IEy`#t&mv
z5jn(nSP>R|cZ8`MQhM*U81d6{&+Ae={Hk4TPFEWZ-4Rl8nsvOrtFBREijMgS&HB~#
z4xcBBr%byHRuqBv!^C&g7kl0(^2W|aX`kBe`_wVnHpo3R=TbFsYk2hMuKe9k-Z_D2
zxhtP?-e-s2z>+S^n!xgRFMmrd;Z1(}TjcYKW%&Fx`~gmiP$4EpMcB#tu0(8bWA5Ft
zAE7~ew@rFtm=dIn>M3;!*}}S)+!6W0*Z9ByXY|zrfc?Zd`)?8H!X9j?VV?qiCZ8^F
zc?N7t@Rn;1jcCbVXvgeS)txSotoITH5g^H3%aj*P3)mj^=#2q9dcPN(1s+TYa#EPH
zpg3CR=qEFfBSwI+@MSLKoevV62Uuf+L49UJcDC#9KUbb)T%~$MhcHrr!A0SU<LuVA
zOF*7IhdoN<Sc6wpcjj(egDF!-(RY9@#pHa9Vmrsj{BN26H&5I{r<Iqmeg4pznMPt2
zZa$g=${VG*<mAoC^2OGWdpn7oP#f1QWwXh9Q@DHx9irSN>}b!!hp%6<l~n#+W8#u^
zB{cK!u9ZsHyZnV@?}xYwp(8)zN~~MbK1VbQIIaMVuWc7Ld73Y$<ZF(cT{Y{sUtT0!
z_pE;96-nQ1+5O-*Vd710-Bzz~^b~g-Q}Ut)!lgq`pU_IFvI>0?dGVypNyXoXZ_{@g
zYCr5<Quvx6eLvB`5#@kX>U#HZVK=whd!oqCQxUscyho^ZYN{ftQDpIxXp07Y1JwtH
zLip-MimR7l`q<l%p>jF-yvdZ-3GZP<?^s%ReAt^D3yr^<@aqW(lhyihy_0LNch`dl
z6vKoqOW6wQm)H1S{rUdA%|K=D#2)KRx2{Bj#>1Brs}(kZ>zBx`R(dS~aK&n(?1vg!
zDZ+AEE3jXCqzK(BH@o-ih&w{{qA03`6wZ55&5uS<X*7XfgGm{U@ozsmYdhf`acjuv
zYGf#<JEDZ-+ra7d+T~rIpMb1v%@C_ko6nB={70@t2YV%nJe$Y(+7;FIIuD{$JH|V8
z&AcTe^>OLX8tro1um=%$^m{PKmaIuHLh=K(E@AIQq~H_7itrMZ-xW5&5{SXX-d8qH
z_nKO2M<w9P`FAULlZI*Y-XW%3rRy?d6XboZQP&o+oCU07dstaeUut--@W|8t{&tM-
zhDL{cT%M;hag&^)c^!94aB(O$_ykeu+ickUz*3+tUrdZ`m!Mxn!aWt`nzQEGzMtm0
z48u!GP8Sp{1-{}5_V40FJ;H@cScc8dMYjdIHw6b>oMd%JM5W!W$h<2y>>pyb=~H$(
zVrPLbY#w6L5Etq+2Jy^T<Pa^?W?|uheM22(9S{#0BS>?Ld?v7<k}b~ZRZAaIdcz!?
zfFlou*96KimP;Mp&Jv-(&EI6Ia>tz(E8eUhkVA^gauZpLLg|2sFEpscSeb$~=3p@~
z3a84OkX{)T(6;4@_#g$A6opy-dlmQo>4zc|2eY<HD2{8X*W-8vIGklXGZy4t)%{}?
z>nV+Cb)<nZ9EEj7-BUA)HY<G*8VsIR%E#>CYDUj9*<MB;wC>bzQhCm>MyaICCpd0M
z0Ggjdh!-35q<dmk<NfZ~rK&iCy5Q-HL}~FinOnbnn-q@wu8o47eo9jbDKzuf<U&*&
zEBsx-QqH5rH*;^P7k^V-gA4Jh#)2o%do{Z&=P<XaMyj14S=7GqI@i3`9QFot%%j4U
z3YMvinhDh#(dgN8U11pYBPjBI+Ym|Cc3Z!-)tL)XE_dyRDSNzRHENL{^W~&s#Ll$V
zTrSLGdkd7OC|hsXv03-6z#+3YwD+;^tJ~Cl62L5B!T#_?*7&;pwrgjNxhaB4vWzBI
zofa13?R%BG^~fdb^n?m_t=Quh?|b=NrPQrHrW4O4h~BsR?|yu$VDIdX&^-Y*5xWJB
z;U>9y5zK-hXFEpMOzDop){AX@sUnJI&8@=krtDKq=f*no<ONfn#RXqiHR4Y)Y>1mM
zW&g_7f`M>y^Irys(Enwt`M>H6aC({U0imC1wrW2uzzu42zfg+&a2$X7II=H9l+jQx
zloIx1GxZbhclbyY$l=4mfGOUtNC^RN_e$F{-&rH>*`N&f+J3x$C)g@^1M@I5)1~uQ
zNUf;J4Ns4mju;ZNI)dAt%lMBtu`~HFcJO>g0rc(dnk6GWWL@S_F(PN|hA#Zi`P&cN
zrQeR@GLDVpZt1k-{C#y$`>$y9F=08POQ(tBp5lYA-EXM$`L<c!^5|m)#r>^k^<*35
z)9L+Ivm1yajSI(@%5+L^U|M68nSOb0wO9q6JO-x=z^#wjn)OSF6GKX-E~ugR#ECQM
z$@oZU&0WBaehF1IcI?WW;@U5uets`l<miyexA1Y8q`LCd_)0Np#^;QjNlwznD%bg*
z<U?EP=S~r2LN{GcJx>>>&#F6IxaN4Dm}{SY>y-S{#~t0Z<#wLJw{cgxYEH0sw9Sh4
z!v-0kLgr~PpQ6FxfEkCYEx+y=dmAUXlad}8NTE!IeCb9!ya8bm_lY@rh!yN{x(-m}
zod3#UL`mcP0i^?AiJ$*ue+tXCWHn%EgDS9GVJ<Q2@0n}!B3rz8a`zk0TJPGmhGkKK
z(p2=$BaRJbiw9PyPsfG3GM{44;$93ic)#W9&E-F+T|Gv9cSVuf;>x2E@gYz!KWm5&
zjU&%-p_GDqM~JJU!-MXhmleJQ9H2Qqqg5+ny|l3}8q_JHe-g&=NMrp>nnX>*S7h^O
zJ?YQLxT7BOU2dga9?5&u!hNrjbJZS+{(cxm_E5}edN?2FkDX3cdgDv6mJig7oGjw>
zQ{%Uy;SO5j>e6fk+z)-Dm1p;Tv*o9HXuWm&zKlLT1^so{yQc7seEuhJDA3iKar|KZ
ztE%f7<gTi|8^4Q4;(4TH8E4oTkIbN`rD#&&o1>d9g(nS@qx^Fpcf|8inE4!~Dul;c
z-^g+EKZ;jwxyg@ui|$k+ZY>@Ki$pJvv=XKc?fZE~T0Z{q`O(3DTvH7{%;;-pp0rAj
zyQMZV++!1<EU;2?JUT?hbuO5A=S<O`0<~=fZa2$<WbxwK>oYmY{pKDi%)kDT=r=+}
z(*H!xBo}LblO+Gmva>zY<@=A;Np*!k)jG_~J`%)8H^-T|4~u<g{Pe1>KRl1zW^0=_
za;II?Jz?%l>~KZWT@owSG9BA2hBp-cV0D;zd`7Q;-EMrm$mc00!U8+3HtzPclVeo;
z>Po~V<O^dle$9T^ADia!IH=!H8O@6Tkb<O)3aA;oY6i%f=dB-4iXG7uzJDpjDaX^i
zZq)L#7Oh^@axOJWcM8gRhz-oCG+E-?&|B>z11y{Avhp7_|7Ya@nrdVB^ixQe`@>I7
z4SYzzd49$$C%R$DF9@OT-Blu=F`^urgDm+==fx{S7)l{W_^&kw$36TTZN5>Gc9K|A
z{P<_gp6@{l<KDx;X?oGH{|PC|+sZTwr;VjGWc{r@IO)HsNGK+pR$d!4&%QVs22D&>
zm-#5ya$%;^x-(<^e&__DUsF&y;bw0ePYmhvsY<0Tp@UZ2FXK%Ljo#mIN^zW8JEw<C
zDZ#4Vdy~VH{Ob0t+A&WT_QDaPEn}4CWLW}VUoukamYlIUX{EHRY45>TvSX&|VZR~F
zpkC^d)clohO@H=5X<g-lUB!HB%p1?bcLDQh_v@{X*!>zYU(5Supd1qBm)YYI{X8ge
zTxM5aRQw`xwD6G(N!53=@vDjT+MfV|z&s2`tDLGeaQH@?|BV=>U(KnpAk^f|!L*r#
z6t`W~>U3Xr&{cYTDvmZ&Hq?DG4t-8KFphA(tcays#6CmzCUO1Qi0)!~?!A~9Cuh7-
zmgQEi-emK-g~#<sJ>f}^_R#zk_14Jx4$P16;-iAeUso3m!v!~si|V%}3jO3QZj2_$
z)vly?nRd|fnZKOhTvmxEeI4!&FDecWkTb6IGFR+7X0envdE}s~U&uP=^VjZEhMMHq
z5D9Lq+<<x7(=vzt#rM_uiEZg-T@(KP%CkY?tJ&Fh?VZ=+b(_Zf^GQ1<eRg!zlZqfj
zho4(%ZyDO$PAo5j^cAKZE%ucU^<1XP;eIde!+djbqxwJe8zXUN6lz?e)49L(`l+o6
zq)QP8MI{8@HQH$_xw6vjk+_!97hDNH2CscYCQ^RS+8$4W$`!ixs%ejg$Mj0y4YBEi
zNd>3X_3|MFPZY(ba-Wp{Vj#a1<&yO4H|=IYrp+pBHW-(sN6iz7P--YO9yp)-Cr)1^
zX#6!UG0rqpwtvQ%cxUGOqPg??Ed5pIN<2;c$MU+u6)d?eQudinkBRlIflW44))Gf$
zY^$S<Iz}eXfULC;7;7nZD0t7-NG(1$ut3;jI{*0(b3C5u_dUL_U)Q2XxcAN`pODwe
zERA7dm*Hs4z>s+r1h97Pa^3<&N1N@V9UE`wYj}7bH^%<tiKkSIzn--le=Pcvn&8n{
zTc6ura5uC+10E`x{FM6D1yxGLt&AJPlv5=$LL<o?hd7oLxQ80M6`E2V;v>lA>r+y4
z#F{_>N}%WBo;lGkV4A~})%$5X8yoxnJLP{ZSKJ$lY^yKZSbu{^r38y6O7EI*-?R4w
z6?X0+v1i13nM^jQAGgrZ$Wf78Nh`dt#7x`vQ~loMM8`}oc3tjdEcsO4?{XbWUm9oe
zqbn(@O50u?_pryAqE&dZol3pXZ_yhmxzmO{6sempmc_-LeWP^q$jA~>w)d7}bN5cu
zg20TTv4&VYTEYG^-%oy1(L!kAg1B*x8M9{hKdtUZ?E`q?4c}v8?JQ8vNv;#uH`3A+
zRCUEbwQ_aO8Rz$~*wT{NgBlsUmn-lX|Jp1e=hZXBQ+N7}C{wgi=t0;4CO*#nT6Naw
z@{+5RHI5Cz{y$DXF~?DcgptJT(VK+fXpJeTobo%jX9I=sw!^Q)D<gu?=M&5kSE_{F
z7S0w6psv5N-o9YLT+&@tn91)~7dIeIR7|tcTE<N)^ywpA#VSMI?{8H<quj8D^5m;S
zxy*sxRYjRETHxjXLS95V=s6Fv?GEyQk8-<%eU*e^J>I{3{M<0#gCwzw$f9Qkem`yt
zK+Ddeg!{R#*2CtMj-9OB(c!hP_zV#U>ILt-9GcV1<IuPZBb18r5aFuZdL}PVg;Ip1
z3eFt-B)CN}vCqC?9O~&N;XC_%NJ++t_@-NiUPoF;-4wne=;>UAvWC{23F@V1lL)Wn
zUEL_Ty6~w7bQsD<V1dB0E@dLxtJV!H`a}J`T)z+(6hjgMQk&8Y7mob?PpP^Y2TJvV
z#a2t!;@fqfM6V_50VNsiprGdTlZ_t>{Z=z0iW-(!Ls*8Bz54a(Lz%Kv53*qjsnd$_
zZjGljlMqKajl53UAd5ryKa&3E+w;HY(jE3}iig;134A2uyRosMg+Z<U<(U5fd)mI~

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_find_timing_test_small_s2p_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..035fd9389b60423fdcd7dd07f53cfbb3ba784d99
GIT binary patch
literal 6012
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
Z(TsZL^Lm&b(58NGsiLT%kRxyC`EUNuvJwCQ

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html
new file mode 100644
index 000000000000..00d4146d7dc8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large.html
@@ -0,0 +1,210 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash-List "Multimap" Text Memory Use Test with Large
+  Average Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Memory Use Test with Large Average
+    Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+    first item of each pair is a string from an arbitrary text
+    [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+    the second is a uniform i.i.d.integer. The container is a
+    "multimap" - it considers the first member of each pair as a
+    primary key, and the second member of each pair as a secondary
+    key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>). There
+    are 100 distinct primary keys. The test measures the memory use
+    as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.cc"><tt>multimap_text_insert_mem_usage_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 100 200 2100 100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the memory scalability of different
+    "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for "multimaps" which
+    use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+    "multimaps" which use a hash-based container for primary keys,
+    in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+    <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+    and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_mem_usage_test_large_s2p_tree">
+<div id="NTG_assoc">
+<div id="NHG_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: NHG Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_mem_usage_test_large_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_mem_usage_test_large_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_mem_usage_test_large_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_mem_usage_test_large_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_mem_usage_test_large_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_mem_usage_test_large_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_mem_usage_test_large_s2p_hash_local.png" alt="no image" /></a></h6>NHL:  Native and primary hash-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+    Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..51a3f8d61c1ee4bdeaacb30d74eedabe3a3b4f63
GIT binary patch
literal 6835
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..8af7100c6e7bfb4fbfad2e6b95d80a23ced133c6
GIT binary patch
literal 7275
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_hash_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..3a938c0bb0f68ffd71499685cb5a2778ade3022a
GIT binary patch
literal 6588
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
F{0kc_{jUH3

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..a992d8f7cfbede6789f7acba7d822fe6242c3388
GIT binary patch
literal 6778
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
GVgCiD#Th;T

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..63c0c8db797745c600d793199862a9fb5c3cfc9b
GIT binary patch
literal 7191
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
Pm&#pj1FdpRn~47cvM7&-

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_large_s2p_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..26841bd10732adc31dadb90a56da4aa3b8223d9f
GIT binary patch
literal 6535
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
NruzLm1-G90{}(enmv{gG

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html
new file mode 100644
index 000000000000..63ec4a9c9db6
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Hash-List "Multimap" Text Memory Use Test with Small
+  Average Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Memory Use Test with Small Average
+    Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+    first item of each pair is a string from an arbitrary text
+    [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+    the second is a uniform i.i.d.integer. The container is a
+    "multimap" - it considers the first member of each pair as a
+    primary key, and the second member of each pair as a secondary
+    key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>). There
+    are 100 distinct primary keys, and the ratio of secondary keys
+    to primary keys ranges to about 20.</p>
+<p>The test measures the memory use as a function of the number
+    of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.cc"><tt>multimap_text_insert_mem_usage_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 100 3 4 4)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the memory scalability of different
+    "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for "multimaps" which
+    use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+    "multimaps" which use a hash-based container for primary keys,
+    in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+    <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+    and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_mem_usage_test_small_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_mem_usage_test_small_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_mem_usage_test_small_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_mem_usage_test_small_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_mem_usage_test_small_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_mem_usage_test_small_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types mem usage test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_mem_usage_test_small_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_mem_usage_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_mem_usage_test_small_s2p_hash_local.png" alt="no image" /></a></h6>NHL:  Native and primary hash-based multimap types mem usage test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+    Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..d3eba9da47e21c1b2a8c24da7415846a0e43115a
GIT binary patch
literal 6449
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..589dccdefa9641f25d45258991b87ef802e9ee2a
GIT binary patch
literal 6845
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_hash_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..1828896ee5f3017d02890349129b8e7a605f3636
GIT binary patch
literal 6570
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
Trh-Fe2t;4U=xV`b`-uMlr<$#c

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..9334bc35bc7318ea2d7405fcb33edc7f9781de7a
GIT binary patch
literal 6419
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
TrB-vZwv+XBjV~8ovWxgHWp6R(

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..d7322f287a83954beeb0a610e17499585f6a53bb
GIT binary patch
literal 6925
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_mem_usage_test_small_s2p_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f20e57e555bb6e79dfa3a905d944bbf48613bff
GIT binary patch
literal 6569
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html
new file mode 100644
index 000000000000..770bae9bd648
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large.html
@@ -0,0 +1,212 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Insert Timing Test with Large Average
+  Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Insert Timing Test with Large Average
+    Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+    first item of each pair is a string from an arbitrary text
+    [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+    the second is a uniform i.i.d.integer. The container is a
+    "multimap" - it considers the first member of each pair as a
+    primary key, and the second member of each pair as a secondary
+    key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>). There
+    are 100 distinct primary keys, and the ratio of secondary keys
+    to primary keys ranges to about 20.</p>
+<p>The test measures the memory use as a function of the number
+    of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.cc"><tt>multimap_text_insert_mem_usage_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 400 1 6 6)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the insert-time scalability of different
+    "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Mapping Semantics</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for "multimaps" which
+    use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+    "multimaps" which use a hash-based container for primary keys,
+    in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+    <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+    and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_timing_test_large_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_timing_test_large_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_timing_test_large_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_timing_test_large_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_timing_test_large_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_timing_test_large_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_timing_test_large_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_timing_test_large_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_timing_test_large_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_timing_test_large_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_timing_test_large_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL__Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_timing_test_large_s2p_hash_local.png" alt="no image" /></a></h6>NHL:  Native and primary hash-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+    Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..55b0bf46732a19cf75a54c848fbb3fa84392989a
GIT binary patch
literal 6380
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..5f89460087a781c4bfdaab5e0a0d43cf3e3d4497
GIT binary patch
literal 7000
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_hash_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..02f5d0b20aedda7ba081db75284d3e5e3817aec9
GIT binary patch
literal 6460
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..83366eb3756f1c38ce1b1ab5f81b8ca41ac374ce
GIT binary patch
literal 6204
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b496b48d780558750b1667e79979d089ea52cb2
GIT binary patch
literal 6764
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
R4!({<4E4?Q%5^Ts{1>hLY%u@;

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_large_s2p_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..47196bff7f2990502e536c8632e613b86975a37e
GIT binary patch
literal 6357
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html
new file mode 100644
index 000000000000..bf9ff30b364a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small.html
@@ -0,0 +1,217 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>"Multimap" Text Insert Timing Test with Small Average
+  Secondary-Key to Primary-Key Ratio</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>"Multimap" Text Insert Timing Test with Small Average
+    Secondary-Key to Primary-Key Ratio</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of pairs into a container. The
+    first item of each pair is a string from an arbitrary text
+    [<a href="references.html#wickland96thirty">wickland96thirty</a>], and
+    the second is a uniform i.i.d.integer. The container is a
+    "multimap" - it considers the first member of each pair as a
+    primary key, and the second member of each pair as a secondary
+    key (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>). There
+    are 400 distinct primary keys, and the ratio of secondary keys
+    to primary keys ranges from 1 to 5.</p>
+<p>The test measures the average insert-time as a function of
+    the number of values inserted. For <tt>pb_ds</tt>'s containers,
+    it inserts a primary key into the primary associative
+    container, then a secondary key into the secondary associative
+    container. For the native multimaps, it obtains a range using
+    <tt>std::equal_range</tt>, and inserts a value only if it was
+    not contained already.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/multimap_text_insert_timing.cc"><tt>multimap_text_insert_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 400 1 1 6)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the insert-time scalability of different
+    "multimap" designs (see <a href="motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for "multimaps" which
+    use a tree-based container for primary keys, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NHG"></a>NHG, <a href="#NHM">NHM</a>, and <a href="#NHL">NHL</a> show the results for
+    "multimaps" which use a hash-based container for primary keys,
+    in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>,
+    <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>,
+    and <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_multimap_text_insert_timing_test_small_s2p_tree">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="multimap_text_insert_timing_test_small_s2p_tree_gcc.png" alt="no image" /></a></h6>NTG: Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_multimap_text_insert_timing_test_small_s2p_tree">
+<div id="NTM_assoc">
+<div id="NHM_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="multimap_text_insert_timing_test_small_s2p_tree_msvc.png" alt="no image" /></a></h6>NTM: NHM Native and primary tree-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_mmap-
+<tt>std::multimap</tt></li>
+<li>
+rb_tree_mmap_lu_mtf_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_multimap_text_insert_timing_test_small_s2p_tree">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_primary_tree-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="multimap_text_insert_timing_test_small_s2p_tree_local.png" alt="no image" /></a></h6>NTL: Native and primary tree-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHG_res_div">
+<div id="NHG_gcc">
+<div id="NHG_multimap_text_insert_timing_test_small_s2p_hash">
+<div id="NHG_assoc">
+<div id="NHG_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHG" id="NHG"><img src="multimap_text_insert_timing_test_small_s2p_hash_gcc.png" alt="no image" /></a></h6>NHG: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_hash_mmap-
+<tt>__gnucxx::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHM_res_div">
+<div id="NHM_msvc">
+<div id="NHM_multimap_text_insert_timing_test_small_s2p_hash">
+<div id="NHM_assoc">
+<div id="NHM_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHM" id="NHM"><img src="multimap_text_insert_timing_test_small_s2p_hash_msvc.png" alt="no image" /></a></h6>NHM: Native and primary hash-based multimap types insert timing test - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i></li>
+<li>
+n_hash_mmap-
+<tt>stdext::hash_multimap</tt></li>
+<li>
+cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set-
+<a href="cc_hash_table.html"><tt>cc_hash_table</tt></a>
+with <tt>Comb_Hash_Fn</tt> = <a href="direct_mask_range_hashing.html"><tt>direct_mask_range_hashing</tt></a>
+, and <tt>Resize_Policy</tt> = <a href="hash_standard_resize_policy.html"><tt>hash_standard_resize_policy</tt></a>
+ with <tt>Size_Policy</tt> = <a href="hash_exponential_size_policy.html"><tt>hash_exponential_size_policy</tt></a>
+, and <tt>Trigger_Policy</tt> = <a href="hash_load_check_resize_trigger.html"><tt>hash_load_check_resize_trigger</tt></a>
+ with <i>&alpha;<sub>min</sub></i> = <i>1/8</i> and <i>&alpha;<sub>max</sub></i> = <i>1/2</i>, mapping each key to <a href="list_update.html"><tt>list_update</tt></a>
+ with <tt>Update_Policy</tt> = <a href="move_to_front_lu_policy.html"><tt>move_to_front_lu_policy</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NHL_res_div">
+<div id="NHL_local">
+<div id="NHL_multimap_text_insert_timing_test_small_s2p_hash">
+<div id="NHL_assoc">
+<div id="NHL_Native_and_primary_hash-based_multimap_types_insert_timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NHL" id= "NHL"><img src="multimap_text_insert_timing_test_small_s2p_hash_local.png" alt="no image" /></a></h6>NHL: Native and primary hash-based multimap types insert timing test - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>See <a href="assoc_performance_tests.html#msc">Observations::Mapping-Semantics
+    Considerations</a>.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c2d87ecfac5adc071b18420ea78d68c63c0e79a
GIT binary patch
literal 6456
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
FKLC_*dRqVh

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..4af78faa524c40ec973bbbd2eac89943e90eb490
GIT binary patch
literal 7035
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_hash_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..81d5839044eeaa1a6cd014945ac8a5afe1507bdf
GIT binary patch
literal 6547
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..368f07350c2b29f93c79c73f14c40527832deb56
GIT binary patch
literal 6111
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
LcpZ1uCgfiL$5080

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..40b5b2c43272e937b0c45d8c204c5dffc8084aeb
GIT binary patch
literal 6853
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
KwTrc!WBv_#V8osP

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/multimap_text_insert_timing_test_small_s2p_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..99f2d690fa55e92afe669ce7d168c72834da8355
GIT binary patch
literal 6430
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
Bi=qGk

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/node_invariant_invalidations.png b/libstdc++-v3/docs/html/ext/pb_ds/node_invariant_invalidations.png
new file mode 100644
index 0000000000000000000000000000000000000000..bbd91842ba8856f647a30c33d582aac068f56a11
GIT binary patch
literal 32276
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
UQker`+p(17@87MGeHi$^0Pj<K-2eap

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/node_invariants.png b/libstdc++-v3/docs/html/ext/pb_ds/node_invariants.png
new file mode 100644
index 0000000000000000000000000000000000000000..b375f5168d7eafb550d5f93adb95a585fad389db
GIT binary patch
literal 16553
zcmd`6<wMj_^FEHlx**-5gwoxyfJk?D2$IsUEDh2~gP?RtcY~BP(y27cB1lR|NJ`1~
zaNqCy^B4S{{dfZGYtNi>=FH5Qx#oIBYpN^YVo_kBprGI?DavZ2pgiD2K|$rlfPhbi
z7+c-JFI0DJ1!<I;FH}3=AE>RAniL93{X6U%3pDUQ%_~K1H53$ICKQz5Fcg$4@KNwK
z3W_HW3d*iI3d*x|6cloo4{ch{QBWkAm1L!KeN6YWCCW@*oDJpjDE9P5vUFIQYpbR&
z2&->Gm3WQRM5G32SV9CI!01&I<RPQ!y_T7ZlJ7}a2f1+QSkbbAaa12`<HDlNEfOs2
zGFKL=a*^w;7dd`k#IL_DUi&)}njRp7=C7&(=8gRhn=US=$<6#-dmlmwf>EF}D5w~c
zdCyS?Ed2lTC(3_59VHfKU11cH{_lVH4{rQ4h_L?O02GKG20^6WXZ6zm_fhZ}&*1-w
z1Eb1hgU{-ef9{a|-y|Uu#58!w8v>xL|C=V|UI0X+<$nU4a!_2qZAAj@-LL4sB801m
zeA>eQZ;1H`G^!6K0Y&-0=fRSUkbaAlo*B;niOgb_q-wsTMM3$`c(6G(LK?hEXpS@O
z{|))}9CfX30v{FSUjF^&HKS2n4H=I-u>U({aL*PdK_om71Lc1k4^ak_vW1iy|4$@L
zBUsq!L<R-rf9uwzlcdteeE#Eqx~h8(R+aS>g7W{AO9UqU|Ai|4qPO4v48=cKYMsgZ
z8HIz2(I_RUZu9r@B=>G9Vo4D*gcPh*zXz$UC(@skl%$fzB^Geyq2gP}4mKJe{Cxc2
zSCWP}D>JH?RGu(c)7mid_t9V+r9sWhgjoN(+Y96@N;y!~A#}r{@d;Ux|G%5orFik>
zO?h#QDjJ|#$Z~4MsDy)#HkY=9lM=!MoXjZUqXCQEN4Yxj;$nLL(S*OwkLB*56)%Rf
zDf}yh&Kf-jlx7k=<cF{-`yYc^Q@D(8QJ5qNn4ZOnva%>3<R{kI10<BPL1I@rj{sE#
zuc1>>C2aE7ND^~+TPY>RESOk7)K@1Ue!i#iQAt?9^H(}BSwpaQbCSq}q{WEu@7<_@
zG|wBDrg8KoR!1+6p2T+dBFDGj-7*YR3=+n=cJA^<T@flb+L+9cFQY^>c<f{CpO-ft
zH<62U%qrY58h1;n(D6Y#h`+`4G5lHP?sR<PPmrz#&KXvrM%L)qC*Q)ln6|XjHbNLO
zO)#uzF0}En1EWJtep|pK3)l}F`|rWs<TQEO)!$~yX{kIVh?h)0mvhs*)KyNow|j+I
z0?g81=_RRP?`D`(zN>m14pe96>>4b&caFH;3zRdz;0sVg6Cq8;7TUi8``zlpQ>+gQ
zhRL6`23((48@DX`9d@>u`k#jWyIzfax@++6iI~y!6YG1k{>>cRVqvwxBuSN;#j{^Z
zdvy6LSHkD$=hfL>X=y2$&ySAR{7}>5l$aiAL$Ax@&4vbkQvDQxA2V1`n!3jjpR9@W
z#qffD3$F2C0%9o1E0cCFwbcdD!w&bu<<6jgC%Nt}Vt(hU;d-0B;n)@8&m4G4(MEy$
z7}E#0e9s&Z+g734`iwPPm)ldC8|a{7_B7x$!KTbLT~}*vZWxK^u0~&{$R`6PAQaNL
zEYC05p|<jXDc`H#0@Gqzmk*K~aGpW+of6TJ;6lB(+861dIZ^S)>diC(7$F=&wJiUb
z@EE2X*Mk%gf2JIzL8bqOFMxy2<>KH+EIGH0^1gP1!%GtmqUc_NV97M-M_<Zf`473d
zj$&OZ9xN#_;BeRy8<Qe>+PTH;7oRODXPCM<N?j8K_fSC4Zi0{Ll5;C$<QzAOoL7MB
zTs0$97FkivUc4O8ub53}%gQ)gAyTjcRvu5t@*D0k63<6hko5AMecvGx=zG5Twk^T*
z1xcF|odxV072mFUc47~2B&jvcByI@Xe^;)0)Am>nlav-u1tY114s%$Dwe;-I`cT4|
zfv!&JF2%1;5L!LjNurRLWqD>6(wKU-`DqtcI(An>!f_9`^x%#}=VX=+A{dFnFBV1=
zrZ*_iHfGHqNIN}M%H$vJ@}K3vs>xOhTznzQDV(XqUW&dy25J}RiWlO@fNf|%pZid5
z#w0W!+H20Hg$q}8;Wl%G<f06RhAtl~N_t~#F#Q}tZbKQ<UTna;W%h|91+A)<W%ZiF
z+!{XE72{$TJG-DY6T8!(L#K&)kVTtHj+h`kGKMMXjA5{7(9Kv^k8S+bu-6t^`=o^p
z`G@%veuK1YAR>x{&!47{USv?$o{6OPv%SM<i<EQ#rZy{U&&>#YHCe#kQ5-dw@LlCZ
z>?IE?CMt$1!O;%fFxYmI0(Ff?UK$N@_jgEQ4G*#B8+(0mc$i|ig3sOUb9K6tE$W@~
z{Pjm&F~l{w%4X?vC=Cz8QA_tNycg+z^JnO(|4~S5yvYUKLpmWkTfPw89NUfLh^E;s
zS<epKS1H18c{L-0Q?u!~aN1qh2d}xsK}4b+<*fDI93>UeVb3!g;an8DG6?iaNF-7{
z6gAQf2Zj}F3|UP6a0GKBbfaK1mq?$f8&-0b<r?S`DayWltcPQ*JK$i_=AqOiez`&H
zuIwivE~NS+^P|CML;StDkAY`b3*G<D+E;F!%l)^At5aVtyX31_yufH4zt~y%^)+|z
zA@)@2xu=)c`S0%y#Z4^us2D!<G>F3YcG49DoZ;WIdzp+MVAsfSZfE_FcjDv}X1t^t
zaL=dK<K-4uedD2eeR`TqdESYe)q6}3Ns6xSZMHqHZ!+IR($8}~{Wa4%f^0l#Q9%O#
zRqZF?x9$C@Mv=z^M@r_4$l<u(=t@{cB<e2&Y?N8QW#Vl~i&i*dpIc1ZsoO*FyrVCv
zL>P<d@Yt2Iy8fw2auZHF+-Q@@n32KodR1r7sW*fa_AHJg2=^?U$T*ttHfet*^)$95
z3_XHVEY=iwJXXIsoyc$0P0^iYY<a~mb89{~=VtgQE56Sozfzhv_w;=Q4loA34?CN8
znA?o)i)Y4dcoH9)@h-5dw63c=a>U6zUj(M#di&C~FYpj)NFN^~<T;_4OfIuXoCh54
z92U4vmTN6z46-JLM*42g@I=|HW|$=ZiU6nB(kxKrgSaMjub!_RJdslD6|AlJ@b<kJ
z%t$1w7X4THRzm>;)SpOr7yc%Q2cQ4>4Dp*%i_ry5wE?(AJozY&<M$6Phx5NM(v~;=
zY){eW;v`g{fVD#2@2qu0*An}5S2~Ksn-^=%$3EnB<ioM-lqtyibmdpV){_X)Y2-K{
z6nZp2V|ug@#NhDMT10X<qeuL<AGQ(()Ut32f5^*w{p2-+sH1&@6lt^3D&@YP`fqz9
z$Awz6Ztue!b`K1lL=d`^7EjLxs>yRP2#$Td?8E0$Y;iK`j)S)ZWE#9a9hY5a5zrfb
z!I&$9pki#$@Z6H%8&q&W8Z-<^lT;EY>j%#A`!EZ3Ros>P{CKNU0}8j{>VdlxSwe`F
zuIx}0I7}*7xC)d1jNYmuBUer4#C7Uaw_wXLH<cD8WC>c*IpLi6FYLK19y8QxCNuEw
zYUE+(g{d<|<6$a_Yr65wDXZa<#mF&-FyD(D5iw~R&JcUVtF+ph7lOH|`g?GGN{P&&
zR5I-9*WlvYnxM-bTR)LQv`@aCvikLa@C+uIM~dhZeGcP!RI1B>hy07eQvL7p@^XFX
zoytX9hXf|8R@y=#I+W&TxFq{>gz)%SR5`=L`&7+%U%%E_HEY58S9-+5?8LkQex}cg
z^aN#!H2E#{l)che-PDv=FK*a9{f~Zr?#~)FfT?@l0gJdnma${%Z0<Z{8SN1k5t%|g
zc1iLiGTqo={=eZVEm{;At>mo~6O+FOvD#UEuj1!3+Mafry|NJ{aZCp1Q5fN<_j`l6
zv5)%7K6?96tE?K5sagsJ!idT62d3O&@YkB%BBsr0$3()8QT(OpCv8^ekr$YCXS@9t
z)y8$amr1#k%_%%tIZRghuQrGTEkXs*Kz_pXz8`5gYn`|kxq3b05tJ_7xH=K;idACN
z61$geGzS8%p3vuJsG^@VGO=$1SI{;k_T?c#DDUZ(Npu@0GLI8_MF&KLnX6!e*?;#2
zv@4nMW^~mH`PW`Hx@CQ(pe`2$NBwqHE4in^_UkFuewYax3AWB$l!5QlL|JL&*)X?h
z5|AOLOR|BWGxqT_iRbqeb2q`O!Q;V3(N_7|uM&4Jm*o-HrZX6xS@#!T<7Fm^_^JwA
z#x32ZELA!yENZ!xoi<58jvm~?a*(~wxXw~Vwrw+H-fVAr*DTItGpm8aP|6fLs+VTA
zaMc5PSc!BmiO+=2eqGT&+}f;{@933$4}E#<P$2|{O6Hv{Q_}{*3Dl-r)Na~+zW$9L
z7$W5g_e$to4TVaa<P*M%U;kbkh%N8eJCE?f`fbutE)JqYi9?(h4N8a+G|`9Bov-g!
z0nMshe?=*zOb~W+3X+r|GRnmM6S0M*qVD{Vs0vD&pWl%#W~b=rKV3<q`{MZvWZfW2
zUy_*9MkzK1V^q!U$v}<ca}H~hH%r?w_$*x-2nv?V`hf_BDMH%)TaoAQ%LaHlDGk@)
z!;i|aLTWHSoxySgugW{r7Jh3vlYwaQBAq4qL-1FF3SKcaXFG~8Nl$PG?lMURV}c3+
z=bZyofPD6CozaCTHNV)|D{O`kNh9!u#^?5&v|w}?kG;cVR7BG3nE@{6Ozt#LEh}WX
zBd+CBT{88yEk3v?BjnT|hh5hPKia(=m5*|}7FPH-q_C|(;ekikgXDqvgIxE-KCN1@
zn8c{lm~&3;`PA&E>1Pzwq_mS*sLacQ$kCVVTYHA;YjyE)$Os4D`pndA_T{V!{=~(E
zjaz3p4tY^n4;EyuGcHkc6E2+4*&9Kv&xp4-SvFCw%S%*oke0<y29e3Lhmdy0Iqzx_
z=(~RT-njaVEJwKN)p~PLrWg8{AB%{r=kD&fjS5UgAEQwzFQ%n_{hLn~EK=39Ji71r
zxcKZ6`WtV~vej}|@kja0C6P7}gkU>V(gIQVp{`}wH#VhC99_eWGpa9<zWB2bWRX#K
zF))NUc~_b`ftU=z<{+Kt3K{5#Gp#DZF8BkBdzbchjX2UeOl5`;n*6z9ebdc21LSj6
z6b9r)qw<E4Yy{iUlFo=i6UB*()6vD8ynGcma3CWI)8-I}(V&EcM0en=Z?CtegN`I_
z#S7D_tR86r)DTk)t7F(gjfu`ysN0n9YS@!jU=N#gD(!oiOYPnowGS4Y+^kK*=X++O
z=y(J_nX(yybGV{^KaU)C4LF@rxYd#_qymA+O|y8y3fkzJ_Zv$@P)@7G`G-;Ci*mIP
z5SS|p#2v!ohOPATX)#Xk1KJKD{<BR`Ri(yq?3Xa+VW_&M)3F)T&V0qH_Sn*Tx^J@k
zN@DL!_9|t%TURv;a&=fR$yq(#hz?3aMHIwL!Q5g>hH#Y$60YmEuf+z@sVlZqZ3*f;
z9%VQ4{R7IgTC$!~cIwENttqWqpUQAiF>o+`!XM$Gft`^CtCB}!ZbLsMija7A-W-pa
zT`w+>gzOYPJv9p`H*=MJ&g+^P+M^GWzGjC@H(%n&lvipRdzjlt3F@@j+1WcA>xiIh
z<bqkyZPv<7$#Ku={d`@swN)t0Df16X(J-7+QI>5QO1P_pT@5XMdXURV?ocec=z0{7
z`FLQBOxt@(G&R$lbvD_FCSFZzA2+d;^i~ucDiOwps8eG&C4#|8Hnrsfu7+w?r(%)8
z9}iP<YTx>`tElp(ruHXO*&vuOOKHwRK`83hM!h!G0~Lu9c~)p9AHg?a)Q*Y4hmxdc
z(R~%>r8A0<a~tRObOjZ&!ZfYj?knwX?T}*x?mOLR2ax@#Kzu0EY<4tR*6Q%$7Auv(
zcZ=UBNo7aPZj!WT?yC5S700CbJNnd)Phmrl44^D3`B7=7Mx~D?n$5*zj%ndVpxqv~
z=&<C+qHVTo&>UKx%W2}|YO4$E1Ez|CXs}o}xDSgEkG7YxGz?+kM!s4X{i1Yd?4%gs
zkvo>LSH(P_RucrVq58#AXji|*ld52xhnP4z0#)zbx|1U$;#AQhxV`C3-V%b7r(z6l
z5s8U{h}@fJo^qBw2Kb_M>>{7AuUh3fBc}?7zaqKHD<Y#1$x`SMESsVkwJEBPf@c~g
zM^$3SKr7j1Nc2_!67mn2!c~L43<cqRSx_C-mQ|3T={`L`)LX=g(Wnm0s|`)`eeQiY
z_bTpnj*)je19Ib&(P<~?P&?FO_4hPv*6RK_E!N5V=?J)O%d{EdRWxFTL;$%IeEKT|
zM3HCkmDEO+oC4nJ=R201xOi6KlG<RGMZ)$@q#y$7{Vn?tCOJ<MXOF2wu3{-g5hBSB
zR$Oi9AnFEcjG=jTLC*JJu*i<3x&peT6pbL5*P);>Ef`$ZkSGB{wLHU^!N#znSUKbO
zF$8wuD9a_JDsVLr?tmf_y25n?N(7lr#;1lQNid3-f?Jf-lFt(XWTX<27_miMmR`Wi
z$*^O25~rwyAs_`d9G20{!QlEWwc1SKVwaU-#vzGI-_~%F9m+@0gR}}(PKv%SkI<Ff
zXP_U7>{PLp+8*^if>48p9_Ia=WdK1zWA~ey(u)}sAekQMz@gX(21rPU8VQU|?;hqr
zy+UvI$SUB4V^0sjg!Q#r?=Osb&QF4u(S6M}f3U8eX-uUvNw*n>6Uw9!M1g~jW>n~O
z070c9e?@Uf4a|vr<53^?R&UlR8*J7S+gT@Ytq#7}`F<W3xIQthN!4UjJ|#v!DChbU
z3r(#-+)KfoRJ-s#T%IE{)hwL?%69)<5*yceFqp{#LH!E!ol_m^qyjd^$tZs*22D<K
z4GgULHWs+x0dyOpuw$wHB1Xk50u5vk5nxUnTVGarkXb(3%@Ot8t8Piou%Pe)rv$Ii
zYD+&&xe_xb|3ULJ8fAGfN$@=*DmZ2+fzWb)r{6`5S+_Gmo6=Nz^A3xN>MnNgU?l3U
zOdbkq2kvr74-fki+I^hp^t|}}ogY5V%C*Bs>$GS@d;irpnx{4<ry;@2z*Spcbi|d?
zX2_GR)d^4uAxE1W7n1p!vIyo~HTlNTv3D%5q*!30IGR)tG+>EbW?dY2p)IUD-;}+i
zsPq%P5CIvYkC?((Z>Hyq$RanmeP_<Y#WUY_{TZax)^sqcdOSVw`<-l>Q6UMmg186y
z6JCMes|q2Aw1yyq8k(Q~8#DW-ZQl@dcfFF*^5-0h$j#2SZ#e)pf509$T5(Bo%Bc3s
z`vrd^gRis|QbR}oBV_blo23|0B&o~~V+D!J5shX4lZmG{KOc@#ro5Z%#(ygQTW#dk
zmEvYzmnKG39aUxjA;{9L!Qrfhx4eMaEwZXn&Bs?SDONzk&2HAnnVFea{tgN?;uWFg
z$8kfH0;CAAPzlLCugdcZ6_QFV0$YFl9Un1s9=yyf=4u!OQ>#ii&TV{HN+ZK+hQ)W<
z>hq_7tj9F)a`VXScK%}_jP!kmjQ_7}@1m~YN4OSKU!|??=4ww{J@-<1m|!>)QhB1l
zQe~J1kRC$c?kWjf4TlCziZeeRt^{0|3=k`;7^t`XyWXBE?BsOltynQ4+uzwKUnA=D
zELuNF)K<e{<5wMZ&^i7b`cV7seb-frcuZfI77yuE1UAATBXX2rI|^la>pkxu7&Y!m
zXazuMKaY-i%u>9gL$6+AS&aH-rt`7@<qO~7v)Dn|zK@@a%w_pLR3OD#ddEgatwR&1
zvxyWp;irmg@Q7Dd+whGfQEKt*GC8XGXxgN*{2{$D7?vPiZ><UHc%K7W*@HV4(xRw%
z8KzbtGoL0emf62U4C|@#MhxI8x0_}`xSwoI;Azt*`cdv{4I}G_4$paM@!TCV3*NAD
z%IpdFzMLuH-8r{yS68KUmpfBh%m{12?(2;mPZHpsO*KwUeNFV;4hp%%*f@c;AXfAR
zN)!Zhk6Mkt{DN~B2#!#R3WZfSX;3u_#vV=?5YMbux+f7&;plyl<5h6i(Zl4ZXY>~z
z*%w^pc+2?IQ(!wu5*0ygD!i4{Lt8%TLrFGB6_2&X6DiNimbevfO~-K3jXN>O;E;ha
za)X#j`dc8A`X!T5a~#QXr;U%0c}&RI8TaLpJ!Q*xsoDIW{T9>|o+ZkQ);etITk-s3
zwcIwfD9=0&+ybsKjo-f~YTAg;$DwsE`f;U-5mrJ|7a{o?QK(>Ou%GN7R(MHr4*M7$
zFPMCKGi3$SP7rpYk9bm9uAt?}qxA6$IpOT$yRCA<NL=!>k00y$lipvR)8R+kwj>b7
zR0}+v>m)4OggYgSyk^lKL)yW$i6sy+)>#12fX^J5*@^2q+Ao@>?0bc3AI8rLwD}X*
zJka`*@OoE1cO-DGW*gopSU&U^(ctZ}V;HKQelB{DIrUb!>ah+ZN#oVi>$dtYP$hg`
z%K-@^%%MkWQavNH(t8$I15{l6en+tLCnSRoCLk1gUK(thjQt#)sha$A=d~mIHed62
zmQLq3m73X7_bDyLBq}QNyH-3*`=J$54e(e0<UE{Mq`hW5P5;qaUE}l4mMsU`imQ)H
z!$yH*1<zHJJMpbI+%<YYBxrv4YX~X4(&i~KPK=>Qm5O31qh_bQy<1VyYfHq;VQnjN
zn?AjYvy4y0VE^Xc*fWk`YB)bFrSF4+NjJUdu!&iG2sE$&cVE$0bYO>B(NoZdpac`R
z9VY)OJo8cCKo|oadqi8Hg7{sHZRcnZlZV9WPfhc7hoBNHlF(pwh<In*!*YLL%3SSM
zis{QRTD-BLd4n<Mr~LRTr%yUgmRHx{wnGc)@)WhuC0|N>cgmLK!M@~gdr@E5$z2Ui
zy8?~OE{|5agYHISza}wjL@4ic1N5xZV<+)noPM)&W5Na^;_p(cyR9sZ<P5&6%X4VC
zYod<h7}Um>@)9=yfMZGc;(vRV#-^C%G`?RSc1u`MKK~j=DU>4~;7j87L+rCXf_{HI
z4ZWMKShetILh&}g>uJ!<AB^>F%0HO62XEXyrTEWg29VI;?e)bgG){glJ~=tD(>voq
z&al4|iD@}CYu}d2(artD<q;BBQy*Q~-Zg(k>9O%xLtPzeOOijzEFSdlrP*$zND%G$
zE?wV<|K3~?8b&fL&kS-qdeWUXVMB7fa@#_SgpanUKtRlnR$oUBTeNC)xpmUn(brLK
zz;C0pGj6HsL-p&oKMgpKriHdFbZrog4g&p}Pu+#vR}4jo!?;a5w$HyH`3hT<x%(~j
z>e3EQ=VLWIYWsLBH&|qjXcu^RwXzP3yuW?O$<c4Ma}8K{LqFhs7l;#572T)5$hEkw
z8zxB=l0mPJA2o5n;ZfJcQ~*U|!CL4|>`0A2HESX$32JZX?>yeijA&?R5T4VYe+FQz
zLX6lwvZCFUx_CxsKiiIDX<Bg|i>Yt7gBb751tOF$Th(4M?lxBtM>bj4D%#sR6aR*r
z;O|e09H3LNnIo~LRK#~%=I5;v)kX*lg0)mP2sY*49W<+cOQ{|imeOcazCT4d%)V;>
z+p5UT$(LU&tA3z0)IH%g(X;WbXFe)R!SI|#{`NI6enfdNh$r(kKRlAfsm1$(GPX~i
z{i09)`Nmg0ie|xfM!ZU;Zq*ed+j$3f4>K9^x`mk$5hE(HAK`5CiyV`916OI;kr}t|
zgKxD6>!Z85_@nDz@DP&>R1l{h!sSsz;062H^@a|~H{&&TkJazChAf(#-{+je=r8xX
z(PedBhU+&I!Im<pGm+Y#IU;4l^{g+l3SHB&>>LZ`k)D<BmW{w=Jx6C&vywutgiqWp
zuk&pc^6gY$udLbk`0VB>XKHhBGiIYq{qhdZ!kt?0`|FQ(nSqL;otMTzBGbF-js(L}
z=3OnAjuI9+$C@<OA##6l_$MM~x;tm`JD+{QCnKf<#}Sb;AO9DJyk<jNS8}Riz|aqE
z2BA0D%gtVQJuwv*%b+t8w$waH;%a!OZ+iK1N2z%NqH;%djJ3Di-W}6p6gbD6BD$>B
z`e@MN_${$*@>Xy~lcBHzY*f-*(Y&Mu)A+KlsHV_1K$@ccOjsF1G`Xj1L2}a|Al{d<
zRR_C+;~Um$c~^o%YBQp}#ZQnThq6hp@dqLzaA)#Ub(7(z&0kT%RY7~T5~c8+dW%3N
zZ~KId3A6nMCbUtfy!L<C-OjK%k$nq&g}*PN-i~KdioJcCl*V{*SC+Tx0O9YPI3kIK
z#I7b;QYQPMJ+9t-yVfkzbPm(|_vjb^o*OM$!MzH{k$cQ<_`gpuVB;}weA^GCw^X3^
z{4ujv`OrKGmmpHmzFAKCt7=xZvpe0xAT{5Abu-81R|+#W<gUxc!kARrXA6{X$VLg$
zci>(v$Duw(4;MRQ4$F=lCY}A$FIjUdf@YCaarBX27}i|cD!yhACss(fV=!{aQ>7A=
z%#<WUiVGLj!zrWm{tcf3bY!kPh>uib@j5aztOjHJ6c!^wqJ-13{D!O<wPpL2w*W^4
zpZlGMR@O{7@b7)OFF2A-m6W`nXWG{L<4C3c7G9TPW=tl7%3v>uVcTDgSouqb7fU|Z
zrr%q#E>e1VcEtg4jB%>6m=8?O8ip~J>OQ;<AW6u2rd`)qD7Xn^W~0YxT6HP%%LrvN
ze{xyvy|H0!&5@)G%3s)P{Z2-axs?1>o?C)B{z>E}KCf)7^1uX<-7qpaH&k!~Zi7CP
zMg41plo?MYe%2uLl1XT!)cHiCqg483pgI+2t4*2SvJe3$52=tMO=Qay+mzk4+oAK8
z_TuJxUE{LN!Yz}>aKD90<jm-CzXdxgOjGO<6YdxHPF#Ulg?x%NNJT%Mc(E{4Jr;wC
z?d7Ih6GP(6@H|G*8EiC-qN`PpHzTKZ`{ElOTr1F%Ev2PiXLrk%<9wQMI1H~fUv9$r
z3D;Vkv+8TjghuAZvkhbMa&>0vw(lbGJ69KQ?tLLJ7b7wzdQJDXJUzorRADQFTRmrn
z#G2-Pilj8+72>QJn<5!$)zXUB_farryu<938hK$`c}LujKNdnEJ2!<UP29rgeZDR3
zr-5-{s&=EGtUZ$;;>(_F7Uo!UnW0_F*!aNXa!kB<UP=ciV7g2i`+k?F(5DR578__j
zwSHP|iBNBdZA!F*odm`)1iYYE%2_*lLoaA|P1O9zM&z$_<MF7Spxb|?#|S&IzoHq!
z>OiAX`5L1^%$*yP<BzsnQqfz0AvkgnO~@Yf#)ADTx^KyUVB1DQOYV_JYj1U3zl~oD
z60IqL4AV8;IwDMXJg{k*xy3C@LwZIR5p!0z%QVa-8UI$d{p6WNU^<_F$_s5_QZchq
z`_+v)^K%P@hgl5ot*RE+U#VF3_4LAi&bwD9x@3$Zzfl?b3w-Ctr<xu}RJ|MhwNoQx
zx5r5k+2s6r{TLXQ$>l?s(43Rt+*0G3rBAQQO<$~Vas2RjYunYQKc>kn-I07cJTX${
zvH(@BXBb-@`Z%StDWUh$Tzw5LE0b&CTl23neU9pQT&0(35Plhe`Gjt*PVH?-*t=A@
zN9W_r8CjXAiB7h%-}qKjbBjqGuedlc`G4Ji@;)C6x`t783iB!~H%Z`TCa&>o`pYr0
zU%Q!f8n@w#D73F*T#qF69?NJrToAQNJY65W88y1Mz-BG6)j7e{+0!dq@w%Cq&S}BM
z7n(UG&-50`&t>+xBVTS582nIkH2G)LbgZ8@l!H-p49onDoBdWgj=^!f{QM!kYHC07
zTUSwbax#t)PJ^aXfK9rQ%ExLdDVudYz!Bj^Nu-(^QK+c#DOdNgUR!_Jp=vba)DGPh
z|Dw=Z+$OPRr{ISz9Q1+MRFr7QHVeQX&6XF(ze2Z?IPW43^PO_OKKv7Lcv%>g7<i8W
zD<w7-X!)JP_S~-v>YY01T)*j~OI9F1B%NrN<%cEeiiQ%dl{;e6@Y3yW)%1QZUJA39
zc!=7vT;f}{`W-nNr|JF{T<i>Zjsx0`o3kgiue{qb0^l;`dwxED7k+&$DLFnoueh5S
z&L@F8hX7cscho0~^Eo8eg8|Ptta85>k6Zbi*g?31vR5W-@jOc5$`=%V#J~T*&d^JS
za-#d58!_gpF6Z1CJskGN^t*2OjC$;^fy$Xi`*Q;McO>Cr3;yA0H4Fbs_H$_}eZs)-
z8WS;uCqCEy^u>BfQ?>i$u{9@|{v$dM%n;do!8Cth(ef|wCxD-s56C?eR?62a$t)Qo
zojLK&-|>1HUF4@j{%2h4(|mQah)4beC$Y;KT%dTWA04FMET(`yptHvLZhE(k7&I=V
z&`@`miD|=cWuMbu#o%q$RxYtnGPoX>R`z}>8he7NdjWffRUNt5cQcybvYKg!|CP!$
z{ULjDs?>=zqmBJSp2raPRVDITE9I%UKZ~$JtTmfv%Y~}))bCWx*?{G_b}y6^_|6Q}
zGuIno?;sA>m1Mi`(usLluxoGrNLnhmQxmFIR2n{Rf5aF0&t}#n?nKxyq1^Qzug0Sm
zUGb>ggbUzbG#eoQ^1LI@73Rn>*%NGfS=)WZn4P>-pPK0r5Fg~xc5YOViW6;x@rLK_
z!2`^7jN}VgGxdw<?tuiY>f>d3u{DsDqyWP(bSvT%EMt7iXusRpffm->e`A!DPl%;F
zYbmrc3gwf%B>jZJp&J6yyTs)|E+(h#epe+#;ajnQwYQ4Z{{@HPRcgf!4rk(fu>k_?
zXBljwaJJ3!tsHIa_Mc<WI9!VUa7mI7$g({9fv;1;vqqM=ce-rr@J5`HfjX+=85;or
zsMvX!=;`*BEZ6(&%~x-Tx~7Kb4diTartt>%rygn3UMlApk-1oq-|)3fVnd%34F7^B
zpVwH|v5jOa_1K)jd|y;|sJTg`%KnKHlBR0@gL-6k*5qhz5ppb_<n-QNN79}9Yh=n6
za+z;Cg*VlzRK}-?%{&A_G<!mt&j92p9>Ax?^F0ZR=NLtH+g#dy18h^JVUWETGea%w
z6tOg}ghWk+F6sl$gcS^_FTjMh?j;tcoAJ1}GOSLX9OGAT0S<JFKye%HR%Q5Ai`Fb7
zY?*0DUO{|7=o_EwH}tr`m)2;HjYxGkK+nA7lf{?8jOimiIg1#*=-AbGm94z6n?jQ0
z%r*Lycgy(Ymt`mpwHv3Wvx)p`mckD!=poQ)0J*603?Pf1y8JU@z&o)e)*$-6mP$0D
zVd~%bzEE*ZbmcO>;Jwg_zm9|>g+uo<35f+FqeQr<21<#QR+YVDq<jy|V*jT6mP7gK
zAE3oR%9bq1dW`Bh-1KRKTQYj$Tgv&E#ypg%^dsEyJMBz<33Xpi+>;ar$hbRC6aU@r
z8gyS3KD||Bw-769F?uMX9N@vH+iG^szh_#RKiwk_K=l&bcP%?RpFzqolG*Ap#a{~-
ztUkB_tcbwdvjww&Gd)qX*E`e2x&KZ}jWB1tic%*G4@ay~7Q=gN0IUUj<v?;9bl+wQ
z4}~UQS~0UU4V1u}x^FhQV_E_Ms|QIPe6{ab+j-vi^xtGN{aG=9f7loL(dG@QAp|aR
zD2Vk@s{eJNCr*o5%PqOv4L=`G?$gZ!GDEG=E!LjtVz3TZvh^u4jjcpemEG3*U>kwX
z@&@qW9)cA-qM*EI<NZOcGYe1=$LOAkN$d1fxZEmiNIE|z@MBd_oHj5eskFr5z>qY@
z19&`@a`H|(0B(l{)$%g+TYq~+)XfVz=+>vrkB}6Q`micM0_-3Vf+J<HwmH7xlr->N
z(=N3Z=flyaaNbtMeZ>PYlrm05Ke2+&A%j?3HOIIk&@+1tD&*twoheMvFJq2yVIJI`
zSbD}?u6x_5&32>xiOjk7QAup;3|0uB9R`8$_s{8#>?X)DQeOSg)S#suw`!JM#Jp5M
zli#t#WsNTb5-otl-kzN=lt3bateoR3j~sne!DdY%;&7^yv~S6OdVq~G@qqSc4gfhj
zqY3Juz$b~4jdxxFKsovK7qsfd>{(mGSdV)B-|-&^STs-&I-rGq#Q+-RGhC!a6vcK$
ziNPNAx(xOYAwTZH<5$WgFYalFVtr4H9)YKN(H`}nO^6Fo1C}fR7Z1}=4;JPSnI5EA
z0wDd%hagv=FP6d(Pym?qhY^BL|D`V6dbzU5(MR?d#oo6C{s)KC+FAfJ2@et7<<bFw
zZbVV62nA{sBt#qNqF8Z8!w;a#iw!S`q8m!=R8<r~a{zl918M~9+<riN_(eE41=8Pw
zqMS(ph^O7L6jVS7kjc9TwOOZ6XL!KQBjU(ueMbPU{6~>ImglJ+%_ISMDl;fO8v{hM
z^>Y94OaV_BmB`t}Ft+g_a=>_E%uAA<+$VbG10v6KRj1O)-g(rEY!%`_Dd@n&!-i2t
z*<fN%Vk`0<8L;ZaqFC#vP!E(4I<RUvo*5+rAi9n3R}EjFwm^wg64(5tq--ZH(4|w)
za9KKFni~3+1R8mO1Hp~-;FSn{s6<l-Fh(0fE-V=u0^oFBJfGA6)~?=W*g{V<a0Q_D
zorPw*)caYz`Zq<7atnAT!aVAaUqw8jB>;LR9*Q#}Fc+&r@=hv)1)(aE?|B6m7%G7E
zP(LQts~`l=D6Y<^C45g6|BTjUZ-I5u{#GNO8Qk>sXaqby4zRHoVX?gg>Gvls&Tht-
z3wU>fl!)yW8vR1hY%uhm8F23W`<D-WS~AZO*kH{>tXs-GJpd-@aRC~WGrMVe2r;==
z6ukgGR|!tzHk*%76nMr495NQ@6!64&pk$ziF%BD3S$&8PAfGRyOlnVoXe)r?mwY6D
zMe`8a2B6{3NDr}|J$3~u{S|Z-#>w4<%gfe%MXyu>Se#`#mlvpPkSz#qIfd82a|uy9
z;#^kYWO0wNxEX=JCmY@#|6fa*Q6UY}V#Z&lEnR<@<gLTl$1bt=D3DvwdaygAM$8<d
zc;`QMO~>XRCzlQxHb!&`Dr3w9k!GB=i5G<$UA@W+iqlpk=O;Ot(gOWpLs=9=Xv+%$
za~3KEVC(V5*+wwV>zUktMgC~*T~gPH%K2hqVtPf#fB&pMv$Q_YGh!drb^bRHOYW(y
zox@uc8$RM|LumH|k_C8+pOH?^lLp%9fL{E!%sHhbuS|t7TADYU2CF;bS9(FFQ+XmC
z&ue+PS9C6b1Zj46wE!rxtsXnmN5}E0r&9VD!vE2d@RJ;qXnCsnw<0MeM=7=bo5m|w
z^B|^{obhlH+KYaCypx1gAvU_VPz#y>0f&Ao*Y`}YABTZL_9p`9A=SWn!w5mU@T%{<
zS<qVD&D%oX$;EeGPn!1a7E*UpW7150cR)MgqkeGUc|-0FLu+9BcTbv~ny<BiXO)Mb
z#ZcREJUTKmQd!$op@R)6=1;lOQ)G&@)L_JLioMSxmwmF}VmN}00CSPLb;%w5qs@@N
z$+h3bifMw3CyQh~y1G3KstuAcELm}oQWW)I>kfYvI;x*=WrRNCT;;K#aLq*KbGwQk
z^mqN~T^VTn%DuWusl$lJs*K@&K#vPu0uDvRhqgR8LGvSw=AJ`ZMJ=E0rHj`k9>cI@
zMphgCG{s=DB*r0sEL(X(VV~m-8CnV%Oh<u}tfH>s<tG=Zx!3H)u_5sUc)&nQ47!hC
zc<4LLvVgShgiz}skzjp4z56Be!Mln|vf235aCz>#nyS^91JZYk(`o0ng(=!{dIt1}
z?%VSl6z}j^-SA)?h<#_=R-jK-LUCxz6b=Dm{gn5JnGE!Zvsf0E>FP2ZpDS4Fi8epC
zA@6Lyo>H%*dhscTKAH}6Sad@jys(j<l%l2-HJ||8=M))3vQW(Qy3gdf`A}NR4kK9v
zA&8mNZ!GlBT@4?9SvTG2Jx$&{h^A^ichKRiyrqgG|7jh>!&mH8{vB^^7NVaQ>x^M_
z28-b*fq&ba<|G>1g_Gp7sn7ZP$6CE_eFS2oW!W7vp|j-KMTKXEY2vyLv|QuZMgcc<
zhp~mM5kI65I{FvYZ}nT|cuZl;28(77{<q?p#nWM03HbRvd#jOpe`3iRa2sN;9IRnB
z+>UI`g%$CO+5Krxnobv(?vqSY)S@4EOq!(UFlC6oysSr}Be5bOUnU4+0&VFrz7&E&
zY?lIyPUCl#%oEY%;&WvOv#gj@yfPWj4lqHMi{<P=F&NZlND8u4jMrK6-iROg=gnvU
zX||Qf=47i|Z#H;(R=GS@-d4waSz?q$v8bfAAUqUKR`|*LKF2;utJXV(Ez;|==({~R
z2uP<}!M?w3(BGu)3F>gnepeUrJ)ZMhoh!*0)laLgvA5AKcmxHlSJ9#~S;wK3U!t59
zew5WQ_MvWFtgNkQU@T)*m0a2``!o#O<I}^^rZ!6vi^#Xt0}rx$xOqvoA3!oNeU4zM
z88I#29Ub<`lbUlcY3-_BuhsoVKOshW?J`Nf6bPZgUo}6kSA5t>e6$XyI{19~2ll1K
z*)K?WX-9!7^#_Ad_!kdS{jlw45{%>oTD%IRqFT9yn^CYPi~Ps_2V=5y&_XP*N?`n!
z;Vl^wF)T0c6BpB;HBSO{ntJA}`7_$CvS>4uex%zA$6NwNKt>(*^5CyLx%>AK#zb)%
z``0+l=9C(>gi`*#pSy*YzaC<&z5t93_u&ektS3W$63+-Dts9GzqHGOh@O5MWQ?`#Z
z{OyC}5>dLJ^GF|`X|drt(fOs!s=}cHTu|}yE!uDP-JR~th<YD9e|^01K5FVhQ}-Qg
zUX*4h@b2HOj8)jd`a6ku{_02?L3K9=ct(#l;^cGeJHnYlfuW2rTZgqNq+p0Ug1)%l
zqU_(1ZL67x#bwe?ezE1(T!|JwwwsY4@vB;+tg`r)@5lU<9?W=Sf;gvtcZjmL=g(-&
zI(_x<)<#p<+qtyy&zBE>c{6|C@>#yb<zj37ctI)T+;O)?FY9+r`r$~(Cc%75XyK8w
zy?1hCk1s^!VfB)VkNo)8?TpMotKa$jTKHn#ktF5q7SHzK{ZhUe{8X2E;aL%K)=W-C
zZE0L4SZKP!{v1r$OJ0<JS}ocFC8vAofLX-4aI$n9KY@ykz+yiJJAJFadGo|CApXlV
zQ~z9wNfXz_!VhU%TU%_+e+Vu2`15R*{Tgztw4YJN9^^!|<Jgjgj74<N2xzKrR^6i#
z1y&Ac+|X!?btB&C(2|vi#6q;9!sbtBYwnGP@eqYhwMpL%15PIXgj4qFn0-<WlnF}w
z^*XJQXdd;UMhy*(Rtt&99ZH8JVUD!=`5Vp!D0{yt%$-`96~Xe<b=dyP?5{Gv%<t;5
z^(nMJ?>V}KJ}S;yPuv+l6bH@G(P*MUFflpKV5^@Wi?b5DrlT=heBoc3`A`_{%=KJC
zB3Fm+b%s5H|Fnj_yF#vtz>j*`z%Su=E=DJ`U7sFOe1~T;(<r*eRlgyRsF7N$<6xS3
zti(B>ASC92+P9fI`P12jY|5Z|0@7)rRQZPxVw^HH>;8$wF6nwz7FI(J!v<vTN~{nJ
z#4G$MmoD$q^2g%dD(gIF#losnhOfnEmgN)XU1nUi4I*8Cxy-p3gww{=x!It8uNhmc
zKG;<sIz}&0xHoe?oYO_D&JMb^oz<5Pwb)Tdq3yl8uR9|SuIHD;e5nJsSrmdqHncf6
z<>Ea*MG{${MKjaBzVwDZt4L<9n?;5_v`wyf+I;P;_ekxA?&hmDZIb!(UAX+RXW2r(
zKY{^yP;tX@lWB?%SieLh0&5w-1IhNPKHS*95Or$VpWu8%7NwszDpHb?B(eV%CkYmj
zF_0OYNl8l8x{y*zAUs4OR#Rq}4*Z}{p--Ai&7_yOsMKaH;c=?&fK0+r*qYva`a9pO
z_YsbX__q!iIT4i+exx{zo7vJFl}20TTfa?a7c*I&YwjEnfI!ai>Xm)lpdtn`cJ={P
ziDMx)N6FX2aouv|m~W#SJlB+YVQ=3j<&(rsiPT0(5ViL!5@w0Su;^!l>50$3I9aF$
z${#Sw+W2vgK2~$0yLq>K8SrOqptmaCH)~3HPLq2~py`#i7w5q8Nl~HRYeAL;E2(so
zll;xg!Ug}AfUdUO=@-5_nf(-a!V4!?w~u61;g+ktPhN+)NW?M3cO_dC?fZ(Ptr-Wo
zDaU{1s;;XExAsV8#r$yQ#>FV}8l#`k@QMVVnXMT{mP2#fA%sVH^;FDE;X$m4T;oE}
zYHzqOTA`zw#6UZ{9{qyFYB}oT8c*EK$CtT3vz=VEy0eKJ^uIU8l_(EvK<6W{N6>cj
zKC|(63p;1#D=&U(b8RxpxU~0W(^~f^B7?>dMgfp%M_J()PYi#m=@T-|?Kcs<B55<r
zHpxX2a6aQrBZv76OrocNbA12WOQY+kw+u-6I$7!Cxr@myO=CAti1eSNekj#{qpdgn
zf@oNcn35h?%r|i(4-QWO&8(hofp_puMu3ja&xX@k!Vx9rMu@EMf2W=|XNYN6X#pke
z;I{lL7Td9YHfee3bXtrsV~wz!)k=}UX-Y0$@xm0?fa`b3(f7(%`(zc@%0x*@k$wdg
z#k6s0{)pNoJ9O-8^g7PVKU*WhA>~bK5Zu>U$F7F=JY}aWe8gm?Fvl&*@P(#Yhbg^!
z+;I-C*}L=14q?3ZrsK!FDPfHdPzi^HG?V<Yjw^LQx}ts77g$q=<P^D*-H3~eaF&V9
zeC~12-YPDoND%SU#jy5d+0=PhXv0KB1)s$7NGe6R;B`K5W{R`mJwBz+(<*)*645a+
zeJwcOr|QF|81Mb}iIThU`Gjw-KR~t5SnNLY0~0-+R|=Fynx>b%%em<+9WC^nR65?S
z++Tk-;VNycqaE6?^<$adv!cU^29LF=Sv8Lq(QrT7Mr{-RTkuz+L{;QYcON-jHA#xG
zn?A&;^BM3r>=Lp3YT@x3V&luJ-Gqu~GF&1J+d-eE07)92lSvgHpP(|^>#~gpA%tcg
z!9?cw<3B2|!95<POLM`+N52|wg>Ly-@H(woYbp$2qY>30Ck~SV<_g#}^>XnyniC^i
zFENG9a@oqa?Pp>(3E*auC$o(%qq*kk2w`PubHzN&|16S$Nqrkm5*beF4PGCke3|rH
z3lN_*hzci%x$b?lkZ#D>wbzLwrC%?RXu3;vq}dU^AekF>X|d`4LOUbHt63fh(y=a-
z02K0#NS?;u`%KL|&3x3-qGQLfaKxt{i~MUZ&446y<v{E*v7<fwEu5xmK};3T*Hu3h
z?Vo<0>MsAQo6&CjI7*-m6{6;orK@qP?N_qv{fU||u`jVmhCygWTQ<4&zD$qBOw@4Y
z&@)R=U~?6`oo1+VN$kSR^|x`7a_A+-DWCS!c^vCS!z0zx-BO-Nl{$|!B&ujC_oxqx
zWK_ai-(dnbFZ#5&i4nS4>y_Aa!&)cKNVc1s@Mi7FuppMbHzo9gUltoHfz74vvi!lq
zIo<xNLk?v=UM4h4%CFnWsr?qMgOa@@Q&e>G6Ea^DUVMnrPFcq;4=c@v6S)B7Zn?B=
zwm+v+t;^9TO}oHf4meBePsawyF*aqAiMh`)UW_SLl^<E{wV6dUx*$Eedd^kD&{Uff
z!lU2titdWJh8EVlh!y|P_o;=THkB(BHJ#c&$@L;%7mms%a=vr2<5fkNl|Rat?<vB9
zKK}}@h@^1tR6D~+c{l_hn!1h%mOJI9!Ykp|e*?O-tFKnx7H$>(m(NT^7uvE~{znz)
zu-21G{4P)$7ZC*eAY1lYfuZ_B1qH!xVcenC{h<5xL{#6$tjW2P!`&JR@D*(n!Q=qN
zDO4yPfy*ZRrP$A!u!OUhFJgX`-<!wpn-sSqiK8bqD*C=%3{z4Ezn^_Qpc&Hp*&uqC
z`(^|o7)u;#L|`Zb<V)cr8f@&egr0(7{!VwukCA#TjFr2PTV0_qr3G8EZ20KP;mKYw
z^`1U+(7<VDJ2k~JXa?|jNA-B?$0=AiEgrko#jY*$?Kql3f0K3@<5f(hM_?)eR-9bh
zPPU{cLg&J_7xP5_0;ViIR{~}J=obV{1378)+l9<&Qu_Sez}K0^1BzvBW~TfFW!NDy
zP&Qx6U&c2e)9xE5$f3apL2C4clsiqfUUCxK!e(sFY#|p8`_j(zL1TutxVKuY%dRf}
zZ1J@A6UZ0L*<)B6`aNmJ>6@!lN8HK7(ioq9i{kn{>S?1!?gp-E)7dm%j%q92Ag@S=
zdK{Q%(ZQ^Ja-HrQ$p=tnUrJ6+$DH!w3-nL^f8_4D+B}TodgEPoy)0RziNaNHcFy>O
z#gbahUKgFu#a>n9SvaM+Z9Y@YYk>^Gcv^DWG!>rU)qhDzcO!_R(;P&y^uBM=Y9wTQ
zm8}f8+?G0WWj<NYY@G8A*6N<=Pb<-J4sK+LR#-P3?srU6%^UUUIK(dLm!z->Ru0a|
zWiXD2u<4*fUSNWH%Qt=;+4yNa6^V?B-tt?loNzFsK->d2g4hn7%3n*DTe7`IcEODa
zs<vOIh%qd6;=Pj-cg9SHS!o?F!7>|UW|Qrv>N+Ludn8hz^IOsgl7(4zwVcmPh;LAn
z|G%}904XWexAitYikW_O&NAw7iXT?AVd-wg@<tDI%quWdaZ7k9t0nWKKs~B<oS|(}
zaQ_?A%S8AzCj~4;zr&q!;kc=w9-Ex&Tc_wr%eVk;%C%<o%#6-0a&5jxfF61FUMFd$
z+jDQeU_yCHGv_1QZlU~^PPQX#R0@bK@0civtjAQx>{KJZqAMZ>ZmN#+2f^#4HU{C_
z<YE0iso=Qv?7MA->6L**<=b23jE7j=jVR459_~d)L|PlC#UJU|ke+jZNiHk%biZ{Q
z5XlqqZk2b;*h=Q4Zd<y$$yDmJ$RO7Mie{2WUyc|mVE|U2*hqd_d^Glk6V2*bRFPwi
zy1M#lZJ>UhP4}YBR>-+NNr+N_+^d58uis<e-BzLT+$s;z8aP{X@sP^VPTsSwX&<b?
zDV{FE!K<9}5!vqnvIAJq;I)l^_h_H3jsSSY@jvf>=i!1K!M|a${_oZ8?RP+JK`=S`
l|GkL42pF^fe<R}V;jknr+%%fQ1O@yk$*IfMNSnX;{{U2h*g*gQ

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html
new file mode 100644
index 000000000000..5d9522459752
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_hash_fn.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>null_hash_fn Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>null_hash_fn</tt> Interface</h1>
+
+    <p>A "null" hash function, indicating that the combining hash
+    function is actually a ranged hash function.</p>
+
+    <p><a href=
+    "concepts.html#concepts_null_policies">Interface::Concepts::Null
+    Policy Classes</a> explains the concept of a null policy. See
+    also <a href=
+    "hash_based_containers.html#hash_policies">Design::Hash-Based
+    Containers::Hash Policies</a>.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html b/libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html
new file mode 100644
index 000000000000..1cbf9cc347d8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_lu_metadata.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>null_lu_metadata Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>null_lu_metadata</tt> Interface</h1>
+
+    <p>A null type that means that each link in a list-based
+    container does not actually need metadata.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/list_update_policy.hpp"><tt>list_update_policy.hpp</tt></a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html b/libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html
new file mode 100644
index 000000000000..5be7359e09f0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_mapped_type.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>null_mapped_type Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>null_mapped_type</tt> Interface</h1>
+
+    <p>A mapped-policy indicating that an associative container is
+    a "set"</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html
new file mode 100644
index 000000000000..af9379b8cf37
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_probe_fn.html
@@ -0,0 +1,29 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>null_probe_fn Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>null_probe_fn</tt> Interface</h1>
+
+    <p>A "null" probe function, indicating that the combining probe
+    function is actually a ranged probe function.</p>
+
+    <p><a href=
+    "concepts.html#concepts_null_policies">Interface::Concepts::Null
+    Policy Classes</a> explains the concept of a null policy.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html
new file mode 100644
index 000000000000..98960ed9bf93
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_tree_node_update.html
@@ -0,0 +1,101 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>null_tree_node_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>null_tree_node_update</tt> Interface</h1>
+
+    <p>A "null" node updater, indicating that no node updates are
+    required.</p>
+
+    <p><a href=
+    "concepts.html#concepts_null_policies">Interface::Concepts::Null
+    Policy Classes</a> explains the concept of a null policy.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tree_policy.hpp"><tt>tree_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html
new file mode 100644
index 000000000000..c6c0844bc604
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/null_trie_node_update.html
@@ -0,0 +1,102 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>null_trie_node_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>null_trie_node_update</tt> Interface</h1>
+
+    <p>A "null" node updater, indicating that no node updates are
+    required.</p>
+
+    <p><a href=
+    "concepts.html#concepts_null_policies">Interface::Concepts::Null
+    Policy Classes</a> explains the concept of a null policy.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html
new file mode 100644
index 000000000000..8da2d50d0157
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/ov_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>ov_tree_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>ov_tree_tag</tt> Interface</h1>
+
+    <p>Ordered-vector tree data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html
new file mode 100644
index 000000000000..756e886b6e66
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pairing_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>pairing_heap_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>pairing_heap_tag</tt> Interface</h1>
+
+    <p>Pairing-heap data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..4168787ecadf37c5c6c5cfb9bfebd32c3b1a5872
GIT binary patch
literal 5395
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
F{{USZL974(

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..97ca4e9daad5f4c2f39b95cc741017f49669228c
GIT binary patch
literal 6892
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_pop_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..42b707965ff523291bab722050a5e4adb35ee1de
GIT binary patch
literal 5514
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
YlC7L1qtfo{yti1Uh8CyuPhP(FF9i_6LjV8(

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a7ce6c361f85eff0f7afb7291c71be91f1c3ddd
GIT binary patch
literal 5678
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
MwG1>1)NMll2QdTfZ~y=R

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..cedcb4cf4b22dcd3a76a6a27bfa3f51bdbe7ca88
GIT binary patch
literal 6760
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
E0UA;JCIA2c

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/pairing_priority_queue_text_push_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..d5488efcf48e95ceeb238610859eb1c5348be582
GIT binary patch
literal 5878
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pat_trie.png b/libstdc++-v3/docs/html/ext/pb_ds/pat_trie.png
new file mode 100644
index 0000000000000000000000000000000000000000..e7129a1a67b45931f7d05dd2c6b2a2942d6ae414
GIT binary patch
literal 26182
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
PfRDQJbEO&uSlIsqN2rma

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html
new file mode 100644
index 000000000000..459546df778a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pat_trie_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>pat_trie_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>pat_trie_tag</tt> Interface</h1>
+
+    <p>PATRICIA trie data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html
new file mode 100644
index 000000000000..ba2eee6dfc4f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/point_invalidation_guarantee.html
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>point_invalidation_guarantee Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>point_invalidation_guarantee</tt> Interface</h1>
+
+    <p>Signifies an invalidation guarantee that includes all those
+    of its base, and additionally, that any point-type iterator,
+    pointer, or reference to a container object's mapped value type
+    is valid as long as its corresponding entry has not be erased,
+    regardless of modifications to the container object.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_invalidation_guarantee.html"><span class=
+"c2"><tt>basic_invalidation_guarantee</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..25a69fc6e8bed42ca3a3ca75714eb5ce581fd2d6
GIT binary patch
literal 20307
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
Sf?vHuQj~irTPkfF_&)$Q`Qdp0

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_1.png b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..c5bc8e5d6c011a8c05f957dec532df42ee7ddea1
GIT binary patch
literal 14206
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
X9bUy$@DJbxIS3gEMe%Y`!;k+TiC;9m

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_2.png b/libstdc++-v3/docs/html/ext/pb_ds/point_iterators_range_ops_2.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3f94ee93bc542dd852fddec073a85390c20e3c3
GIT binary patch
literal 12876
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
P2bRjC#|mX~X0QGSrIh$?

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html
new file mode 100644
index 000000000000..2ff5ed7c644b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_container_traits.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>container_traits Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>container_traits</tt> Interface</h1>
+
+    <p>Traits of a priority-queue container based on its underlying
+    data structure.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Cntnr59189" id="Cntnr59189"><b>class</b> Cntnr</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Container type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Container Attributes</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="container_category1247973216" id=
+"container_category1247973216">container_category</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Underlying data structure.
+</pre>
+        </td>
+
+        <td>
+          <p>Data structure category.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="invalidation_guarantee3793555937" id=
+"invalidation_guarantee3793555937">invalidation_guarantee</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Invalidation guarantee.
+</pre>
+        </td>
+
+        <td>
+          <p>Invalidation-guarantee type.</p>
+
+          <p>This is either <a href=
+          "basic_invalidation_guarantee.html"><span class=
+          "c2"><tt>basic_invalidation_guarantee</tt></span></a>,
+          <a href="point_invalidation_guarantee.html"><span class=
+          "c2"><tt>point_invalidation_guarantee</tt></span></a>, or
+          <a href="range_invalidation_guarantee.html"><span class=
+          "c2"><tt>range_invalidation_guarantee</tt></span></a></p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="split_join_can_throw3200477759" id=
+"split_join_can_throw3200477759">split_join_can_throw</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+True only if split or join operations can throw.
+</pre>
+        </td>
+
+        <td>
+          <p>Split-join throw indicator.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_design.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_design.html
new file mode 100644
index 000000000000..f33d963a9ade
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_design.html
@@ -0,0 +1,381 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Priority-Queues</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Priority-Queue Design</h1>
+
+    <h2><a name="overview" id="overview">Overview</a></h2>
+
+    <p>The priority-queue container has the following
+    declaration:</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Value_Type,
+    <b>typename</b> Cmp_Fn = std::less&lt;Value_Type&gt;,
+    <b>typename</b> Tag = <a href="pairing_heap_tag.html">pairing_heap_tag</a>,
+    <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href="priority_queue.html">priority_queue</a>;
+</pre>
+
+    <p>The parameters have the following meaning:</p>
+
+    <ol>
+      <li><tt>Value_Type</tt> is the value type.</li>
+
+      <li><tt>Cmp_Fn</tt> is a value comparison functor</li>
+
+      <li><tt>Tag</tt> specifies which underlying data structure
+      to use.</li>
+
+      <li><tt>Allocator</tt> is an allocator
+      type.</li>
+    </ol>
+
+    <p>The <tt>Tag</tt> parameter specifies which underlying
+    data structure to use. Instantiating it by <a href=
+    "pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>,
+    <a href=
+    "binary_heap_tag.html"><tt>binary_heap_tag</tt></a>,
+    <a href=
+    "binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>,
+    <a href=
+    "rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>,
+    or <a href=
+    "thin_heap_tag.html"><tt>thin_heap_tag</tt></a>,
+    specifies, respectively, an underlying pairing heap [<a href=
+    "references.html#fredman86pairing">fredman86pairing</a>],
+    binary heap [<a href="references.html#clrs2001">clrs2001</a>],
+    binomial heap [<a href=
+    "references.html#clrs2001">clrs2001</a>], a binomial heap with
+    a redundant binary counter [<a href=
+    "references.html#maverik_lowerbounds">maverik_lowerbounds</a>],
+    or a thin heap [<a href=
+    "references.html#kt99fat_heaps">kt99fat_heas</a>]. These are
+    explained further in <a href="#pq_imp">Implementations</a>.</p>
+
+    <p>As mentioned in <a href=
+    "tutorial.html#pq">Tutorial::Priority Queues</a>, 
+    <a href=
+    "priority_queue.html"><tt>pb_ds::priority_queue</tt></a>
+    shares most of the same interface with <tt>std::priority_queue</tt>.
+    <i>E.g.</i> if <tt>q</tt> is a priority queue of type
+    <tt>Q</tt>, then <tt>q.top()</tt> will return the "largest"
+    value in the container (according to <tt><b>typename</b>
+    Q::cmp_fn</tt>). <a href=
+    "priority_queue.html"><tt>pb_ds::priority_queue</tt></a>
+    has a larger (and very slightly different) interface than
+    <tt>std::priority_queue</tt>, however, since typically
+    <tt>push</tt> and <tt>pop</tt> are deemed insufficient for
+    manipulating priority-queues. </p>
+
+    <p>Different settings require different priority-queue
+    implementations which are described in <a href=
+    "#pq_imp">Implementations</a>; <a href="#pq_traits">Traits</a>
+    discusses ways to differentiate between the different traits of
+    different implementations.</p>
+
+    <h2><a name="pq_it" id="pq_it">Iterators</a></h2>
+
+    <p>There are many different underlying-data structures for
+    implementing priority queues. Unfortunately, most such
+    structures are oriented towards making <tt>push</tt> and
+    <tt>top</tt> efficient, and consequently don't allow efficient
+    access of other elements: for instance, they cannot support an efficient
+    <tt>find</tt> method. In the use case where it
+    is important to both access and "do something with" an
+    arbitrary value, one would be out of luck. For example, many graph algorithms require
+    modifying a value (typically increasing it in the sense of the
+    priority queue's comparison functor).</p>
+
+    <p>In order to access and manipulate an arbitrary value in a
+    priority queue, one needs to reference the internals of the
+    priority queue from some form of an associative container -
+    this is unavoidable. Of course, in order to maintain the
+    encapsulation of the priority queue, this needs to be done in a
+    way that minimizes exposure to implementation internals.</p>
+
+    <p>In <tt>pb_ds</tt> the priority queue's <tt>insert</tt>
+    method returns an iterator, which if valid can be used for subsequent <tt>modify</tt> and
+    <tt>erase</tt> operations. This both preserves the priority
+    queue's encapsulation, and allows accessing arbitrary values (since the
+    returned iterators from the <tt>push</tt> operation can be
+    stored in some form of associative container).</p>
+
+    <p>Priority queues' iterators present a problem regarding their
+    invalidation guarantees. One assumes that calling
+    <tt><b>operator</b>++</tt> on an iterator will associate it
+    with the "next" value. Priority-queues are
+    self-organizing: each operation changes what the "next" value
+    means. Consequently, it does not make sense that <tt>push</tt>
+    will return an iterator that can be incremented - this can have
+    no possible use. Also, as in the case of hash-based containers,
+    it is awkward to define if a subsequent <tt>push</tt> operation
+    invalidates a prior returned iterator: it invalidates it in the
+    sense that its "next" value is not related to what it
+    previously considered to be its "next" value. However, it might not
+    invalidate it, in the sense that it can be
+    de-referenced and used for <tt>modify</tt> and <tt>erase</tt>
+    operations.</p>
+
+    <p>Similarly to the case of the other unordered associative
+    containers, <tt>pb_ds</tt> uses a distinction between
+    point-type and range type iterators. A priority queue's <tt>iterator</tt> can always be
+    converted to a <tt>point_iterator</tt>, and a
+    <tt>const_iterator</tt> can always be converted to a
+    <tt>const_point_iterator</tt>.</p>
+
+    <p>The following snippet demonstrates manipulating an arbitrary
+    value:</p>
+    <pre>
+<i>// A priority queue of integers.</i>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt; p;
+
+<i>// Insert some values into the priority queue.</i>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt;::point_iterator it = p.push(0);
+
+p.push(1);
+p.push(2);
+
+<i>// Now modify a value.</i>
+p.modify(it, 3);
+
+assert(p.top() == 3);
+</pre>
+
+    <p>(<a href="pq_examples.html#xref">Priority Queue
+    Examples::Cross-Referencing</a> shows a more detailed
+    example.)</p>
+
+    <p>It should be noted that an alternative design could embed an
+    associative container in a priority queue. Could, but most probably should not. To begin with, it should be noted that one
+    could always encapsulate a priority queue and an associative
+    container mapping values to priority queue iterators with no
+    performance loss. One cannot, however, "un-encapsulate" a
+    priority queue embedding an associative container, which might
+    lead to performance loss. Assume, that one needs to
+    associate each value with some data unrelated to priority
+    queues. Then using <tt>pb_ds</tt>'s design, one could use an
+    associative container mapping each value to a pair consisting
+    of this data and a priority queue's iterator. Using the
+    embedded method would need to use two associative
+    containers. Similar problems might arise in cases where a value
+    can reside simultaneously in many priority queues.</p>
+
+    <h2><a name="pq_imp" id="pq_imp">Implementations</a></h2>
+
+    <p>There are three main implementations of priority queues: the
+    first employs a binary heap, typically one which uses a
+    sequence; the second uses a tree (or forest of trees), which is
+    typically less structured than an associative container's tree;
+    the third simply uses an associative container. These are
+    shown, respectively, in Figures <a href=
+    "#pq_different_underlying_dss">Underlying Priority-Queue
+    Data-Structures</a> A1 and A2, Figure <a href=
+    "#pq_different_underlying_dss">Underlying Priority-Queue
+    Data-Structures</a> B, and Figures <a href=
+    "#pq_different_underlying_dss">Underlying Priority-Queue
+    Data-Structures</a> C.</p>
+
+    <h6 class="c1"><a name="pq_different_underlying_dss" id=
+    "pq_different_underlying_dss"><img src=
+    "pq_different_underlying_dss.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Underlying Priority-Queue Data-Structures.</h6>
+
+    <p>Roughly speaking, any value that is both pushed and popped
+    from a priority queue must incur a logarithmic expense (in the
+    amortized sense). Any priority queue implementation that would
+    avoid this, would violate known bounds on comparison-based
+    sorting (see, <i>e.g.</i>, [<a href=
+    "references.html#clrs2001">clrs2001</a>] and <a href=
+    "references.html#brodal96priority">brodal96priority</a>]).</p>
+
+    <p>Most implementations do
+    not differ in the asymptotic amortized complexity of
+    <tt>push</tt> and <tt>pop</tt> operations, but they differ in
+    the constants involved, in the complexity of other operations
+    (<i>e.g.</i>, <tt>modify</tt>), and in the worst-case
+    complexity of single operations. In general, the more
+    "structured" an implementation (<i>i.e.</i>, the more internal
+    invariants it possesses) - the higher its amortized complexity
+    of <tt>push</tt> and <tt>pop</tt> operations.</p>
+
+    <p><tt>pb_ds</tt> implements different algorithms using a
+    single class: <a href="priority_queue.html">priority_queue</a>.
+    Instantiating the <tt>Tag</tt> template parameter, "selects"
+    the implementation:</p>
+
+    <ol>
+      <li>Instantiating <tt>Tag = <a href=
+      "binary_heap_tag.html">binary_heap_tag</a></tt> creates
+      a binary heap of the form in Figures <a href=
+      "#pq_different_underlying_dss">Underlying Priority-Queue
+      Data-Structures</a> A1 or A2. The former is internally
+      selected by <a href="priority_queue.html">priority_queue</a>
+      if <tt>Value_Type</tt> is instantiated by a primitive type
+      (<i>e.g.</i>, an <tt><b>int</b></tt>); the latter is
+      internally selected for all other types (<i>e.g.</i>,
+      <tt>std::string</tt>). This implementations is relatively
+      unstructured, and so has good <tt>push</tt> and <tt>pop</tt>
+      performance; it is the "best-in-kind" for primitive
+      types, <i>e.g.</i>, <tt><b>int</b></tt>s. Conversely, it has
+      high worst-case performance, and can support only linear-time
+      <tt>modify</tt> and <tt>erase</tt> operations; this is
+      explained further in <a href="#pq_traits">Traits</a>.</li>
+
+      <li>Instantiating <tt>Tag = <a href=
+      "pairing_heap_tag.html">pairing_heap_tag</a></tt>
+      creates a pairing heap of the form in Figure <a href=
+      "#pq_different_underlying_dss">Underlying Priority-Queue
+      Data-Structures</a> B. This implementations too is relatively
+      unstructured, and so has good <tt>push</tt> and <tt>pop</tt>
+      performance; it is the "best-in-kind" for non-primitive
+      types, <i>e.g.</i>, <tt>std:string</tt>s. It also has very
+      good worst-case <tt>push</tt> and <tt>join</tt> performance
+      (<i>O(1)</i>), but has high worst-case <tt>pop</tt>
+      complexity.</li>
+
+      <li>Instantiating <tt>Tag = <a href=
+      "binomial_heap_tag.html">binomial_heap_tag</a></tt>
+      creates a binomial heap of the form in Figure <a href=
+      "#pq_different_underlying_dss">Underlying Priority-Queue
+      Data-Structures</a> B. This implementations is more
+      structured than a pairing heap, and so has worse
+      <tt>push</tt> and <tt>pop</tt> performance. Conversely, it
+      has sub-linear worst-case bounds for <tt>pop</tt>,
+      <i>e.g.</i>, and so it might be preferred in cases where
+      responsiveness is important.</li>
+
+      <li>Instantiating <tt>Tag = <a href=
+      "rc_binomial_heap_tag.html">rc_binomial_heap_tag</a></tt>
+      creates a binomial heap of the form in Figure <a href=
+      "#pq_different_underlying_dss">Underlying Priority-Queue
+      Data-Structures</a> B, accompanied by a redundant counter
+      which governs the trees. This implementations is therefore
+      more structured than a binomial heap, and so has worse
+      <tt>push</tt> and <tt>pop</tt> performance. Conversely, it
+      guarantees <i>O(1)</i> <tt>push</tt> complexity, and so it
+      might be preferred in cases where the responsiveness of a
+      binomial heap is insufficient.</li>
+
+      <li>Instantiating <tt>Tag = <a href=
+      "thin_heap_tag.html">thin_heap_tag</a></tt> creates a
+      thin heap of the form in Figure <a href=
+      "#pq_different_underlying_dss">Underlying Priority-Queue
+      Data-Structures</a> B. This implementations too is more
+      structured than a pairing heap, and so has worse
+      <tt>push</tt> and <tt>pop</tt> performance. Conversely, it
+      has better worst-case and identical amortized complexities
+      than a Fibonacci heap, and so might be more appropriate for
+      some graph algorithms.</li>
+    </ol>
+
+    <p><a href="pq_performance_tests.html">Priority-Queue
+    Performance Tests</a> shows some results for the above, and
+    discusses these points further.</p>
+
+    <p>Of course, one can use any order-preserving associative
+    container as a priority queue, as in Figure <a href=
+    "#pq_different_underlying_dss">Underlying Priority-Queue
+    Data-Structures</a> C, possibly by creating an adapter class
+    over the associative container (much as 
+    <tt>std::priority_queue</tt> can adapt <tt>std::vector</tt>).
+    This has the advantage that no cross-referencing is necessary
+    at all; the priority queue itself is an associative container.
+    Most associative containers are too structured to compete with
+    priority queues in terms of <tt>push</tt> and <tt>pop</tt>
+    performance.</p>
+
+    <h2><a name="pq_traits" id="pq_traits">Traits</a></h2>
+
+    <p>It would be nice if all priority queues could
+    share exactly the same behavior regardless of implementation. Sadly, this is not possible. Just one for instance is in join operations: joining
+    two binary heaps might throw an exception (not corrupt
+    any of the heaps on which it operates), but joining two pairing
+    heaps is exception free.</p>
+
+    <p>Tags and traits are very useful for manipulating generic
+    types. <a href=
+    "priority_queue.html"><tt>pb_ds::priority_queue</tt></a>
+    publicly defines <tt>container_category</tt> as one of the tags
+    discussed in <a href="#pq_imp">Implementations</a>. Given any
+    container <tt>Cntnr</tt>, the tag of the underlying
+    data structure can be found via <tt><b>typename</b>
+    Cntnr::container_category</tt>; this is one of the types shown in
+    Figure <a href="#pq_tag_cd">Data-structure tag class
+    hierarchy</a>.</p>
+
+    <h6 class="c1"><a name="pq_tag_cd" id=
+    "pq_tag_cd"><img src="priority_queue_tag_cd.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Data-structure tag class hierarchy.</h6>
+
+    <p>Additionally, a traits mechanism can be used to query a
+    container type for its attributes. Given any container
+    <tt>Cntnr</tt>, then <tt><a href=
+    "assoc_container_traits.html">pb_ds::container_traits</a>&lt;Cntnr&gt;</tt>
+    is a traits class identifying the properties of the
+    container.</p>
+
+    <p>To find if a container might throw if two of its objects are
+    joined, one can use <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::split_join_can_throw</tt>,
+    for example.</p>
+
+    <p>Different priority-queue implementations have different invalidation guarantees. This is
+    especially important, since as explained in <a href=
+    "#pq_it">Iterators</a>, there is no way to access an arbitrary
+    value of priority queues except for iterators. Similarly to
+    associative containers, one can use
+    <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::invalidation_guarantee</tt>
+    to get the invalidation guarantee type of a priority queue.</p>
+
+    <p>It is easy to understand from Figure <a href=
+    "#pq_different_underlying_dss">Underlying Priority-Queue
+    Data-Structures</a>, what <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a><tt>&lt;Cntnr&gt;::invalidation_guarantee</tt>
+    will be for different implementations. All implementations of
+    type <a href="#pq_different_underlying_dss">Underlying
+    Priority-Queue Data-Structures</a> B have <a href=
+    "point_invalidation_guarantee.html"><tt>point_invalidation_guarantee</tt></a>:
+    the container can freely internally reorganize the nodes -
+    range-type iterators are invalidated, but point-type iterators
+    are always valid. Implementations of type <a href=
+    "#pq_different_underlying_dss">Underlying Priority-Queue
+    Data-Structures</a> A1 and A2 have <a href=
+    "basic_invalidation_guarantee.html"><tt>basic_invalidation_guarantee</tt></a>:
+    the container can freely internally reallocate the array - both
+    point-type and range-type iterators might be invalidated.</p>
+
+    <p>This has major implications, and constitutes a good reason to avoid
+    using binary heaps. A binary heap can perform <tt>modify</tt>
+    or <tt>erase</tt> efficiently <u>given a valid point-type
+    iterator</u>. However, inn order to supply it with a valid point-type
+    iterator, one needs to iterate (linearly) over all
+    values, then supply the relevant iterator (recall that a
+    range-type iterator can always be converted to a point-type
+    iterator). This means that if the number of <tt>modify</tt> or
+    <tt>erase</tt> operations is non-negligible (say
+    super-logarithmic in the total sequence of operations) - binary
+    heaps will perform badly.</p>
+    <pre>
+
+</pre>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_different_underlying_dss.png b/libstdc++-v3/docs/html/ext/pb_ds/pq_different_underlying_dss.png
new file mode 100644
index 0000000000000000000000000000000000000000..9d84791fc0d587a98663f0878309c2bb4926bebf
GIT binary patch
literal 15660
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
PhEaT}CR-tG68QfBVc}g`

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html
new file mode 100644
index 000000000000..ee8e9305486c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_examples.html
@@ -0,0 +1,60 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Examples</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Priority-Queue Examples</h1>
+
+     <h2><a name="basic_usage" id="basic_usage">Basic Use</a></h2>
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/basic_priority_queue.cc"><tt>basic_priority_queue.cc</tt></a>
+      Basic use of priority queues.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/priority_queue_split_join.cc"><tt>priority_queue_split_join.cc</tt></a>
+      Splitting and joining priority queues.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/priority_queue_erase_if.cc"><tt>priority_queue_erase_if.cc</tt></a>
+      Conditionally erasing values from a container object.</li>
+    </ol>
+
+    <h2><a name="generics" id="generics">Generics</a></h2>
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/priority_queue_container_traits.cc"><tt>priority_queue_container_traits.cc</tt></a>
+      Using <a href="pq_container_traits.html"><tt>container_traits</tt></a>
+      to query about underlying data structure behavior.</li>
+    </ol>
+
+    <h2><a name="xref" id="xref">Cross Referencing</a></h2>
+
+
+    <ol>
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/priority_queue_xref.cc"><tt>priority_queue_xref.cc</tt></a>
+      Cross referencing an associative container and a priority
+      queue.</li>
+
+      <li><a href=
+      "../../../../testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc"><tt>priority_queue_dijkstra.cc</tt></a>
+      Cross referencing a vector and a priority queue using a
+      <u>very</u> simple version of Dijkstra's shortest path
+      algorithm.</li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html
new file mode 100644
index 000000000000..3a6b26912085
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_performance_tests.html
@@ -0,0 +1,332 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority-Queue Performance Tests</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority-Queue Performance Tests</h1>
+<h2><a name="settings" id="settings">Settings</a></h2>
+<p>This section describes performance tests and their results.
+    In the following, <a href="#gcc"><u>g++</u></a>, <a href="#msvc"><u>msvc++</u></a>, and <a href="#local"><u>local</u></a> (the build used for generating this
+    documentation) stand for three different builds:</p>
+<div id="gcc_settings_div">
+<div class="c1">
+<h3><a name="gcc" id="gcc"><u>g++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.644</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform -
+          Linux-2.6.12-9-386-i686-with-debian-testing-unstable</li>
+<li>Compiler - g++ (GCC) 4.0.2 20050808 (prerelease)
+          (Ubuntu 4.0.1-4ubuntu9) Copyright (C) 2005 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.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="msvc_settings_div">
+<div class="c1">
+<h3><a name="msvc" id="msvc"><u>msvc++</u></a></h3>
+<ul>
+<li>CPU speed - cpu MHz : 2660.554</li>
+<li>Memory - MemTotal: 484412 kB</li>
+<li>Platform - Windows XP Pro</li>
+<li>Compiler - Microsoft (R) 32-bit C/C++ Optimizing
+          Compiler Version 13.10.3077 for 80x86 Copyright (C)
+          Microsoft Corporation 1984-2002. All rights
+          reserved.</li>
+</ul>
+</div>
+<div class="c2"></div>
+</div>
+<div id="local_settings_div"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h3><a name = "local"><u>local</u></a></h3><ul>
+<li>CPU speed - cpu MHz		: 2250.000</li>
+<li>Memory - MemTotal:      2076248 kB</li>
+<li>Platform - Linux-2.6.16-1.2133_FC5-i686-with-redhat-5-Bordeaux</li>
+<li>Compiler - g++ (GCC) 4.1.1 20060525 (Red Hat 4.1.1-1)
+Copyright (C) 2006 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.
+</li>
+</ul>
+</div><div style = "width: 100%; height: 20px"></div></div>
+<h2><a name="pq_tests" id="pq_tests">Tests</a></h2>
+<ol>
+<li><a href="priority_queue_text_push_timing_test.html">Priority Queue
+      Text <tt>push</tt> Timing Test</a></li>
+<li><a href="priority_queue_text_push_pop_timing_test.html">Priority
+      Queue Text <tt>push</tt> and <tt>pop</tt> Timing
+      Test</a></li>
+<li><a href="priority_queue_random_int_push_timing_test.html">Priority
+      Queue Random Integer <tt>push</tt> Timing Test</a></li>
+<li><a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+      Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+      Test</a></li>
+<li><a href="priority_queue_text_pop_mem_usage_test.html">Priority Queue
+      Text <tt>pop</tt> Memory Use Test</a></li>
+<li><a href="priority_queue_text_join_timing_test.html">Priority Queue
+      Text <tt>join</tt> Timing Test</a></li>
+<li><a href="priority_queue_text_modify_up_timing_test.html">Priority
+      Queue Text <tt>modify</tt> Timing Test - I</a></li>
+<li><a href="priority_queue_text_modify_down_timing_test.html">Priority
+      Queue Text <tt>modify</tt> Timing Test - II</a></li>
+</ol>
+<h2><a name="pq_observations" id="pq_observations">Observations</a></h2>
+<h3><a name="pq_observations_cplx" id="pq_observations_cplx">Underlying Data Structures
+    Complexity</a></h3>
+<p>The following table shows the complexities of the different
+    underlying data structures in terms of orders of growth. It is
+    interesting to note that this table implies something about the
+    constants of the operations as well (see <a href="#pq_observations_amortized_push_pop">Amortized <tt>push</tt>
+    and <tt>pop</tt> operations</a>).</p>
+<table class="c1" width="100%" border="1" summary="pq complexities">
+<tr>
+<td align="left"></td>
+<td align="left"><tt>push</tt></td>
+<td align="left"><tt>pop</tt></td>
+<td align="left"><tt>modify</tt></td>
+<td align="left"><tt>erase</tt></td>
+<td align="left"><tt>join</tt></td>
+</tr>
+<tr>
+<td align="left">
+<p><tt>std::priority_queue</tt></p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n)) Worst</p>
+</td>
+<td align="left">
+<p><i>Theta;(n log(n))</i> Worst</p>
+<p><sub><a href="#std_mod1">[std note 1]</a></sub></p>
+</td>
+<td align="left">
+<p class="c3">&Theta;(n log(n))</p>
+<p><sub><a href="#std_mod2">[std note 2]</a></sub></p>
+</td>
+<td align="left">
+<p class="c3">&Theta;(n log(n))</p>
+<p><sub><a href="#std_mod1">[std note 1]</a></sub></p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p><i>&Theta;(log(n))</i> worst</p>
+<p><i>O(1)</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(log(n))</p>
+</td>
+</tr>
+<tr>
+<td align="left">
+<p><a href="priority_queue.html"><tt>priority_queue</tt></a></p>
+<p>with <tt>Tag</tt> =</p>
+<p><a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a></p>
+</td>
+<td align="left">
+<p class="c1">O(1)</p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p><i>&Theta;(log(n))</i> worst</p>
+<p><i>O(1)</i> amortized,</p>or
+
+          <p><i>&Theta;(log(n))</i> amortized</p>
+<p><sub><a href="#thin_heap_note">[thin_heap_note]</a></sub></p>
+</td>
+<td align="left">
+<p><i>&Theta;(n)</i> worst</p>
+<p><i>&Theta;(log(n))</i> amortized</p>
+</td>
+<td align="left">
+<p class="c1">&Theta;(n)</p>
+</td>
+</tr>
+</table>
+<p><sub><a name="std_mod1" id="std_mod1">[std note 1]</a> This
+    is not a property of the algorithm, but rather due to the fact
+    that the STL's priority queue implementation does not support
+    iterators (and consequently the ability to access a specific
+    value inside it). If the priority queue is adapting an
+    <tt>std::vector</tt>, then it is still possible to reduce this
+    to <i>&Theta;(n)</i> by adapting over the STL's adapter and
+    using the fact that <tt>top</tt> returns a reference to the
+    first value; if, however, it is adapting an
+    <tt>std::deque</tt>, then this is impossible.</sub></p>
+<p><sub><a name="std_mod2" id="std_mod2">[std note 2]</a> As
+    with <a href="#std_mod1">[std note 1]</a>, this is not a
+    property of the algorithm, but rather the STL's implementation.
+    Again, if the priority queue is adapting an
+    <tt>std::vector</tt> then it is possible to reduce this to
+    <i>&Theta;(n)</i>, but with a very high constant (one must call
+    <tt>std::make_heap</tt> which is an expensive linear
+    operation); if the priority queue is adapting an
+    <tt>std::dequeu</tt>, then this is impossible.</sub></p>
+<p><sub><a name="thin_heap_note" id="thin_heap_note">[thin_heap_note]</a> A thin heap has
+    <i>&amp;Theta(log(n))</i> worst case <tt>modify</tt> time
+    always, but the amortized time depends on the nature of the
+    operation: I) if the operation increases the key (in the sense
+    of the priority queue's comparison functor), then the amortized
+    time is <i>O(1)</i>, but if II) it decreases it, then the
+    amortized time is the same as the worst case time. Note that
+    for most algorithms, I) is important and II) is not.</sub></p>
+<h3><a name="pq_observations_amortized_push_pop" id="pq_observations_amortized_push_pop">Amortized <tt>push</tt>
+    and <tt>pop</tt> operations</a></h3>
+<p>In many cases, a priority queue is needed primarily for
+    sequences of <tt>push</tt> and <tt>pop</tt> operations. All of
+    the underlying data structures have the same amortized
+    logarithmic complexity, but they differ in terms of
+    constants.</p>
+<p>The table above shows that the different data structures are
+    "constrained" in some respects. In general, if a data structure
+    has lower worst-case complexity than another, then it will
+    perform slower in the amortized sense. Thus, for example a
+    redundant-counter binomial heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>)
+    has lower worst-case <tt>push</tt> performance than a binomial
+    heap (<a href="priority_queue.html"><tt>priority_queue</tt></a>
+    with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>),
+    and so its amortized <tt>push</tt> performance is slower in
+    terms of constants.</p>
+<p>As the table shows, the "least constrained" underlying
+    data structures are binary heaps and pairing heaps.
+    Consequently, it is not surprising that they perform best in
+    terms of amortized constants.</p>
+<ol>
+<li>Pairing heaps seem to perform best for non-primitive
+      types (<i>e.g.</i>, <tt>std::string</tt>s), as shown by
+      <a href="priority_queue_text_push_timing_test.html">Priority
+      Queue Text <tt>push</tt> Timing Test</a> and <a href="priority_queue_text_push_pop_timing_test.html">Priority
+      Queue Text <tt>push</tt> and <tt>pop</tt> Timing
+      Test</a></li>
+<li>binary heaps seem to perform best for primitive types
+      (<i>e.g.</i>, <tt><b>int</b></tt>s), as shown by <a href="priority_queue_random_int_push_timing_test.html">Priority
+      Queue Random Integer <tt>push</tt> Timing Test</a> and
+      <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+      Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+      Test</a>.</li>
+</ol>
+<h3><a name="pq_observations_graph" id="pq_observations_graph">Graph Algorithms</a></h3>
+<p>In some graph algorithms, a decrease-key operation is
+    required [<a href="references.html#clrs2001">clrs2001</a>];
+    this operation is identical to <tt>modify</tt> if a value is
+    increased (in the sense of the priority queue's comparison
+    functor). The table above and <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+    Text <tt>modify</tt> Timing Test - I</a> show that a thin heap
+    (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>)
+    outperforms a pairing heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> =<tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>),
+    but the rest of the tests show otherwise.</p>
+<p>This makes it difficult to decide which implementation to
+    use in this case. Dijkstra's shortest-path algorithm, for
+    example, requires <i>&Theta;(n)</i> <tt>push</tt> and
+    <tt>pop</tt> operations (in the number of vertices), but
+    <i>O(n<sup>2</sup>)</i> <tt>modify</tt> operations, which can
+    be in practice <i>&Theta;(n)</i> as well. It is difficult to
+    find an <i>a-priori</i> characterization of graphs in which the
+    <u>actual</u> number of <tt>modify</tt> operations will dwarf
+    the number of <tt>push</tt> and <tt>pop</tt> operations.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html
new file mode 100644
index 000000000000..1e894ca6edb2
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_regression_tests.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Priority-Queue Regression Tests</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Priority-Queue Regression Tests</h1>
+
+    <h2><a name="assoc_desc" id="assoc_desc">Description</a></h2>
+
+    <p>The library contains a single comprehensive regression test.
+    For a given container type in <tt>pb_ds</tt>, the test creates
+    an object of the container type and an object of the
+    corresponding STL type (<i>i.e.</i>,
+    <tt>std::priority_queue</tt>). It then performs a random
+    sequence of methods with random arguments (<i>e.g.</i>, pushes,
+    pops, and so forth) on both objects. At each operation, the
+    test checks the return value of the method, and optionally both
+    compares <tt>pb_ds</tt>'s object with the STL's object as well
+    as performing other consistency checks on <tt>pb_ds</tt>'s
+    object (<i>e.g.</i>, that the size returned by the
+    <tt>size</tt> method corresponds to the distance between its
+    <tt>begin</tt> and end iterators).</p>
+
+    <p>Additionally, the test integrally checks exception safety
+    and resource leaks. This is done as follows. A special
+    allocator type, written for the purpose of the test, both
+    randomly throws an exceptions when allocations are performed,
+    and tracks allocations and de-allocations. The exceptions thrown
+    at allocations simulate memory-allocation failures; the
+    tracking mechanism checks for memory-related bugs (<i>e.g.</i>,
+    resource leaks and multiple de-allocations). Both
+    <tt>pb_ds</tt>'s containers and the containers' value-types are
+    configured to use this allocator.</p>
+
+    <h2><a name="pq_tests" id="pq_tests">Tests</a></h2>
+
+    <p><a href=
+    "../../../../testsuite/ext/pb_ds/regression/priority_queue_rand.cc"><tt>priority_queue_rand.cc</tt></a>
+    checks all priority queue types.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html b/libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html
new file mode 100644
index 000000000000..de8cb447c71b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/pq_tests.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Priority-Queue Tests</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Priority-Queue Tests</h1>
+
+    <p><a href="pq_regression_tests.html">Priority-Queue Regression
+    Tests</a> describes the regression tests; <a href=
+    "pq_performance_tests.html">Priority-Queue Performance
+    Tests</a> describes the performance tests.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html b/libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html
new file mode 100644
index 000000000000..7c888849918c
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/prerequisites.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Prerequisites</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Usage Prerequisites</h1>
+
+    <p><tt>pb_ds</tt> has been successfully tested with the
+    following compilers:</p>
+
+    <ol>
+      <li>g++ 3.3.1, 3.4.4, 4.0, 4.1, and what will be 4.2</li>
+
+      <li>Intel icpc 8.1 and 9</li>
+
+      <li>Visual C++ .Net 2005</li>
+    </ol>
+
+    <p>The library contains only header files, and does not require
+    any other libraries except the STL. All classes are defined in
+    <tt><b>namespace</b> pb_ds</tt>. The library internally uses
+    macros beginning with <tt>PB_DS</tt> (<i>e.g.</i>, for header
+    guards), but <tt>#<b>undef</b></tt>s anything it
+    <tt>#<b>define</b></tt>s (except for header guards). Compiling
+    the library in an environment where macros beginning in
+    <tt>PB_DS</tt> are defined, may yield unpredictable results in
+    compilation, execution, or both.</p>
+
+    <p> Further dependencies are necessary to create the visual output
+    for the performance tests. To create these graphs, two additional
+    packages will be needed: <b>pychart</b> and <b>Beautiful
+    Soup</b>. Both are freely available.
+    </p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html
new file mode 100644
index 000000000000..169953f6d59f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue.html
@@ -0,0 +1,995 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>priority_queue Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>priority_queue</tt> Interface</h1>
+
+    <p>Basic priority queue.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/priority_queue.hpp"><tt>priority_queue.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Value_Type216514186" id=
+"Value_Type216514186"><b>typename</b> Value_Type</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Value type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>
+          <pre>
+std::less&lt;<a href=
+"#Value_Type216514186"><tt>Value_Type</tt></a>&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Data-structure tag.</p>
+        </td>
+
+        <td><a href="pairing_heap_tag.html"><span class=
+        "c2"><tt>pairing_heap_tag</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Container
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::difference_type
+</pre>
+        </td>
+
+        <td>
+          <p>Difference type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Categories</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="container_category1247973216" id=
+"container_category1247973216">container_category</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Tag278938"><tt>Tag</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>The underlying mapped-structure tag of the
+          container.</p>
+
+          <p>This is one of:</p>
+
+          <ol>
+            <li><a href="binary_heap_tag.html"><span class=
+            "c2"><tt>binary_heap_tag</tt></span></a></li>
+
+            <li><a href="binomial_heap_tag.html"><span class=
+            "c2"><tt>binomial_heap_tag</tt></span></a></li>
+
+            <li><a href="rc_binomial_heap_tag.html"><span class=
+            "c2"><tt>rc_binomial_heap_tag</tt></span></a></li>
+
+            <li><a href="pairing_heap_tag.html"><span class=
+            "c2"><tt>pairing_heap_tag</tt></span></a></li>
+
+            <li><a href="thin_heap_tag.html"><span class=
+            "c2"><tt>thin_heap_tag</tt></span></a></li>
+          </ol>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="cmp_fn394495" id="cmp_fn394495">cmp_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Value-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Value_Type216514186"><tt>Value_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Value type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p>Value reference type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_reference
+</pre>
+        </td>
+
+        <td>
+          <p>Const value <a href=
+          "#reference54418471"><tt>reference</tt></a> type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="pointer2179769" id="pointer2179769">pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::pointer
+</pre>
+        </td>
+
+        <td>
+          <p>Value pointer type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#value_type279018186"><tt>value_type</tt></a>&gt;::other::const_pointer
+</pre>
+        </td>
+
+        <td>
+          <p>Const Value <a href=
+          "#pointer2179769"><tt>pointer</tt></a> type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_point_iterator2364676009" id=
+"const_point_iterator2364676009">const_point_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Const point-type iterator.
+</pre>
+        </td>
+
+        <td>
+          <p>Const point-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="point_iterator2789896775" id=
+"point_iterator2789896775">point_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Point-type iterator.
+</pre>
+        </td>
+
+        <td>
+          <p>Point-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Const range-type iterator.
+</pre>
+        </td>
+
+        <td>
+          <p>Const range-type iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Range-type iterator.
+</pre>
+        </td>
+
+        <td>
+          <p>Range-type iterator.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+    <h3><a name="link9" id="link9">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  priority_queue
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  priority_queue
+  (<b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+          <a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  priority_queue
+  (It first_it, 
+    It last_it)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of <a href=
+          "#value_type279018186"><tt>value_type</tt></a>s. The
+          <a href="#value_type279018186"><tt>value_type</tt></a>s
+          between <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  priority_queue
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of <a href=
+          "#value_type279018186"><tt>value_type</tt></a>s and some
+          policy objects The <a href=
+          "#value_type279018186"><tt>value_type</tt></a>s between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+          <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  priority_queue
+  (<b>const</b> <span class=
+"c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~priority_queue
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>priority_queue</tt></span> &amp;
+  <b>operator</b>=
+  (<b>const</b> <span class=
+"c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Assignment operator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class="c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Information Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  size
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the number of distinct <a href=
+          "#value_type279018186"><tt>value_type</tt></a> objects
+          the container object is storing.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  max_size
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an upper bound on the number of distinct
+          <a href="#value_type279018186"><tt>value_type</tt></a>
+          objects this container can store.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  empty
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns whether the container object is not storing
+          any <a href=
+          "#value_type279018186"><tt>value_type</tt></a>
+          objects.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link11" id="link11">Insert Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a>
+  push
+  (<a href=
+"#const_reference495461441"><tt>const_reference</tt></a> r_val)
+</pre>
+        </td>
+
+        <td>
+          <p>Inserts a <a href=
+          "#value_type279018186"><tt>value_type</tt></a> object.
+          returns a <a href=
+          "#point_iterator2789896775"><tt>point_iterator</tt></a>
+          object associated with the new pushed <span class=
+          "c1"><tt>r_val</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link12" id="link12">Find Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_reference495461441"><tt>const_reference</tt></a> 
+  top
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_reference495461441"><tt>const_reference</tt></a>
+          of the largest <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container object, i.e., a <a href=
+          "#value_type279018186"><tt>value_type</tt></a> v_max for
+          which any other <a href=
+          "#value_type279018186"><tt>value_type</tt></a> v in the
+          container object will satisfy !<a href=
+          "#cmp_fn394495"><tt>cmp_fn</tt></a>()(v_max, v).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link13" id="link13">Modify Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  modify
+  (<a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a> it,
+    <a href=
+"#const_reference495461441"><tt>const_reference</tt></a> r_new_val)
+</pre>
+        </td>
+
+        <td>
+          <p>Modifies the <a href=
+          "#value_type279018186"><tt>value_type</tt></a> associated
+          with the <a href=
+          "#point_iterator2789896775"><tt>point_iterator</tt></a>
+          <span class="c1"><tt>it</tt></span> into <span class=
+          "c1"><tt>r_new_val</tt></span>.</p>
+
+          <p>To use this method, <a href=
+          "#value_type279018186"><tt>value_type</tt></a> must be
+          assignable.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link14" id="link14">Erase Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  pop
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Pops the largest <a href=
+          "#value_type279018186"><tt>value_type</tt></a>.</p>
+
+          <p>If the container object is empty, results are
+          undefined.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  erase
+  (<a href=
+"#point_iterator2789896775"><tt>point_iterator</tt></a> it)
+</pre>
+        </td>
+
+        <td>
+          <p>Erases the <a href=
+          "#value_type279018186"><tt>value_type</tt></a> associated
+          with the <a href=
+          "#point_iterator2789896775"><tt>point_iterator</tt></a>
+          <span class="c1"><tt>it</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+  <b>class</b> Pred&gt;
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a> 
+  erase_if
+  (Pred prd)
+</pre>
+        </td>
+
+        <td>
+          <p>Erases any <a href=
+          "#value_type279018186"><tt>value_type</tt></a> satisfying
+          the predicate <span class="c1"><tt>prd</tt></span>;
+          returns the number of <a href=
+          "#value_type279018186"><tt>value_type</tt></a>s
+          erased.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  clear
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Clears the container object.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link15" id="link15">Split and join
+    Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  join
+  (<span class="c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Joins two container objects. When this function
+          returns, <span class="c1"><tt>other</tt></span> will be
+          empty.</p>
+
+          <p>When calling this method, <span class=
+          "c1"><tt>other</tt></span>'s policies must be
+          equivalent to this object's policies.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+  <b>class</b> Pred&gt;
+<b>inline</b> <b>void</b>
+  split
+  (Pred prd,
+    <span class="c2"><tt>priority_queue</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Splits into two container objects. When this function
+          returns, <span class="c1"><tt>other</tt></span> will be
+          contain only values v for which <span class=
+          "c1"><tt>prd</tt></span>(v) is <tt><b>true</b></tt>.</p>
+
+          <p>When calling this method, <span class=
+          "c1"><tt>other</tt></span>'s policies must be
+          equivalent to this object's policies.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link16" id="link16">Iteration Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+  begin
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the first <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  begin
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a>
+          corresponding to the first <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+  end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> corresponding
+          to the just-after-last <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  end
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a>
+          corresponding to the just-after-last <a href=
+          "#value_type279018186"><tt>value_type</tt></a> in the
+          container.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html
new file mode 100644
index 000000000000..e9aec9ceb04a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Random Int Push Pop Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Random Integer <tt>push</tt> and
+    <tt>pop</tt> Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with i.i.d. integer
+    keys into a container using <tt>push</tt> , then removes them
+    using <tt>pop</tt> . It measures the average time for
+    <tt>push</tt> and <tt>pop</tt> as a function of the number of
+    values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc">
+<tt>priority_queue_random_int_push_pop_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+    Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> shows the results for the native
+    priority queues and <tt>pb_ds</tt> 's priority queues in
+    <a href="pq_performance_tests.html#gcc"><u>g++</u></a>,
+    <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_random_int_push_pop_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt___tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_random_int_push_pop_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>push</tt> <tt>pop</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_random_int_push_pop_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt___tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_random_int_push_pop_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>push</tt> <tt>pop</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_random_int_push_pop_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt___tt_pop_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_random_int_push_pop_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>push</tt> <tt>pop</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Binary heaps are the most suited for sequences of
+    <tt>push</tt> and <tt>pop</tt> operations of primitive types
+    (<i>e.g.</i> <tt><b>int</b></tt>s). This is explained in
+    <a href="priority_queue_random_int_push_timing_test.html">Priority
+    Queue Random Int <tt>push</tt> Timing Test</a> . (See <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+    Text <tt>push</tt> Timing Test</a> for the case of primitive
+    types.)</p>
+<p>At first glance it seems that the STL's vector-based
+    priority queue is approximately on par with <tt>pb_ds</tt>'s
+    corresponding priority queue. There are two differences
+    however:</p>
+<ol>
+<li>The STL's priority queue does not downsize the underlying
+      vector (or deque) as the priority queue becomes smaller
+      (see <a href="priority_queue_text_pop_mem_usage_test.html">Priority Queue
+      Text <tt>pop</tt> Memory Use Test</a>). It is therefore
+      gaining some speed at the expense of space.</li>
+<li>From <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+      Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+      Test</a>, it seems that the STL's priority queue is slower in
+      terms of <tt>pus</tt> operations. Since the number of
+      <tt>pop</tt> operations is at most that of <tt>push</tt>
+      operations, the test here is the "best" for the STL's
+      priority queue.</li>
+</ol>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+    Performance Tests::Observations</a> discusses this further and
+    summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..68f5e2b6bdb66339b14e93ee37f9e229bcf8325c
GIT binary patch
literal 7350
zcmch6c{G&&`}bt~BuP;uq7sobF|^pp8WN#wBg>4P2&1uYrG|tw4Ozk{Yh{fw<{R0^
zF4=~%4hD@G>tKHO_<sI*&Uv2aJbyj+IWx|6U)TF}y{^~wzTf6t_ltXX^?8q+IRXNK
zcnuA7%t0VFFbH(0=rB8Qhn{T_2?DW$?ipL?0wxFq0fFEk5C#Myf<R1`1%ZGda1aCo
zf)GIvCd&zjfZ%Wt90P(AL2xE376Soc;2;bJgdu`3Ox98&1Vn^`h!_x&2qH28BoGq<
zV!}a842VetF#!X>2A}~fU@;KQWaVL9a0mngfe;}OCMzvq!Ql`%1_CES;7k?^z=?rF
zFc=7i2*EH}q<~l=974oEh(rjH32+3KLYQy}69ZuqAxt1Ez#0GpNCPYZT7VBo3}6G$
z02Z*A$ts9t0~ZDkC&J-OR((KPz`|hQ7$O|QWR(lB0Gvb&oJfQdnLzabDIgZk#K4(E
zI1?xj&;y_etOn!&>IX;w6#}dQFn~0`5(ou&0Eq!?02;tzvXo=F0UNl87z~poBv2oa
z7O;p!43P=w3X}`50Gt>m5yJ#@1e68@0C)l6fY3m-fRun908L;uAP2w+C>W>^U=4r)
zq=A(HEr17*7{CUgnXDGEq5(Hx0~ZtM7$782ACMNXh)gD{fd}npu{h``tDgr=Vv#z~
zoz>n0DOns3)M0h|pkNl|gBn=PKcK~`;2;wK4QvOXOMrMlO$VtCcH;l{FBmfPERdA@
zv4Qmy5QvAL^*Pi}3f~28iU;UE47l$L4?sBj!$7+C@14_k^L-NV#M$5dalpBo@=8~)
zDWHQg1wkNTc|#p7i{SUmnWPW-Mf`D3F^YHD=A5r>c7+l@4%CXg$!4q6;*nln&xAlo
zJ{)hVzDAbc69;ve<;jA?IO%L2kx)(EUY<{fkcX5s!8u%H&Os19@=T7<J@)^jQ<<!*
z7PE0<ikIGN#JF%eSWoUbJD#GN_qHht8kA+$`9~A1((`Hdam$jfr1<5#bL>bNrxIuZ
zAARjg%c5>r=^^?B9x@i8)dP=&jt>sIz}p9RH+w4613WO*J?dZg7WA2J`wYZSLqSF!
z)>2OE?LN{hxjlC<`^?<(CkEyIm_%o`+mL&|!ZyRn)NX`>9e=X#KG<i9Wb!=&?y#wI
zd5dCNt#2$|QS@`(J-^&|yo$s1DA~bckT7g|c}p~tqO|c54a+)t>#MGuR@RA)vJ2UF
z)}4}w1La)oeq^kyd5gZodbwKC++KViPnQ1P(*&p>Y?*XwW924S&uWnqe%JlStB)Vu
zp@Z~agh#5ROzM)p_F5eDWh69xX2V8j5f*qiWy$a|83wwrZr(yn7onTS>fqmp+!S>!
zdli1qQu-!4vi9A+{)tkw%DfiXBogW)xZ`~ECo0R&cF*{|imEBC-pdu4bXrB_W91mp
zCCtHseEjxWS-|@!=*!bNLd?q_ynFaEe?35&81U$YIWf^N#zOsG6>R0KlbcN7D@d==
z3AOdLp1+&+-r4)!1G007tgS&z!F%-|67ce3RL88a$HkvU*y*Ema~<ZsZl7MaMO5&;
zz9$xU!Gq_ex^caJTu7N*9JCQV_LR<l>&I(zcE51HgY2HG>4YwJ=Obc#xWGFw|6Nsu
z?4)&b@=c%#=QY7~vw}{mi^t$LpP=>lrS3|kb;U-R%2y%_PdgH-{#6|H#EW}<jr*86
zKKS`NMc<GqM5{0v8~*_*tW&K$<sl<Lo~4|NKaq!4$QF8QoP%D9?=#Xbe+6N=xHo*v
z<P=)GsI`)sU|mgc{Yd>;VPtKpB)wmN9Cst524V${%ImygDwKI~X(2_q&hE$wfS0@`
z_ye=E^;TUdEkNGTKkI5?UMKdr{DDa2r}rC*mk0QjS<ds-@_j}VeX!LEb?oPv+hAS#
zszY=&-&rB2e>l<xjJgM!FKt2sg|vSF*#my@P$LQljfMs!l~+>>VxU{6y;j5D=b?PZ
zrstElLq7@4llk+TXz`e@NN!R4P~5zleaVZ|QQV5^EQQ2#-YExtp=D8$?oRD_Rr0a(
zdRBLET`z5e8W0wL`aq9l3q`s)2i-iIj(++HdIS&45%Li$LTg_>NPl<$bw_=?r=r~D
zF&Dl6O6!9Q#^C9-*n>SdyLE@_^FNdU_a9%Ib>c?UW5wiCU-r0=1i66+@jpA2lSUIJ
zzXVzZaZjx%Bii)F204DZ`413&OCsP_?*fchW9yVbuF!^eGC&cz2!qliY`|k5Z#~@M
z7PT5LH=8MZjd1!sdVofuwe6dTS}oF@lE(jw|96Le>2JWTA)~pcGvPm~4xk_6Z-(3m
z@G@La`HCPVeXG`u2Db4y;TtvJ_i)N0j27R%80T$!5h(jB(y?P+uK;1nP|C_dS9M&B
zg4(Qc;6n?#@@f{U4S<&2UN@&?DXc!(({(q3V1Y)c2H=ykT?hSdnhqFM>}a$0MJXg)
zsMlyIVUm;HuRM*A55o7|(y0|k@)fyfwed$H($}t<honEMM&#Q1+LuYTK{Ubp@igR`
z#<);~)xhHA-DGPS^A4QBwql?5{dF7Xg16^PP4UtqoiW|G6L<=w*0x7Ge@3vd6!peb
zpw!CY<<?PP_ct*m?-W-Xz_OKA*UCM+J{pDx5Z<0kid>H@ffAqZrc_3xk0`b$J@n*e
z%U{55Jyndzo$o7Ze65vG#c`;gUOt8!O@>wYoXv231MpMt+VIi*D=}mf4RS|P#Vn97
z<b_SagSsB3(*muw)=vicISyxhHfo(H8L8=+TmJ9Ez>VbI&2hq?{AQp9Rs-4>xlQ+M
zmw5o38pjLJeykJvX$<sgVzx8T*@+yXw`{=Q9HDOGi5}-&hw7?BkW|kwyXy8@_s$+p
zPKPfO!>?Pn2;{=>>7w7Ec5mGy(z@E3eai#AnI1r|=C=rLoLwK1P}Y%^U*mQQq=afz
zo&${?BV5$bphn2^^cnr0&TUNf!6^c5N~m&3$<7AQ>~}5Ri6Vs~zpXFy^wG#PSCD63
z%l5Z-d;=#nl7<h&nH^@%R`7+sPeNI>ri|h!2m1I=G0R1iCR&>dGTVaF@o&#*4u_IB
zBe<kkHK6x()r7f`we!qI;E{>tz;oFBjc{aR9XfbhYm}bSGuD$a3TIq*A;(?9*&ZAp
z-W6dY&cBl8+_UzsTjL-JliMC<9XR|q+DJ`D$4~wlVVrvDC9nA~{>fWSTbZ8=!Y)Nh
ziki@T)6$A1+Xn7~nZlJ9_Qy2R3rIrTg^&c5+-A**__@i;s3HFM^3@U6G3?>;FDRif
z5;T`G_}sU+M8tJZ)Oi_Q0ws4pSX$ZOhY2C;#z~i#TC6o%hpBz=Qaz-+c=TMhTjVkH
zEAQeGFi^PjdalaprOK&wexEGZ#<6pPB}T2)mP2Tp=t$sT$+UWZtZmNv#V-rD`D@;3
z>sXd7Nau~+Da%$BNiE>%&;mD?9ql!GlD`Bay>H0yNeg6*i)+_IJyfwP-#P&u41O8i
zVExmk_jW?uA|xh2J_7&uUju(|P(cWz7Th%)NZ9^6PU4Ka$nhDtIX6h~3n4gnXX4HX
z)udhIP;<vso8_P@QD4p)T&?o^kQo!311>5|rm8K;^mWcf;71?HxtKn!!k?TGa5DTX
z@ZBCb-hLeQ`;72n_N&b{Jy6d5`{YaMssOVa7A~x>krcozzdOST_xIUJ|G-dL#N?oH
z!w;%j)`#OHxuP0FKYuNDa<(_Qagr>#0?k2(P<qn8_N@1phbc2R9<Bs7meye08av80
z4TjN`RVFVzXma0&Hol9&!-)dwNtC=xr^O{>B*?QT`+Y@K{huWXAEDTvbr13P7FUIp
zSQ>4-xj_S)HBOa>3lAXT#qS7O5cQ_1RDN=8fa%lCmyXJrmo}slBv1d-Nw}@%Db4h$
zys#qg|7tEJ<P;yhpFIuT#vTP79YA(hUFtQm)iF-L#)em%{$rY@+G`{*A$^LS-q`I~
zl^X@U`E*ty9)us)+YbEoU1<SC_t$&DH3$xnJw~2Q2+or06aZ5cdOOd@*=%Jt=(6Ko
zzV1tDVB`36&>ZnI9OO7qY3L!OpQbFQCYZ|&dz{Q^Q}_q5KBda5_h80s_Y3sgTb|u~
zX!v93ThwH~5m}w5V)n=%IotJW%*JeT3oLMs8a`xxcoH=<24CcRlK1J}UV5h|yY`=E
zk|F;b%)P%gV2~%aKOQj({sOb5YU6WU-P^|KY#%Bm5eQonbxw}^tKvrr7vmw%^)suE
zp`_F;oVSR8(}Gr?8Z`8NuUox)D5+u#$2&&jb^22mTTl}{SE}E)a1UwO5b>cecwno}
zaMylOm=t>>ewJpMw6MP{TF~LJKzLp4d^=^m1Q#QdC~;lfc)-gH+daK1me$-n&^&dK
zznVs1uY~$PzpcCo3qk&f`e8f>Ltnghr#e<*dR6`56+c^{_5X0%xT#`t6dc^#=d5*h
zghUb%16^OXaHjmIVvhz>>2BE8kNyXEFDcp5i`;JC#-#S9R!48B1^X|>guF^9YqS4!
zy|NT%9)sxSecxrxfW%kZGPZDhv?q&?Vm2<G5jXi~<>+<m(}{>0R7mS&7!kjD_GRS!
zVWGGOf0pfq5`U@tC<C{n9mZ9})U0!D31Spq?6^bOKmJb??59_YT4-jQ-yA#DW7~GN
zJW<4O50j3%H!(Ve@9yBC(kcNBK06_AN*1`R<vQy88&s<()fBKaOhU|5wj5#7RKD0F
zm?x-Qu>%TunVbN1*?}aur)uWw53H^VGu~*H(S6;nR7ME@yzm{__3nsW&g2d~cNvWx
zDJVmKc8;_`maIc_X71AIt~b*^d)~9!cDK*CLNSR|^AuFWV&`Df<jGe{1Bta(RyAkt
zgi)@%RT$f;S?~9ESGR%qSoJDZi#bE1R~qsOOA9?YjB;yk0EHnfSPieY_v+0sh<)|(
zk{kw`_Q*qokZF@YQcj!lO6{}U)>dUIm@fM`!y4p@P8e4NR>4wJ1fvZv7!X>2Ap1~<
zF3=mt-^O^qAr$*<#BZk>p7*#C#F6>gw$cGs_hme{1Z?O#be<Yfk0vRFGN}m-c^v-2
z#X-jJT6=zxm}*Pzom^E|+Ig*)`t-As`49YN*amV-LKcpZy*i7Mc4C9taDFvPbwl!0
zhn4*cEB1G?C+A6mPkSl~I1q)jlXTe`o(OAKnX40wEUP06#!z~R%y)+cWp8TRP!zT8
z>H;>~d_xRtWUbAe;fg}sRKlHy_2j)gI)=C$&|L*H<kQ;OF}o@<5AIBzM3=wCrbR3Y
zJk5fRGCCXlCSp;o3s};_?VmI$J5^&abDvt}SSfaNDL+<!A&w^RlBM*;#N+8}=(oZ0
zO{p&?WyeY7L8wFS)`8bP!5qd$WZB1Nj?iDd2ovAPvU!yAMQijLQ=KBJA2A{-meM35
zH&r-P+`J(=mO%OGucb`^V^cPN8b=6txS`6@MJL>jo37uP%-v9$_LPjit$=(nYN@-h
zK`x^H$-J1gXl9MIyT>y(GOD$=<iFZfW>%+Wkf{+WX1WgDCD~L_Zi^3>m*%XdisJcj
zJBB^i>WXfSU(51Hv&lsSY6`fC%uPPutMJOyF#daGl&|LHN1KYQ!}qa5ao%qKjF<)d
z9MO3EZn{tqCAsR&cZQ1ReX%!{S6tWBcl4N%>Q9BLM;veRN*DB&(Fyi-pA<8X@X=cD
z@8t^GYtS!0uRJSaes%_4ZK2$k+t^e>wde{tH#x9dWU&_ZJU3v_=xXz#*P~MfwCA^g
z1OeF3nYJ?cpuM|nj?hM?vU<{)8g`T*RHY^b7j&vZyr}DW)!VEfqeOS>5e{9O;OQpm
zUhV!TvF%5Eotj=gb13MfeOZUu&%N+(A0K>pI)nN4`ZN>a)XukRO&G%^cGM9i*30+A
zwY`p|&YeiIw%#z}<{RiN|K{3ND{_qPZ!={1qg~R+^_OR`$ohF3>8Md~%rc38XA%22
zq1gMFYY2xjb)?=LjFI)W8nUcgY);ZAi|Pk8<WWhfT0O<n(#3gp$6CH|gR=zgJWYop
zx2C!+gIYc3Gb&U~z$Of|3%<$#Oz5vVy_^0T8NJsijsB~>{PL*7itnuB9uE%ce^vDN
zyYbylQ#u&6Q>D+%vmZXvEb-HeJ&NJobOHS|!+%dsB@N};wK_4-Ssxp8L>VpHyG?op
zv!5!0RzEVk*A^xQTNUhVmTl_!u6<dw{sDL_{g|FceZ3htgy=1eJ+#_y^sVQ7et-0(
zh1r1R_^m?6lJS@1>W)PHjaw_wgvoZR=uNqA)`D%fSBr;(U7lHhCm5$_GGXx(m)e^p
zJnvhnSqS|&C1|stt4b(N3D!#NC~95QCA1!|Ph&5oU(6FKTuL14thqRJy0TxSPV6;G
zf9O+*haiM&?M#%Fo~F;XqiQ)9%+k5*)Y7kJGl_dV_~nsc7scK(#vGgcJ)0ksq$&KC
zT~3-~C}BPInATj2@yeJ&^PfOo-l<g|HKUu~+3-j6eurJ*XEcXF?z~I=fZ&fnH#{{<
z%y6(~Yns(ok9<yHc+6lFQv+5qZap%drfuQ$VQHGK4?TLgcyp%n+J6k#6UEsw>6zX~
zp=WOwS?=0vwDON>Jrb>qkRN)sa@Hz0De%bh>*X=kWfgA47X*=aHH_<Sv-8o<MDgOs
z#h4=er3*LI?v>x&cqy}ACT|vMjQ!7C6x8MMAYp4-R`~jWZ?=rpcl;J^aXRk{KZ?`;
zgtnr?JO%wI?3p5taea(>!gbf)Q~y$o3|aT^_I917ge*pzIw|D|3|}Udl-qgZa)i#$
zj9q(e@VD{Pg-JNWNyK@VB%yJqP4`Icknm>sbl<of{X(1_Ex|ThJ)PqjG+%SsUad-{
z-8TD~-4D%qMAy}cu8sR~&@59`2iG9uB{M7DUeswPJb7Dy%qgmstzQx3X^mar^iO7Y
zzpd7%CxjYJvjhe_{}iEL!7M@ew(~XWBy5TQIUy~Vp^uC=mdEH9;<v(5d|+wp_`?^L
z2xECAPUnOS>Ga%ZK$5{{Y|{iya7ui=%xrT+l%0;&=sl-hA+qjC>MrWr*3n*+v;y+P
zDJGDQ)86-u5R(&`tgGs9Np7EqZf-O-d~<u#5c$TEV@6xLuQ9nt^*-+?tjlc3h;BaE
zon~`SpFYre#Ru>A1!`0I#4nv)F4VSiVN2C~<gl}M$7QF0&HmiXo}D;yh|SwC^L@&)
zKg&{+v1nR|Mo#8u_dkSp-5Z_R?Xs;An?=x<t9vgFzoa?tWd3qbY3Xr0uN+WVvXqa+
z%x*#KR-i9;;-a6Gg@{>J(Xinkq)np2Kc}iEaU_1MP%>O?m6Q=BF^rZ&{}zXv&j-1W
z@{i$0s`LW?%JF{xk4VIg&uE=<+lm`cW><F|)%7cvnOLpXf$g%mj>ZUE1(Rms2=vgL
z=cHdwT;6!?&IXl0Q){=s?ENuqJn8pXk-{Diuqg=kHo<Ej@W-L2Mr%*hQq2OqBza!%
zXC(TxosRfb^C!8bgTmQ+WK^tf0U~hCngJViKI`8yxnBKZUvOAm>(ZL-MzmtIEx~)}
zeMV{LLbEE0F5bO`%fD?MZ@lKN={jC|gYoLh_Vq3@timM`em!_<b>&6FNYSH{6A9zU
z7;`+)r`|XsSYy9zpq<<-@%nq!hs1njy7c~BwthVoq4XN1qs`DYDu9A1RD^e6Ljl*G
zVXHpIP$iAg8s?Hf5Q#o(crm5&&$!Q)SsJ)bDA{H7@hNJ<8Ty5ktoy>fowVd4p*CG9
zU~s8b1ihx5^5PyoC*;JDe@B)I>uj|KoWMl0ZIDM#-~2?OPypB|>c4|dtz76ip<33c
z^9Axd+2AVwdi1{TRW@M7VXl8?pihxeb{8c~!Kcp}>SaND2?l!afi->qjz|Auc}Zh5
zx`^6)4GEL`xd4sp^WFw|d3C<@$NLG!>1_COgYO=9k3HAZ51b_b*%ihp0(@`ziu0fS
z89{p<^RVc?x{3Nj#)<3>dJcG!uB|xRP|N3d#WL`9fklRRahh-8uvfrLQ|9IkeC$^X
zVY>O@wS`pEu!%`}`KEbqr!1|oM<xE%neZp#l#!qtDKe=Al~>A?C9?gH+t<~PI2RVh
zC}LrLKZUmw22e?_?hr=)1^>p15-$k7I<qY0erj7!op|wM1`T&KP*2@>o8FDHv~K%o
zs*b1mSPHTduGZV8#f9$745;}2RX>;quR(3DY#@eEw)6GbeD?#@Lq&F9eAS>>JY@eK
z@DsI$BTRI?n1xGMp=Rx)%|bVCb!DhDl{fk<>B{f!c+E2iK21MWZ_wlkTnznZqrLUD
z5LH>!18_F(#@qYg1in$m_Ldk;5}EAhfWVJOh*1sV<g<Ii4OfH3<W&uVeM<Z>r0zQ>
zc|RAgW=<_uVixzb3r~BsZtqeRMHH@dwv5<g9hF?{esk&wze|9Km6yqOy}d=a`?%}c
zwb`cY(|<-Ewgkcy=DNy+>?EEPgbu@1$Ky>}0yAN|7r(*%hvBjB;HuH8E_M&nA-+MG
zzth_tGfp_AQ~x4Q_}ja8*N?16drLish+oB7ld{3TD+n}Ujbqg^DrJ3bS;9tvD?@Wl
zh=`QXkte%`TQ+)aC%aFSd;XJ8wZj`^3?n_&&C2RW0&fq;l00dKYp||T@kS{MG^59_
zAxV2QmSjsaguuH>Mf#;E6X~Yu@}53>$8R}qHijNs3llqtG<`3Jc=r3}!5)m`bBB1#
z!6`XHSM$3nt1w?<px<6!9~gpjaUmVGM~!XsgjL9K+(1y`{}MC|1aU=hT@(F(8S?+{
z-T>4*l)_38v^E*r$(>$56iSiKL2~cJYm+tnF^R(~6FawWP@i9|I>aDlv<&55>g_x$
zRaL^!$1;SQ>M%;Q-t;OqWNnPu;VQ&OcZlcELK+_UnUrLSkgPNMnj}@q@6E|{cUM!P
ze$WJOT3>?s&UoqMj>jwnYJw48l0=Kquz@y|?;;9Z%0A#Tcy}yu9PUJ+k<+-qbpPkg
z3DJVy)O2c}7hlr^=PfJm<@6OD_vz+qp5Gs-@`C7Wi~qjp_`_78T)s{4Sz=?o@iElB
Lt5c@^DEfZ@^sR}M

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..51f8211f1d41e26b59dc864cc0706528eb1fda69
GIT binary patch
literal 9275
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_pop_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..4fc191c8b1c08681c4ab070058eab34ada853b29
GIT binary patch
literal 7065
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html
new file mode 100644
index 000000000000..65323029bacb
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test.html
@@ -0,0 +1,200 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Random Int Push Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Random Integer <tt>push</tt> Timing
+    Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with i.i.d integer keys
+    into a container using <tt>push</tt> . It measures the average
+    time for <tt>push</tt> as a function of the number of
+    values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc"><tt>
+    priority_queue_random_intpush_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+    Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> show the results for the native priority
+    queues and <tt>pb_ds</tt> 's priority queues in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NBPG">NBPG</a>, <a href="#NBPM">NBPM</a>, and <a href="#NBPL">NBPL</a> shows the
+    results for the binary-heap based native priority queues and
+    <tt>pb_ds</tt> 's priority queues in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_random_int_push_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_random_int_push_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_random_int_push_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_random_int_push_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_random_int_push_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_random_int_push_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBPG_res_div">
+<div id="NBPG_gcc">
+<div id="NBPG_binary_priority_queue_random_int_push_timing_test">
+<div id="NBPG_pq">
+<div id="NBPG_Native_and__tt_pb_ds_455tt__binary_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBPG" id="NBPG"><img src="binary_priority_queue_random_int_push_timing_test_gcc.png" alt="no image" /></a></h6>NBPG: Native and <tt>pb ds</tt> binary priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBPM_res_div">
+<div id="NBPM_msvc">
+<div id="NBPM_binary_priority_queue_random_int_push_timing_test">
+<div id="NBPM_pq">
+<div id="NBPM_Native_and__tt_pb_ds_455tt__binary_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBPM" id="NBPM"><img src="binary_priority_queue_random_int_push_timing_test_msvc.png" alt="no image" /></a></h6>NBPM: Native and <tt>pb ds</tt> binary priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBPL_res_div">
+<div id="NBPL_local">
+<div id="NBPL_binary_priority_queue_random_int_push_timing_test">
+<div id="NBPL_pq">
+<div id="NBPL_Native_and__tt_pb_ds_455tt__binary_priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBPL" id= "NBPL"><img src="binary_priority_queue_random_int_push_timing_test_local.png" alt="no image" /></a></h6>NBPL: Native and <tt>pb ds</tt> binary priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Binary heaps are the most suited for sequences of
+    <tt>push</tt> and <tt>pop</tt> operations of primitive types
+    (<i>e.g.</i> <tt><b>int</b></tt>s). They are less constrained
+    than any other type, and since it is very efficient to store
+    such types in arrays, they outperform even pairing heaps. (See
+    <a href="priority_queue_text_push_timing_test.html">Priority
+    Queue Text <tt>push</tt> Timing Test</a> for the case of
+    non-primitive types.)</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+    Performance Tests::Observations</a> discusses this further and
+    summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..ee8c9b7d9a98bcd94689ef585227f61fe635e2c1
GIT binary patch
literal 7021
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..dead185fa4fea098b06189e39eaa1c9175951e9b
GIT binary patch
literal 8986
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
FzW{y&Go%0j

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_random_int_push_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..0a1a8eaefbcc7c7340025c3e105e9921fbfcb0a0
GIT binary patch
literal 7100
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
XIc?CO_OlG_e-BM{J+%rIo3Q@{D|qdg

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html
new file mode 100644
index 000000000000..4bad6ee6e827
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>priority_queue_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>priority_queue_tag</tt> Interface</h1>
+
+    <p>Basic priority-queue data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="container_tag.html"><span class=
+"c2"><tt>container_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..ed8d875f0f883c5fa096bcc8ca2e6ddf7ebc1627
GIT binary patch
literal 10845
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg
new file mode 100644
index 000000000000..be007aecb8d3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_tag_cd.svg
@@ -0,0 +1,368 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://web.resource.org/cc/"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="11in"
+   height="8.5in"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.43"
+   version="1.0"
+   sodipodi:docbase="/mnt/share/src/policy_based_data_structures/pb_ds_images"
+   sodipodi:docname="pq_tag_diagram_2.svg"
+   inkscape:export-filename="/mnt/share/src/policy_based_data_structures/pb_ds_images/pq_tag_diagram_2.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4">
+    <marker
+       inkscape:stockid="Arrow1Mstart"
+       orient="auto"
+       refY="0.0"
+       refX="0.0"
+       id="Arrow1Mstart"
+       style="overflow:visible">
+      <path
+         id="path3311"
+         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
+         transform="scale(0.4)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Sstart"
+       style="overflow:visible">
+      <path
+         id="path3319"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(0.3,0,0,0.3,-1.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Sstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Sstart"
+       style="overflow:visible">
+      <path
+         id="path3337"
+         d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="scale(0.2,0.2)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Send"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Send"
+       style="overflow:visible">
+      <path
+         id="path3316"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-0.3,0,0,-0.3,1.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Mend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Mend"
+       style="overflow:visible">
+      <path
+         id="path3322"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-0.6,0,0,-0.6,3,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow1Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow1Lend"
+       style="overflow:visible">
+      <path
+         id="path3346"
+         d="M 0,0 L 5,-5 L -12.5,0 L 5,5 L 0,0 z "
+         style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+         transform="scale(-0.8,-0.8)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lstart"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lstart"
+       style="overflow:visible">
+      <path
+         id="path3331"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(1.1,0,0,1.1,-5.5,0)" />
+    </marker>
+    <marker
+       inkscape:stockid="Arrow2Lend"
+       orient="auto"
+       refY="0"
+       refX="0"
+       id="Arrow2Lend"
+       style="overflow:visible">
+      <path
+         id="path3328"
+         style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+         d="M 8.7185878,4.0337352 L -2.2072895,0.016013256 L 8.7185884,-4.0017078 C 6.97309,-1.6296469 6.9831476,1.6157441 8.7185878,4.0337352 z "
+         transform="matrix(-1.1,0,0,-1.1,5.5,0)" />
+    </marker>
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="608.69002"
+     inkscape:cy="490.05621"
+     inkscape:document-units="in"
+     inkscape:current-layer="layer1"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1278"
+     inkscape:window-height="973"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     gridtolerance="0.125in"
+     guidetolerance="0.125in">
+    <sodipodi:guide
+       orientation="horizontal"
+       position="629"
+       id="guide1307" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="449"
+       id="guide1309" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="269"
+       id="guide1311" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="496"
+       id="guide1313" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="383"
+       id="guide1315" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="241"
+       id="guide1317" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="680"
+       id="guide1319" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="749"
+       id="guide1321" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="124"
+       id="guide1345" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="901"
+       id="guide1347" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="539"
+       id="guide3390" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="359"
+       id="guide3392" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="280.5"
+       id="guide3324" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="195"
+       id="guide3326" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="427"
+       id="guide3328" />
+    <sodipodi:guide
+       orientation="vertical"
+       position="795"
+       id="guide3340" />
+    <sodipodi:guide
+       orientation="horizontal"
+       position="179"
+       id="guide1395" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:creator>
+          <cc:Agent>
+            <dc:title>Benjamin Kosnik</dc:title>
+          </cc:Agent>
+        </dc:creator>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       y="382.17499"
+       x="241.73018"
+       height="23.200001"
+       width="141.64481"
+       id="rect3420"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3418"
+       width="141.64481"
+       height="23.200001"
+       x="52.730194"
+       y="382.17499" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="122.35258"
+       y="395.91092"
+       id="text3394"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1383"
+         x="122.35258"
+         y="395.91092">pairing_heap_tag</tspan></text>
+    <text
+       sodipodi:linespacing="100%"
+       id="text3400"
+       y="395.91092"
+       x="310.55255"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1381"
+         x="310.55255"
+         y="395.91092">bionomial_heap_tag</tspan></text>
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3380"
+       width="141.64481"
+       height="23.200001"
+       x="425.57764"
+       y="292.56177" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.5625;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="495.20001"
+       y="307.09772"
+       id="text1323"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1363"
+         x="495.20001"
+         y="307.09772">priority_queue_tag</tspan></text>
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.16226137;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 124.54034,382.1132 L 124.54034,360.6132 L 311.75594,359.6132 L 311.75594,382.1132"
+       id="path2244" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3422"
+       width="141.64481"
+       height="23.200001"
+       x="425.73022"
+       y="382.17499" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text3406"
+       y="395.91092"
+       x="495.3526"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1377"
+         x="495.3526"
+         y="395.91092">rc_binomial_heap_tag</tspan></text>
+    <rect
+       y="382.17499"
+       x="607.93024"
+       height="23.200001"
+       width="141.64481"
+       id="rect3424"
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <text
+       xml:space="preserve"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="679.15259"
+       y="395.91092"
+       id="text3412"
+       sodipodi:linespacing="100%"><tspan
+         sodipodi:role="line"
+         id="tspan1379"
+         x="679.15259"
+         y="395.91092">binary_heap_tag</tspan></text>
+    <path
+       id="path3347"
+       d="M 495.79886,382.13056 L 495.79886,321.40547"
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow2Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
+    <rect
+       style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.25;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect2281"
+       width="141.64481"
+       height="23.200001"
+       x="795.625"
+       y="382.17499" />
+    <text
+       sodipodi:linespacing="100%"
+       id="text2283"
+       y="395.91092"
+       x="866.84735"
+       style="font-size:9.60000038;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:100%;writing-mode:lr;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       xml:space="preserve"><tspan
+         sodipodi:role="line"
+         id="tspan1359"
+         x="866.84735"
+         y="395.91092">thin_heap_tag</tspan></text>
+    <path
+       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:1.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       d="M 311.5,360 L 680,360"
+       id="path2309" />
+    <use
+       x="0"
+       y="0"
+       xlink:href="#path2244"
+       id="use2311"
+       transform="matrix(-1,0,0,1,992.3371,0)"
+       width="990"
+       height="765" />
+  </g>
+</svg>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html
new file mode 100644
index 000000000000..4710ea96bcf8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Join Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>join</tt> Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    two containers, then merges the containers. It uses
+    <tt>join</tt> for <tt>pb_ds</tt>'s priority queues; for the
+    STL's priority queues, it successively pops values from one
+    container and pushes them into the other. The test measures the
+    average time as a function of the number of values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc"><tt>priority_queue_text_join_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+    Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> show the results for the native priority
+    queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc</u></a>, and <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_join_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_join_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_join_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_join_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_join_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_join_timing_test_local.png" alt="no image" /></a></h6>NPL: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this test the node-based heaps perform <tt>join</tt> in
+    either logarithmic or constant time. The binary heap requires
+    linear time, since the well-known heapify algorithm [<a href="references.html#clrs2001">clrs2001</a>] is linear.</p>
+<p>It would be possible to apply the heapify algorithm to the
+    STL containers, if they would support iteration (which they
+    don't). Barring iterators, it is still somehow possible to
+    perform linear-time merge on a <tt>std::vector</tt>-based STL
+    priority queue, using <tt>top()</tt> and <tt>size()</tt> (since
+    they are enough to expose the underlying array), but this is
+    impossible for a <tt>std::deque</tt>-based STL priority queue.
+    Without heapify, the cost is super-linear.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..a48bb3586056fb395dc946be22a81bf2bc457650
GIT binary patch
literal 6458
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
SjPz-@&bnF#nnmh&gZ~3rR9{p8

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..1701b4d8a61ec2289946cc3135f3d1ed14d814e2
GIT binary patch
literal 7989
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_join_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..0575b99c0c3c5f98c1d740dc5ced91b16a3b4965
GIT binary patch
literal 6461
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
QFb<v#bZ%&uY2FL{4`*j;3jhEB

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html
new file mode 100644
index 000000000000..6935957207cb
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Modify (Down) Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>modify</tt> Timing Test - II</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    into a container then modifies each one "down" (<i>i.e.,</i> it
+    makes it smaller). It uses <tt>modify</tt> for <tt>pb_ds</tt>'s
+    priority queues; for the STL's priority queues, it pops values
+    from a container until it reaches the value that should be
+    modified, then pushes values back in. It measures the average
+    time for <tt>modify</tt> as a function of the number of
+    values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.cc"><tt>priority_queue_text_modify_down_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100 f)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The main purpose of this test is to contrast <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+    Text <tt>modify</tt> Timing Test - I</a>.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> show the results for the native priority
+    queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NRTG">NRTG</a>, <a href="#NRTM">NRTM</a>, and <a href="#NRTL">NRTL</a> show the results
+    for the pairing heap and thin heaps in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively,</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_modify_down_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_modify_down_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_modify_down_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_modify_down_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_modify_down_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_modify_down_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTG_res_div">
+<div id="NRTG_gcc">
+<div id="NRTG_priority_queue_text_modify_down_timing_test_pairing_thin">
+<div id="NRTG_pq">
+<div id="NRTG_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTG" id="NRTG"><img src="priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png" alt="no image" /></a></h6>NRTG: Pairing and thin  priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTM_res_div">
+<div id="NRTM_msvc">
+<div id="NRTM_priority_queue_text_modify_down_timing_test_pairing_thin">
+<div id="NRTM_pq">
+<div id="NRTM_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTM" id="NRTM"><img src="priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png" alt="no image" /></a></h6>NRTM: Pairing and thin  priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTL_res_div">
+<div id="NRTL_local">
+<div id="NRTL_priority_queue_text_modify_down_timing_test_pairing_thin">
+<div id="NRTL_pq">
+<div id="NRTL_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTL" id= "NRTL"><img src="priority_queue_text_modify_down_timing_test_pairing_thin_local.png" alt="no image" /></a></h6>NRTL: Pairing and thin  priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Most points in these results are similar to <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+    Text <tt>modify</tt> Timing Test - I</a>.</p>
+<p>It is interesting to note, however, that as opposed to that
+    test, a thin heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>) is
+    outperformed by a pairing heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>).
+    In this case, both heaps essentially perform an <tt>erase</tt>
+    operation followed by a <tt>push</tt> operation. As the other
+    tests show, a pairing heap is usually far more efficient than a
+    thin heap, so this is not surprising.</p>
+<p>Most algorithms that involve priority queues increase values
+    (in the sense of the priority queue's comparison functor), and
+    so <a href="priority_queue_text_modify_up_timing_test.html">Priority Queue
+    Text <tt>modify</tt> Timing Test - I</a> is more interesting
+    than this test.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..74cbc6523697954b171fb26fb1807cf4f324c599
GIT binary patch
literal 6788
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..2fa9c7988048db2510d0a98956f36837c2a9fde3
GIT binary patch
literal 7633
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
ZjmF#kB;p%ChpvANQ&ZMfDp9ly{5S72UQGZ1

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..20b663736673562dee4ec41814a98c6e788b11b6
GIT binary patch
literal 6956
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..ca901831eff8c8d26bc862d7ed50c70eb04d65e7
GIT binary patch
literal 5007
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
N3{IQq<(|BD{~w~bq>=yt

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..977d167186c5f1aa68908e31f4aee1b2c53af47a
GIT binary patch
literal 5878
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_down_timing_test_pairing_thin_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..bf68bf9929200db774943cd1e41b6d3d27766258
GIT binary patch
literal 4996
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
K%szhQ!T$k4LByH>

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html
new file mode 100644
index 000000000000..3db4639baa6f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test.html
@@ -0,0 +1,222 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Modify (Up) Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>modify</tt> Timing Test - I</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    into a container then modifies each one "up" (<i>i.e.,</i> it
+    makes it larger). It uses <tt>modify</tt> for <tt>pb_ds</tt>'s
+    priority queues; for the STL's priority queues, it pops values
+    from a container until it reaches the value that should be
+    modified, then pushes values back in. It measures the average
+    time for <tt>modify</tt> as a function of the number of
+    values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.cc"><tt>priority_queue_text_modify_up_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100 t)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+    Queues::Implementations</a>) for graph algorithms settings.
+    Note that making an arbitrary value larger (in the sense of the
+    priority queue's comparison functor) corresponds to
+    decrease-key in standard graph algorithms [<a href="references.html#clrs2001">clrs2001</a>].</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> show the results for the native priority
+    queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NRTG">NRTG</a>, <a href="#NRTM">NRTM</a>, and <a href="#NRTL">NRTL</a> show the results
+    for the pairing heap and thin heaps in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively,</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_modify_up_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_modify_up_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_modify_up_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_modify_up_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_modify_up_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_modify_up_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTG_res_div">
+<div id="NRTG_gcc">
+<div id="NRTG_priority_queue_text_modify_up_timing_test_pairing_thin">
+<div id="NRTG_pq">
+<div id="NRTG_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTG" id="NRTG"><img src="priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png" alt="no image" /></a></h6>NRTG: Pairing and thin  priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTM_res_div">
+<div id="NRTM_msvc">
+<div id="NRTM_priority_queue_text_modify_up_timing_test_pairing_thin">
+<div id="NRTM_pq">
+<div id="NRTM_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTM" id="NRTM"><img src="priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png" alt="no image" /></a></h6>NRTM: Pairing and thin  priority queue <tt>modify</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NRTL_res_div">
+<div id="NRTL_local">
+<div id="NRTL_priority_queue_text_modify_up_timing_test_pairing_thin">
+<div id="NRTL_pq">
+<div id="NRTL_Pairing_and_thin__priority_queue__tt_modify_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NRTL" id= "NRTL"><img src="priority_queue_text_modify_up_timing_test_pairing_thin_local.png" alt="no image" /></a></h6>NRTL: Pairing and thin  priority queue <tt>modify</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>As noted above, increasing an arbitrary value (in the sense
+    of the priority queue's comparison functor) is very common in
+    graph-related algorithms. In this case, a thin heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>)
+    outperforms a pairing heap (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>).
+    Conversely, <a href="priority_queue_text_push_timing_test.html">Priority Queue Text
+    <tt>push</tt> Timing Test</a>, <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+    Text <tt>push</tt> and <tt>pop</tt> Timing Test</a>, <a href="priority_queue_random_int_push_timing_test.html">Priority
+    Queue Random Integer <tt>push</tt> Timing Test</a>, and
+    <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+    Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+    Test</a> show that the situation is reversed for other
+    operations. It is not clear when to prefer one of these two
+    different types.</p>
+<p>In this test <tt>pb_ds</tt>'s binary heaps effectively
+    perform modify in linear time. As explained in <a href="pq_design.html#pq_traits">Priority Queue Design::Traits</a>,
+    given a valid point-type iterator, a binary heap can perform
+    <tt>modify</tt> logarithmically. The problem is that binary
+    heaps invalidate their find iterators with each modifying
+    operation, and so the only way to obtain a valid point-type
+    iterator is to iterate using a range-type iterator until
+    finding the appropriate value, then use the range-type iterator
+    for the <tt>modify</tt> operation.</p>
+<p>The explanation for the STL's priority queues' performance
+    is similar to that in <a href="priority_queue_text_join_timing_test.html">Priority Queue Text
+    <tt>join</tt> Timing Test</a>.</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+    Performance Tests::Observations</a> discusses this further and
+    summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..d9dedc20cf402354fdee186a7025fb57d4f78094
GIT binary patch
literal 6950
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%0D=X~palwB<cK5o>o>5|>^^Y}^9
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..31575b452d385ab969bb5adf0526f93438c3ce3b
GIT binary patch
literal 7748
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..4005547c8122433230b1fdf562a8ec9f4c550e45
GIT binary patch
literal 6983
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
L_hzZuqtO2XsIh)8

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..1aa5aba94bf44068a0686d14cc223aefe36d3054
GIT binary patch
literal 4867
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
R#{K)i#Ne!cf$o)%e*-OLP?-P#

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..b878dde665c9bc8e5fddac3358bc10231ce03db7
GIT binary patch
literal 6105
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
Ms-seT_i@mF0DLxMhX4Qo

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_modify_up_timing_test_pairing_thin_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..740594384cb9d17127372d7908f6731a088c41f9
GIT binary patch
literal 5216
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html
new file mode 100644
index 000000000000..8b5388e17707
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Pop Memory Use Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>pop</tt> Memory Use Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    a container, then pops them until only one is left in the
+    container. It measures the memory use as a function of the
+    number of values pushed to the container.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc"><tt>priority_queue_text_pop_mem_usage_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+    Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> show the results for the native priority
+    queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_pop_mem_usage_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_pop_455tt__memory-use_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_pop_mem_usage_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>pop</tt> memory-use test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_pop_mem_usage_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_pop_455tt__memory-use_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_pop_mem_usage_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>pop</tt> memory-use test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_pop_mem_usage_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_pop_455tt__memory-use_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_pop_mem_usage_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>pop</tt> memory-use test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>The priority queue implementations (excluding the STL's) use
+    memory proportionally to the number of values they hold:
+    node-based implementations (<i>e.g.</i>, a pairing heap) do so
+    naturally; <tt>pb_ds</tt>'s binary heap de-allocates memory when
+    a certain lower threshold is exceeded.</p>
+<p>Note from <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+    Text <tt>push</tt> and <tt>pop</tt> Timing Test</a> and
+    <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+    Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+    Test</a> that this does not impede performance compared to the
+    STL's priority queues.</p>
+<p>(See <a href="hash_random_int_erase_mem_usage_test.html">Hash-Based Erase
+    Memory Use Test</a> for a similar phenomenon regarding priority
+    queues.)</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..2c1918d06236307a071b186d3cd35d6f2a7f80d7
GIT binary patch
literal 6582
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
D97D_g

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..c1413fc93d6a18ea72d0b3a10f0a6e03614f0d0f
GIT binary patch
literal 7424
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
Ox}#;JS)p++=Dz?xapyY#

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_pop_mem_usage_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..9717f498b7a35d1835c88f700396356347cdfebb
GIT binary patch
literal 6849
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
S`XKt{zqW?KopSa2k^cv!y+?!q

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html
new file mode 100644
index 000000000000..02fe32183a43
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test.html
@@ -0,0 +1,209 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Push Pop Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>push</tt> and <tt>pop</tt> Timing
+    Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    a container using <tt>push</tt> , then removes them using
+    <tt>pop</tt> . It measures the average time for <tt>push</tt>
+    as a function of the number of values.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc"><tt>
+    priority_queue_text_push_pop_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+    Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> show the results for the native priority
+    queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NBRG">NBRG</a>, <a href="#NBRM">NBRM</a>, and <a href="#NBRL">NBRL</a> show the results
+    for the native priority queues and <tt>pb_ds</tt>'s pairing
+    queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_push_pop_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_push_pop_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_push_pop_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_push_pop_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_push_pop_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_tree_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_push_pop_timing_test_local.png" alt="no image" /></a></h6>NPL: Native tree and <tt>pb ds</tt> priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRG_res_div">
+<div id="NBRG_gcc">
+<div id="NBRG_pairing_priority_queue_text_push_pop_timing_test">
+<div id="NBRG_pq">
+<div id="NBRG_Native_tree_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRG" id="NBRG"><img src="pairing_priority_queue_text_push_pop_timing_test_gcc.png" alt="no image" /></a></h6>NBRG: Native tree and <tt>pb ds</tt> pairing priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRM_res_div">
+<div id="NBRM_msvc">
+<div id="NBRM_pairing_priority_queue_text_push_pop_timing_test">
+<div id="NBRM_pq">
+<div id="NBRM_Native_tree_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRM" id="NBRM"><img src="pairing_priority_queue_text_push_pop_timing_test_msvc.png" alt="no image" /></a></h6>NBRM: Native tree and <tt>pb ds</tt> pairing priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRL_res_div">
+<div id="NBRL_local">
+<div id="NBRL_pairing_priority_queue_text_push_pop_timing_test">
+<div id="NBRL_pq">
+<div id="NBRL_Native_tree_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__and__tt_pop_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRL" id= "NBRL"><img src="pairing_priority_queue_text_push_pop_timing_test_local.png" alt="no image" /></a></h6>NBRL: Native tree and <tt>pb ds</tt> pairing priority queue <tt>push</tt> and <tt>pop</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>These results are very similar to <a href="priority_queue_text_push_timing_test.html">Priority Queue Text
+    <tt>push</tt> Timing Test</a>. As stated there, pairing heaps
+    (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>)
+    are most suited for <tt>push</tt> and <tt>pop</tt> sequences of
+    non-primitive types such as strings. Observing these two tests,
+    one can note that a pairing heap outperforms the others in
+    terms of <tt>push</tt> operations, but equals binary heaps
+    (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>) if
+    the number of <tt>push</tt> and <tt>pop</tt> operations is
+    equal. As the number of <tt>pop</tt> operations is at most
+    equal to the number of <tt>push</tt> operations, pairing heaps
+    are better in this case. See <a href="priority_queue_random_int_push_pop_timing_test.html">Priority
+    Queue Random Integer <tt>push</tt> and <tt>pop</tt> Timing
+    Test</a> for a case which is different.</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+    Performance Tests::Observations</a> discusses this further and
+    summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..d4886ae5967eb5625920ae3bf0dc3b4cb6466166
GIT binary patch
literal 7072
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..a7c5f8987aee65d16149c328ed0f80f32c0c52bb
GIT binary patch
literal 9006
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_pop_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..a5720402b3ba687c2760540d01468654d9929f09
GIT binary patch
literal 7289
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
NUHPF>{yodr{{cL*N>cy;

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html
new file mode 100644
index 000000000000..67ae4b9d510d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test.html
@@ -0,0 +1,219 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Priority Queue Text Push Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Priority Queue Text <tt>push</tt> Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    a container using <tt>push</tt> . It measures the average time
+    for <tt>push</tt> as a function of the number of values
+    pushed.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc"><tt>priority_queue_text_push_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures (see <a href="pq_design.html#pq_imp">Design::Priority
+    Queues::Implementations</a>).</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NPG">NPG</a>, <a href="#NPM">NPM</a>, and
+    <a href="#NPL">NPL</a> show the results for the native priority
+    queues and <tt>pb_ds</tt> 's priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively; Figures <a href="#NBRG">NBRG</a>, <a href="#NBRM">NBRM</a>, and <a href="#NBRL">NBRL</a> shows the
+    results for the binary-heap based native priority queues and
+    <tt>pb_ds</tt>'s pairing-heap priority queues in <a href="pq_performance_tests.html#gcc"><u>g++</u></a>, <a href="pq_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="pq_performance_tests.html#local"><u>local</u></a>,
+    respectively</p>
+<div id="NPG_res_div">
+<div id="NPG_gcc">
+<div id="NPG_priority_queue_text_push_timing_test">
+<div id="NPG_pq">
+<div id="NPG_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPG" id="NPG"><img src="priority_queue_text_push_timing_test_gcc.png" alt="no image" /></a></h6>NPG: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPM_res_div">
+<div id="NPM_msvc">
+<div id="NPM_priority_queue_text_push_timing_test">
+<div id="NPM_pq">
+<div id="NPM_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPM" id="NPM"><img src="priority_queue_text_push_timing_test_msvc.png" alt="no image" /></a></h6>NPM: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+rc_binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="rc_binomial_heap_tag.html"><tt>rc_binomial_heap_tag</tt></a>
+</li>
+<li>
+binary_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binary_heap_tag.html"><tt>binary_heap_tag</tt></a>
+</li>
+<li>
+binomial_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="binomial_heap_tag.html"><tt>binomial_heap_tag</tt></a>
+</li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPL_res_div">
+<div id="NPL_local">
+<div id="NPL_priority_queue_text_push_timing_test">
+<div id="NPL_pq">
+<div id="NPL_Native_and__tt_pb_ds_455tt__priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPL" id= "NPL"><img src="priority_queue_text_push_timing_test_local.png" alt="no image" /></a></h6>NPL: Native and <tt>pb ds</tt> priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRG_res_div">
+<div id="NBRG_gcc">
+<div id="NBRG_pairing_priority_queue_text_push_timing_test">
+<div id="NBRG_pq">
+<div id="NBRG_Native_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRG" id="NBRG"><img src="pairing_priority_queue_text_push_timing_test_gcc.png" alt="no image" /></a></h6>NBRG: Native and <tt>pb ds</tt> pairing priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRM_res_div">
+<div id="NBRM_msvc">
+<div id="NBRM_pairing_priority_queue_text_push_timing_test">
+<div id="NBRM_pq">
+<div id="NBRM_Native_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__timing_test"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRM" id="NBRM"><img src="pairing_priority_queue_text_push_timing_test_msvc.png" alt="no image" /></a></h6>NBRM: Native and <tt>pb ds</tt> pairing priority queue <tt>push</tt> timing test - <a href="pq_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_pq_deque-
+<tt>std::priority_queue</tt> adapting <tt>std::deque</tt></li>
+<li>
+n_pq_vector-
+<tt>std::priority_queue</tt> adapting <tt>std::vector</tt></li>
+<li>
+pairing_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>
+</li>
+<li>
+thin_heap-
+<a href="priority_queue.html"><tt>priority_queue</tt></a>
+ with <tt>Tag</tt> = <a href="thin_heap_tag.html"><tt>thin_heap_tag</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NBRL_res_div">
+<div id="NBRL_local">
+<div id="NBRL_pairing_priority_queue_text_push_timing_test">
+<div id="NBRL_pq">
+<div id="NBRL_Native_and__tt_pb_ds_455tt__pairing_priority_queue__tt_push_455tt__timing_test"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NBRL" id= "NBRL"><img src="pairing_priority_queue_text_push_timing_test_local.png" alt="no image" /></a></h6>NBRL: Native and <tt>pb ds</tt> pairing priority queue <tt>push</tt> timing test - <a href = "pq_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Pairing heaps (<a href="priority_queue.html"><tt>priority_queue</tt></a> with
+    <tt>Tag</tt> = <a href="pairing_heap_tag.html"><tt>pairing_heap_tag</tt></a>)
+    are the most suited for sequences of <tt>push</tt> and
+    <tt>pop</tt> operations of non-primitive types (<i>e.g.</i>
+<tt>std::string</tt>s). (see also <a href="priority_queue_text_push_pop_timing_test.html">Priority Queue
+    Text <tt>push</tt> and <tt>pop</tt> Timing Test</a>.) They are
+    less constrained than binomial heaps, <i>e.g.</i>, and since
+    they are node-based, they outperform binary heaps. (See
+    <a href="priority_queue_random_int_push_timing_test.html">Priority
+    Queue Random Integer <tt>push</tt> Timing Test</a> for the case
+    of primitive types.)</p>
+<p>The STL's priority queues do not seem to perform well in
+    this case: the <tt>std::vector</tt> implementation needs to
+    perform a logarithmic sequence of string operations for each
+    operation, and the deque implementation is possibly hampered by
+    its need to manipulate a relatively-complex type (deques
+    support a <i>O(1)</i> <tt>push_front</tt>, even though it is
+    not used by <tt>std::priority_queue</tt>.)</p>
+<p><a href="pq_performance_tests.html#pq_observations">Priority-Queue
+    Performance Tests::Observations</a> discusses this further and
+    summarizes.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..8895f507cfc62503c4e90562e1c58865fe776256
GIT binary patch
literal 6832
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
HaeVS`s1Zjz

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..da7297bffa9cc9ab60cbb60c0310cf457410c012
GIT binary patch
literal 8477
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/priority_queue_text_push_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..ff39ca37dd907e3aaf2b32d9e3ef25610dbc6c31
GIT binary patch
literal 7266
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
L&@5Ab82-NibsR*E

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html
new file mode 100644
index 000000000000..f3209d33881a
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/quadratic_probe_fn.html
@@ -0,0 +1,141 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>quadratic_probe_fn Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>quadratic_probe_fn</tt> Interface</h1>
+
+    <p>A probe sequence policy using square increments.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/hash_policy.hpp"><tt>hash_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Size_Type42920436" id=
+"Size_Type42920436"><b>typename</b> Size_Type </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+
+        <td>size_t</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Size_Type42920436"><tt>Size_Type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>quadratic_probe_fn</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Protected Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Offset Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  <b>operator</b>()
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <span class="c1"><tt>i</tt></span>-th
+          offset from the hash value.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..61962704f71655cfc6b428286e0271c1833530cb
GIT binary patch
literal 5960
zcmcgwc{G&o+kZ+_BxIRMmQq@f!6YGD$d;vuY=balOR{9LBqT|`j7$?^LK9h%orX&G
z$v%h*$<k0`XD~DGJ$}D)-amflyyt!Yd7pE*pX<K1&*!@C`+nwm;w{V!c)3NnAqe6%
zGSs^QK|2u;v;(t;1I$bj3`-!01G2ber4K|1LP8K4g76STh9DMOLLwm~8babBBpE`o
z*h(}KLZcxx9zv5LG>dJEM?!csgvUd8GK6QbUCBs@jE2Z~h)jmaED#A|At4qTV&Nec
z8Daqe#0H^3EZ_{RS?oOQ3ynnLkw`KU$zrDk5*m#}<B@1G63t?x07^U>iN_=HWF(%&
z1_f-%Xe1erB$JV37QhHxkt{Tlg-5c;NEXNnP=jCqG(ZVp0UbyTVuR2i7I0><39)5x
z;n8R^8qH$!18IST$D{FNG@iw#3s3+h8ILBD(PS224?qE1Gz*Vrk<lzb57Yy|1m2(=
zfIk2M7y{HF7yu1W0#kqkBnGiTXb_9Vt{htpWN?x3cow^mfFDQ;Br+LKW`Vi_x&Q@G
z;#p)o3)B%*8WaHF0_LF5fGsE`s0V-vyg@ktCO{Z41gJqU02+7#SO5n|3}S=OEOv|7
z)<6wpaIrwgKp_D?kQPW}7K`1$?e?=#Y<HC1&+R6$L2cKa-QMj|vN3K~hu!UM!feRf
z9N5j@hQ(&Eoe6{n%K>x=6c2FPPPM%f|KI<)W5UEi(!KtMwznaO=K%X}NALHDEifq=
zsDCZc@+LYk#3jHT(zmoYY~XqGcHnK-fE)gShtDZ0%PT11f-^-RNU+gJPsi#`#-Gd)
ze4z|~Y`oind3SS#iH`W@uvTK9Dld1y)q=?@!?UBKFMjhlcE96FIAFZ6Gh0ltcE^~t
zHsapS<(()0&qH8$g0smcjd>0;lNT<W^|8|BaTE&ToZ++>%fr=c>>+j6JVm|o<~=gN
zb>N#Z;^`qCQa3P&C18@V{MSQq&jv?pUt?}zwD2p_pM6Zs)vim49QoxPs?|dq+Fg0}
zs?YE~QTw~R?z|kTTr=)T*nEkMRIVS~|Ja=?xq75yGb+L*v|+;j0M<$-G}8Hb#_qd#
zBO_nC6|~PEWijP_8AxkHIy}%o9&6dZrv>|IqhRB4FS(92$^1~_%W~0l_d4eVKSv~@
zrrd3(^s_8Q80#AQ$-Qa(Bhl_J%5#^Y(wH>sQ-!UJD5rFWi%&d*q}Qme_`L;2YflUd
znHHOIe<70Z(Melsk&-g`(VgsBPlS2%VDdj3M%r|ajQpS*!UjF|E7FNar+sU}ziG~U
zBee=oXC%oeS|NtTGcQEi_-Rr%V}$O!wnnt`q8N?>^t!)%-aJe{=?9%enDR<^(QP*m
zO%2nV2#+fmZcR1(5#7juRf#(lc*%jZB0{0d;oS*$9E)R0VyM3NP&4xb3FP;eiM-uB
z;`Nwh?--k5ivRAPs;766tnSC6Qi$TAulc3gM6+RPa?474DtTS^fu8$QOeXU#8-YoO
zmEIf#0jAc?ldTY_(deB}J8(@j=-t_ZT$iy7CPrXWcGipN?kFr>ayn7X_R!UC1q*F+
z($*$zjW(*5y7jvSOOn?}*J)<(hu^S@@a=a2#nNqo)yd>F_r9K}xXj7R!MSh6Y4ruE
z{tVU4*UG5zgR1Vd!D`s@^QktzuUOp0%)-Q%%KLu7>zM9KAuD=q4cGKgYy^)66#jAb
z*>ZPkI(C2I-g~yUP^rsdj=?*QNgDt;K>Wc75tMdO2XT5l7iTPl*oZ~VoVP$Uz4e8=
zX2Z01V0H+B!DVjcXhp93Vw$3ZLvKJnpjA3Zq+|@)xA+Gcbv%6#wG%^aLc6T#o|KZi
z>tfX5!OPLK5ALM*p4o(8%WR8_>vi!fh##`Bv~mY;_&N8Pt(i-RW$DvTMY#gz2Y5n_
zO!6K?i50F~aO%C1?{c_B<7bes-QMkG&$%CyU!5DfYxzQ4G^#T{t)-I#Luk}SG}iKh
z(GsEYu0b1-^}!MmjyZrKaF8JGqs1!2oC@CeVT$HUb6gXFtGL7Tj=V#zPnGuxDFibT
zP_lVdXFFYjxwPmV75|#<wnS)&QtGru8iN=Kf4|Q+UyE48d8;(5dBabl=hojbA6uJ#
zRk{nO^(L0Ki*j+pXB!H&_?A<Ui`>hLJ;n!TV)w_*_O&NI?V%eoe%!8is8tlH0Sj$6
z$&+<#F@!?Xm}VnLKExH^-)-`~+Fi*zY%K#}<M&wK58nFmFiNFR3B&*^Yre;%@sO*d
zH{5?L2d8FX-L8!YeDMm#?Q^L4nFPjV``qv+Z=V+T{&i^l#}KPTs#cY&3Kvg!@=r6)
zyK?2k)F<ck%r0jkeT;2JcMYoHmEZJp)Y8e7&EAOlF*~HEZr`k!bmi#A+a|QK^K0U5
z%&+dvhayWTMux>$>NqBp??mM@@vEzww=wE`O||BpvPinkA@4JAu~Kq^CpA^%*#OC}
zBR!~mKz$)ZqIOgDzWuJoD!;auiji4g3RJ7k^HdGhK8r-LI&SO-dd%KT$C*6dj=NUB
zgMMoLX{5LZHN(~{sh`U-y>t5~5_53=ccM_#GF}<Rxj&6xv*5ea1#+;HYQr;SeL|ht
z*|_J+VpoH?H~rT_R?vDbt4GboJ9RxGgiN1g<2pRM+<t2ooZ~$#f<+@=w&xOPrjm2#
z`xjs<ht<S&5U^11Uq!f3&&T&);!L?lm^xU(iJ?%>(JTTkGv%O(1v=g^gIU*Cwm}<6
zSXJ52jB`)1eqd0VjhlLZx53Q;t`(dLk;>iVlL(4%b>n*|J4L_!eFtXpI1jQWc4#9i
zLZ_;)-$ThLDLfhAnVD32gWCwp_XM!^5PnMM*!S$6nLH3%`g9s1g*{xoy8Nj$F1!?M
zH6`Zcc>3qBUOPw@@Up2G!S0SDm2F1{GyHdARP{<!qOJsI<Bp9y!qOJqP1diIVo(Kj
z5=}xbgEKv0HK?sg?_2RD&o@)&Nf?0zu2cT)II8~XOf)6CZaxu%SD!l+E;CAmkrPYC
zRtZ*X<TG`8qJzqN^sdOiTN{_^*FaLDYmz0;*&+Blg0>QiALO;ckyZ$P6XE*Lkx|!V
z7I-oA7nGZSLf@nOB?^oS`0Q7_BT3F~`KCIOon}nV6Gg?F?;3TO-=AQ<rp>LrnYTaL
z>O{O!cc<(`=Aye&{9M?RMcQhA!kxMOjitL(4N%@n+0`*NX1s?Zq|{APBSQ=|uR0v^
ziVeBup@H5N`q|CO>;(4tpN<xK$n79yUAkPiiR{)b*F;)#oLy~n-BP`pO=){WUFQS;
z)1?Qc7LJ|oz1bBUu=US(x??z8o*vTRi5ov>yu7&hSKh@S(Y7!@)b`h?{<Azjlq9v|
zVu0GJQ>A6nw_Z`D)&_N5x$k?X3@pntT=q^ITs(e}H+qS7LDo@~raRu^be6HMn0A>S
zawP4?uJDr+oAyTPQ#0?%@S8(Mt=U_3L;7d$f7rCxr1z?ry+I95qho%^TD8El$6IEP
zhkM+!F6+f$qOM&O=p;5tWcu0<3d`<k;yp@${g^$-Unl-3<kzUB>(m5~RCV;;pFuZ^
z<i7Y(F^-6N`-`_lOT4WIcWcWx*7R&R#@NICB}v++#pW3>!l!p~6G3o?J7ZnM6Vmv+
zr_S;-oL(*$;F0(fPZnUUu{;D+e-q?~`B)*PxxP@Vf7<dPLayrd8?o210w_u23I&%b
z;SyavoNzn|S~&0w9h4dUF&0+I7yZN~g~b`*@&IhN?@B*4@||o>?Wuk1O4C&>qPHGP
z4|B8N(fX$8uq1Bw<yFZUlC%H#o{?Dt3m%hdDrdm>UUSlz!)M_%OqAWwCkw>G8KnnV
zD1~bOsW2^{vf32==Z^1pULC8D6uH||ZTVL6EY_UjSGZP_YA%c!@1#cz>HV~N`boEF
zc)2gnOMcR_>4*Mm1})C?m>Gp`_4L4$r;OmF<rfO4UmLJhl_6p|e!~KLCc+AI7issc
zh5p6`WsWJ|N;Q@EER!YUd8sF2NcmO)<DtZ*K&qp%+uJrGx0*$7oc+&!UZmIS8(0ka
zXqL=OW2j`i^YC1rQDU%cVk?n*Ltrk>bUkmJIb^C)hL_~+By!jO?7|A#Y`F2eDth3J
zd?s33!wRxhT(+b?9lSl4I#Z!Jbn%4_-Rk2Wvz6Wgd4H4pvjz<6&Z^Hzw93TB3y8Jp
z{!!nnuxjafr|sh!G;qCc3?3O4)xh&)yh;o5=la(J_Twsnf8OcCDYz39YqiBW!P8p0
zMyR=S?D=<X2vei=khYUMBCN{QaV+h_C@1@g{O<=ddw4c^l!H9}G-;nd@vx+AdhLhP
zs$B*HuK}9QrDWv-o^L5jVQz^4Rjz`hEd!`ewHr){43{mKNmWQLUST?Z$b1*();aNY
zt2-Vg_0gfdfoI4vHHm!6ZK<#5Q@p0c<fy(T#US}x$y63LcNXF~iq$9x$%s_30mME=
z4Cx24Ub2WhMG^5<x-C<ghgpAB#*+}kBmW#nIu`t6MYX8eA6rudEz%+cYZyCff=Fkb
z3P}H!7o>@>H*pn(4~wr!vHs?OZ7>jtN5&Rvy)l{D-P*9JpF0sGrCy4!2vNT&kuU%Q
zK?HtlrnX(!z$Ma#_3E}wHuyIW={&KL{JC+ab$qi<rd)j--2H3`fvvp%%9teJHU*n)
z`{&?Ho>l>>ev^4NtTNSM;%4ps4_cC6sFl43Fb6N_Xc>$z^L2zh@v!3@-bz=le8aO#
zXt^xHX^X*RFxNKM5DfdF`$cv&eF3*!uMLLW(hT;oyA!fuObtmEQG0?&R9_}w2rmqn
z%>16iTTV2GzOKj{!N-mJgZSjvg)n;8SS1tpLn8>qm3AkOd^7JYDz^7uUMmcHu%^{T
zTn~!C4cEZhR_ZjUwHyTVh3O3;Gs4H|hcA}5B*bSo0)1E?h<Bcd81Jc{)m?0`2s3Eu
zdKjKi(tBa=N3ZtH>B!5s9xk41ifpi56U?38nD3-JJx+4*5*6FcD|@&7oN%+#%ZeXG
z)LQ4}D%Y^Y93|;syTyKbkL(YV-hyIT>+=mck9sP7*0`zH?A0g!V%2{|*5F4=n@?CL
zI*l5j7RR3qatwha%r?j7U~|z3mB_+$?GRh9a;=e_ahI65<3X1%N3?rAsB`$K*|AI*
zY`BHj-le6bWh|#9u{Vd&jB8GfsZVKHk&k$!%J_`P3Zs8JDPVlGa!Ih~GGb|FHZh)7
z@Kf6Nxn;cRk*|VLzZ<JP7(FhGzb!etk*p>k<=M+N#WA<FnanFTw?|%N{f?2>H5RPV
z+}9G@PoKoDI#i`p{MEpg@&Dn%e_Bdr*0bIrvtKa(=9`y_@DnsU{~T-o_9-dp`Fe0@
zOVKE$W$w=#G4au&$b!nb++tm?6=c;dq-h~8^c#k2Jgq&H!=Ckv^~}V6!e-1&*U+xo
zKx<G+Q!+8bd^bZdI99~)lWlgDn|f02nFDD@4@I6KG^BUEt`nH{Xia@_)LYWAuT&#A
zJK=TCZPz$;%b+ghX<iOlW|*3Cxg0j#z@{Wvf$rq?er&M*{Ryh+p#F^<i5+GMHA~4B
z67jYj8e1lQx%=@YqD6a07Cvn)3;wa2>v-kdeN&QfK0f8(1C1)7CY@Ww^n3kVhM%S9
zlnrm7Mg;%7TB1EVm$el4-BsQG*@v3Z`WP|A;Bu+@2q7-#z`Z3Cd7^rA+Ss-RZ^4x*
zs?5>f_a2oSf4ZKn+39i>`TH|^$aWKPS5-MS<%xn4J;e9r4>!lyU&TZn-ki6)QRW_L
zR#^ohTfbtBFIdAzvO=Fl4jL7TQm!_~UOVL(tFfHUmom%Uw=fX-RZwMfato)m>ZH&%
z8UIHYYosirShtiT{X)`xk%m!uv4^V0d42rRY{SX6&*5r&*WOEA+G;vJ{N>kZMLY%@
zG-;R9sSLM+3w9;F%+3t(_qDxYGnP3$n%5E%^etwcSKIuhX2wVj_SdYzJ@NRz$rGz@
zbP(Tuf7OU(@;L89kf6W+=a=yRg+s<NA?plf<a(A--(3qXa1ytK&zvx==u)b&>H<H@
z*QTra7`geYw#RW)+k-QcOtCdW)-kWHr_bB-)bcv?YAQY^s`e!i^EH|Xp<`25gz-vw
z!*aWWH--o!ntciBCc>D|=i;@0kR+cRq2)zG^}vyc1CE<=?RhdP<Co%<@`5N{$hpUT
z9bdOvzvRg%xf{<GP|!mMiLi8W<vVG>Ov(Mx_Ef&xG{?wUL)rHp`3?nA>w0zT@^j0j
zeIvndYMqHmnLjG+DV*xzbIX<A3*?7>yArE>=g)6HMndIJ2jqneB#=5oznkSvy{AeO
zJSHNaSzP1z7)VKA?8G%Zd>x<=qoBecp6aYenh+Z)_I+FUt^*?=%nYj>5ghbP^7gM5
zXL!8TDC`y;4fc&T2%=CrW~os{`M5_XhG&CU1(uFr#&0>Sjbu47ql+gvu9htg*Y_ej
z4TQ~(1??|<+bo}cUB8h=Su>=FmdjRbMqTN77PZ7&`t3D8FLx+?Gxfoju?0@8drzZn
z6@Px5z1xJA9hucD+M_G2PLYzRObQJvi5ah*!d&)7quR_W9>!&sF07*r9?<lP41s8o
z_b|>ix@GOr=|Sbec)R2bF9CwFK$0WkQoW5&O>qs%D&bduxn;*qk--Vhl`UHN_{inc
zZZ_U$-yM9@oAIV7l%lSg{GBS&kb==@JQjnE4w;2i{=R|vMHLZ;_ZAK)5AvdS)U^!9
z&skRt@NM6=jgW-D?F=@r5Ij`uRdndTZzbh8g89m^rFXTSan4D2pEzSba`?^}@EQ)0
z`lIc0i}XK(S6$93L;LiH;>%Zf{E{or3czRb4t$gHO_U1mHj%E@9~RZ0%f{LHCzMyj
z59uH%V<I;iF<c5_;M>uEyauvADE-fq@}-w9T-xNV&FaF1eYq%ywNgRb+^45-(50Qq
z1ZI1%PJ#RlGjGm1t7H0xte1CTYCatksnHPf%IImO6yf743x&Hogv&34MTR`LuDWQJ
zBo>s7^EOmYeSM@U<9VuaDr{>Y<^0B&X%wpX=n0qozY6uG=Hh?f(ni=Q5XEwE?v&PO
zK5BG>-R@Uk@-qiGYA#+U(`S<RBbEbV^}FtiOfFFAJwB)h4Lny2C;w2#^-fOfBV|82
jYw|+NJ3arsfw%ao>a-df0t<54-yn_j&Gd>dIN$#-$XIh_

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..83105202a4835efb176b993ef0c430d8b8f09c2a
GIT binary patch
literal 7377
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
ClIQ;b

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/random_int_find_find_timing_test_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..2206cef5a9042023ee142ea2259ea96139f206a5
GIT binary patch
literal 5636
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html b/libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html
new file mode 100644
index 000000000000..e59a257a5400
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/range_invalidation_guarantee.html
@@ -0,0 +1,52 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>range_invalidation_guarantee Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>range_invalidation_guarantee</tt> Interface</h1>
+
+    <p>Signifies an invalidation guarantee that includes all those
+    of its base, and additionally, that any range-type iterator
+    (including the returns of begin() and end()) is in the correct
+    relative positions to other range-type iterators as long as its
+    corresponding entry has not be erased, regardless of
+    modifications to the container object.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="point_invalidation_guarantee.html"><span class=
+"c2"><tt>point_invalidation_guarantee</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/rationale_null_node_updator.png b/libstdc++-v3/docs/html/ext/pb_ds/rationale_null_node_updator.png
new file mode 100644
index 0000000000000000000000000000000000000000..438748915171e6752c59eab9915fb1e189b76369
GIT binary patch
literal 25097
zcmZs@bwHHc_CE~cpo7%VCEeXEFd*Fm3P=u(NFzuIBi+)2D512pfG8o-DM*8WNJ%3g
z9sc&5d(OT0{oeQdqr%?nS$pl3pSAXh*3(fXxJh#p3k!=tT}??J3+oym78ZmP1_3|W
z>`A!~{=oLqS5?HS_;PC<`~&Kspsj#~Rh@`;fy4p-X0%b$*T%x~XUD<{3B$rV13wB`
z!@_zjh=sLbg@q-J#=@d>fBEt5Z7eKgq`H!V;S-DPSGsYp#{K@_J|5r{vrSE&fM$H`
za8k)@Ago(MaQ&Hmt<J*{@}i@J@-Z%F3Ps8N=oiFfylmwvQHAz*MMvC3UhB)~vu@y|
z+4p)vX$2xHtbP_`@Lry`Y3f++yb9Po|9Ro}MJmU{xP2vP$S-@yYiD*h=*xlJPcI4A
z*@kEa7y=6d55a;mVxdl;`Rykt%wMtp`e~HzLg9&lFw4Jx5YpNmkgWID;(x7BQ^cZ6
zhsvZV{zC(MA6fRVUtv}~kHR{wQd-EQ_~#27xVi16mJqCeNH7v(dmA(V(!%?D58@Cy
zj2suh#`=dTKtY<9_(@^--(2PTL)NM`GJv4}=21-vZ~(hK3OJC(HT(25C?Mc`ghM{D
z{%LmLe(!4M+}vFD9ZxCD@j3wQ=xeRN;UTSo5Qe~CpI7=b3L4WhG6c*ThSe&3AIKY3
zm^oRPnVOnDcp&Y&^K$ux60H>z_|Ozb2;n;h7Tz#K0rcqjIBiq<>BUKBEM-CCN4=A^
zH;FzzKCF`o^s=RmdN$^{9t7az&jH^|frSxRP(pV1?U}m6!^5;R@|BMfLdlE<6xuYd
zUS0;Dh-kwaF$W1_4<W?UM(;6Up`Jo(-*R5o*42&g)`wQymwRMmbLY+W_I5l&JTYeJ
z6Tr$rLMk>``U6^<S!}NSiJI4L($J#tvhRnz2M6Y$g5aRY24QX}<8Vrdr%~zkQG4s5
zb7^yaWYJkrbd!#e7cpj;F<4fuCPD;d6wC@yLhIiTefwGZby|->P5Dx%*>!Lwj1X`=
z&>k&pY#1+NZaS&Q$6)oCByt-mAZ;I5Zu?dTM3YgE3tN_Ey@2}@i=2y|KF>rFd4>WO
zBoExQBB^~K3}Ho&I>F^0k8vVO<=`~QfQN+OK-L8D?zUcs8EPzSjK3|?c@?wUl$~oR
zg7-<+uIu<2H8>mukiQ9I=0`9ZLHrTI-Y!?XqNOBwzaQCGd~S6Gtl<FGZf*?VV#8(|
z^4bE^eikw3afpsrT1HnJUKbR==qxcJvKk*8R1{jvQWDfF>J=>Pd@)iR_C;6>%4n5>
zB|TtoR&^5+PO6rL@4Qedr`3(}qImK{li--qDhvG9C$NeT5>BEgfA1Ab=ByNpJ?qa9
zY<LKQ8|a|nawa9@9;qI4pQ1}TO?1gC<ME_cKfo6k;7k8Pix9<)TkJczu~CXMS;xht
ztac3#uNoYAOdX5vzQgPu4TKB#5%|y5wXil<%(s>$E$$?i8VH9A2*=<@D;3O8ff4zw
z%Be+^<gNAK4_0Uy2_n)Y9^XeH*9_7tbHDcMNb~F2@CXNZPYBSpP(~y(^d^f{zS^fe
zjgqIxw|Ksc&nW>f7JF?EV5x|O!YusD6~CXae7(1PagFz|A@H8(A$gx7s7KmuVTfD_
z6p`Es!r{?z%XSxm>^IKAv8%n2XOF97ubC}SV7vh-&=y`?a6oQsv1sE54;~g88eM9B
zI=icRZ>3;H{-ajrI}`a9Y0D|6*TiD@T0niK7=hIg-zW<~XhVUOWf`V_$$0sucJ)F)
zU38_oNwCp#B_{j(Z(*`fjJ2<6V$n@xP)**!g4p1em6dJn?n=BVtE?n?ZVe35CjMmn
zl14-PgeKktV+OyOLkKs+V`G7J5<zFm4IY2|dU4t9l(zc5Y~Ikogvgy50uC4h1oPG%
z$qS8P%)Ky>$t$>7y~8E6?Q|xK*8izl`dFFR%mcG75v==!MhZbaIdb;{3p!p>md+Zf
zRww8`3JCc2=6rC>BD?XoBl#Vm*N1RK<T$DG?eGwCh`zjrbDi#F`p1pe?K2yLu_B^G
z2hWlefX00W!V3NB0X(PR%hnF!6lt@y)hxGcflfv5A3xoDe=sfUz!0rBu)WblF>%1U
zezWF6(KHe3?BoGl{o`!Z6t816>Fk0IKds@0^kY0wpcWQgmo#vjB=F(Fe9>W3x90I`
zVXg7s^X2(oXy1H%7$Cw1WTF|j3D(O)Th8ZpebhtOUmyy80|V1%F_HfwcoSpx3K-t1
zJV*g=2_ZM%u`8iF(o0v1EGO;!TRdkU-Iy(p5gl9!GQJ)LeC}{8mUI~<KR@teT_k!b
zF!FWXD8aNSu|bx?Zy&|&Y@Y_dFu(gLsOREAk0Y=QHb6TKN+ZE!^(-W2v5r=fsg3>N
zCvgdhIUIe>?IVhoK(r(4rn7MuCdv$F0NMgV6_Hrb>m<)%DHRW61z$P-X85zmAYJ6>
z<~Bqy<GNY;st=Vi*b;w@t(nCR0lbMIw)d2k_bleTjDmb^V|{f=mNN`y=H@QPiH<WL
zBZ|K#SB=s;M%^+cqA<G&oY;a9V5$rUXs#qSS9!G7R9~Nl=@a$m>M?bA^|dDJ=6vhx
zJ<%r50=_^oac~uwSv3O4sS0WsB7c{(@Xt%Rk-Pd@mG31uFJBahSCN`Xd|DEr!H5zY
zP`;Myfd|f#hEOG*z%L3!KkQWeJvd3>5Ct_gx@mR;Fkp2Z+nY-B8Uzkg&dq>1#|>NL
zLsMu>fr1AJX*PGK+8ewV6nG;9!?>(ZfZ|g>VL<&C7s`ov;!;rcm1I6d_;Ci+=%VJh
zRbNF3cTV9cuLe*bUZ6hH!&X#KVRk{4Fsb+BR*ECqL1t|IA1AjoKdyUd_6ihyR;+FA
zk>o}b0&`>m=157(`wX!P&Cg`NdC=(4#%?yLM{;kb&@ct>^6huFa`v$_QOkqZG_9p1
zmOok4KZZ-*<T|Lbk^}BC2{=S+!zx^e3F&kEhZ4?oylpdZ)}B=I(Vm%yW4Zx>>b0w#
z@$vEQiKg~+#BtzK2Y@6q2?!z-7&Rf<coRpTmA2)OOXeW{eZ8!<=_aI;&JP|>`m@}d
zlI*yoY7fPDnLQ9T7DXIXU}TyIA}I|jDdIvt#YE<^yWr%q2LmESx;g2vfa5ve-Inv6
zZu)?&t?73&xXSV5jaBaWkQMO7G+NW!p$Id`h`N7I^(*{?d+fVp=$Vk_<N1J@XQ^b)
z5AGH_ZlxJneEl?HdqycnA+b6Dd{rE<9a_!j=OFS#v?`fQ6=-I3r8w~j%EC&vUMQjS
z(KXhCq^TR~Oxp#efzg7^um32;$9I2$0i72G(ZI1d69!=;MRVe%JfPVvA8{Hn?L&!~
zchC?Q1|MoP3cL-=@L_#L=G<ZOrmL%#f!0l)1>^IK)v)O5;lz~S?|3k+jBr0<#6z_o
zT^`J3Qo>DhI%Vq7y&d&rqrqnzJ-R0tHxLHy5U)EuiAfI!<!*;0%ppbk+c8s5n2qLl
z6c!khW4EdUJ$C>cy?hh74HrZ(Dw!C6E3b!T=|qSbeN3g&A83tf1(MDMzQ>rz7-Jw>
zaM)c6am}#x!)qzX!9#ww2r`>A5a6jn__QPA)d~;cgY@Z?+%ax6MQ79q{<M`LEu?f{
zYcDjgRueMC!*K?NFpV)WLZIr5D3IvD=h|qTfnTw3`jYh0W>bk_GP>pxrQ=D9v6<&!
zDbu>JIJA!~H@U1HHky#9YFVT_RrNW^y1l`J63PgV2kw~WA^S7LUFaA$^Ke4G0P)0v
zN(_13miu)`Ct!=5QvcR7#1jYz4BNKotI^4qPnE&ZjLfKR04oC-Aq9-LT`|`fLb`IQ
zO>|E{o=FM(TGNpV`ai!82net+Bj9LzZfybSU<B6*1HywFQj<bDNzj}_Mx;gp6%iCj
zH6a0{H5?e73@|#3yG14A*7hG{q^CED;>WUp?QE5rfuV?caJuOT!geP3t5zkyE0AG!
zXTc4^m^!<<V=?*LzwJAQE%%`5+uT7K)hG{3bG!hcz;dT+8zcahAOZMvo0<SHpm+3k
z?yX|b2bGU6Gyn~i>j~e079@gi&?AM(pfPNMN%*6AGc4xXJed9M-I)CXV810R^$nnp
zQ}gq#9PPiymZ{wMq6G7&&@fMs7%c#wK0vA7g+lZ~XA;#bDk>5@#uH$7V&bD&j={xS
zfYhtW$`%ew)mrFF<H1PStLps(5aA<t&JV;8_%D$4ui~(TB64jZ+qP3^gSbaAg89b1
z&XnI7t+D~}z$igDL>*U)wH;)}5t%k7fcc2dRFLbU_5kxs)WQ&`279h5%UogpStP+G
zwY?=+p<&T+avi%JEQkmVb%LvDTP=$AA_;zb5hK;A$NJ+>ne<qI*2drMc7S=a3d&KZ
zX8@)jn^9qM)f12q94IGyFzV5uE-x>SY?3qh%{MlY3C#Fh6B2!9M8L+GfQ{ct3}Dg|
zM#aYy6t$<Pr&pLaPV|2Z1lm((l>31S0;jrzMJFCXf2@c(n?dvB<Yd5y7meUMhc_iC
zL2eQX9MttUODaG(i0&uvCD@LSjy?vMMqoHelr#e3`>z!Xvmd;4BFoFlynX9fi6h81
z>3u6eRE+>COt92t4(H5lJ=~nU2VeD`T3xkQb?YYuCr!xvDGV%$3dA`<*I68(XpdZ6
z9+wPfm^mA8-U}N{vL=OUSdaoy!NS0a@Y>VvGCdbTjgQ|eY9CYFLKyu%u?_fC^N83d
zm(0MD2-PR`WeT|ed{8)OGF;=uWSFEb?cOcRs8#c(CtvF(D;2`%I6GPO9rlFC4dOs#
z{*U7(z{V{LzoEfR?Q?Omw_4WguQXLlHu^yqWE2{t9QL3pivdX<4|AL(HnuL5wS2~<
zJ->IAqx~T%a#TMq6<t)&EeJ181#y0)bx9mb$eL?j@AFM?C7@8itG7y8c`A&Ig{{jJ
z_rK*X3fZnlzVn%V(N|Ru1Eo@>V^PiSw5s2a6g6^EBY5Hc_ZktszWUaFoy5*eRv^V2
zFq9O$4$^5geO>{9#y~VryW6)h*7o_}KbNWuL5BJRT!PW>YLtzyDNGBL@E3K_a2@S5
z?&`Cpd;SoXfO>-3t6$0=h^P|E{zX_?&q&>^`C`AH1et8DO;|>PGr>N0-zJ_+Cg6yd
zNXOqi4*xpp0kDvV(V|Zkt(dUsR=1OpH+;I1g=KuUrtT2QvU1%og2?E_H}CiHB+4F5
z^`>x8lB`1hJBMB{fF$2P7!vkh&2&h(CB@8jA4&LVg4@Z{#`k;Bd!1)zD+0m2*3bSs
z|3XwlkB*LJbTvw|-V$z4&(F8~?oAYDPP^WCx|+4yu#`|&SGTI{(n}uuCe+474#dfp
z?fP%7A66(($-JSuH=de7{ws@=V`p4n@SbwJT6NRVEw=yD7LFI6|D@>fjbibtGOjQi
z>UUJZ@&j28zKwM#dDrL2_n@R*2nV9ZQ@M^p96`N}Z5t)EKE93B^tbSIa8UKsp0lho
zF{!69NYMLGQ7A|#XP$mz5);;dxlk}KLSU)73m^nLyJ<X3tf?HTKy?Cz_nN<}F7J;}
zAQDn5C49<R^GJ@Zlg5$}o(cTFuzO)>h!kYz-o;2p%d$6mUp7?R@ULo^1z*oIl!GAX
z%}LLj^78UMQu1Dh+Y~Axh(X{v#8er+Gr8X}eKd0~@Z?A2D?)=s2UbeEL_@iP%f6%~
z<A&xROA_ryBn)^$ZP#J8+5kLwd?H8>X~*T1c=M1W?d4|1QK4;jU(qS4W<&AQ;0d80
z?ePguik3*Nzd%mHTHDa@Vo=(bwdF1eLtWKuIqk*`Wt_ebt_#YttS2QXWhblC--r`8
z%+hU8KUg76z-76UD-I&c40FOK_z61XflkAYWwM4&q+f=1GL4jd=S<+U3bfWK)UIs-
zUJR7Etkivp7b?e|d$Y=C+^;dd#nWb<+9_1H@<BDO+&oGPA5E7tjG$tG+yhSJ9=Yqw
z@YeWfXk5aI6J=zHdWo+}Y4`}eBfqX*m#*GQXZQKO6#{0c18UAwNbBWCnA+o4(vM5G
z-`PfvA~zDrVUgKz!->INgGeT=SF5Df>FYvXKS(35zeD6=irmt+_;+=r!`G5YU#T6&
zj3O2AK8QAm=Imi<9You^Qv|;LYQ+p210M6fZrNU~4}^Qb=+rOk8Hu4Z<H&l|=fTCs
z=i{VNeeb#UMpqVDC&4bKh#)y3CqYW+25?<(IVPSwkip(od-%OvTcNydrW2W`8yRQm
zKhCo}8t6YKcV)d4*d@~gvaD87kVC(PK<>dM1*g5%N7#zm**Cfr5qHnDyHSz%1KN3Y
zK@I<?e!zk1-VQJv3Xlo%DRtn$IZ+`rq1wm!#^&aarL}%4s{A@Yh%gT{y5D4ppcb-W
z;^zlBe;|<MDRZwRTu>VkT^v1A2JfckQ_5Abewb1BtLB6fFzyy=FWS$6OTZqEAi(IE
z5;cP}NAA42Mv%6i-n|yhh>{2LItIAW@?6=HUXK&cP=O!6@9b%01>TnK(F6QLF*N`L
zvO+qXy|lWz8kX}gb-^2bR;Ka>zTK0%Lr>RJbiVzxQnaVLGBggj_F7;##zb(=oK}=e
zwIO=f8-4TW&0WDMP96*>uyy@Z$&^+Lin<AwapOz#8>w1-WVw^PSQXLuc?TZ@4;bYu
z$c;B6-KikNU=4GdJvWS%S<pO8?yD59{pa-0`ra(cXM-DpJse+a>>dEL0o<Z8+M~u3
zG86og5&pr;IKW4}6}{qUt|&iP)NhWe5bEK0UW5;zI)KT=*<qpDZ~=yPL)s>wO`SZn
zTk5_i%?|2_H4giTHEd`Mlv2`hVwgpuk!m`UADWuBywT!q*34C-tgrXZ5OP8&tpU4u
zT}3i20u&9#pGFDGP3Ry>-v+&Su9NwQfu|%)PYbbOTKJRH=1YTn1+E-kC6PZ$K~CY)
z&iy|s%?<k(Rv=^axHV}MIcl1o7Y*WNd1Yl}cERKcDNv)$OY6|Urt_W<kQ{;h*+vMF
z8wepSS9lziH;UXdFerRcC|)fwE<Mhev;Upx2@K^8E_i)PL<DM0taqhuLLregBCiu!
zVtS94NA8vCPfe8yHPf{PXioU#jpkOyoZKs6Nhmi6uWtjf7oL(seSCe>_MOaLtu2&3
zs7AvK$tvy5x2@~Y?}lEy9posN6+g|lYukcz0*I+>>tvA*W9_=WX|E*)AEeyc-EOmb
zCv`tdcZS?1MfU;w03oUd++SaUz`Ozo8#}O0pBs}WmxhD%*^bLm>hA)dumDs71q28|
z*%`y8m~$Oi?_~>Q<u~g;b|2sJzb)dK6_<c?50tiGSQCC12s!Pq`sZ%AVUC;HIeU{8
z<_5Y(MeVh!)T4g=uc~k5pb_k=H3J+>6onB8Oloh}O}WeXD;WCQaryM%=QlbtmdXAc
z>BrprHrUN=0&+7HTaRPE$HpJ*ZSuYW+z<d==fQ@M6E_@ukuiAeu3h2zF-$6tr0<z7
zWrW!^P`Uqu-aMB;bu$Fdu2&VB@qS4RH~+++T{uHM5dQzO4jkLZVRG0a^I@v=_i0ua
zLy<*N{}Mqt=tFR)Z}}EaOa-vn%z+C58NG+`@?)#loa;#=j_zd7noc@QL<S%ze;}ld
zXt8XdWn%j-bVpa`yQ++@yYe5de6M{zxT30?22$a!^~xlc9J9r!SMZ)^AP&U}B3Yrg
z;d=9(>s8-RUwuy+d%o~XaA%7t|AKjdqzz}Ko!K~BAO}7GDu&0v>5NnRHdQ2rybzY8
zE9B->Cy=G5a=ixJy=p&qIE*7uQO`~bBzJ&v92+*sBWh*V-CSM!TvpnDzlNsxLPr9V
z{ry~2b?$^D9*2Jh8v8FR(!gCS-d)!@OV%LKk~a4U4*rgpF*j#kFg-@l-|yIa1EsqU
zx59$<u_NUERw=gJF`Y)W;Mc-hLGQ*!6z5304C6{>)ThPnt(dyLkbk7m>Odv&e?4Vt
z*eFsXj&3da=IP_>1!s*Li#w(<$*$6@ru&*sg0h!JkTPny)}n=lMH;9+@R<e7Lrw4~
z4FnESCsJKx@C8`*TH{;l$ip+EPnr+3i+NsYOg9w^-HQ(Xy>?e!!bMf(kmIZEFLh|P
z6O$f*FN~}6I)#9%D~1iMSMe8_Xu5Oqu%imfyL?cet|uuuTg*;P!HydW_I`ctei9-`
z1o;5aw-pkut*};3$Tn$w>dJ;#x@h;okbLmka9&Zif9Yg=oq6E-_Im~?&wPRT8O|S|
z-WdiNo{j8ZM$bWWSo+3o#!+^^hlNAuC1>M>^M!PS_xgyr?_7b4<z<}TBC?4s4piF9
zn9hb~eibQ54Qh2oA3S)lVG$~T%)40?{O340qe_o%${lZ`!Jt__|2~`PpUqEKnz(8%
zTN6JdEI<v=4oo)U-I5L<lN<Cp$xxB<9UE7EYks@;z-!mj_rd29kL%VvZB{1Lo;HL0
zjXQgE6yJYX0mtX8z>~cJ)G7lYJlgpE%`>03vAJ;;OJb^2O8&6GS%!9R_^dZ7_3ioB
z;L`hAefZwy!=UG|!3yj^Wao)FCF<x};(^TE+fsGY=OZqI^94`89{ML~_a^YD_$lEE
zm~W*zdr2l|^KDB)Fi`zJnM8Ri;#}#?X?#m<=sLfiUy9E}n3g~d*L2XjTBLfs`ctl=
zwbH|JXKk6Lxf?$K0F_GuQUnc1eAXceTJmeL%?Eu0iV3rULfgvm(Jjpl3K!Lz=9K}M
zqN*5F^kwx?OKy*$hI4hll-}TSR`6<7zT=wq?QAGlpIZ|(`L57F4;F@jg~^B|`(`Mp
z9A6S{o>bWaqKq~Mo~<KJ_3T-+z3hZoJ$&%uNU$*5c*&^%I>VtUerRzJY-VEYmFZe?
z^y{^9vHexBkguZ8YrRLm&={zY41>Dc8hhM?{82^lm3_?No#w}Lj#!)jO}^#=ad9P!
zsTK#tsR{6PWdtxXo!o%Y7#|bkA9}AFRr8F!m$hK1+rWG5N0HuFv=T%ubtg6kPF)m|
zZ`V|P9`#t_h5Svx3Dn;AaiBLj7L?FWJvx_0<#bcS$qCuQ1IS_ua=*NUSAkT_URH7H
z21*FZ+B75m=zjI2x5*S*{ev$B_RUUX+W({qY^1{~`J>2pU)W#s@~+;@)#GJ%S$!4~
z1U_*t)TRi-=g8f$1l46l1-&HP4%vQ6_%TJXT4AaI7h;FO!KjUzo+0iax;16!e0F9(
zIPs>2cUp3j#dJD+iGvFQwB24@l<GQw&&R^Y*Q-{C+mDFsko0gOnrDAg!2wjrsSM4Y
zg|Os?#=Ru`2GE3*JYL>y={!ANzF_;v5Msa!3#t_#24$-HE5LgSZcB0E;VCu^<&wo5
z=5^M=IYFDHY@lJ09ICW%cDT7+NInzpZOn=Hu1b-U>>V8EQ3&DzP@~$5OgacQ?pokZ
zJ)xJ#T?z`g|4<$m*(PpWKa(B}@DxtOoeVHZh>VQPUj?;jr2&P#OSm4VJs<PbH53|L
zoRE_UCG<7P)a<OcG$sSc%&Ms>7FrXh4!53@^dN`c1opurSlj?bMTC&>=|q}0xGPlZ
zQP_LA04gH<#yBV#phC<jf&(3aKR@!6)^ZZ;Ya0p6`&LF4^LVM_9-I@S#<fw4M9^C(
zAJWMT3xD-2%hK7%L=$lT|3W%%0ahjJ<M2VVk+sQ8Zfmcb;ZxwLr*$a$DKWTT3gX2-
zcXBa^;Rth#Jlq}nI}ThifHN6vw@7pK2A;-M!68q9^SIcz6@^hTyI-7m6t&MkJ$Jd2
zj_iAcQ8Q^qJ#z4odq29SKf-FW8uY2t?{0CC^>Z4dZ=#aG30SZ_WuS2+Xs_a=yRkxV
zl|vMT(yu|eG5I#@aDxdQ_Tv)ApY5#urFWjcYbT3Yxh4B35<vu5qOWQo1E}B0?w_mO
zYeX3XJ>h-Y1$t%sI3ee0!0+B8ah&DN3GrXqEZQ@ORLhor+_zr!Ml~^gH#nMJhb(42
zw-f*`By^n|urZ)r_uaPkngk)+G0cyL{(L5SDj3w`i{zhN(2*${LDJIFiam)>{Er#;
zLJf76lPw0Bk~d~HywP&~nm#R#-)F+DOHU01l3&ktO2G_O0a5cFj|Mdi?zg$Q={ZQp
zJT13uT2rQ0$>ULK&RPHQqXu5G#$rO&zxjQMco$GmBj_8IZ=2a4x!$_lb}8^x7RRu+
zs!PO(vunaOI<Kp!6bQVOQ2tAXLaU2LDenLvTQOQx%-N05j9j<nKHgGhshfT=Ae1_V
zkCFls<|TsJ>gG<TKI&^*j-xLb-MM$J$6{wt<6EO~W9(2{=$^E}rv^o#Xp!s}Wu8(C
z-kD&JT^D&}DRZt?@0TwLBvxm&_vN%c6^9kSA_7)baZ?TXg*$M>LL)*f-1?=zp>d!`
zktev3K1!?|2VI0y^7pgy?<3s@e=dgpl$Dn|IqToE-Y<PcbSH9!-d@>+Y2s>MQ=s{`
zZ}72ivfYP(uuFhrf~u@bBLp!It>yCDUsivNH|lV(vs2-9oi5$ijHt#!`AoxW9>5L0
zbB`%aQ&u`D6aO7R2vOhvTz>zvNcm|h6<*h@7@0=8l+KZC2|9!eBO@bt0!@1Pp^`YL
z8BE$9D|xl5jj-0tiqj5%E?!FSzm_)?wBu!YJ~L@JIM=kMZ|y?2n*E{w+i6U>TleLU
zNQMcW-#^+T>#z!!EQDCiA`$68JSGtYZ=6|jU2(WuCx7nj@7L&C#xFm-`96z*t9(^C
zEsD#;6Zo)iZlC53iAHhih<Vz-V|!$1<@Cg*qaXr|dfdPyN|HJ&6=9AH8d5}T?+rt~
z-_<G6u}svZm-2+trSCFR-SX}Ae&t>;{*0zy;>_6MA1itZTO*cwjN|OPzh&1f7x#)V
zVCTcn7m=K&)w));vn#pQ<y$4SjT>jtjh9h2$Q8hBngG_Uga)Ef^X%66yXT?XUd&pb
zF2*e{(^Qts+CB@unUj>;`C_=zKKAojgK8`tsltE2ybx$@N&Z|xQf6E|p|cM6qnYOG
zwOM)H#J@<6aY>`j8_@0&&}XEGNF3DxD11#PSE{?~74h_C*E$b}H=6%>mBD3;+*UV!
ze=`&8N!)p@Ux%zx4;3k-1>8hnlI<<f$H*nJDJTm(L_2O)y)~+oUSi!(eMIZbb9~OS
zAhGjqi+SgYxl0ZH3k1Z~6m}a0D}3y_myQx03?ivJE}MdN@{WmxiMBP?EPMV<b8fRg
zsZ?fVRpRsh0~&+O%U{$}>)zGxSueoS#C5hh>o<_qb^Be995+gjV={>dREPu!3~rp%
zFaU;zsTmGTB1@@9=s9)u2njPYXzz3cwIDm@G#3CIPY+D*cAG6H44)}?k&kZv_VSnM
zV@DRx7Q)eT|70C)0u{Nm^~tSL6+Gf&eyr#KN)5AXC`WJyU-d+Y!DvP94c4IX)kfTp
zYl7xw+(H6F_9QddP{oesH`E=?ES&tI2q>^4*z-&XL<F~3(9&*Z9{cea(qCWq@+^&U
z&lT(17Y;b*4qY|raYAkbK7<$uk{Mxt6E?t_OV{gTfNPo0?mcy@fc%qEZ$_d?A}Qz2
zTqgW@r>ublq5yb*wg`&R0Twtv7xRz0D!H<1twW@Abh1dEO~shI$L<b}$L^OH9ws<|
zKzTVWu1B`shHMm-9zd@NZ4|eQ2Iz@E{4x%!R6=NlST^;nZ$rDl-N!os#Dhu=AQA3$
zCZj)T25a==JI3xm%q5zg$UzJ@_)0`J_&Ri^!C}B7QY7%P+_9p^KHPa=ZcfmxCd>7b
zY*gyI7yC$IekwKrZ(HYUS<kfw-{WWhvj>3S@q>ed?r|UuL2h0+s&0lINMt14>29XH
zu{e)MNqL76pcclk(l}gHCsgr$;s~i9KSO=h&G-oY*lVlnF~c6acI+Ozm^M5dQ!7F5
zb%nKBL-J%O*QS_@+9|}H3t~SnhWLGC_MQ#MRG$s_v1kno1AsA}LYfd$6&kT-?cyRO
zMd!0VQgC|xZcVeKRdxl8?%2Yf<k+I2feOL|ZsV_tiI<%*srKYGu~9J(Y7|+j{z4v<
zC~5MvLbUIF*x=GT=G!OB(*N*`s>*>f@!D&_$PkFjoqMVbV@dUdqq_$`W2|)b9K5J!
zX&ju7mPu5%!a`Jmo+b)X--MXs7OQuRjOb6ky<uL|td>D!THL-RYCyH@EH0rO6(B&-
z(TwSW|ED_?iwnT!8?xHP<?R&oY)@DE$Ys0VPdQdlX)}VuQmg&XVO#t9`mV077B?d-
z@>GAA$vr}DPfkosoSmHwmo!w~KmlPQ`{HT;_d8*(c_rDPz$!6n3k=l~qck7j|H-2W
zE{XP^1OMleQiJuyt@j?^snpYifD4c#%{^eFJep;A2s;jnK&&+!w`u<`V>>%LZ8hbc
zZw6Wv`EXwn8Vr?6-6?ruMhWG+PrIasJdQ{R@HOjbmf@)gLr4N^a(_fk4LN|V8R)Tn
z`=K-Gx><E9`__?}+^Yby(lRQ*_r4h}${iT#k11hcC<PqmKbA`maX%Hj6y})gWC~3(
zdI+@mIQ;)=BsO;1h``pC*mY~u$P$CGvOGiC!l&6b?2GdjP;lTkLVugI9$+H(3H2?&
zgk!7*fMF`k@xs(YWw^xO;^z?RqZWp!#l2@6pD4{X>Mhd1lz_&?Vr6nM3Z{g740H<M
zgfrF=cu7C<@;YcW85>yyBS<KGt0@!cv#w@5pT+rbl1aqBC!bJ$(6%7v`b6~YDs5*^
zF};I680B%eVf4A8k{Q;2dm^}Nq?(jq22s{d5)$cKwkk%<zjIJRa{R)Gu7wt)o+4Ca
zTBQkyT%Q-)_ba4z93XE?B3_S&Uyw##>kN|9TD16S-R}Gj2+jUZD3Y95FGjJ>%!}UX
zR+r+ndWOtLL~Wm+wLd>==FtN_S$+0W<@r}eLC|Y^bo-7<NXQL{|3lBmkH_8qz~ZMT
zkgo1xzsAJv8YpV$-3>*Qq8f&tsm{JNxi9&G6zGc1*S3ioT+SdiuGRPPog*X3Db{CH
z6bM<m^`P{cC6bv&xJOQXW<z8G%hH|yL@q|?@1(NswcD<G4@E(vNzRbmX8xV40>V(d
z__#s$7t2l>ALr~~G;jk&j!0($XeyCG`BYi`+aTOE7+q0&eybtX7av>82#<<m+T;4c
zhkB~BOVA_}MnM2^Ji-!nMInqK$r@)1sbM43Nh}T{4ppPb?-#2QstH}&3b;?=0&ISQ
z^o8X01_i~~qw8S2pbO-r@p;|NaF`n6vS93yqWN`zaa=BQ$UFUPhrH+?&W1gSZY=$r
zdT)G`>Q?#!7cc%blpYXpUXL(8v<a^F2Ahtw<jcv~lbx0V&h^5Ff<gFyc6P5SMv<zC
z^oQ0Yp-PN`!aEwFVu^OY0BA)85Izxl#(~gQf?k1WZWjZ70f9}+%ZkLQXx-_}$w~=<
z(#V#LR@M)!bG3X0uLgZKV|FwMcY1N-q60jagfJscpxr+~OqQX*D2p8=$b*48_==9G
z=k*^XI}XNzoOrvN@3E$7WW0c+rf!}b-t~@VIkhMFC^HafJmYWqOllz*2Dn?~K%Xh^
zPUP>(7h$h%`{|QxBiLsqy!8hrZO~%v5{u{8h;9qY@2G5b-~*&d4ui!(A(_O_At|+(
zev?j)93L^J0X83WJcsE|O}}%vM=o04HB-(5I*0c2);stR?$#Uz-yVPsm;fQ$5wpjI
zwRS@dso8PZ`3~m;cAfC_^~;>p84C{kcq-Q{orEuC^12L#x>!<_`EyS_1V-#$K128c
zQLl88CEjEm<`ldau^y*(sTQUlvz}JCV^KovByewKGt{JVP5#?Mt<H0uNGFb1{Y&eK
z?u!P>C3avZkARWaEXDdxlMXwS8(4W35+l!yOsai?b#Mi?)ug#5qC}dD9XRAKezp6Q
z$PpCOSd#MHSnV)R98O>6YC+^0g8lj|v6kWR;i3{lqop`f<U^v>WaQwVhx#mM1$>>q
za|W*^ZyT_Wqf6nU4b_}GAcjG=K>VFfB&JYY5MkE(Bb0>ij3ri*<iu5IRGYW1Z+%9W
z%SMbQJx-qOpoFDrfP&<q?cQ5X2tO%%Wnl_3{w+V7IA15gPrQv&#FvVwAYO|Wafy-;
z)H85}HwpPG$Q5(>+LlL9p#Hd*L6iC1`mESBBkHb{VNc&l8tuD93v^b)H54;g9fQxK
zlXk~SF>FvHLc6GgJs(Z8gYj@n&QfFC2l=l^vc5#zzkbb^={Ys9X?yJU*;1HRl;G+7
zOBSgcZDC!WcIVr!6`)MIhb;R%ZQ@b+**7o@F##^cB$8-JlO4=XMfiPFtDdw77zF5J
z*-BMj0}l&?RQHR$tyH1nzxzMa@Lz0gG?9l%Wub{PY}OT&D&k6lwer~c#=-Wp*r+K$
zusT|V0d!n`@wB}pJHPlTzYBQ%Eg%|-cat%MjE6C*K~Eg8IK9`|cmWH8BMHK9&_4;`
zw?5^I`bxplslsB51%m<)i3iKbV;astND{Ma&X{*_5^vJJD63SBv7?iV6Zjh}H`jqa
zixEVj*O=?yzt140dqk&-#U-A=;CqLW419yLCJqk;f<<gq7gfRM*@<P{r~4@u6rLVC
z(C5}4RN?2b7!W|XOfrocCCRL%CoV4jlCbe`!c_ij?ahE1az_%PR_$@oKnuA7S8yR>
zrv$KSxOP}C_qK9<qtQz#uj^bBJjOU?asN6O3HYY^*N%(}SO*!B;1#HbrMY~rF8u1A
zD95b4ckMEXBclaa5z_)@*px%N>ls1-vZst57|m1p3%S`(n&q+WG}D@m#brxa2G~$~
z0JK`(2%@fpwpxGE7u|Ih$olhRMAx+TZ1>)hE9?YR@dxcmcfnj9f}41P3e#4}pPHCR
zxA?*G!RRFB1G<5dRO41Jn5^UdK85tFfR4ln-feXM@oW^CD0k-Ao|L$3HaRNU7=14J
zbd~^B4Q|f{*Ha$qPprn@M$<b!|Dwrfn+6O+!0{TXxb7PxJUGBSNmbKgc%2_<6=R!{
z9+6u8d-likN$q{Ap7T79iVr)2IHh(%TaCf8YUl?B2pujJF*3exyNKQB{{0#LUrDn<
zx#8w2vv_!%JO7}nB5sgECA6N-OR<tj&LnHUN<oGRmd-#uTYT7W0OxOZ$G&9}3<(h<
zo@j927~?Wx!ys6=pH9^1;cF0ArX3t8G37pJBJ}fE7-unHXEAHt8n13!uPP`g0G^no
zbKlegn^z?UC#3H=91TjHuEh`p0%EU>4!mF2vYe4(z5OsqH7s#CB)0w6aL1gxyI}c0
zpo|a9m;y;q;KL&1Vn832kZ3Ez!(GVMAq&8_QqY(#TU}cUKtPU^(J#M$`{pb`G8)X>
z38{#ljZleMp%B^{Oa`LwuR_*(Kun^lB9M&_EZ3_|tWMR$Tb3c2s<YQHT^f)@2~u2x
z-X`r)3+wet3$J^7Xzq6D#2LsMV8NM*uR1G&OJ=_c+)KLia@98&D!Lp0fCOpHdH!wu
zEGsL^tCjvF>GoxALDH~QgaD*t4l~U2PlptAvIE9kRdQazoNs@6viDjunoic=aOkd2
zhV}XR`P;W|+i^V|*rDwCR31aDuINl`pu*P`+LYcw^R3JpBej&#QyU_6=H<aw*J6EO
z>~hIDV2+;0r~(~N9C6Bwm<_^|nSXaDL6Op11;9{=={JGO#!F4LsVUa)Xp9Gvt)-bu
z`uVPLd1bLdT)0$b`IN7l3S$N>B%h$O(?c{PR`}b(JYJ)eGcN9*vt*_k&lFI3`7F|>
zh<lAAfLFbfy7yHcI|H8w5hmt6L%=JY9{3^AR-fg{2>pXNy79+?)q|%%bx%9-WBK5Y
z$w*RWFsW;5ckcB--nc3-ouCg@_qKzzoUlnhL%sS#SmwDJJDa^!!;%Zj&R@evguo5h
zATd+V?9`Y(5XStItv_1c)T%5ddU%i{byYm9O{6K!#cnRvkEbqrY58AcBQ~>*-?U~M
z-z{puyg^Q|i7D`YabdHyTRc5oQ3)f@Z8bCdCTq^tv&wNaTeL5;+cc_H{mx;?hl|&S
z+D<#9!2vil36Kle3v!}uUxbYHf@w(lrzbyvE9N`CH3fAn=$HZfB`8%CbNWW!ocSG&
z8!-fIRi|+1@;8M8uZoz(1EcX&z!`{;zy^9ET1AF#ziVpZ<w`%~U*?_N&aN1-rE{K3
zB}pMmft|New*2b1yb{hbwqBEjbOha!--!U>96;UIFk}5hw6BgpN4)?H?nMIh#w+K1
zHsjO93d5h1Zht#xXXpE}0fokFO=pE2w{qNq&%dcA-1@MRZkpc<oM+5(ij(mjbdc3-
z!BSSkTT+cEb<hV}0j;4lN`u?`2!y9nxMitdGN;qqn?XlSz|p$c6)t+Gz1MtQBKq(u
z8bLo0BdnB>I(19V?bD^tbl_{~=QUQmr3#YvRod7GIcq_AFZaHD(V^bOd&Bg(>;gFD
z{X{1ECv3SR0YOhh8JOq_(&S#IVm)^pH9v#*UCwTvatWP0F?XHD7w6qM69$i6q_&rM
z<X@bhGiT``9bLhxKPck|gc3i$(&JVuI6nJDB_1v3l;1A;tOjE86N^wQ`m@7SY0qWF
zp2uW>g3LKilYl1?+tD|mFz=`-%VM;1o#d;3MQ!ritH+D^^M5DFTu-G6{212K<Qx^?
zC)CN}3_dZz{7e=XrY7!0IpTI*Q(q<AjypkpAu*Bb8&~z6NW!2$=ieg}i7KSxKc6#W
zvgLZP2QxJo1lQZqcx-MlVl}#|)=(^2s7cAsQ1OJ`rZqGrh_B~`uBF4l$LwQeFw;L%
z24qn~$k3I@3~sQXO!0k426(yQlA0Iodf$!EcOWU7cJBLkBBWYNpyF_qAp0&JcybZ(
zPY+aw#Msny6m^@pp;*miC{`KWvrD#-7<}^U2S0~S!b=GQIhJPefPmWLaMmY<)7I~*
z+pBJY4|>MYhz9_b2|;{Ix<OM!(AV^^lSYn|Lnk6&pHW7RK0UXW>4_y8A5SF>46NVx
z^xku!z^*&jf7^==G{h_TlKw&TyKkUv{fpNhQqeCau0Kns%t64DiL#c1@@7KZ&*Y@^
z@k3e_K`052Y5+Jn$(>}Sr#V-fZECLsK{Qz$`qo*0Bt{yT+T|s!^(m}>W2LP~V92aO
z_poJ{l<DEV^`D?5&0EzXGJwLCV#H?~+%@dp;kwgzT5(P5B5`A)3<aNGk{S5(&Z^o|
z1V-Gg3pQ#y4*$ro*)7KmUibVx`#H*wO&3%g^xW`h{p}~w_$zI@);2$)<u^stGh9Mx
z;{vxFrf`l<@elg1%$>ed>K|!Dn>@9gN@S#11-N&*+g4Q|47)eCR{23!4slkeYHzX+
zQLH;dX4fgciI>!D%0&?ICsDr0Dk~duaPRlRs5xjMeVc2U7qy}<`h2q-=!br=?9J#z
zhdWDHW$MnPk-GZe?c(_rrJ^4~+duU7z^gz+!*ndj!$QtV2<6(py-`pZKp#1_ApP5F
z`8wMQ$OrfL8m?;**g+d8z~pjaj}<<Y8D#RxAp>OhVVuO|u6N2CQ~a0pwrf6GGHmyq
z2D0l&kLcJjwh!#%F1zg`<C_FVCW_e-A=eEtP`=CBTQ4)&n6ZksXWwR0@z2J72r@MO
z`g+G@JJmS1TgPReT4nso+<cL~8?Qcp$=#mfA0x<vt=Z<e6P+E3NzZ&0nj_e3<9J|d
z6dL$3Wni<9-y?CAxSLz)&Y;pikBQny)TZd2W`siHYozxxCD%Fi6cQEWkVXz4zshvU
zCZI$~V%sxKw19ufym_Mw%9^XKF4J8^b$j}wOb*P&oM0cfK{SPMPIiZQV9Z9;-w`A%
z;PH|S5VMapiVcZN#iio<Qq(wR{#9aM+sr-dnW=qxDa>$)qiySsN1|0#5+M!oZM&QQ
ziqLoXpsaLT4G({Pt+EL8W>*-lueg3XWpeu|-#WSPCj;HYLVM01Uy_MjZvRy%-^tNx
zzqP;*^JdDudcHw2z0xN+x$HWmWNNe<pgsYH5Xko&s=KCN$nLSU#gT*N+C8e@H0Beb
zPc=0)eQv)W<;_J3ha}RwIPdD5l{dfZ>i*KV=iD38a4u$LE$VHo*M#r-_nW0YdDO~^
zolFsKNe8zX!x(bwY(LX+bHi7rmoW!vxcz-xVn;#NT3#9;j_?20m6e=-0Z=V}JZ{80
z{xV#`4rHJC=)Z+TJ|D`JbZ{RHX^1?C`N`H^ZD;!r3XzRlTx<5dUY1DOTQW2#`TDP~
z73rlrvpf0S2mJ*5)HDw_j|rjzBs12GNB|0%1xDyaXld{dv|7iw+OD5R5G{#(ZCAWB
zY7QG@WDs~teaqH(_L`L9pLv88^@K2(qh49F%F=}tY9wfpuZX7JIQUAfv`tUppXwPn
zg}+a|n>t8*y<0X+Mx(OSP`;xl4j21Bj5(5O=j@zK9yDA=zB7rtjZQ4x`ORCJVx4Sv
znH0E6m=&lZZFh9^+2eR8i6S{>yosnk1TKi_z1~Kkf2M>ajlR)-RW`dSgHEhZnUUp9
zwWcN&e;3##X?HpgHf@qAqrfYS2mC;BJ}BLkk%bHHlVz81jLjI|IJm2$tbC>u<K*k4
zHUE{Dfk<<B86LW{Gf8W}VSe^F9>6l7HyyWfml(BrDks*WvG%US^Cd2!&B>ZlkB^2H
zQ42xnqs$?}#I5gQ>^m(@OG+$YTASk^kM#y-))F{9DH7DarT57|AZ@GN-tx&Lm0X`g
zoV@plWKKAiNVApJY;%K_FlHFD7d*@0?Jh<hxI@l1DqSiKhiti=@)Pje%ZY-2Qpu4<
z>Ja`Klgs%<tR~WqZb*EOW?g#{5%*jGBz-N_?fWRG{^i&ARp+BP(_k^qc{AawzlLw5
zEJWCMST5OcrAZjyJN!K*`IHg+)wbk*W(zi{!`K^7L5A`9I=rI*I_XT}9PF<{i|L;|
z7?$V~)e`_Hg9E$`Ib6wXO&d`{IsT@jY_!k0+XbINHgJ-EYWK;Stwo@}K!cVm73ndO
zpIxhsKm^^$xbO;8NizD^2SP(MI#SC&JiYXXdezAm8C-PLdPZ3-caYhfz#diJ;qY1}
zm1p*_zeRf7La`D1yoGS(uw`wNW%3S~$Mv29$ebQ8s?aUKk*kpZ#|yUc6l|Mk66hhN
z&sP^W3=dXBBFa|+Zge+i82kmc@}ogk4@O#MtRZJTclT8oaAO7Nyu<6wf5*#%H$4q9
z=%H{t%8$3CGi7oVVwpp;t^+92?Jp?uEedRn;9Od|4Ixoa)?n&8x))N`_H+2Oe)ub0
zmnzP=^x&wvkO#W{9ll)NX%S7Z@ob~9CI*#!@lPQB!pc~}nwLwKP<j7c`*Vt%TVIG=
zT;hY!db}fFUthZTwv$xi6(@m+&LBd9MT-sn&y_+zDQ(s~-0ng_3H*2?i7=Bs<+DD8
zLb497`1Tf=^3SgLmOysGSC9OS$p(t5++}>vx-JofF^y+u6sIkmVml|~e?PG33kk^&
zB~(eJF>vw|U@D*;_fw!2o1?Xk9fdWv1ctqSMG~-py3x04!>TnuxJK*i5aK#UGkmTX
zX}m_TI45{L41sw7g{j4Elj_N71w5QFHVjXZQ~Z6(q%GcTSF-W6x#G%LBZQBSZ+){x
z_(rz2kd&E#Tz3MUm;P3)<ps0$O|6L9l)KG~701u!DgAG(TVCqS$}p|I<_5V&DZY%3
zFH0^FeNdR1m3oSp%c5K3cKv9Pu0)%n<=!Cx&iy~*R-L{qJXLeLJgfZUpEYElD?6?e
z?ey(EZ9qkhX0GP!A&$x}-g3qqr*$SZsJTS)THy!Kd?weH)72Xcfx}G&z4&7swfR#?
zEUGhEdVNu~0mdi(RLq$vTDO&3JDZbJ!JNcDJ*r}BTt_^8wl0S+FYo#pRDP_sjvnyQ
z(v5y7un)TYMk@J!iweJM-8S>l7L{<#J$?xfOH)&Wt0w~~{GFj~3gDd$cv!~DSQQe&
zeSBE<oz|@>PYdnC@k1;p#Beg2ltXFjaME&e!ez8VaY(k-m%}D|OTB3k?(SjKnI9YQ
zvLq7+JiP*F94H=$G!Zh6XHP4)dx+#O^x783jV$kp8BcM=QkgTfyS1Da#{8VY`o<-6
zS;>5>GkOS)j%p;y8H=n|Vyptg%a53t`HNFSxXouL{nsN_hh@dt8q2P`-2K2{{+*SK
zL*IH_Zgv>Qs&G=P!+e*q)4bVK<nfJnOmN`VcnKZsd!s{2O%0b8`?6l>QWp43rEXCv
zyWCZ8+psP&JM6nW{vNzp{{G{fx;dgIpJm95Uq*0;yKI?h+Kf5sl{#qXBwIP?k3xUT
z&dcsh=6|-WD7642=*4?^gSa)DxLFqIpI?0OZ5gc~F-WQ3x#np{0VRxUBzbKJwI`N~
z)B5|t`Km%L9}Cz={*FDm*!1Od7uO74FMX|3Wq;$}uOI$dH1T-vCPkshh-vb2?+;{Q
zV;41p<+Ob7l?!O+9K2ZiK`KWce@K_P$w!JN_w5(Ap@oism|U<jwB>_aJAN%I`P$;x
zqq|}f_3xrdUCbXteusSi(8-H3@sMy91aI2-0Obc)1Fos99j-6(uO$W@5~P(rGs7_s
zh%_ot+)hPL9sPfZlK|puU@%q%SIaP?Un6^qmZDVreSK{~`KDm@hgmV6oexuqui#N2
zUQ>WFcts&3`2ykLY1*v+al5`EzXO6TA^a#H_Is2%`ac;BJM32`u_(UI(!=A@W*PO+
z+1#lVqA$K#%S^3U{{%~1m{w{yTUG9FuDR^W`iimlZR$dY?>OfUOE0tLH!Epwe7TdW
z3?LHEkk%sTNpaLWvX@i$$b)6ry3|!YPKsWH3rLmph*Ww2`&q(nYkC5ml8)~BIDNs!
zMnTY!6g~A@0@R>_fPy{uEvl3_tQ>gKSBcV$RAbw%-lC;%I$$y}L=0?pCjOiag-!`Y
z6E#ocT>WY%Dj|s_lK&C6b;SY1A`UG6Q5VkJMdF1}Ci=~xFJnEHbR{}z#-(u9%#2D|
z^(v7P6F}u%-sdVc=oDu(^eoru#rDF{kMFl7GX-ybEiA-m1dqmQbO9ssD#ldLv2t!;
z|L~!GAbs*v{*M$_wQFtPhnQXYl@1c!E|5URFLlpJky-_JDE@vC^aJ$#yVa|~8ydU_
z<Q+Z8*fnTp|H3~n;11P860vhcyW`muF5=w+-@GCjHCb4SSl+>h{Zi%xFR!hifO_Ls
zT;^w1?0RLb@RfoL3u({gs1)m$l1|*xKjQKP8E=`Yd;t$Acr(<HMY@oS!(;W)QDZQI
z=vdSNrYf%KUK5FPf&{V%)6vJ_fg@043yDy%w7N!BhXg)M@Q=Qnsl0rVVofPvQR~EU
z|C9|89%7jtmre(i(1)pg;V$&#jr>i^g{(jO0)N2heL(>m4$rSJe79#<mhoC)*eoRA
z#B7kE+Gto6ZZa&e$ce29yuVz|N7pCH%ylWBlI9vR{-Ij@i~t8gEi~|{LN3bRGt}Wx
z@`E{6mPBughM=tKVLa>>7QfFujMIRc9i=cny;?|fB5GlAzA%A&`{5;cjnQx*Vk!(7
z!)LuS)S(WpG<nfs-xzvA$`D%{={HsjR4+klA4@cc>7*uAx2$T67Nmg^sra^;Sf=#p
zZ$yya(s+#4)?eIhx_F_nhdH8s4#)|>Sd=?2_Ek+H8`b3%z?)>a>RVdqgPyW$sfV~}
zbFGW`dIP@KdNKw1v3;Z$_m4!rt*#c1BHzz?;*Fm@t+E%sc@LTiy(w}DeDLXy9!_!G
zUpMCL%_trew3Y;;Q>+a)1z7J-;hde-*4IZ|@$;57crk*;3Emq{2shtIqE|FQLg1SK
zfI<3P!~5CO)ph;S{D8pOw_m`rWme8WfolXzKJC2sVuN}DOs1bre`-1!Vfy4Q#RP8V
zcx)=MlhNj<y)N4Lf)V7ITKz*YpHtRc4u`o(ZXENxV<~AHg;wxH7#%NZ6;1@vNGU#W
z5FxQc%0;o$-_hm)kUDq)GnW4uJpZ|GWJGG(_4_Ui{EsfoopYu3%>Qhx$8(Mf<AT9A
zP~LS8+A81{#}xb3C)8BszI;Pa@rtXcosdE9V)zb`n8D^j!|9{dq9>5#ISo&VaO;up
zXG4qTU7!Co$MdB3>Z5k=(N6wDjo;-TZQu7FYNJNmlXYT(e#(4z(s^m?Tr-Of-Y_|L
z*}T~~^@3M!=dpAYX5tjbe_NdGn;r73efvo4=I;-XjH|7os{!yN1~JL`sGdDG@dC7%
z`}$(8TyDGk->q|xG(Oe{_6i5t^LVtq*)_Rgn$rP#-6@@52<?xCF;BxIZF{;2{w|(A
z{ds?bO};G*fvsl=&i}x_GAST@VxGeXs=2wjZT8oSQa6ET{6h<%LgMJW+GF@roiy`E
zdzF4V;b`+bZGNmTL_FMD{?F-<-@_UfY5xAdt@7t>$Y5dqmDZ=rqi-{94emc6V#v-i
zD&^7js&B51<<q`bKZt^R3{pD7p0u!(k{gt<eX<DHu5-xtizs5}i4Kr;eGR6|ANOW&
zXdbMO77gXdSBe@pCOY@Z87-LxIO{*#3a7LfF4_kHQeb7!AZ5Jl8ExsI;q1^$se^z|
z#{sv+Omt_Rf01Fp&;H}PGL!&kyDNtKYN8+SsAD2u^u1if?uVcBk87UnbyD^pP$t?F
zH~1fJfJaqtg+F7!I=yEIOlsH}R>QAq$eO>~J(HtPT{)w{rR}-cfxB(CMjoWIx%=2$
zQscP3S<DX%9rE-AA4mir(0<yZO}54icj*S787x{Hk+|<3|I7~1@f!wURS8U?h+fQt
zL-xMU@7QBPy8D4q{T@|ZtwyIAEpUmnnL$hBW&Hi{r>2=)vW4;!$&NE`mi>BXjY1Z$
zi2nQ{+7?O3ezJ(Wt>7HGfBG|L@{_Lo<!{h(tg|^BuY7uV^vx~!Xxbq<U`HY2(rbQ~
z``Y-qc~IvIH|v?ov2%0lAP0xY;{fcu%0V1&V;AC~5z9;E35MxaU6<}e<2mMN_OFGF
zzq?<2`XY7RLLqg2Bw8hSpCfq0b*+^0&-b{T;LFM2@jv$t(KU8|e(U~GniYvZ4>@jZ
z$zOl;MArPRo8#@m6r0(%b<`M)<G|f4SohHAp03(@;+9~n*fVdm%5z>?afojxM{Y6K
z*T>y-zH0{!cg<#ky}7C@gD*GVd7}d^LDrUW^G}~q%OW8xaTiDAh;3oMJoNjn{(PzN
z@VWW4u;CNSE3+Ih+02XU!@jMAC=s}n9k(3c3)W3D`Fa(eU6}7(MtYV{>6Bq|w%+*t
zvVt{r^j`4!``}IQDG<6&kN&)P)0;|vJ}Q4{ux&(goX@l^>Nk4lyXMjVE9^?+p>DfB
zB@qc(D^$puC0jR%HjFi6L@JZLtWDM|gNhJYvZYXB7)zF{VaTo!A{uK#$P(EZJ!fWm
z?$7i2zxmG#FJ^wfYdPm!=Uiv|GV|8&wW=CX!Td<;0oLOMYq#YXw6J2S-#q=#MTDSC
zHLRFEKAyKz+xjX%>JkupuJG#3au_-P@ge@CZfFIQJWiWlctKLdyuwKveb0aRs*@f{
z8JAZ0;p-TIYVfnW&e+tTez0XZls-%zPrhg#VePb)Tdua!W2D^X6JOiyVZD{xI<Ks2
zqTPfTMnrwJz5LoetkNSjj<D~WZ>QRcW6ZW~)GnoWw-Z)8jl^;~(H6o>%b6qcAs@nx
z1_iuE0|iJ^nyx)@{9$g&vrrsg<^%P}mZ4Pw+oOBqUMb8u|HcYj-~Xjc$!}qdGz|DM
zjSzN!{OJYn54Oui;vIxzdpVNKLPj>fl=VEcBoud>TUYutE)Uyq+nf;7xYDLS^}2eb
zWPw+7!glY8cx!T6<@V?Yd6go?uvOm6w#D1`GFESn{MlLK&KB*REYoQ~Rn+{7-!0uq
zE^XUMQ}Ru3S@6tgI4?3B{C2b>46K?s3qiK8gd1N}kf?Fn;G#{{83gy!jpgfqHd6oK
z53(tXi}TryBQ0mFyB6PseoX&CSd4ICT`R^IEMfcjMcdatHzj|~gmFwcPcTefFpRn7
z>mNqwm<knF9pv{PCV0eqSC2^{dI}kX#(UNXYpPIhfp<@2`Fum1r+Y)ILACdt_6pYI
z&!LjKWApg2j;g(&{0n7tS+&Y9Wo5JVK1qCeIhD<S=ZF8WgU{kb0vb}x2>t!>mNPNG
z!0k#qJAUGf{yH|Yir0RZl14w|W#00oD(8MquqyG?o{&IC8%3K8_F9zWM{PpxU^G4P
zXX%J1>y3P_{24ACdm-%dXTk_4CZl2bP2|F9x$^<OJPx&@w4nvXjml?q;;e0MX(BiB
z2<+N9&@-dSe=mJuZtkaXWY#13r|agw)2l`to}48Z96Tz}l&z%;k-S@vMDy4-!*ajZ
zl2+#penykNa;|O7SGoj*d2dc<LJMa^UjW<S$!r~?XkJWYg;{vj2qLtRS=qH6#K0;@
z=)_Aafs-$4^Ln(VCJRH)9e%#^)h<=le`lM9QvuUC9>7K{+Xgcr3-8LqyAg?OPtUkM
zqeQEc%$SV;!6z^H5K|XMWiqJ}l)v#S1@%kQZ#?jXq#_ochM}~VIxJ0YRZA7{?#c8C
zaWrH30=O}z%wmjL36VtO^x{zyR|i+^R92Kzb7;`m8;@fTRz5qG4Na!^yM9tt@;Wk<
zh1(`33C(wnIggXxgh)$EA6z?)vEy15zPj6k@%rX?bBN!};(CY50*@@tQO^9{L>xKM
z@?gcN5`}IIdeD5^xeDMbLVaGW*v^nr3OqHA5Zhvy0Bft_Vz#b|9!V@c+O+u6molgR
zhutx&cQ<6*`vvgzWW9T+rIE23zg8(`$n!|;Z9gT8kzkhFeIh8?N~4DZrONMcF15!%
zRZOghI-O4}dAgq6iE5;2gQrVbHg}B{Jhjg|T=keFU3~QHfMFN?%rquh(z@Z&j+7=-
zL$c@aKR8apyi>x=ft<BWl$u%j&_&$vLhMX4nx@T*a*Glaru9q0z1Vr{nxmy9Z0Rv8
z*3aJPXU(27Wc-I*Y~CEcTE`?k)$;59?Ey@C&z7pwHGh?J?_<X4nEm#hunVM(W)wY$
zTWF3JNtR1i@R^NTbO=5Dv#Uq;17ZzJ`iWk<`z|^d>7lprPtDm=M0r|=1!;%X0^4k0
zagO5hG+*C^?+{|0o?DOG<B@c$--5l4y^-|mTfLxr;wJVVKE=^H>8rEZD5GjK1_R!=
zdbPwYKE9?+d2lstg;?W~UU8lE(2uJiqZR$gmS@Kd5g?D%Tkep~u{FF#$b2NM>8$;M
z-k9`rqrIF)JQ+5Sto%^h<dte!m&K|j^64e}$%>j9mj)}o{PfTI;XFpAylB#liRS8i
z0sJ>&Sxzc}<*NAMa<&EC>XCa=%`Mrr%x*jmM}=vP@{FcMIGn_?q|AF4`Ad2dUv;FY
zI%Gb(Qw%;)3rurX0r7?AsXjyn3dND^GVVkvO+U?R`yL$F;D23aJM__T1VnCzq(3rw
z3uBkI0VX0hDwa++&ia|SIf6Itm#f4)xa<B5h6*>^1T~-Ziy@gmot<C?_TiGAWrXi@
z%>><`!x#AON0}>8>QbewN!r*OBuQ!5%PPQe$%m=E{&@3H%QR73$GFf;cjOt<uD9fq
zaX6H5Dpy^hRNt{7;;_B>OYi7$+a9ah?~!U}cMO{slV+uN#-w*9&^sCYv#qKMOV~^v
z`3>z_8YpLNveeS8Z7~YNrHpGIi4pxQF%RJuUg>m=CwKa8cz(TSskCps;VI9(n&-;X
zr!ZQHXBEH$nqfex)s$wTvM>O&_E1PSE>CEj)z!X{B!S-e(DM42W|)lfqsDMAxrCrK
z6_G=Ykt%W>a8I|omo9Q=W64IfGPd)HQKtU1f$RC*GcPu|Yu1B2@EZ1b*|MAn&^R@#
zF*PHI;Kl>Wa%uIZyK#(D5=EtZ+}pI+B|JSmdJ2!X_QV-vmybX_mH5ZQuQTXJwqAop
z!)K;spP@qx8f;-jHj;&=bi-Jz_M3`C%|yNqy21XlknuJ;o1V)X_4|p+yjJC5{+OJV
zLZj-D#-Q=Cl}5u<zge9x+^#wNKOHqm?oS-~s*ecnPEDD=24)WW-PBI!Da>l<Wp@{k
z6Z#z0W7bq65nrmt+cuv-3_fXw*~nho{jls$_x|YOf))<X3{i4!+9J%p_QtH%p-`Xk
zHJ>`67kftgZ^nar<#@|pURT(1Q|rm+L0=aagUlfWT@M2>@l)7VA7Qnm5AE+4kTv7;
z_)z2Y_tf%hrn_WE7H0I*%9}R^ECWv}T9YC83=6VlN~RqIHa}(Th&sfh4Cqm8Eh+lq
z^CAW*%qJVMt8Y_D-voA!VHS8_1SB-ytC1LEw~!BG;?WA`ht^}oUHoOi$6l(ne+UcO
zdX1lBBpFWDpVnOtj?6BHLOFboQe*F;xA7~|dx33Qi~#>D8BfK9wL5zlUo{`N5M(F;
zwIDg7{k#=KU;q7vrTOP?Kx=zPnax9DEIzC<9T`$Y%1p(Ym25N&p~{nG+qZ74Bn`J4
z<rgt*xG&hs-86=yVH~6)Vz&}4_TKGV-5zxNo}~LS(*-X?d+c(?q~0&L2u7~km*n3s
z@L8x{Yve}fM%w7}=U5szZ7;{K#TB6L>n*Gm?@x2xM^lP}3KpH_lxHfefWPtuuemA8
z_q4SW?LqSE<943A?3Vacr~BaLLHC(1xCb{wTjqsXa?}juhiz?{ZO%3jIch&GxhTIx
zl0sxw>yHgbD4PhA58@FT99l~q9lH`Ju7IoQsNN}<(U@}+eU0<E;E0hbe!<kldU<^Z
z?jTp~XG29&yuJl-D{}=-pIW))2Q3Y;hLzBc8@iRqDpX;D>9ZXxSgWkdTdRz{9&)ln
zNItQc9(?FSY1i*ZZej;xy`jAMr$OFMhxSuFm#f+D(D^P-PGYpB#l`9QjURGjNB#58
z%47VY0Xz}_EN%-23ja6ci-r0p;aYGybM0luQdVN7*Rdwq*A_e*%@#aKHk~z_$vB~_
zj|k_#cUf@KtGXnt>^1YZ7cNL|1pr0w&w5Hj9s^F~!q1h**kxnWeE2+NXjN%5`l5tM
zsEs*6Hqo38Vse~V1x#P)kT(g8z3}{{rfL$lZ%v}Q`FXj76K-UsQ5U0$<>cD*9y|wl
zZ9h+`8c+APD~<S0bsqB*f6HrV8*b+%Z1cq-^_}?XJt`8_mj;=hxCFg<1>N-C$E1|@
z7lB{)dZB^rK={q}7ebfv^^x#q)H>IFdL=Rdo%+#(KrY=~LC;c!Uw-gYJ&+ORIHz&j
z6PYyI5PH!2Qe@w4hr6Dh+&7_x7hsQQw?M*HtsVxY9(zgLE-6uP(u9JKN9^YLgw5>i
z_ijPsea~G8cuO`<+Lhyyd}OeYfAdvqyt}e{Jf@`(Zzk`&!<k;(Z#ERU^A?ea_mrR`
zgF?Zxws4tj3#P9>dqLe8?QQ!Z&R-!$2QTfUtq99Nvg_5Hw)w&lg@_7dry_Cw7yQsZ
zCg7CCJf`Kuew;*)NG`NAVbkl=tA#pZ8C~<Bj*)ks!D5V#GR42hI46#F#$T0M>Fw_l
zYF&PO(4KMD3YtM-y#eZE;Hi$R@=kh)wi2JmMBH|ED9USfG>zb-QXz0R**tLl!*+*P
znpd?@>}z?Kqn=`of%V6`O9!t}_VSVi#!w!+{xIQSWrVVh^Cm_M3Pn%XH4TNHFFejO
zN=GIp0|$f~ub@sddDxnv+U*Z~!6u(Cyq`e#1}aurMWLWLH{j@%Z*`-3O{-UIIn(b@
zcfCZ8&4^s#yrzuQ+5hDZr(m-?W!)j5f4Cl;at%KwgLR2MUnsj>!A&7k9fY}ptUk8z
zGpxs4{@(avuN@Dd1(NysiyVr)^6)ljEe=g*=cJ~G7|QoiB4CbEFgf-13m;lvXXgm+
z@&bTLAdUqvsBXz-`90nFS)onh#F1GJCFm0-zeFUP<-L#T>KJjXOC870Ig)W-XabJ_
zsqTg#{S@hk)RzfESJA$|ppzD!-~JoJ;%B_ri8$w;qRGL$hcbr^+ymnHMz*USzjfhp
z9+6WUGi9dyFbzX>7urpV?UJ1^Jn~*M>aWzelDWYj%y4m7D!hQ!o<RynVPk+QY|cj(
z-<u|sEn2jcqfolOpEAx~@<rnmxEUonJgy==bhpB(vaJI<h)*-jIeEMBvN)ruL-FEa
z%1U<tS24UdDn)&%{k_n&wCM^fS_=2lske%mA4+L~F%Iu%xOdTznc4#-QCF;b=GGnU
z3}ohpvyww@GE$yzfNSex#Pf=?7iyE13kCOG6{QgSG9wUMIIwgI_dZWu@Oe7d>mWVK
z5Aa7>k_Ht#t6rNsCY!~gGCIyq;dBeNIB&wac!E#ep)#YQ`4Aw!!QO7NK(z0ppd#(o
z`Q{?saK4k14=7Cd3s$x&LifgZ>HAIV!bPP*r+0;g$2PRi{3YVwZq4G|48=hSUyBNE
zR}R?fJaTe&X1_r_75@eFa*7G))`H4%C-ZiPn*3`2cV%T|(6H$Cf5t)l?QZn$#a``q
z`$eo<TwnYSXtlJofWb&6lNV6qH^b9cEJsH@)`$bXP}SF$k5>Aa<CHR>W#iE8SS7;@
z<X0yES2miYc7GhgSyuv#+Z6z9Dtd8^2)F@PuXfe!AJaHjr0@*73NDh@Spl*>!Bv<$
z>!c_=G@oMqOg@5LN5F468lz@CLnIOb?barHz!1jw>VZal7~ccN{~9DI@*v~gu=mfC
zHZ?*vkdTbCjydtMCGcZ{^hYn7x<g{EU#v9>>rvz>sI}xc$p}Y9VPP~hwa$q^Z6QDp
z#XHp59=np4m=f!_YV5yWFR;{O9q+*QnoJo}xWvCb^lW>s8#n&HVYMeIh=+*4A;5S-
z#>Yzx+_iq(PUgKmh*r)&n-+e3Plh3>hq5u&5b>VV9|lM4(E$N0gwE>kTe(pflNAhl
zBI)uYPt+xpHy08w*gL7V+<8H1$n7&^<4{H!Cb5Sry;tnL4&HAY-S!3xO4y!|)(KN6
zv8>qQq~m%(Ilt-xps&srmwSY%8wKPq<wFH(sdBW3;opFmo+?6q&d_$TYFx4gH6Ndk
zmb9Qu{x@Ip53k@JT(=KGf;3=gHq9m6Bt&#eh(Rd!n&Pn&#ia$DWI`(dp?e<^Q(t?}
z8dl!5$7O_f6&U^-ojM;<sl6gWC(%TP>!hKThKJ2%uE>WV(cK2wyAP+fBPS69vEE7D
z=ci#%<6?OXWzb-Fj+g#qa%&8lXuLcC#X|2;rtzhPm+;t(YhrCw#gPmOLfK;MxJ^w*
zvP$M$3#+Kmtk8l`@OkF5{%uH7m_ZCL_4v?0+MVWB@6hqWwAfy#*Sq{lcnP&6;1(A8
zUS~z(#Dz(!PNSx-d++AQ7-LrV3kr;yW}{1Tb+*Y%k5Yrvyd%pzOG|8F8oibD>2V1&
zKvsd=U|<zvcRJj;<}PJRO5#?C5<O63kor=xH$O4jQi?)P9>|#}rdSjTYB3|&BNhz0
zxT9FQugE>V^E-aV1l>V~e}j=)K?}z`s(nMtSk^6NUgfp1G@*VAsK+W5OaYkw+q5*P
zS`?$9%yug7fc;{&bKx<hWyWTlII@k3Qf&pxY3h{NFb^&0ykz!!QA_}ro9Nk)u{puV
zv70Ir)SkoN&n+Q^@8oncZ%8|M`t+Te>MbCKQ+gsFMLW`iHr=mbvJ|1b+EvFm=#Bd9
z^1B~N62EtHi~^LH28#`2S-AWoHUt^;rL(ensI0nruB;x5$KDg{P^W4-a-p}>!V%kn
zfdQk+eN6H8M#vAXCMEF9)esIv*fQV=$bf`e3~Cd80xq`3nVyRHg{t3AxUIBTJ~ADl
zCj+t41PXyPAPSzR$Xod2-In4%92z&1Fx~jqsL8-2;d@RY)St%?>*VTe0J(bab#GZ5
zs-~*e0x%I_5-mzvwsIQLt8Og9#4Fong@+~ZhH}_amp}tcpzYjOGXW^XdHXmY;V-r^
zEh0%vyB+~rF0ke(BkhIMa>TY>H{-4k55-)p_db^P@s0TYI9$QUccbw%WwTT)+BZwm
zSDuDIf=dOvX|HIQjrKSmBux2ThSEt?T<3Dt+<et1sguVX@VvWRpIB+!S&N@Z;6D9V
zo~TJ^CDmz4M;?LgpnFvei{O%_E)X`b{wQUvC~CO&^HXofWaVLl$aWK*6^Ap{8We*U
zhyrrqTLzN*S}gkaAC1)XOPEO*ihF27d9?uGksR4xZSK@G$K)>lI>Y52H`C|ULIxE9
zV&Fk~kkMr-`TQqiHy7RCt@5a;Djs;so3W`7EVD)xA1WY1L<ga?w6wDF`QYi~Tj{P5
zXOdvE{A{uu6f4j`v56|rE6$wFINfBoU~oEqrjMs(kSe2$AUo`JWhy15zj}=S5K9~w
z^_UGijI+^<^$lcbCcyp$?dQl`9kWpFyRihy{h+tkOb;G9hP{<u0%IRo0@f}tHUz4%
zxoGdk8;QE7JDuZukl3)9oXqE*%OLBH#|GVOOr#9Pngn7f|1G@vK%rd!9?hwtdL(J4
zF5ZE{+gfPMNW|Ysl+&<N(Jr~DsI&EosLHH-8;{)+)HF(YpIZ3Sokowcw|93}xS0G!
zQumvO(108qUc<)+?8xJw$aUf8qM9qR*k$9|(17$lD3d%tJTUNCEDB@R0#Ax`UZ-AF
z6@kW%4ev`i_0U_LNJoEv^xFpCQ?M<^{1drU!~O?+G%E$S<40T5aud^$nK@hNba8p7
zfF=%$h=`2MUbS6=0Lu&%V1%*Q)jzpuhYBGwSZ%fdRTBBlcglA_au$@r^r?DB@>5g@
zmHEOBZE=JQ086|#$sys6>MA?t+I*jv?#;)bprwSoRcded^<g?Vu*xf1kM2aa-V|dJ
zMr6`G_n?nBD&8wC=p_qK!SE;!cxcLbfnh4Tsl8nfFT1iiBb@H`TG{BY!^eWbxf|fI
z5e;>K`UxCmB}3)2_KOD_pVi%OQc_qB1>yhemk~-zGU)oD-H$~QIoW#ZC6ZLsc4UA|
z+P|3Osy-*bQ9U`2<*Bac&hHQ(bZdTclcrv1lL!QYvka}Gz(qJCENb=Sdv-uAxexQz
zc)5!dtyrS@R$Rp>XyohbRul~SI-uJ===dND5qWh{019QQ_^R$QnOx*=_5lYZBwv<8
zXC37mbwxN-Umxzf@b^B%DjE*<xgcPSg(C0p%vZSh+8h*T{`Y?YkQH0qt}qqK1h5Zl
qz&wc8%aY-sP6^;+|NkO>{h^gZBXqr=d`qQ)58{&k#W&|~-v1AdGEr~<

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html
new file mode 100644
index 000000000000..600235d5e8df
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/rb_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>rb_tree_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>rb_tree_tag</tt> Interface</h1>
+
+    <p>Red-black tree data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html
new file mode 100644
index 000000000000..46106f4c585b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/rc_binomial_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>rc_binomial_heap_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>rc_binomial_heap_tag</tt> Interface</h1>
+
+    <p>Redundant-counter binomial-heap data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/references.html b/libstdc++-v3/docs/html/ext/pb_ds/references.html
new file mode 100644
index 000000000000..b96827bd37af
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/references.html
@@ -0,0 +1,258 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>References</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>References</h1>
+
+    <ol>
+      <li>[<a name="abrahams97exception" id=
+      "abrahams97exception">abrahams97exception</a>] Dave Abrahams,
+      STL Exception Handling Contract, <a href=
+      "http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf">
+      http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/1997/N1075.pdf</a></li>
+
+      <li>[<a name="alexandrescu01modern" id=
+      "alexandrescu01modern">alexandrescu01modern</a>] Andrei
+      Alexandrescu, <i>Modern C++ Design: Generic Programming and
+      Design Patterns Applied</i>, Addison-Wesley Publishing
+      Company, 2001</li>
+
+      <li>[<a name="andrew04mtf" id="andrew04mtf">andrew04mtf</a>]
+      K. Andrew and D. Gleich, "MTF, Bit, and COMB: A Guide to
+      Deterministic and Randomized Algorithms for the List Update
+      Problem"</li>
+
+      <li>[<a name="austern00noset" id=
+      "austern00noset">austern00noset</a>] Matthew Austern, "Why
+      You shouldn't use <tt>set</tt> - and What You Should Use
+      Instead", C++ Report, April, 2000</li>
+
+      <li>[<a name="austern01htprop" id=
+      "austern01htprop">austern01htprop</a>] Matthew Austern, "A
+      Proposal to Add Hashtables to the Standard Library", <a href=
+      "http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html">
+      http://anubis.dkuug.dk/jtc1/sc22/wg21/docs/papers/2001/n1326l.html</a></li>
+
+      <li>[<a name="austern98segmented" id=
+      "austern98segmented">austern98segmented</a>] Matthew Austern,
+      "Segmented iterators and hierarchical algorithms", Generic
+      Programming, April 1998, pp. 80-90</li>
+
+      <li>[<a name="boost_timer" id="boost_timer">boost_timer</a>],
+      "Boost timer library", <a href=
+      "http://www.boost.org/">http://www.boost.org</a> by Beman
+      Dawes</li>
+
+      <li>[<a name="boost_pool" id="boost_pool">boost_pool</a>],
+      "Boost pool library", <a href=
+      "http://www.boost.org/">http://www.boost.org</a> by Stephen
+      Cleary</li>
+
+      <li>[<a name="boost_type_traits" id=
+      "boost_type_traits">boost_type_traits</a>], "Boost
+      <tt>type_traits</tt> library", <a href=
+      "http://www.boost.org/">http://www.boost.org</a> by John
+      Maddock, Steve Cleary, <i>et. al.</i></li>
+
+      <li>[<a name="brodal96priority" id=
+      "brodal96priority">brodal96priority</a>] Gerth Stolting
+      Brodal, <a href=
+      "http://portal.acm.org/citation.cfm?id=313883">Worst-case
+      efficient priority queues</a></li>
+
+      <li>[<a name="bulka99efficient" id=
+      "bulka99efficient">bulka99efficient</a>] D. Bulka, and D.
+      Mayhew, "Efficient C++ Programming Techniques.",
+      Addison-Wesley Publishing Company, Addison-Wesley, 1997</li>
+
+      <li>[<a name="clrs2001" id="clrs2001">clrs2001</a>] T. H.
+      Cormen, C. E., Leiserson, R. L. Rivest, C. and Stein,
+      "Introduction to Algorithms, 2nd ed.", MIT Press, 2001</li>
+
+      <li>[<a name="dinkumware_stl" id=
+      "dinkumware_stl">dinkumware_stl</a>], "Dinkumware C++ Library
+      Reference", <a href=
+      "http://www.dinkumware.com/htm_cpl/index.html">http://www.dinkumware.com/htm_cpl/index.html</a></li>
+
+      <li>[<a name="dubhashi98neg" id=
+      "dubhashi98neg">dubhashi98neg</a>] D. Dubashi, and D. Ranjan,
+      "Balls and bins: A study in negative dependence.", Random
+      Structures and Algorithms 13, 2 (1998), 99-124</li>
+
+      <li>[<a name="fagin79extendible" id=
+      "fagin79extendible">fagin79extendible</a>] R. Fagin, J.
+      Nievergelt, N. Pippenger, and H. R. Strong, "Extendible
+      hashing - a fast access method for dynamic files", ACM Trans.
+      Database Syst. 4, 3 (1979), 315-344</li>
+
+      <li>[<a name="filliatre2000ptset" id=
+      "filliatre2000ptset">filliatre2000ptset</a>], J. C.
+      Filliatre, "Ptset: Sets of integers implemented as Patricia
+      trees", <a href=
+      "http://www.lri.fr/~filliatr/ftp/ocaml/misc/ptset.ml">http://www.lri.fr/~filliatr/ftp/ocaml/misc/ptset.ml</a></li>
+
+      <li>[<a name="fredman86pairing" id=
+      "fredman86pairing">fredman86pairing</a>], M. L. Fredman, R
+      Sedgewick, D. D. Sleator, R. E. Tarjan, <a href=
+      "http://www.cs.cmu.edu/~sleator/papers/pairing-heaps.pdf">The
+      pairing heap: a new form of self-adjusting heap</a></li>
+
+      <li>[<a name="gamma95designpatterns" id=
+      "gamma95designpatterns">gamma95designpatterns</a>] E. Gamma,
+      R. Helm, R. Johnson, and J. Vlissides, "Design Patterns -
+      Elements of Reusable Object-Oriented Software",
+      Addison-Wesley Publishing Company, Addison-Wesley, 1995</li>
+
+      <li>[<a name="garg86order" id="garg86order">garg86order</a>]
+      A. K. Garg and C. C. Gotlieb, "Order-preserving key
+      transformations", Trans. Database Syst. 11, 2 (1986),
+      213-234</li>
+
+      <li>[<a name="hyslop02making" id=
+      "hyslop02making">hyslop02making</a>] J. Hyslop, and H.
+      Sutter, "Making a real hash of things", C++ Report, May
+      2002</li>
+
+      <li>[<a name="jossutis01stl" id=
+      "jossutis01stl">jossutis01stl</a>] N. M. Jossutis, "The C++
+      Standard Library - A Tutorial and Reference", Addison-Wesley
+      Publishing Company, Addison-Wesley, 2001</li>
+
+      <li>[<a name="kt99fat_heaps" id=
+      "kt99fat_heaps">kt99fat_heas</a>] Haim Kaplan and Robert E.
+      Tarjan, <a href=
+      "http://www.cs.princeton.edu/research/techreps/TR-597-99">New
+      Heap Data Structures</a></li>
+
+      <li>[<a name="kleft00sets" id="kleft00sets">kleft00sets</a>]
+      Klaus Kleft and Angelika Langer, "Are Set Iterators Mutable
+      or Immutable?", C/C++ Users Jornal, October 2000</li>
+
+      <li>[<a name="knuth98sorting" id=
+      "knuth98sorting">knuth98sorting</a>] D. E. Knuth, "The Art of
+      Computer Programming - Sorting and Searching", Addison-Wesley
+      Publishing Company, Addison-Wesley, 1998</li>
+
+      <li>[<a name="liskov98data" id=
+      "liskov98data">liskov98data</a>] B. Liskov, "Data abstraction
+      and hierarchy", SIGPLAN Notices 23, 5 (May 1998)</li>
+
+      <li>[<a name="litwin80lh" id="litwin80lh">litwin80lh</a>] W.
+      Litwin, "Linear hashing: A new tool for file and table
+      addressing", Proceedings of International Conference on Very
+      Large Data Bases (June 1980), pp. 212-223</li>
+
+      <li>[<a name="maverik_lowerbounds" id=
+      "maverik_lowerbounds">maverik_lowerbounds</a>] Maverik Woo,
+      <a href=
+      "http://magic.aladdin.cs.cmu.edu/2005/08/01/deamortization-part-2-binomial-heaps/">
+      Deamortization - Part 2: Binomial Heaps</a></li>
+
+      <li>[<a name="metrowerks_stl" id=
+      "metrowerks_stl">metrowerks_stl</a>], "Metrowerks CodeWarrior
+      Pro 7 MSL C++ Reference Manual",</li>
+
+      <li>[<a name="meyers96more" id=
+      "meyers96more">meyers96more</a>] S. Meyers, "More Effective
+      C++: 35 New Ways to Improve Your Programs and Designs - 2nd
+      ed.", Addison-Wesley Publishing Company, Addison-Wesley,
+      1996</li>
+
+      <li>[<a name="meyers00nonmember" id=
+      "meyers00nonmember">meyers00nonmember</a>] S. Meyers, "How
+      Non-Member Functions Improve Encapsulation", C/C++ Users
+      Journal, 2000</li>
+
+      <li>[<a name="meyers01stl" id="meyers01stl">meyers01stl</a>]
+      S. Meyers, "Effective STL: 50 Specific Ways to Improve Your
+      Use of the Standard Template Library", Addison-Wesley
+      Publishing Company, Addison-Wesley, 2001</li>
+
+      <li>[<a name="meyers02both" id=
+      "meyers02both">meyers02both</a>] S. Meyers, "Class Template,
+      Member Template - or Both?", C/C++ Users Journal, 2003</li>
+
+      <li>[<a name="motwani95random" id=
+      "motwani95random">motwani95random</a>] R. Motwani, and P.
+      Raghavan, "Randomized Algorithms", Cambridge University
+      Press</li>
+
+      <li>[<a name="mscom" id="mscom">mscom</a>] <a href=
+      "http://www.microsoft.com/com">COM: Component Model Object
+      Technologies</a></li>
+
+      <li>[<a name="musser95rationale" id=
+      "musser95rationale">musser95rationale</a>], David R. Musser,
+      "Rationale for Adding Hash Tables to the C++ Standard
+      Template Library"</li>
+
+      <li>[<a name="musser96stltutorial" id=
+      "musser96stltutorial">musser96stltutorial</a>] D. R. Musser
+      and A. Saini, "STL Tutorial and Reference Guide",
+      Addison-Wesley Publishing Company, Addison-Wesley, 1996</li>
+
+      <li>[<a name="nelson96stlpq" id=
+      "nelson96stlpq">nelson96stlpql</a>] Mark Nelson, <a href=
+      "http://www.dogma.net/markn/articles/pq_stl/priority.htm">Priority
+      Queues and the STL</a>, Dr. Dobbs Journal, January, 1996</li>
+
+      <li>[<a name="okasaki98mereable" id=
+      "okasaki98mereable">okasaki98mereable</a>] C. Okasaki and A.
+      Gill, "Fast mergeable integer maps", In Workshop on ML, pages
+      77--86, September 1998. 95</li>
+
+      <li>[<a name="sgi_stl" id="sgi_stl">sgi_stl</a>] SGI,
+      "Standard Template Library Programmer's Guide", <a href=
+      "http://www.sgi.com/tech/stl">http://www.sgi.com/tech/stl</a></li>
+
+      <li>[<a name="select_man" id="select_man">select_man</a>]
+      <a href=
+      "http://www.scit.wlv.ac.uk/cgi-bin/mansec?3C+select"><tt>select</tt>
+      man page.</a></li>
+
+      <li>[<a name="sleator84amortized" id=
+      "sleator84amortized">sleator84amortized</a>] D. D. Sleator
+      and R. E. Tarjan, "Amortized Efficiency of List Update
+      Problems", ACM Symposium on Theory of Computing, 1984</li>
+
+      <li>[<a name="sleator85self" id=
+      "sleator85self">sleator85self</a>] D. D. Sleator and R. E.
+      Tarjan, "Self-Adjusting Binary Search Trees", ACM Symposium
+      on Theory of Computing, 1985</li>
+
+      <li>[<a name="stepanov94standard" id=
+      "stepanov94standard">stepanov94standard</a>] A. A. Stepanov
+      and M. Lee", "The Standard Template Library"</li>
+
+      <li>[<a name="stroustrup97cpp" id=
+      "stroustrup97cpp">stroustrup97cpp</a>] Bjarne Stroustrup,
+      <i>The C++ Programming Langugage -3rd ed.</i>, Addison-Wesley
+      Publishing Company,Reading, MA, USA, 1997</li>
+
+      <li>[<a name="vandevoorde2002cpptemplates" id=
+      "vandevoorde2002cpptemplates">vandevoorde2002cpptemplates</a>]
+      D. Vandevoorde, and N. M. Josuttis, "C++ Templates: The
+      Complete Guide", Addison-Wesley Publishing Company,
+      Addison-Wesley, 2002</li>
+
+      <li>[<a name="wickland96thirty" id=
+      "wickland96thirty">wickland96thirty</a>] C. A. Wickland,
+      "Thirty Years Among the Dead", National Psychological
+      Institute, Los Angeles, 1996,<a href=
+      "http://myweb.wvnet.edu/~gsa00121/books/amongdead30.zip">http://myweb.wvnet.edu/gsa00121/books/amongdead30.zip</a></li>
+    </ol>
+    <hr />
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/resize_error.html b/libstdc++-v3/docs/html/ext/pb_ds/resize_error.html
new file mode 100644
index 000000000000..cb05b504fb9b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/resize_error.html
@@ -0,0 +1,50 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content=
+ "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+<title>resize_error Interface</title>
+<meta http-equiv="Content-Type" content=
+ "text/html; charset=us-ascii" />
+</head>
+
+<body>
+<div id="page">
+<h1><tt>resize_error</tt> Interface</h1>
+
+<p>A container cannot be resized.</p>
+
+<p>Exception thrown when a size policy cannot supply an
+   adequate size for an external resize.</p>
+
+   <p>Defined in: <a href=
+		   "../../../../include/ext/pb_ds/exception.hpp"><tt>exception.hpp</tt></a></p>
+
+   <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+   <table class="c1" width="100%" border="1" summary="Bases">
+   <tr>
+   <td width="80%" align="left"><b>Class</b></td>
+
+   <td width="20%" align="left"><b>Derivation Type</b></td>
+   </tr>
+
+   <tr>
+   <td>
+   <pre>
+   <a href="exceptions.html"><span class=
+			    "c2"><tt>resize_error</tt></span></a>
+   </pre>
+   </td>
+
+   <td>
+   <p>public</p>
+   </td>
+   </tr>
+   </table>
+   </div>
+   </body>
+   </html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/resize_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/resize_policy_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..338e33c15cc053655b3752d8cf4fd0ab5d431f11
GIT binary patch
literal 20806
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
W+{N3yT)=}489ZJ6T-G@yGywn!9&(oe

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/restoring_node_invariants.png b/libstdc++-v3/docs/html/ext/pb_ds/restoring_node_invariants.png
new file mode 100644
index 0000000000000000000000000000000000000000..33ba84bfe33610e66045f1d04ea6dad96716f8d3
GIT binary patch
literal 14432
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
Qp8z5$$f!tvl{5+ZANeLkNB{r;

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html
new file mode 100644
index 000000000000..3d18650c3b33
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_probe_fn.html
@@ -0,0 +1,152 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_probe_fn Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_probe_fn</tt> Interface</h1>
+
+    <p>A sample probe policy.</p>
+
+    <p>This class serves to show the interface a probe functor
+    needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp"><tt>sample_probe_fn.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_probe_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_probe_fn
+  (<b>const</b> sample_probe_fn &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_probe_fn &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Offset methods.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  <b>operator</b>()
+  (const_key_reference r_key,
+    <a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <span class="c1"><tt>i</tt></span>-th
+          offset from the hash value of some key <span class=
+          "c1"><tt>r_key</tt></span>.</p>
+
+          <p><tt>size_type</tt> is the size type on which the
+          functor operates.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html
new file mode 100644
index 000000000000..5b1a90023a28
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_range_hashing.html
@@ -0,0 +1,172 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_range_hashing Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_range_hashing</tt> Interface</h1>
+
+    <p>A sample range-hashing functor.</p>
+
+    <p>This class serves to show the interface a range-hashing
+    functor needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp"><tt>sample_range_hashing.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_range_hashing
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_range_hashing
+  (<b>const</b> sample_range_hashing &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_range_hashing &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Notification methods.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the policy object that the container's size
+          has changed to <span class="c1"><tt>size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Operators.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  <b>operator</b>()
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> hash) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Transforms the hash value <span class=
+          "c1"><tt>hash</tt></span> into a ranged-hash value.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html
new file mode 100644
index 000000000000..f8e47ab64c27
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_hash_fn.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_ranged_hash_fn Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_ranged_hash_fn</tt> Interface</h1>
+
+    <p>A sample ranged-hash functor.</p>
+
+    <p>This class serves to show the interface a ranged-hash
+    functor needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp"><tt>sample_ranged_hash_fn.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_ranged_hash_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_ranged_hash_fn
+  (<b>const</b> sample_ranged_hash_fn &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_ranged_hash_fn &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Notification methods.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the policy object that the container's size
+          has changed to <span class="c1"><tt>size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Operators.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a> 
+  <b>operator</b>()
+  (const_key_reference r_key) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Transforms <span class="c1"><tt>r_key</tt></span> into
+          a position within the table.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html
new file mode 100644
index 000000000000..b0e744cd3315
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_ranged_probe_fn.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_ranged_probe_fn Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_ranged_probe_fn</tt> Interface</h1>
+
+    <p>A sample ranged-probe functor.</p>
+
+    <p>This class serves to show the interface a ranged-probe
+    functor needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp"><tt>sample_ranged_probe_fn.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_ranged_probe_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_ranged_probe_fn
+  (<b>const</b> sample_ranged_probe_fn &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_ranged_probe_fn &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Notification methods.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the policy object that the container's size
+          has changed to <span class="c1"><tt>size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Operators.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a> 
+  <b>operator</b>()
+  (const_key_reference r_key,
+    size_t hash,
+    <a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Transforms the <tt><b>const</b></tt> key reference
+          <span class="c1"><tt>r_key</tt></span> <span class=
+          "c1"><tt>into the </tt></span><span class=
+          "c1"><tt>i-th </tt></span>position within the table. This
+          method <span class="c1"><tt>i</tt></span>s called for
+          each collision within the probe sequence.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html
new file mode 100644
index 000000000000..7807ace1daa8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_policy.html
@@ -0,0 +1,413 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_resize_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_resize_policy</tt> Interface</h1>
+
+    <p>A sample resize policy.</p>
+
+    <p>This class serves to show the interface a resize policy
+    needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp"><tt>sample_resize_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_resize_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_range_hashing
+  (<b>const</b> sample_resize_policy &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_resize_policy &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Insert search
+    notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Find search
+    notifications.</a></h3>
+
+    <p>Notifications called during a find operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Erase search
+    notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Content change
+    notifications.</a></h3>
+
+    <p>Notifications called when the content of the table changes
+    in a way that can affect the resize policy.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_inserted
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was inserted.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erased
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_e)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was erased.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_cleared
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was cleared.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Size change
+    notifications.</a></h3>
+
+    <p>Notifications called when the table changes size.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized to <span class=
+          "c1"><tt>new_size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link11" id="link11">Queries.</a></h3>
+
+    <p>Called to query whether/how to resize.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  is_resize_needed
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+  get_new_size
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size, 
+    <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_used_e) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries what the new <span class=
+          "c1"><tt>size</tt></span> should be.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html
new file mode 100644
index 000000000000..d7042bc2c237
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_resize_trigger.html
@@ -0,0 +1,462 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_resize_trigger Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_resize_trigger</tt> Interface</h1>
+
+    <p>A sample resize trigger policy.</p>
+
+    <p>This class serves to show the interface a trigger policy
+    needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp"><tt>
+    sample_resize_trigger.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_resize_trigger
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_range_hashing
+  (<b>const</b> sample_resize_trigger &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_resize_trigger &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Insert search
+    notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_insert_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Find search
+    notifications.</a></h3>
+
+    <p>Notifications called during a find operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_find_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Erase search
+    notifications.</a></h3>
+
+    <p>Notifications called during an insert operation.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_start
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search started.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_collision
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search encountered a collision.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erase_search_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies a search ended.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Content change
+    notifications.</a></h3>
+
+    <p>Notifications called when the content of the table changes
+    in a way that can affect the resize policy.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_inserted
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was inserted. the total number of
+          entries in the table is <span class=
+          "c1"><tt>num_entries</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  notify_erased
+  (<a href="#size_type55424436"><tt>size_type</tt></a> num_entries)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies an element was erased.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b> 
+  notify_cleared
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was cleared.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Size change
+    notifications.</a></h3>
+
+    <p>Notifications called when the table changes size.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized as a result of this
+          object's signifying that a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  notify_externally_resized
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Notifies the table was resized externally.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link11" id="link11">Queries.</a></h3>
+
+    <p>Called to query whether/how to resize.</p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b> 
+  is_resize_needed
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a resize is needed.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  is_grow_needed
+  (<a href="#size_type55424436"><tt>size_type</tt></a> size, 
+    <a href=
+"#size_type55424436"><tt>size_type</tt></a> num_entries) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Queries whether a grow is needed.</p>
+
+          <p>This method is called only if this object indicated
+          resize is needed. The actual <span class=
+          "c1"><tt>size</tt></span> of the table is <span class=
+          "c1"><tt>size</tt></span>, and the number of entries in
+          it is <span class="c1"><tt>num_entries</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link12" id="link12">Private Methods</a></h2>
+
+    <h3><a name="link13" id="link13">Overrides.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <b>void</b>
+  do_resize
+  (<a href="#size_type55424436"><tt>size_type</tt></a> new_size)
+</pre>
+        </td>
+
+        <td>
+          <p>Resizes to <span class=
+          "c1"><tt>new_size</tt></span>.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html
new file mode 100644
index 000000000000..e7f58e7e4c45
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_size_policy.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_size_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_size_policy</tt> Interface</h1>
+
+    <p>A sample size policy.</p>
+
+    <p>This class serves to show the interface a size policy needs
+    to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp"><tt>sample_size_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Methods</a></h2>
+
+    <h3><a name="link4" id="link4">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_size_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_range_hashing
+  (<b>const</b> sample_size_policy &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_size_policy &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Size methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  get_nearest_larger_size
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Given a size <span class="c1"><tt>size</tt></span>,
+          returns a size that is larger.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  get_nearest_smaller_size
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> size) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Given a size <span class="c1"><tt>size</tt></span>,
+          returns a size that is smaller.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html
new file mode 100644
index 000000000000..2cfab0a24f33
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_tree_node_update.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_tree_node_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_tree_node_update</tt> Interface</h1>
+
+    <p>A sample node updater.</p>
+
+    <p>This class serves to show the interface a node update
+    functor needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp"><tt>
+    sample_tree_node_update.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Metadata definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata type.</p>
+
+          <p>This can be any type; size_t is merely an example.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Protected Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Conclassors, declassor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_tree_node_update
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Operators.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  <b>operator</b>()
+  (node_iterator node_it,
+    const_node_iterator end_nd_it) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Updates the rank of a node through a <span class=
+          "c1"><tt>node_iterator</tt></span> <span class=
+          "c1"><tt>node_it</tt></span>; <span class=
+          "c1"><tt>end_nd_it</tt></span> is the end node
+          iterator.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html
new file mode 100644
index 000000000000..b663e5087587
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_e_access_traits.html
@@ -0,0 +1,231 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_trie_e_access_traits Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_trie_e_access_traits</tt> Interface</h1>
+
+    <p>A sample trie element-access traits.</p>
+
+    <p>This class serves to show the interface an element- access
+    traits class needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp">
+    <tt>sample_trie_e_access_traits.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+std::string, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+const string &amp;, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Const key reference type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link3" id="link3">Element definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+string::const_iterator, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Element <tt><b>const</b></tt> iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="e_type393186" id="e_type393186">e_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+char, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Element type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="max_size10483336" id="max_size10483336">max_size</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+4, e.g.
+</pre>
+        </td>
+
+        <td>
+          <p>Number of distinct elements.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Public Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Access methods.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  begin
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the first element of <span class=
+          "c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  end
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the after-last element of <span class=
+          "c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>static</b> <a href=
+"#size_type55424436"><tt>size_type</tt></a>
+  e_pos
+  (<a href="#e_type393186"><tt>e_type</tt></a> e)
+</pre>
+        </td>
+
+        <td>
+          <p>Maps an <span class="c1"><tt>element</tt></span> to a
+          position.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html
new file mode 100644
index 000000000000..beab37cd9cd0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_trie_node_update.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_trie_node_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_trie_node_update</tt> Interface</h1>
+
+    <p>A sample node updater.</p>
+
+    <p>This class serves to show the interface a node update
+    functor needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp"><tt>
+    sample_trie_node_update.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Metadata definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+size_t
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata type.</p>
+
+          <p>This can be any type; size_t is merely an example.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link4" id="link4">Protected Methods</a></h2>
+
+    <h3><a name="link5" id="link5">Conclassors, declassor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_trie_node_update
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Operators.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  <b>operator</b>()
+  (node_iterator node_it,
+    const_node_iterator end_nd_it) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Updates the rank of a node through a <span class=
+          "c1"><tt>node_iterator</tt></span> <span class=
+          "c1"><tt>node_it</tt></span>; <span class=
+          "c1"><tt>end_nd_it</tt></span> is the end node
+          iterator.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html b/libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html
new file mode 100644
index 000000000000..f671bcdc25a8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/sample_update_policy.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>sample_update_policy Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>sample_update_policy</tt> Interface</h1>
+
+    <p>A sample list-update policy.</p>
+
+    <p>This class serves to show the interface a list update
+    functor needs to support.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp"><tt>sample_update_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Public Methods</a></h2>
+
+    <h3><a name="link2" id="link2">Constructors, destructor, and
+    related.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_update_policy
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+
+          <p>Must be default constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  sample_update_policy
+  (<b>const</b> sample_update_policy &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+
+          <p>Must be copy constructable.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  swap
+  (sample_update_policy &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+
+          <p>Must be swappable (if there is such a word).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Protected Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">Metadata definitions.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+Some metadata type.
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata on which this functor operates.</p>
+
+          <p>The <tt><b>class</b></tt> must declare the metadata
+          type on which it operates; the list-update based
+          containers will append to each node an object of this
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Protected Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Metadata operations.</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#metadata_type2849297114"><tt>metadata_type</tt></a>
+  <b>operator</b>()
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Creates a metadata object.</p>
+
+          <p>A list-update based container object will call this
+          method to create a metadata type when a node is
+          created.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>bool</b> 
+  <b>operator</b>()
+  (metadata_reference r_data) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Decides whether a metadata object should be moved to
+          the front of the list. A list-update based containers
+          object will call this method to decide whether to move a
+          node to the front of the list. The method should return
+          <tt><b>true</b></tt> if the node should be moved to the
+          front of the list.</p>
+
+          <p><tt>metadata_reference</tt> is a reference to a
+          <a href=
+          "#metadata_type2849297114"><tt>metadata_type</tt></a>.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/simple_list.png b/libstdc++-v3/docs/html/ext/pb_ds/simple_list.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a05d3f5e4fb9d559cdc5bff3ee6f44063cb696c
GIT binary patch
literal 4299
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
J+W6L={|8+Z%8vj5

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html
new file mode 100644
index 000000000000..98c56ce695f5
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/splay_tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>splay_tree_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>splay_tree_tag</tt> Interface</h1>
+
+    <p>Splay tree data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="tree_tag.html"><span class=
+"c2"><tt>tree_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html b/libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html
new file mode 100644
index 000000000000..19dbedb588d8
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/string_trie_e_access_traits.html
@@ -0,0 +1,400 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>string_trie_e_access_traits Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>string_trie_e_access_traits</tt> Interface</h1>
+
+    <p>Element access traits for string types.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="String349403" id="String349403"><b>class</b> String </a>
+</pre>
+        </td>
+
+        <td>
+          <p>String type.</p>
+        </td>
+
+        <td><tt>std::string</tt></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Min_E_Val40354618" id=
+"Min_E_Val40354618"><b>typename</b> </a><a href=
+"#String349403"><tt>String</tt></a>::value_type Min_E_Val 
+</pre>
+        </td>
+
+        <td>
+          <p>Minimal element.</p>
+        </td>
+
+        <td><tt>SCHAR_MIN</tt></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Max_E_Val39885868" id=
+"Max_E_Val39885868"><b>typename</b> </a><a href=
+"#String349403"><tt>String</tt></a>::value_type Max_E_Val 
+</pre>
+        </td>
+
+        <td>
+          <p>Maximal element.</p>
+        </td>
+
+        <td><tt>SCHAR_MAX</tt></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Reverse1686776" id=
+"Reverse1686776"><b>bool</b> Reverse </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Indicates whether reverse iteration should be
+          used.</p>
+        </td>
+
+        <td><tt><b>false</b></tt></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Key-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#String349403"><tt>String</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#key_type10393186"><tt>key_type</tt></a>&gt;::other::const_reference
+</pre>
+        </td>
+
+        <td>
+          <p>Const key reference type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Element-Type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reverse2186776" id="reverse2186776">reverse</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Reverse1686776"><tt>Reverse</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Reverse1686776"><tt>Reverse</tt></a>
+          iteration indicator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> pb_ds::detail::conditional_type&lt;
+    <a href="#Reverse1686776"><tt>Reverse</tt></a>,
+    <b>typename</b> <a href=
+"#String349403"><tt>String</tt></a>::const_reverse_iterator,
+    <b>typename</b> <a href=
+"#String349403"><tt>String</tt></a>::const_iterator&gt;::type
+</pre>
+        </td>
+
+        <td>
+          <p>Element <tt><b>const</b></tt> iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="e_type393186" id="e_type393186">e_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> std::iterator_traits&lt;<a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>&gt;::value_type
+</pre>
+        </td>
+
+        <td>
+          <p>Element type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="min_e_val52875418" id="min_e_val52875418">min_e_val</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Min_E_Val40354618"><tt>Min_E_Val</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Minimal element.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="max_e_val52406668" id="max_e_val52406668">max_e_val</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Max_E_Val39885868"><tt>Max_E_Val</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Maximal element.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="max_size10483336" id="max_size10483336">max_size</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#max_e_val52406668"><tt>max_e_val</tt></a> - <a href=
+"#min_e_val52875418"><tt>min_e_val</tt></a> + 1
+</pre>
+        </td>
+
+        <td>
+          <p>Number of distinct elements.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  begin
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the first element of <span class=
+          "c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>static</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  end
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the after-last element of <span class=
+          "c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>static</b> <a href=
+"#size_type55424436"><tt>size_type</tt></a>
+  e_pos
+  (<a href="#e_type393186"><tt>e_type</tt></a> e)
+</pre>
+        </td>
+
+        <td>
+          <p>Maps an <span class="c1"><tt>e</tt></span>element to a
+          position.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tests.html b/libstdc++-v3/docs/html/ext/pb_ds/tests.html
new file mode 100644
index 000000000000..ab5d54bb4ffb
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tests.html
@@ -0,0 +1,24 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Tests</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Tests</h1>
+
+    <p><a href="assoc_tests.html">Associative-Container Tests</a>
+    describes tests for associative containers; <a href=
+    "pq_tests.html">Priority-Queue Tests</a> describes tests for
+    priority queues.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..59247ec6ad9bdb3907fc7cd8e3404f3b902abd75
GIT binary patch
literal 7013
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_local.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..d85980f30fb4947574f7cf64dceb6d816e44d6e7
GIT binary patch
literal 9361
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
Gg#QQl1H~=?

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_hash_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..227164568f585321cb75d18bdbade49e25b4ebab
GIT binary patch
literal 6932
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
T2>4$h2*g0w<a&wry(j+xKBb2s

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b6c4f0f058c4c4f0d3b7ec423b70ac0b54e0140
GIT binary patch
literal 6207
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
C+u|kw

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..b7fdc4746442734c377fbc7740146fbdd61708d9
GIT binary patch
literal 7650
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
ZU3N>VCldy4`-G=s8Y;TVm5NUz{{zqPRO0{u

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/text_find_timing_test_tree_like_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..dc82a4e7e825f1b712af05c89fc988b69b39b13c
GIT binary patch
literal 6059
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html
new file mode 100644
index 000000000000..a8e9d4d721c4
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/thin_heap_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>thin_heap_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>thin_heap_tag</tt> Interface</h1>
+
+    <p>Thin heap data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="priority_queue_tag.html"><span class=
+"c2"><tt>priority_queue_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree.html b/libstdc++-v3/docs/html/ext/pb_ds/tree.html
new file mode 100644
index 000000000000..d836bda123b3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree.html
@@ -0,0 +1,516 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>tree Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>tree</tt> Interface</h1>
+
+    <p>A concrete basic tree-based associative container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>
+          <pre>
+std::less&lt;<a href="#Key2501"><tt>Key</tt></a>&gt;
+</pre>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped-structure tag.</p>
+        </td>
+
+        <td><a href="rb_tree_tag.html"><span class=
+        "c2"><tt>rb_tree_tag</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Update841554648" id=
+"Node_Update841554648"><b>template</b>&lt; 
+  <b>typename</b> Const_Node_Iterator, 
+  <b>typename</b> Node_Iterator, 
+  <b>class</b> Cmp_Fn_, 
+  <b>typename</b> Allocator_&gt;
+<b>class</b> Node_Update </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node updater type.</p>
+
+          <p><a href=
+          "tree_based_containers.html#invariants">Design::Tree-Based
+          Containers::Node Invariants</a> explains this
+          concept.</p>
+        </td>
+
+        <td><a href="null_tree_node_update.html"><span class=
+        "c2"><tt>null_tree_node_update</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_tree.html"><span class=
+"c2"><tt>basic_tree</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link3" id="link3">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="cmp_fn394495" id="cmp_fn394495">cmp_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"tree_const_node_iterator.html"><span class=
+"c2"><tt>const_node_iterator</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="tree_node_iterator.html"><span class=
+"c2"><tt>node_iterator</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  tree
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  tree
+  (<b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+          <a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  tree
+  (It first_it, 
+    It last_it)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of
+          value_types. The value_types between <span class=
+          "c1"><tt>first_it</tt></span> and <span class=
+          "c1"><tt>last_it</tt></span> will be inserted into the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  tree
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;r_cmp_fn)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object. <span class=
+          "c1"><tt>r_cmp_fn</tt></span> will be copied by the
+          <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> object of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  tree
+  (<b>const</b> <span class=
+"c2"><tt>tree</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~tree
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>tree</tt></span> &amp;
+  <b>operator</b>=
+  (<b>const</b> <span class=
+"c2"><tt>tree</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Assignment operator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>tree</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Policy Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;
+  get_cmp_fn
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#cmp_fn394495"><tt>cmp_fn</tt></a> object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>const</b> <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;
+  get_cmp_fn
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the <a href=
+          "#cmp_fn394495"><tt>cmp_fn</tt></a> object.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Node-Iteration Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_begin
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          corresponding to the node at the root of the tree.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_begin
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          corresponding to the node at the root of the tree.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          corresponding to a node just after a leaf of the
+          tree.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_end
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          corresponding to a node just after a leaf of the
+          tree.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html
new file mode 100644
index 000000000000..7a1b554b26bd
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_based_containers.html
@@ -0,0 +1,358 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Tree-Based Containers</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Tree Design</h1>
+
+    <h2><a name="overview" id="overview">Overview</a></h2>
+
+    <p>The tree-based container has the following declaration:</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    <b>typename</b> Cmp_Fn = std::less&lt;Key&gt;,
+    <b>typename</b> Tag = <a href="rb_tree_tag.html">rb_tree_tag</a>,
+    <b>template</b>&lt;
+        <b>typename</b> Const_Node_Iterator,
+        <b>typename</b> Node_Iterator,
+        <b>typename</b> Cmp_Fn_,
+        <b>typename</b> Allocator_&gt;
+    <b>class</b> Node_Update = <a href=
+"null_tree_node_update.html">null_tree_node_update</a>,
+    <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"tree.html">tree</a>;
+</pre>
+
+    <p>The parameters have the following meaning:</p>
+
+    <ol>
+      <li><tt>Key</tt> is the key type.</li>
+
+      <li><tt>Mapped</tt> is the mapped-policy.</li>
+
+      <li><tt>Cmp_Fn</tt> is a key comparison functor</li>
+
+      <li><tt>Tag</tt> specifies which underlying data structure
+      to use.</li>
+
+      <li><tt>Node_Update</tt> is a policy for updating node
+      invariants. This is described in <a href="#invariants">Node
+      Invariants</a>.</li>
+
+      <li><tt>Allocator</tt> is an allocator
+      type.</li>
+    </ol>
+
+    <p>The <tt>Tag</tt> parameter specifies which underlying
+    data structure to use. Instantiating it by <a href=
+    "rb_tree_tag.html"><tt>rb_tree_tag</tt></a>, <a href=
+    "splay_tree_tag.html"><tt>splay_tree_tag</tt></a>, or
+    <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>,
+    specifies an underlying red-black tree, splay tree, or
+    ordered-vector tree, respectively; any other tag is illegal.
+    Note that containers based on the former two contain more types
+    and methods than the latter (<i>e.g.</i>,
+    <tt>reverse_iterator</tt> and <tt>rbegin</tt>), and different
+    exception and invalidation guarantees.</p>
+
+    <h2><a name="invariants" id="invariants">Node
+    Invariants</a></h2>
+
+    <p>Consider the two trees in Figures <a href=
+    "#node_invariants">Some node invariants</a> A and B. The first
+    is a tree of floats; the second is a tree of pairs, each
+    signifying a geometric line interval. Each element in a tree is refered to as a node of the tree. Of course, each of
+    these trees can support the usual queries: the first can easily
+    search for <tt>0.4</tt>; the second can easily search for
+    <tt>std::make_pair(10, 41)</tt>.</p>
+
+    <p>Each of these trees can efficiently support other queries.
+    The first can efficiently determine that the 2rd key in the
+    tree is <tt>0.3</tt>; the second can efficiently determine
+    whether any of its intervals overlaps
+    <tt>std::make_pair(29,42)</tt> (useful in geometric
+    applications or distributed file systems with leases, for
+    example). (See <a href=
+    "../../../../testsuite/ext/pb_ds/example/tree_order_statistics.cc"><tt>tree_order_statistics.cc</tt></a>
+    and <a href=
+    "../../../../testsuite/ext/pb_ds/example/tree_intervals.cc"><tt>tree_intervals.cc</tt></a>
+    for examples.) It should be noted that an <tt>std::set</tt> can
+    only solve these types of problems with linear complexity.</p>
+
+    <p>In order to do so, each tree stores some <i>metadata</i> in
+    each node, and maintains node invariants <a href=
+    "references.html#clrs2001">clrs2001</a>]. The first stores in
+    each node the size of the sub-tree rooted at the node; the
+    second stores at each node the maximal endpoint of the
+    intervals at the sub-tree rooted at the node.</p>
+
+    <h6 class="c1"><a name="node_invariants" id=
+    "node_invariants"><img src="node_invariants.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Some node invariants.</h6>
+
+    <p>Supporting such trees is difficult for a number of
+    reasons:</p>
+
+    <ol>
+      <li>There must be a way to specify what a node's metadata
+      should be (if any).</li>
+
+      <li>Various operations can invalidate node invariants.
+      <i>E.g.</i>, Figure <a href=
+      "#node_invariant_invalidations">Invalidation of node
+      invariants</a> shows how a right rotation, performed on A,
+      results in B, with nodes <i>x</i> and <i>y</i> having
+      corrupted invariants (the grayed nodes in C); Figure <a href=
+      "#node_invariant_invalidations">Invalidation of node
+      invariants</a> shows how an insert, performed on D, results
+      in E, with nodes <i>x</i> and <i>y</i> having corrupted
+      invariants (the grayed nodes in F). It is not feasible to
+      know outside the tree the effect of an operation on the nodes
+      of the tree.</li>
+
+      <li>The search paths of standard associative containers are
+      defined by comparisons between keys, and not through
+      metadata.</li>
+
+      <li>It is not feasible to know in advance which methods trees
+      can support. Besides the usual <tt>find</tt> method, the
+      first tree can support a <tt>find_by_order</tt> method, while
+      the second can support an <tt>overlaps</tt> method.</li>
+    </ol>
+
+    <h6 class="c1"><a name="node_invariant_invalidations" id=
+    "node_invariant_invalidations"><img src=
+    "node_invariant_invalidations.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Invalidation of node invariants.</h6>
+
+    <p>These problems are solved by a combination of two means:
+    node iterators, and template-template node updater
+    parameters.</p>
+
+    <h3><a name="node_it" id="node_it">Node Iterators</a></h3>
+
+    <p>Each tree-based container defines two additional iterator
+    types, <a href=
+    "tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+    and <a href=
+    "tree_node_iterator.html"><tt>node_iterator</tt></a>.
+    These iterators allow descending from a node to one of its
+    children. Node iterator allow search paths different than those
+    determined by the comparison functor. <a href=
+    "tree.html">tree</a>
+    supports the methods:</p>
+    <pre>
+    <a href="tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+    node_begin() <b>const</b>;
+
+    <a href="tree_node_iterator.html"><tt>node_iterator</tt></a>
+    node_begin();
+
+    <a href="tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+    node_end() <b>const</b>;
+
+    <a href="tree_node_iterator.html"><tt>node_iterator</tt></a>
+    node_end(); 
+</pre>
+
+    <p>The first pairs return node iterators corresponding to the
+    root node of the tree; the latter pair returns node iterators
+    corresponding to a just-after-leaf node.</p>
+
+    <h3><a name="node_up" id="node_up">Node Updater
+    (Template-Template) Parameters</a></h3>
+
+    <p>The tree-based containers are parametrized by a
+    <tt>Node_Update</tt> template-template parameter. A tree-based
+    container instantiates <tt>Node_Update</tt> to some
+    <tt>node_update</tt> class, and publicly
+    subclasses <tt>node_update</tt>. Figure
+    <a href="#tree_node_update_cd">A tree and its update
+    policy</a> shows this scheme, as well as some predefined
+    policies (which are explained below).</p>
+
+    <h6 class="c1"><a name="tree_node_update_cd" id=
+    "tree_node_update_cd"><img src=
+    "tree_node_update_policy_cd.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">A tree and its update policy.</h6>
+
+    <p><tt>node_update</tt> (an instantiation of
+    <tt>Node_Update</tt>) must define <tt>metadata_type</tt> as
+    the type of metadata it requires. For order statistics,
+    <i>e.g.</i>, <tt>metadata_type</tt> might be <tt>size_t</tt>.
+    The tree defines within each node a <tt>metadata_type</tt>
+    object.</p>
+
+    <p><tt>node_update</tt> must also define the following method
+    for restoring node invariants:</p>
+    <pre>
+    void 
+    operator()(<a href=
+"tree_node_iterator.html"><tt>node_iterator</tt></a> nd_it, <a href=
+"tree_const_node_iterator.html"><tt>const_node_iterator</tt></a> end_nd_it)
+</pre>
+
+    <p>In this method, <tt>nd_it</tt> is a <a href=
+    "tree_node_iterator.html"><tt>node_iterator</tt></a>
+    corresponding to a node whose A) all descendants have valid
+    invariants, and B) its own invariants might be violated;
+    <tt>end_nd_it</tt> is a <a href=
+    "tree_const_node_iterator.html"><tt>const_node_iterator</tt></a>
+    corresponding to a just-after-leaf node. This method should
+    correct the node invariants of the node pointed to by
+    <tt>nd_it</tt>. For example, say node <i>x</i> in Figure
+    <a href="#restoring_node_invariants">Restoring node
+    invariants</a>-A has an invalid invariant, but its' children,
+    <i>y</i> and <i>z</i> have valid invariants. After the
+    invocation, all three nodes should have valid invariants, as in
+    Figure <a href="#restoring_node_invariants">Restoring node
+    invariants</a>-B.</p>
+
+    <h6 class="c1"><a name="restoring_node_invariants" id=
+    "restoring_node_invariants"><img src=
+    "restoring_node_invariants.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Invalidation of node invariants.</h6>
+
+    <p>When a tree operation might invalidate some node invariant,
+    it invokes this method in its <tt>node_update</tt> base to
+    restore the invariant. For example, Figure <a href=
+    "#update_seq_diagram">Insert update sequence diagram</a> shows
+    an <tt>insert</tt> operation (point A); the tree performs some
+    operations, and calls the update functor three times (points B,
+    C, and D). (It is well known that any <tt>insert</tt>,
+    <tt>erase</tt>, <tt>split</tt> or <tt>join</tt>, can restore
+    all node invariants by a small number of node invariant updates
+    [<a href="references.html#clrs2001">clrs2001</a>].)</p>
+
+    <h6 class="c1"><a name="update_seq_diagram" id=
+    "update_seq_diagram"><img src="update_seq_diagram.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Insert update sequence diagram.</h6>
+
+    <p>To complete the description of the scheme, three questions
+    need to be answered:</p>
+
+    <ol>
+      <li>How can a tree which supports order statistics define a
+      method such as <tt>find_by_order</tt>?</li>
+
+      <li>How can the node updater base access methods of the
+      tree?</li>
+
+      <li>How can the following cyclic dependency be resolved?
+      <tt>node_update</tt> is a base class of the tree, yet it
+      uses node iterators defined in the tree (its child).</li>
+    </ol>
+
+    <p>The first two questions are answered by the fact that
+    <tt>node_update</tt> (an instantiation of
+    <tt>Node_Update</tt>) is a <tt><b>public</b></tt> base class
+    of the tree. Consequently:</p>
+
+    <ol>
+      <li>Any public methods of <tt>node_update</tt> are
+      automatically methods of the tree [<a href=
+      "references.html#alexandrescu01modern">alexandrescu01modern</a>].
+      Thus an order-statistics node updater, <a href=
+      "tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+      defines the <tt>find_by_order</tt> method; any tree
+      instantiated by this policy consequently supports this method
+      as well.</li>
+
+      <li>In C++, if a base class declares a method as
+      <tt><b>virtual</b></tt>, it is <tt><b>virtual</b></tt> in its
+      subclasses. If <tt>node_update</tt> needs to access one of
+      the tree's methods, say the member function <tt>end</tt>, it simply
+      declares that method as <tt><b>virtual</b></tt>
+      abstract.</li>
+    </ol>
+
+    <p>The cyclic dependency is solved through template-template
+    parameters. <tt>Node_Update</tt> is parametrized by the tree's node iterators, its comparison
+    functor, and its allocator type. Thus, 
+    instantiations of <tt>Node_Update</tt> have all information required.</p>
+
+    <p class="c1"><tt>pb_ds</tt> assumes that constructing a metadata object and modifying it
+    are exception free. Suppose that during some method, say
+    <tt>insert</tt>, a metadata-related operation
+    (<i>e.g.</i>, changing the value of a metadata) throws an
+    exception. Ack! Rolling back the method is unusually complex.</p>
+
+    <p>In <a href=
+    "concepts.html#concepts_null_policies">Interface::Concepts::Null
+    Policy Classes</a> a distinction was made between <i>redundant
+    policies</i> and <i>null policies</i>. Node invariants show a
+    case where null policies are required.</p>
+
+    <p>Assume a regular tree is required, one which need not
+    support order statistics or interval overlap queries.
+    Seemingly, in this case a redundant policy - a policy which
+    doesn't affect nodes' contents would suffice. This, would lead
+    to the following drawbacks:</p>
+
+    <ol>
+      <li>Each node would carry a useless metadata object, wasting
+      space.</li>
+
+      <li>The tree cannot know if its <tt>Node_Update</tt> policy
+      actually modifies a node's metadata (this is halting
+      reducible). In Figure <a href=
+      "#rationale_null_node_update">Useless update path</a> ,
+      assume the shaded node is inserted. The tree would have to
+      traverse the useless path shown to the root, applying
+      redundant updates all the way.</li>
+    </ol>
+
+    <h6 class="c1"><a name="rationale_null_node_update" id=
+    "rationale_null_node_update"><img src=
+    "rationale_null_node_update.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">Useless update path.</h6>
+
+    <p>A null policy class, <a href=
+    "null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+    solves both these problems. The tree detects that node
+    invariants are irrelevant, and defines all accordingly.</p>
+
+    <h2><a name="add_methods" id="add_methods">Additional
+    Methods</a></h2>
+
+    <p>Tree-based containers support split and join methods.
+    It is possible to split a tree so that it passes
+    all nodes with keys larger than a given key to a different
+    tree. These methods have the following advantages over the
+    alternative of externally inserting to the destination
+    tree and erasing from the source tree:</p>
+
+    <ol>
+      <li>These methods are efficient - red-black trees are split
+      and joined in poly-logarithmic complexity; ordered-vector
+      trees are split and joined at linear complexity. The
+      alternatives have super-linear complexity.</li>
+
+      <li>Aside from orders of growth, these operations perform
+      few allocations and de-allocations. For red-black trees, allocations are not performed,
+      and the methods are exception-free. </li>
+    </ol>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html
new file mode 100644
index 000000000000..ba09b5b4db22
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_node_iterator.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>tree::node_iterator Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt><span class=
+    "c2"><tt>tree</tt></span>::node_iterator</tt>
+    Interface</h1>
+
+    <p>Node iterator.</p>
+
+    <p>This is an <quote>iterator to an iterator </quote> - it
+    iterates over nodes, and de-referencing it returns one of the
+    tree's iterators</p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"tree.html#const_node_iterator4205924553"><span class="c2"><tt>tree</tt></span>::const_node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Methods</a></h2>
+
+    <h3><a name="link3" id="link3">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> 
+  node_iterator
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"container_base.html#iterator10418194"><span class=
+"c2"><tt>container_base</tt></span>::iterator</a>
+  <b>operator</b>*
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Access.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Movement Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <span class="c2"><tt>node_iterator</tt></span>
+  get_l_child
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the node iterator associated with the left
+          node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <span class="c2"><tt>node_iterator</tt></span>
+  get_r_child
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the node iterator associated with the right
+          node.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_node_updator_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_node_updator_policy_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..5cae5781a1834cdea767077708675a7d6b13e72c
GIT binary patch
literal 9236
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html
new file mode 100644
index 000000000000..449966b0e4fc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_node_update.html
@@ -0,0 +1,678 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>tree_order_statistics_node_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>tree_order_statistics_node_update</tt> Interface</h1>
+
+    <p>Functor updating ranks of entrees.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tree_policy.hpp"><tt>tree_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Cmp_Fn294335" id="Cmp_Fn294335"><b>class</b> Cmp_Fn</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="cmp_fn394495" id="cmp_fn394495">cmp_fn</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Cmp_Fn294335"><tt>Cmp_Fn</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Key-type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's key type.
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's const key reference type.
+</pre>
+        </td>
+
+        <td>
+          <p>Const key reference.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Metadata-Type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"#Const_Node_Iterator1933878761"><tt>Const_Node_Iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Node_Iterator4206909839"><tt>Node_Iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>::value_type
+</pre>
+        </td>
+
+        <td>
+          <p>Const iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>::value_type
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+    <h3><a name="link9" id="link9">Find-Type Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  find_by_order
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> order) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Finds an entry by order. Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the entry with the order <span class=
+          "c1"><tt>order</tt></span>, or a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the container object's end if <span class=
+          "c1"><tt>order</tt></span> is at least the size of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+  find_by_order
+  (<a href="#size_type55424436"><tt>size_type</tt></a> order)
+</pre>
+        </td>
+
+        <td>
+          <p>Finds an entry by order. Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> to the entry
+          with the order <span class="c1"><tt>order</tt></span>, or
+          an <a href="#iterator10418194"><tt>iterator</tt></a> to
+          the container object's end if <span class=
+          "c1"><tt>order</tt></span> is at least the size of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  order_of_key
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the order of a key within a sequence. For
+          example, if <span class="c1"><tt>r_key</tt></span> is the
+          smallest key, this method will return 0; if <span class=
+          "c1"><tt>r_key</tt></span> is a key between the smallest
+          and next key, this method will return 1; if <span class=
+          "c1"><tt>r_key</tt></span> is a key larger than the
+          largest key, this method will return the size of r_c.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link10" id="link10">Protected Types and
+    Constants</a></h2>
+
+    <h3><a name="link11" id="link11">Value-type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's const reference  type.
+</pre>
+        </td>
+
+        <td>
+          <p>Const reference to the container's value-type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's const pointer  type.
+</pre>
+        </td>
+
+        <td>
+          <p>Const pointer to the container's value-type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const metadata reference.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata reference.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link12" id="link12">Protected Methods</a></h2>
+
+    <h3><a name="link13" id="link13">Operators</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  <b>operator</b>()
+  (<a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a> node_it,
+    <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> end_nd_it) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Updates the rank of a node through a <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          <span class="c1"><tt>node_it</tt></span>; <span class=
+          "c1"><tt>end_nd_it</tt></span> is the end node <a href=
+          "#iterator10418194"><tt>iterator</tt></a>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link14" id="link14">Constructors, destructor, and
+    related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~tree_order_statistics_node_update
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link15" id="link15">Private Methods</a></h2>
+
+    <h3><a name="link16" id="link16">Overrides</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_begin
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          associated with the tree's root node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_begin
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          associated with the tree's root node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_end
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          associated with a just-after leaf node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_end
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          associated with a just-after leaf node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href="#cmp_fn394495"><tt>cmp_fn</tt></a> &amp;
+  get_cmp_fn
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the <a href=
+          "#cmp_fn394495"><tt>cmp_fn</tt></a> object.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html
new file mode 100644
index 000000000000..0d7579027a32
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test.html
@@ -0,0 +1,118 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Order Statistics Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree Order-Statistics Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test creates a container, inserts random integers into
+    the the container, and then checks the order-statistics of the
+    container's values. (If the container is one of <tt>pb_ds</tt>
+    's trees, it does this with the <tt>order_of_key</tt> method of
+    <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+    ; otherwise, it uses the <tt>find</tt> method and
+    <tt>std::distance</tt> .) It measures the average time for such
+    queries as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc"><tt>tree_order_statistics_timing_test</tt></a>
+    200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the performance difference of policies based
+    on node-invariant as opposed to a external functions. (see
+    <a href="tree_based_containers.html#invariants">Design::Associative
+    Containers::Tree-Based Containers::Node Invariants</a> .)</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for the native and
+    tree-based containers in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_tree_order_statistics_timing_test">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_tree-based_container_order-statistics_queries"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="tree_order_statistics_timing_test_gcc.png" alt="no image" /></a></h6>NTG: Native and tree-based container order-statistics queries - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+<li>
+rb_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_tree_order_statistics_timing_test">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_tree-based_container_order-statistics_queries"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="tree_order_statistics_timing_test_msvc.png" alt="no image" /></a></h6>NTM: Native and tree-based container order-statistics queries - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+<li>
+rb_tree_ost_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_tree_order_statistics_timing_test">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_tree-based_container_order-statistics_queries"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="tree_order_statistics_timing_test_local.png" alt="no image" /></a></h6>NTL: Native and tree-based container order-statistics queries - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this test, the native red-black tree can support
+    order-statistics queries only externally, by performing a
+    <tt>find</tt> (alternatively, <tt>lower_bound</tt> or
+    <tt>upper_bound</tt> ) and then using <tt>std::distance</tt> .
+    This is clearly linear, and it is not that surprising that the
+    cost is high.</p>
+<p><tt>pb_ds</tt> 's tree-based containers use in this test the
+    <tt>order_of_key</tt> method of <a href="tree_order_statistics_node_update.html"><tt>tree_order_statistics_node_update</tt></a>.
+    This method has only linear complexity in the length of the
+    root-node path. Unfortunately, the average path of a splay tree
+    (<a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) can
+    be higher than logarithmic; the longest path of a red-black
+    tree (<a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a> ) is
+    logarithmic in the number of elements. Consequently, the splay
+    tree has worse performance than the red-black tree.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..bdb00d07a7ff61aefa521f02bb4f6eb93fe26eee
GIT binary patch
literal 5698
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..2b921743f7c2c05b8f40ff4df168cde83ae4309f
GIT binary patch
literal 6739
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
S%NNAg@v2HN#Zq~bfd2w+Ljr{W

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_order_statistics_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..76dcbee44fdbb6b9ed8d693ca94260cfca16ac13
GIT binary patch
literal 5684
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html
new file mode 100644
index 000000000000..9317cfc948da
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_random_int_find_find_timing_test.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based and Trie-Based Text <tt>find</tt> Find Timing
+    Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([<a href="references.html#wickland96thirty">wickland96thirty</a>]) into
+    a container, then performs a series of finds using
+    <tt>find</tt>. It measures the average time for <tt>find</tt>
+    as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/text_find_timing.cc"><tt>text_find_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTTG">NTTG</a>, <a href="#NTTM">NTTM</a>,
+    and <a href="#NTTG">NTTL</a> show the results for the native,
+    tree-based, and trie-based types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#local"><u>local</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTTG_res_div">
+<div id="NTTG_gcc">
+<div id="NTTG_random_int_find_find_timing_test_tree">
+<div id="NTTG_assoc">
+<div id="NTTG_Native_456_tree-based_456_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTG" id="NTTG"><img src="random_int_find_find_timing_test_tree_gcc.png" alt="no image" /></a></h6>NTTG: Native, tree-based, random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+<div id="NTTM_res_div">
+<div id="NTTM_msvc">
+<div id="NTTM_random_int_find_find_timing_test_tree">
+<div id="NTTM_assoc">
+<div id="NTTM_Native_456_tree-based_456_random_int_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTM" id="NTTM"><img src="random_int_find_find_timing_test_tree_msvc.png" alt="no image" /></a></h6>NTTM: Native, tree-based, random int find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+<div id="NTTL_res_div">
+<div id="NTTL_local">
+<div id="NTTL_random_int_find_find_timing_test_tree">
+<div id="NTTL_assoc">
+<div id="NTTL_Native_456_tree-based_456_random_int_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTL" id= "NTTL"><img src="random_int_find_find_timing_test_tree_local.png" alt="no image" /></a></h6>NTTL: Native, tree-based, random int find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>For this setting, a splay tree (<a href="tree.html"><tt>tree</tt></a>
+                with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>)
+                does not do well. This is possibly due to two
+                reasons:</p>
+<ol>
+<li>A splay tree is not guaranteed to be balanced
+                  [<a href="references.html#motwani95random">motwani95random</a>].
+                  If a splay tree contains <i>n</i> nodes, its
+                  average root-leaf path can be <i>m &gt;&gt;
+                  log(n)</i>.</li>
+<li>Assume a specific root-leaf search path has
+                  length <i>m</i>, and the search-target node has
+                  distance <i>m'</i> from the root. A red-black
+                  tree will require <i>m + 1</i> comparisons to
+                  find the required node; a splay tree will require
+                  <i>2 m'</i> comparisons. A splay tree,
+                  consequently, can perform many more comparisons
+                  than a red-black tree.</li>
+</ol>
+<p>An ordered-vector tree (<a href="tree.html"><tt>tree</tt></a>
+                with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>),
+                a red-black tree (<a href="tree.html"><tt>tree</tt></a>
+                with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>rb_tree_tag</tt></a>),
+                and the native red-black tree all share
+                approximately the same performance.</p>
+<p>An ordered-vector tree is slightly slower than
+                red-black trees, since it requires, in order to
+                find a key, more math operations than they do.
+                Conversely, an ordered-vector tree requires far
+                lower space than the others. ([<a href="references.html#austern00noset">austern00noset</a>],
+                however, seems to have an implementation that is
+                also faster than a red-black tree).</p>
+<p>A PATRICIA trie (<a href="trie.html"><tt>trie</tt></a>
+                with <tt>Tag =</tt> <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>)
+                has good look-up performance, due to its large
+                fan-out in this case. In this setting, a PATRICIA
+                trie has lookup performance comparable to a hash
+                table (see <a href="hash_text_find_find_timing_test.html">Hash-Based
+                Text <tt>find</tt> Find Timing Test</a>), but it is
+                order preserving. This is not that surprising,
+                since a large fan-out PATRICIA trie works like a
+                hash table with collisions resolved by a sub-trie.
+                A large fan-out PATRICIA trie does not do well on
+                modifications (see <a href="tree_text_insert_timing_test.html">Tree-Based and
+                Trie-Based Text Insert Timing Test</a>). It is
+                possibly beneficial to semi-static settings,
+                therefore.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">
+                Observations::Tree-Like-Based Container Types</a>
+                summarizes some observations on tree-based and
+                trie-based containers.</p>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html
new file mode 100644
index 000000000000..11db03d3ca0d
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test.html
@@ -0,0 +1,143 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Split Join Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree Split-Join Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test a container, inserts into a number of values,
+    splits the container at the median, and joins the two
+    containers. (If the containers are one of <tt>pb_ds</tt> 's
+    trees, it splits and joins with the <tt>split</tt> and
+    <tt>join</tt> method; otherwise, it uses the <tt>erase</tt> and
+    <tt>insert</tt> methods.) It measures the time for splitting
+    and joining the containers as a function of the number of
+    values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_split_join_timing.cc"><tt>tree_split_join_timing_test</tt></a>
+    200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the performance difference of <tt>join</tt>
+    as opposed to a sequence of <tt>insert</tt> operations; by
+    implication, this test checks the most efficient way to erase a
+    sub-sequence from a tree-like-based container, since this can
+    always be performed by a small sequence of splits and joins
+    (see <a href="motivation.html#assoc_split_join_methods">Motivation::Associative
+    Containers::Slightly Different Methods::Methods Related to
+    Split and Join</a> and <a href="tree_based_containers.html#add_methods">Design::Associative
+    Containers::Tree-Based Containers::Additional Methods</a>
+    .)</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for the native and
+    tree-based containers in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_tree_split_join_timing_test">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_tree-based_container_splits_and_joins"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="tree_split_join_timing_test_gcc.png" alt="no image" /></a></h6>NTG: Native and tree-based container splits and joins - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_tree_split_join_timing_test">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_tree-based_container_splits_and_joins"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="tree_split_join_timing_test_msvc.png" alt="no image" /></a></h6>NTM: Native and tree-based container splits and joins - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_set-
+<tt>std::set</tt></li>
+<li>
+splay_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_set-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_tree_split_join_timing_test">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_tree-based_container_splits_and_joins"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="tree_split_join_timing_test_local.png" alt="no image" /></a></h6>NTL: Native and tree-based container splits and joins - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>In this test, the native red-black trees must be split and
+    joined externally, through a sequence of <tt>erase</tt> and
+    <tt>insert</tt> operations. This is clearly super-linear, and
+    it is not that surprising that the cost is high.</p>
+<p><tt>pb_ds</tt> 's tree-based containers use in this test the
+    <tt>split</tt> and <tt>join</tt> methods, which have lower
+    complexity: the <tt>join</tt> method of a splay tree ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) is
+    quadratic in the length of the longest root-leaf path, and
+    linear in the total number of elements; the <tt>join</tt>
+    method of a red-black tree ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a> ) or an
+    ordered-vector tree ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a> ) is linear
+    in the number of elements.</p>
+<p>Asides from orders of growth, <tt>pb_ds</tt> 's trees access
+    their allocator very little in these operations, and some of
+    them do not access it at all. This leads to lower constants in
+    their complexity, and, for some containers, to exception-free
+    splits and joins (which can be determined via <a href="assoc_container_traits.html"><tt>container_traits</tt></a>).</p>
+<p>It is important to note that <tt>split</tt> and
+    <tt>join</tt> are not esoteric methods - they are the most
+    efficient means of erasing a contiguous range of values from a
+    tree based container.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..88867eca6bdb45c38e2ad7f751bdbd02f620e815
GIT binary patch
literal 5649
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..131d24a1a12f764adfc60fd040286f37b0af29e3
GIT binary patch
literal 6734
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
CeU&l*

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_split_join_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..37ed1b2e7c0b36c53015290689ef7df0308dc1f0
GIT binary patch
literal 5675
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
aqd`~uR98McND84Jv*~E)s~4)-g#H71^!@w*

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html
new file mode 100644
index 000000000000..e4b206078055
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>tree_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>tree_tag</tt> Interface</h1>
+
+    <p>Basic tree data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_tree_tag.html"><span class=
+"c2"><tt>basic_tree_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html
new file mode 100644
index 000000000000..283bdf098cd6
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_find_find_timing_test.html
@@ -0,0 +1,162 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based and Trie-Based Text <tt>find</tt> Find Timing
+    Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([<a href="references.html#wickland96thirty">wickland96thirty</a>]) into
+    a container, then performs a series of finds using
+    <tt>find</tt>. It measures the average time for <tt>find</tt>
+    as a function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/text_find_timing.cc"><tt>text_find_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTTG">NTTG</a>, <a href="#NTTM">NTTM</a>,
+    and <a href="#NTTG">NTTL</a> show the results for the native,
+    tree-based, and trie-based types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#local"><u>local</u></a>, and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTTG_res_div">
+<div id="NTTG_gcc">
+<div id="NTTG_text_find_timing_test_tree_like">
+<div id="NTTG_assoc">
+<div id="NTTG_Native_456_tree-based_456_and_trie-based_456_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTG" id="NTTG"><img src="text_find_timing_test_tree_like_gcc.png" alt="no image" /></a></h6>NTTG: Native, tree-based, and trie-based, text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTTM_res_div">
+<div id="NTTM_msvc">
+<div id="NTTM_text_find_timing_test_tree_like">
+<div id="NTTM_assoc">
+<div id="NTTM_Native_456_tree-based_456_and_trie-based_456_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTM" id="NTTM"><img src="text_find_timing_test_tree_like_msvc.png" alt="no image" /></a></h6>NTTM: Native, tree-based, and trie-based, text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTTL_res_div">
+<div id="NTTL_local">
+<div id="NTTL_text_find_timing_test_tree_like">
+<div id="NTTL_assoc">
+<div id="NTTL_Native_456_tree-based_456_and_trie-based_456_text_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTTL" id= "NTTL"><img src="text_find_timing_test_tree_like_local.png" alt="no image" /></a></h6>NTTL: Native, tree-based, and trie-based, text find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>For this setting, a splay tree (<a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>) does
+    not do well. This is possibly due to two reasons:</p>
+<ol>
+<li>A splay tree is not guaranteed to be balanced [<a href="references.html#motwani95random">motwani95random</a>]. If a
+      splay tree contains <i>n</i> nodes, its average root-leaf
+      path can be <i>m &gt;&gt; log(n)</i>.</li>
+<li>Assume a specific root-leaf search path has length
+      <i>m</i>, and the search-target node has distance <i>m'</i>
+      from the root. A red-black tree will require <i>m + 1</i>
+      comparisons to find the required node; a splay tree will
+      require <i>2 m'</i> comparisons. A splay tree, consequently,
+      can perform many more comparisons than a red-black tree.</li>
+</ol>
+<p>An ordered-vector tree (<a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>), a red-black
+    tree (<a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>rb_tree_tag</tt></a>), and the
+    native red-black tree all share approximately the same
+    performance.</p>
+<p>An ordered-vector tree is slightly slower than red-black
+    trees, since it requires, in order to find a key, more math
+    operations than they do. Conversely, an ordered-vector tree
+    requires far lower space than the others. ([<a href="references.html#austern00noset">austern00noset</a>], however,
+    seems to have an implementation that is also faster than a
+    red-black tree).</p>
+<p>A PATRICIA trie (<a href="trie.html"><tt>trie</tt></a>
+    with <tt>Tag =</tt> <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>) has good
+    look-up performance, due to its large fan-out in this case. In
+    this setting, a PATRICIA trie has look-up performance comparable
+    to a hash table (see <a href="hash_text_find_find_timing_test.html">Hash-Based Text
+    <tt>find</tt> Find Timing Test</a>), but it is order
+    preserving. This is not that surprising, since a large-fan-out
+    PATRICIA trie works like a hash table with collisions resolved
+    by a sub-trie. A large-fan-out PATRICIA trie does not do well on
+    modifications (see <a href="tree_text_insert_timing_test.html">Tree-Based and Trie-Based
+    Text Insert Timing Test</a>). It is possibly beneficial to
+    semi-static settings, therefore.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">Observations::Tree-Like-Based
+    Container Types</a> summarizes some observations on tree-based
+    and trie-based containers.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html
new file mode 100644
index 000000000000..6f0e26c00d6b
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test.html
@@ -0,0 +1,226 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Insert Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based and Trie-Based Text Insert Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    a container using <tt>insert</tt> . It measures the average
+    time for <tt>insert</tt> as a function of the number of values
+    inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc"><tt>tree_text_insert_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NNTG">NNTG</a>, <a href="#NVTG">NVTG</a>,
+    and <a href="#NPTG">NPTG</a> show the results for the native
+    tree and <tt>pb_ds</tt>'s node-based trees, the native tree and
+    <tt>pb_ds</tt>'s vector-based trees, and the native tree
+    and<tt>pb_ds</tt>'s PATRICIA-trie, respectively, in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>; Figures
+    <a href="#NNTM">NNTM</a>, <a href="#NVTM">NVTM</a>, and
+    <a href="#NPTM">NPTM</a> show the same in <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a>; Figures
+    <a href="#NNTL">NNTL</a>, <a href="#NVTL">NVTL</a>, and
+    <a href="#NPTL">NPTL</a> show the same in <a href="assoc_performance_tests.html#local"><u>local</u></a>.</p>
+<div id="NNTG_res_div">
+<div id="NNTG_gcc">
+<div id="NNTG_tree_text_insert_timing_test_node_tree">
+<div id="NNTG_assoc">
+<div id="NNTG_Native_tree_and_node-based_trees_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NNTG" id="NNTG"><img src="tree_text_insert_timing_test_node_tree_gcc.png" alt="no image" /></a></h6>NNTG: Native tree and node-based trees text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NVTG_res_div">
+<div id="NVTG_gcc">
+<div id="NVTG_tree_text_insert_timing_test_vector_tree">
+<div id="NVTG_assoc">
+<div id="NVTG_Native_tree_and_vector-based_tree_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NVTG" id="NVTG"><img src="tree_text_insert_timing_test_vector_tree_gcc.png" alt="no image" /></a></h6>NVTG: Native tree and vector-based tree text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPTG_res_div">
+<div id="NPTG_gcc">
+<div id="NPTG_tree_text_insert_timing_test_pat_trie">
+<div id="NPTG_assoc">
+<div id="NPTG_Native_tree_and_PATRICIA_trie_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPTG" id="NPTG"><img src="tree_text_insert_timing_test_pat_trie_gcc.png" alt="no image" /></a></h6>NPTG: Native tree and PATRICIA trie text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NNTM_res_div">
+<div id="NNTM_msvc">
+<div id="NNTM_tree_text_insert_timing_test_node_tree">
+<div id="NNTM_assoc">
+<div id="NNTM_Native_tree_and_node-based_trees_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NNTM" id="NNTM"><img src="tree_text_insert_timing_test_node_tree_msvc.png" alt="no image" /></a></h6>NNTM: Native tree and node-based trees text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NVTM_res_div">
+<div id="NVTM_msvc">
+<div id="NVTM_tree_text_insert_timing_test_vector_tree">
+<div id="NVTM_assoc">
+<div id="NVTM_Native_tree_and_vector-based_tree_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NVTM" id="NVTM"><img src="tree_text_insert_timing_test_vector_tree_msvc.png" alt="no image" /></a></h6>NVTM: Native tree and vector-based tree text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPTM_res_div">
+<div id="NPTM_msvc">
+<div id="NPTM_tree_text_insert_timing_test_pat_trie">
+<div id="NPTM_assoc">
+<div id="NPTM_Native_tree_and_PATRICIA_trie_text_insert_timing_test_using__tt_insert_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPTM" id="NPTM"><img src="tree_text_insert_timing_test_pat_trie_msvc.png" alt="no image" /></a></h6>NPTM: Native tree and PATRICIA trie text insert timing test using <tt>insert</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+pat_trie_map-
+<a href="trie.html"><tt>trie</tt></a>
+ with <tt>Tag</tt> = <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NNTL_res_div">
+<div id="NNTL_local">
+<div id="NNTL_tree_text_insert_timing_test_node_tree">
+<div id="NNTL_assoc">
+<div id="NNTL_Native_tree_and_node-based_trees_text_insert_timing_test_using__tt_insert_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NNTL" id= "NNTL"><img src="tree_text_insert_timing_test_node_tree_local.png" alt="no image" /></a></h6>NNTL: Native tree and node-based trees text insert timing test using <tt>insert</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NVTL_res_div">
+<div id="NVTL_local">
+<div id="NVTL_tree_text_insert_timing_test_vector_tree">
+<div id="NVTL_assoc">
+<div id="NVTL_Native_tree_and_vector-based_tree_text_insert_timing_test_using__tt_insert_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NVTL" id= "NVTL"><img src="tree_text_insert_timing_test_vector_tree_local.png" alt="no image" /></a></h6>NVTL: Native tree and vector-based tree text insert timing test using <tt>insert</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NPTL_res_div">
+<div id="NPTL_local">
+<div id="NPTL_tree_text_insert_timing_test_pat_trie">
+<div id="NPTL_assoc">
+<div id="NPTL_Native_tree_and_PATRICIA_trie_text_insert_timing_test_using__tt_insert_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NPTL" id= "NPTL"><img src="tree_text_insert_timing_test_pat_trie_local.png" alt="no image" /></a></h6>NPTL: Native tree and PATRICIA trie text insert timing test using <tt>insert</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>Observing Figure <a href="#NNTG">NNTG</a> , for this
+    setting, a splay tree, ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) does
+    not do well. This was covered in <a href="tree_text_find_find_timing_test.html">Tree-Based and
+    Trie-Based Text <tt>find</tt> Find Timing Test</a> . The two
+    red-black trees perform better.</p>
+<p>Observing Figure <a href="#NVTG">NVTG</a>, an ordered-vector
+    tree ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>) performs
+    abysmally. Inserting into this type of tree has linear
+    complexity [ <a href="references.html#austern00noset">austern00noset</a>].</p>
+<p>Observing Figure <a href="#NPTG">NPTG</a> , A PATRICIA trie
+    ( <a href="trie.html"><tt>trie</tt></a>
+    with <tt>Tag =</tt> <a href="pat_trie_tag.html"><tt>pat_trie_tag</tt></a> ) has
+    abysmal performance, as well. This is not that surprising,
+    since a large-fan-out PATRICIA trie works like a hash table with
+    collisions resolved by a sub-trie. Each time a collision is
+    encountered, a new "hash-table" is built A large fan-out
+    PATRICIA trie, however, doe does well in look-ups (see <a href="tree_text_find_find_timing_test.html">Tree-Based and
+    Trie-Based Text <tt>find</tt> Find Timing Test</a> ). It is
+    possibly beneficial to semi-static settings, therefore.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">Observations::Tree-Like-Based
+    Container Types</a> summarizes some observations on tree-based
+    and trie-based containers.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..22d8f6fc213009573702095565b856229e1bcd5f
GIT binary patch
literal 5373
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..bb100084b3fc7feb4ed638f60e6ff5dffe048d29
GIT binary patch
literal 6690
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
F{|3=6n;ZZD

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_node_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..18b219851c25fbb48f9321b801d9bed115cbf4e4
GIT binary patch
literal 5212
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..5fe063e63c2c5d2296d8e26219c4dcc685623657
GIT binary patch
literal 4895
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..228de144222a65b8dcbae8bfacd189f3ce2c8bee
GIT binary patch
literal 6011
zcmcgwXH-*NmyQjP2!b@FND&BCgwRV=5T!RMp=tzz^xg$jKvYCf1PmBZfgmA300E^+
zKzNY=N|&mF^dh~6%n9$zw`P6c{Fs?FYwlXfUHk0z>}Q{I@44rZiP1GCMs7w31j3}N
zbHxk-IgErr4ka=i0V9>}4igZ_5r~O_xi%0X5I6*ahCnb72pIyQ(j+(>0!KsO7zmsU
zfm3NpG#r9PL(muqnhZfxX|@<R1cQcPFc1tGf}zq}$#4i64IyJ7WHN+I1(6_BIE0FZ
zP%#iH8A1gDhz&x6Sil)rQ)zi<7a9)7z~N*#oJvazBs3b1#=y~JIGRdB0hAat9D{*l
z$Z!mm1`61c(Qq;bPA0?2RDcn<!l`ID6$7V|;Z%?npa#JJXn+#H0y>Zw#0H^3EZ|I~
z6-1N4g+ZgqXf%~pA4m%%3<ixMqcK!kxc~)Fk}+s98BL~w>H#QVi>6}GR5F?h$^(1=
zn7|v*0qO@JK!pG`2nIj{l)x0=0Et0t5E{gy(wL*EfebD(21BJ03F-rBfkY-_$W*{9
zC>NjrN(_~Zp#mNO(|`bg3z!3<LA8KNzz2W{ya62m6DSx|2vCDy05tFfumBE_7{msl
zsk9c+tbrQH;G%+#0U|+tAT5x{R4T232kob!IOr&?p9f8%fjZ!w*4_guX&4XKp>_M9
zU>f9u8feWwfJLj|AQK1;rUU2_AP>}Zkm_J2{=fe@huz@=Nss&JSo=dD&{MSEp{|k0
zJut{0pp6W;?u`xzM)^5Iw6B{8T)XY<AK>rk=jsz6pe(C!{(@Xu5S9}HVcXEXa@joO
z)dE&Oy+DBF>PVvP$LzDj7f$n$!^Rc<N46kWKHnDqr9ugW$ubD<F*zSMUq8h1x~l51
zi6{f~$|a=0VbWn%7S4xviI<MX91{|dVmXAm$M8Q?O-K<WroJ@DsZ{cjs$~EE7x(P9
z<n!FD+DBM54oRfP8JSmhCs+0`p+?e}Jo};V6z-d@`zWW!A!cjXtj6?4@S7XS0w=qM
zs`I&bb1JaLo;MVIQR3LDGdtx!Cz@=wJybYW1ZuzG>*8m*2ZO9Vdutct>X@_Zg4FYv
zdrHkXNmXjC35rjh?X~(Re-`lX?hJ{PKNaldBao6S*=;STqhnb;+?qzhQ1|zJJnoKX
zzV+a*Cz@?w1wX>1T6)Gz=KGt&X0m!DG_U3`wk`N`Ys@Ox$m9CuW=j;!IRe}%?^MJ^
zOp#GzXZ5L~mZw$(Es)8GYw<W)tt<{pZ|3qov6UDO6_tGQ>}pu;Xw=wPlZ~dLFr)k6
z)a^#Q1O)yoDJWs{VF7T<>Kq!dUV86#pq9@>*wg3G(cf37FqrB+(aJsNbz2nXE!OvV
zeVx=*C74h0qld3^nBLCIkR<gjTdFX3&FFlXF*0*;p?E4EI}a<2&1guxDRZdSR`n@=
z+xq?4{)SfD_=V|tsTYClE?aameh4qAzCmlTxzqTci2;IBW#t1M9bx)Czg^8oqkY6(
z%0A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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_pat_trie_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..9f13db0c093cfac9e98cad9ae4c41799ecb3a0dc
GIT binary patch
literal 4881
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
X(r1}&`KF%x&jb@gvopo|*F*mU#Klm4

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..dd85dcd7ca2eaf0367a8742d6a8e8cc8054f0b7d
GIT binary patch
literal 5140
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..cecb8a10750c9c499c9b56a76874f0a8619810cd
GIT binary patch
literal 6270
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_insert_timing_test_vector_tree_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..8c07313910fb7c89bb04a30c1a3bc4c86d183a92
GIT binary patch
literal 5131
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
Q<7X60b8EA5lS{Gx1uRjiE&u=k

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html
new file mode 100644
index 000000000000..48d0112c6ea0
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_find_timing_test.html
@@ -0,0 +1,126 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+<meta name="generator" content="HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+<title>Tree Text Locality of Reference Find Timing Test</title>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii" />
+</head>
+<body>
+<div id="page">
+<h1>Tree-Based Locality-of-Reference Text <tt>find</tt> Find
+    Timing Test</h1>
+<h2><a name="description" id="description">Description</a></h2>
+<p>This test inserts a number of values with keys from an
+    arbitrary text ([ <a href="references.html#wickland96thirty">wickland96thirty</a> ]) into
+    a container, then performs a series of finds using
+    <tt>find</tt> . It is different than <a href="tree_text_find_find_timing_test.html">Tree-Based and
+    Trie-Based Text <tt>find</tt> Find Timing Test</a> in the
+    sequence of finds it performs: this test performs multiple
+    <tt>find</tt> s on the same key before moving on to the next
+    key. It measures the average time for <tt>find</tt> as a
+    function of the number of values inserted.</p>
+<p>(The test was executed with <a href="../../../../testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc"><tt>tree_text_lor_find_timing_test</tt></a>
+    thirty_years_among_the_dead_preproc.txt 200 200 2100)</p>
+<h2><a name="purpose" id="purpose">Purpose</a></h2>
+<p>The test checks the effect of different underlying
+    data structures in a locality-of-reference setting.</p>
+<h2><a name="results" id="results">Results</a></h2>
+<p>Figures <a href="#NTG">NTG</a>, <a href="#NTM">NTM</a>, and
+    <a href="#NTL">NTL</a> show the results for the native and
+    <tt>pb_ds</tt> tree-based types in <a href="assoc_performance_tests.html#gcc"><u>g++</u></a>, <a href="assoc_performance_tests.html#msvc"><u>msvc++</u></a> and
+    <a href="assoc_performance_tests.html#local"><u>local</u></a>,
+    respectively.</p>
+<div id="NTG_res_div">
+<div id="NTG_gcc">
+<div id="NTG_tree_text_lor_find_timing_test">
+<div id="NTG_assoc">
+<div id="NTG_Native_and_tree-based_locality-of-reference_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTG" id="NTG"><img src="tree_text_lor_find_timing_test_gcc.png" alt="no image" /></a></h6>NTG: Native and tree-based locality-of-reference text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#gcc">g++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTM_res_div">
+<div id="NTM_msvc">
+<div id="NTM_tree_text_lor_find_timing_test">
+<div id="NTM_assoc">
+<div id="NTM_Native_and_tree-based_locality-of-reference_text_find_timing_test_using__tt_find_455tt_"><div style="border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTM" id="NTM"><img src="tree_text_lor_find_timing_test_msvc.png" alt="no image" /></a></h6>NTM: Native and tree-based locality-of-reference text find timing test using <tt>find</tt> - <a href="assoc_performance_tests.html#msvc">msvc++</a><p>In the above figure, the names in the legends have the following meaning:</p>
+<ol>
+<li>
+ov_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+rb_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="rb_tree_tag.html"><tt>rb_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+<li>
+n_map-
+<tt>std::map</tt></li>
+<li>
+splay_tree_map-
+<a href="tree.html"><tt>tree</tt></a>
+ with <tt>Tag</tt> = <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a>
+, and <tt>Node_Update</tt> = <a href="null_tree_node_update.html"><tt>null_tree_node_update</tt></a>
+</li>
+</ol>
+</div><div style="width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<div id="NTL_res_div">
+<div id="NTL_local">
+<div id="NTL_tree_text_lor_find_timing_test">
+<div id="NTL_assoc">
+<div id="NTL_Native_and_tree-based_locality-of-reference_text_find_timing_test_using__tt_find_455tt_"><div style = "border-style: dotted; border-width: 1px; border-color: lightgray"><h6 class="c1"><a name="NTL" id= "NTL"><img src="tree_text_lor_find_timing_test_local.png" alt="no image" /></a></h6>NTL: Native and tree-based locality-of-reference text find timing test using <tt>find</tt> - <a href = "assoc_performance_tests.html#local">local</a></div><div style = "width: 100%; height: 20px"></div></div>
+</div>
+</div>
+</div>
+</div>
+<h2><a name="observations" id="observations">Observations</a></h2>
+<p>For this setting, an ordered-vector tree ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="ov_tree_tag.html"><tt>ov_tree_tag</tt></a> ), a
+    red-black tree ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>rb_tree_tag</tt></a> ), and the
+    native red-black tree all share approximately the same
+    performance.</p>
+<p>A splay tree ( <a href="tree.html"><tt>tree</tt></a>
+    with <tt>Tag =</tt> <a href="splay_tree_tag.html"><tt>splay_tree_tag</tt></a> ) does
+    much better, since each (successful) find "bubbles" the
+    corresponding node to the root of the tree.</p>
+<p><a href="assoc_performance_tests.html#tree_like_based_types">Observations::Tree-Like-Based
+    Container Types</a> summarizes some observations on tree-based
+    and trie-based containers.</p>
+</div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_gcc.png
new file mode 100644
index 0000000000000000000000000000000000000000..cf5174d99c1cca3d4731ce3f364628c2ce6cb767
GIT binary patch
literal 6162
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
R%cp)#)zdcAD$=yO_ix@hy}tke

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_local.png
new file mode 100644
index 0000000000000000000000000000000000000000..26f71510ff0ce46890171c6b9163ff74f3da79ef
GIT binary patch
literal 7796
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

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png b/libstdc++-v3/docs/html/ext/pb_ds/tree_text_lor_find_timing_test_msvc.png
new file mode 100644
index 0000000000000000000000000000000000000000..583a027f3dcfa6256272c29ebc240c934315ad4b
GIT binary patch
literal 5831
zcmcgwc{r5q+kOzmNM&j4lB7gKBg(!nA(AEA2$>efo@HKJN=QP=7`yC6_N5pSkxW8%
zqe+(R3PZ*+-#y;nd;E^y_x<%9-*J4;aqzhA`?}BTJkRTXJWI6cWxa!J{A>^e9W>C_
zHiIBW1Ozc)4={m|>1_Q{2x5Xvjm&jG2th~)LPHQ9f`|}Aqen<2ghWF~JcJ}dNE&?-
zjfBu>2#tr(L<miz=i-qN9u48~5S|F(Y4oK;Bt%3*L_9<!LPQ!sf@nyHhK6W(h(?5H
zAOP3^8eoCNAe%<7LqE_+Bp!(*B9SzDSrDPoNHiXaCL+-^Itws~M<elgB%X-G)99o?
zE)k6+;*mrml1Kv_!BQj*jilj`G$N7)ssh#k43Gva0WB~G3Il8a4Y0ss8eI@Q1_vIE
zCZf?ax;{`AM0h+JPekKsbh&^9m?YxSL?W6<1L^@Okc+0_(KI5O2IK)h08OwO*a7qd
z5<nqf4Zr|tz!Iba9-uJ52G9VDMt6=r4PtN*@pu~DNT3gt1rd>mC(?kgKrUbbCh;^P
zo(6mbP6Gn~FOUw525Nzozz;wZtOj-fPCzhF2v`F!KpLzBv;YrK7+?cv8ofpIY%mRC
zaL_=<fRR8SC<`JYjYe<aUi;}R_Bu-M=U$WOr1pHLw|CD<I>$YC=-u8EOsBl3f!_Q*
zT66__l>ju@4xmfGJfLZ>)ZR|~fB)rz4H5!HSv~cweIN+NN&jK!9Shk8gCf2<*L<&f
zpnd%vy<H%ktER{FZh83l`Z#;v_Vhh=LH7JvnR7V5^rH~OrD>q8VIGjSm~P9MbLy~;
zwSh-i=F*1;nbxsej%veQ`%J%`;$i3^A-~Ql>pM=$A9b;=P=F|9uM{8>+YGa57z$$k
z-<~2Eu#R7QX|-xkj$miWAN-B#9l4kY5L-7a3j(Lgxro|tkJ!6m>DH8UPEy%$MKIwR
zfg%aOoZSMOB0?frw^Rq4kF0NAYs7tl?L-GVEf%8fcm+H*13$nqH-jS^9KXlI*4{5D
z!El+5DAkID%-@!WnsGxvC#nx_WYo#q8N`-iuiDtGCB}(bi}B7xbOjJ(Hj*+pj=Hzm
zl;u9>jPHFs@HCi{-|x`6YpTVMhxgcY=cblJX{gZ8@r`RfHNj_x6p78a$K33_Dy#?V
zBXvBdTd)0Y$$~55gyTpbD_k6}<dFIjWZgveIpm@qY9WN)^pUIEa}?lqCosNBKD?aY
z61zEIwoP8jbD#3&XFrqsVd8v2H+Zsw94D45TFD26pE3NYC%lp0tr&Wah?!>UszJPz
zKOVrzTXRT6+N(Thp^SNc)}6>-D$pacrnw)>z>V&WsfzYkF%p}}6GP7C9r;lg&4A5b
zRVSDu7atlE_hH|-4FQ5ab1vF7+-oZb!5>6@O@wb2Tzxz|h{ZoU*&xa(95&wWe7DB@
znbh5QX&sZKOA74fo(8)y{V}SMg(l2V7g9xyk`zBBy^t`>6JU|#EyAhspMM)VP@p)8
z*2U>LuqNictjN>vF!Pw15_p~NK+G|+!C>r8Y@D)vlqO{{#`ec<zA3p~i16%jgBYP3
zWZN=i8V>5sf0tCSJlQTrsqIWq{78pibmu)KdmmL5`t(ozoCi+qZ$2YqGNw)}gxpQz
zpw8cSFPd!)o2}g_8av1&ellv%et_?9E2eu4Q{7I_<RMmP@(%X@O(r8B&i2)Ps8t;i
z#<<3K3Y^|EW4-P^#b3HJt}%>D6c4+M;k__DvikLog<xOsMO(%h;$GiBSUMiMe@e<-
zAR{FoT^&^Jn3Zy7h405UuCC;-KPO*J%^zgqu^V5m_+?;?aB!(k8<O$-$o{in!hfN~
z%34}lp8Z*}ErNWbx@rheze5Om-rwugq8|NM>pay>{9mo>Hf-TkKLNUfoSEXiWND}Z
zHvgNobAJ24=CAEFoPgNZG=ExRZ#R^8!-T-)R%ecoY|@Dscf-Q|s?Wt8Rp=Qp$-0M{
zu}ec#9}OYD-wElB330yY&sDOsj~{GreL|Frb?b^{b<WY9Ag=o=>AWWig{e<lapR$0
zTqRD72LXKV_S-MY$8s^{!DZrvs=DX_clz+nI#i9IQtUQ+LDZU4B5HCo_12<9w>rZ2
z^_su&MI7en@Dn}x*{O*~4<f~uCqDf%d$vEuPcLv`+1&t<$z(Q}ZA0k$rtPYBj|H3U
zGmEuxsZI{vX~trWu~&YIwyaP7vn)Sq@VQMH`X^td3Mer>(0SP<j%5@gbmOfMz1jgv
zNfAJ#Q8sSDQEy4|fqu<?pp6^*ChE3=o0IO0iw%{w-hMBbh2GtNHTi#@`er}$m)ZGV
zH-FYte=^1GCbVU@$?iA9U;Da(P-lGjEY5hc@yy-hqkb<uZwGuj+}He8SniII;dHL(
zgJ9$<=U|ap7uUYVliU}M5hItKcMD@ZKi8?e(|^;*XXo^h$gJV&ES!OHtL(@k&M#B2
z<INE_GOkwS_p;!4sc?5~tNZV2mp;vt=P6i+P-RY{NB%UtBREu{p|yL^aA83cksh$K
zwM_18d^<osf7W%#h~=e>evyRma$*4X9t!*GT;-#j<$JX5s*lo-tyk(C(E`D~KfD4(
zX7Z#%)ha)cC&ymJ>1k9_<kv`lApxkZ$T&80-R)}Rip8#r?e?31km!`z`HussJsv2G
zXLR<HrsR#L1sHdaPkVd0w7!mP&$iQRUDTOhb;}QNydyByub#qd6`kLze)Yb}T(KF}
zckw~J9_(DCz7=V{&{XB|V|Q|-_>Y<6a_7!i>iT&;J*_{>E|xqah-fQi9i>!rMb{HU
zVX|ZF%dThN2ab~sX&adv{=NCv+vkqQe|jebBdpz|D4_&4E$@(Mt*w|o+R}YkSGhW(
zpd$|dGgR=4&?Sap`Gg>I0g2~l)+N@wldh*J&?X$@q8A>Q;H9s5iuCoKwn3*>Z!>de
z;S!UbV^a(sc_o~4zkStA<9KF_$*LBjU??V9@UXU#<g9>g5h+}6y+2d>>`FgxNcQs$
z1&3Q4Yb(qndc&yr_HIQff09TyjFk()`tA5<L}QD$VHVE5!RvD|mKz;g&xMpl^KN}|
z#B<EJ#NA!$_IftiVj<M=M?ymZuJESTlDoT;1HG8oCE2WOCe+?U00V~6O{Jl;Hp5nz
z4s%`n{^#+8aTw}cL(Rf@+MgpC<31vNg3hnwQmYuTtgJpxu}3XMPKdlHoe-^rt^GLi
zv-Nez93Ngej@%zpz>pZpDeWfTG|?NI_C#dBP*A~uG$c_RYP*_>9d<fSw3VEwyV?>r
z>ymC@o;#4Km6d3-J(jza|B*Cx+<uF{3;VGrP;zuYUE&65$tL;j#eD2>MT-c21vvxK
zWDYk@Y2N8pi~Nl2kbPTltd#w9@;z*MV9!WQ_0Q04u|v~I9s&8ZA1f~gD?k0Z!v9;2
zFqGJawhYubg$ayDZO?nl<oF)1)%t63GUWcxh|%4zxTN>EMePsn7CiTrZzk(e=8yZ$
zE&K6lnn;%7429njdm|^tUY=R<Zi4dVB##Y}F~|p(Va>(iIbROHw=cHr`E8cMyy&}Q
zpZ9EpTJJbunkv0sD#`)x$U-)U9KECX{fdw*UzN}KS;_h3Br27^*7BiQ8`lEHXH6d#
zO~@OPYi+n=mOnN`tq<M3a43SOGdB!XMvMutQ{zC8w+{z%{qCGwo`Vspu6g79!gl*+
zrWVK0?*)q)EqJMe<gv5lKvTboodfF)s+bd-88oNq1a*YQJc{DKSdF4JyS#aNE4Ve$
z_o29Xgeo^Pg`n3*9^+gc{MzX-%5d}Iw+*SNrdxV0ZaZW34&K|RUTDP6?v&)F`&jbH
z$XDzx$yW!h+IOdY-1_r4CTi@-<>3CXA{Y7h0YWsvODC4^e$n|+s3pb4Sz3UP=~`c$
zKOmjdbhz`zjkR+cs!aJw)~vddm2!=KA+qH>i9WD$qCR)&)-9J=zpI06ghHR_P;(u(
zLYK=N6L-g`l2xV~8~3i|yS(1EKQY$TWsYrr(>lw#1J8e70dJd+FHlh$$EKX=kRt56
zTCd8u%GvI)FH>}v5iLFtqsRvl!Z;lp+^@{C4bN+*Y%seU$UHOyw^`W4-Rpkm1{rft
z%ZyPO{ac<m$`z67cVROTLR!s)K=FW{Muev=iT9HGTtdhGJ~1Z3ulDXfrAfx!v!`VH
zH^pSY&28^F@82iSAQiXT#&-wtTi9zd0z88)REqiib4A0yMeI#@*r)zruPs>|vz2u*
zL%b|tdp!x_CPw^*B}S#+%;9^Ipu?dvPyO;Qn7XL+PgDGxpPQo&%_}w6cyf<6%9UkE
z)+N21cNE{)Ijn?FUVc&x5c1LN%&SvB(6JUgIdetftQUl}I^Huqvl@|c&bCsqklEiu
zDdTIBYg8R5YF87cloYU`MeQVRuE>bPOpXNT;Xl7xv@_u`(iRLg_%$uKQyxX>eUl-X
z{78$iHU}d;o!RcGYkVioI#C}yQP$nLb8*f8FAB3e>o#1S0X(Q_(wKM84oRdrd|wU^
z_6&ypG2{DFYu;_R=YeUsx+pxfd7JT4oh<3HaJjp};V{(Fp&#{On!IG8A$XnmFMo#r
z_RtM%<~EIEH!UpG8z?|{8a|m%xJ#!pfxVGVWvrd76Sgh@l!}V=20(WVU(O|L#=4zH
z*+z-(qxg#$+pC;gesfLay=MK<K60?U1?6LdZVij|wOfNv`^Y*f{dx%ml(h0m12V(F
ze%|xrb(-~C6o13ud$yeRhw2N*9o8~~#3pe19xpU@#vG2PIaJkVqxW~fVsp(Re^J7z
z^-bEd)G#wtX$kI5#65a=JLL4Nc#35}F(bX+m4+@V;zjpIYNem(1NyWos{Ij6Ae&&D
z7g^GMc5Zo>b5r)&ur9S!t}%vMucqzJ?iDO{DnURiEt5rDGt?@=?_!t9{o{^7{yhw~
zlg{CsUTHcdPsW?VILlGy+xxH#;_oLC0uaiI{(Y~2{BYSmFWaP(8k8Aektu>{i?Mbe
zB@c=qZqCZmMLC$9D+Xy5oAqMAynPf0h`BG6f!mbEY^uHkn)sgsIMJ#{xBG`?Z3eSm
z?i%76LmqwMJsWe)&mY4iU8t%%mxoX*!s#@-v4)>}`MImz0%Hy@o`1qI`1JyL=&;8D
z*RG1b$38l#UC;e~tm=(%=z2Mrw4Kh&Nb$<Znll@!=YC8{z2RO6|1on*ByW_$gN$E@
zi|gDH+pLd1%CQq6q(nA4?SG;_CIGA2;)G_%V=iaY;MP@IfhUy_JZ=sRI2d7-v8`Ce
zfuM${fZA1|t=D>Jv2}lB`?s?0*H)p9O?RoAL&^PfhEfrAdS}R9j3T}##<7YD)l#I=
z9M}1I@16JqZ6WS3%2BFfc}IQ&@k-hY<D17$)Y@wG-ztjA4dEUQ*AiV??N=_@b<a0m
zKo+acG(OLyDyTgrQKRyt7cS~s#Suf2OPgF_l%=)j!-7dhf(Ec#<C?vzdR~xjZ5h*-
zaE~Ip2F)FN+rrvDD@WI35k<cr>Xqao;VpNJ%hFJ}za3X7{+R4<ZVnN#%_LbRKi@TP
zbVqCv^+v~x3!(R|Y3SgY;*>RJ_ZXp;{{5$8XXSrcvUuCx(BqphQ2A-(@V#b8mLyqp
zQd-+Fm|ODH4yoz4b|1V>x{>zcMB<avH=Dg&N=gO3O`N(KI><Bk8C<NF-l|>-_nQ;E
z=UU(90f(EN9w0ArlbPX9SxBBca;Fmcw4&$x)mbN(8UJ~0{rA5!`b+HpJ@S-!7-92r
ze00+z7n6nCs#JSeqj=|!WRMaq)<|GxYIh+nyJVNEk&WCHD)yBH`$lccnfGY4ceUB#
zC`#HQ!=vTh{R_Q@S*N!?ss45?s?bce!3;1dIWKf$L}ovf=CKi!KXZ(&C!hwb*|34R
zLT?w#qFx8{@EDIh3VfyLe>-)g(FTKDuq(jjP!b#rpYx3Lt@qzab^NJF7@8~Wd9@h5
zH)y^=A1p{nN4Sk1lZK&~O|-AyRu6*vwGHuM>a85gkZoPJMhVpLbXh;$(WQR)!sBw}
zh<t$Xo<YhuVTEwsV)$Pfs}1S8sm?V;5#@o~anjra8ZufGr_gt^BJWcc*xM}2l?`Qz
z$3iY+YUQsD4&Nq}vCx8u8)GfEZ4Q1hP@-lwQ>&T>9@N+hkmg^NpuXMocQYi&DR*bo
zPN0dAGcHed-p);J|1OL*=N}0yRh#8&&tcjBR9-2`+PT2kSf`zQ-p`~urAh#^!Ibx6
z_+-~sX+f%N<jvt>QmrrP@x_quaHFZ~@{a?ElzOwu*u{e{EFNShq@#}<Qfl+re*Jj7
zW?HxBj?1@?mn)+p?aM#^u3u*-M_VSOp^s$i9y#=-O|a=qHEDo!%tpsMMdty(j&d66
z<feVm6n&l4)33dk&otrF<KR`RO{)(*^eW@+U-f^yQ`|9~HkRUFzmqtGasMrGTj5;d
z1J6rD!rklgORsRljJ77#T-F#@ciu$i1z}f-^3lGL3nyViDg&2?mr9bQuWy(u6^-W)
zJe0M4w^Zb3)?!=|>-;HfjA@a3;agk>qhDM#S1JZ`SebwC`^|`~ZElHPD+l)W2e*V8
z)gwwXc|4UmBUJ6{SvXzd(cAOf<@Zti^rWl*k;Dg*;=e#=>7O9Lrv&;9?tgK@U6o3c
zU2^Z<2@09K>E|?VHkNG9I<4n78MjTmoJ^1iy(O{RZL;|8?Z%&KTUpMTDfTpJ@8C~;
z$~g&bB}Z`X)`%<|@>axy-LpU2N)omcDmm7?Ig0W*&*!;Cp3LK%Vh*i3vC$ZCH4C?@
z-&G@Yx=KG;MMi}K;Eami{MzXxxAHxm`aM$~YE-NyE$DMagV)(O-+*i!QVPpcbt=xP
zG_G}Be%n4?OVY#2M8fDIf<JrTeTp0ewlBlqm-#QXiwEwzTijJEqkjT4(7CMrTJw7N
Fe*u*)65Id)

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie.html b/libstdc++-v3/docs/html/ext/pb_ds/trie.html
new file mode 100644
index 000000000000..71a868833869
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie.html
@@ -0,0 +1,489 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>trie Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>trie</tt> Interface</h1>
+
+    <p>A concrete basic trie-based associative container.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/assoc_container.hpp"><tt>assoc_container.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Key2501" id="Key2501"><b>typename</b> Key</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Mapped318655" id="Mapped318655"><b>typename</b> Mapped</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Mapped type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Element-access traits.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Tag278938" id="Tag278938"><b>class</b> Tag </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Data-structure tag.</p>
+        </td>
+
+        <td><a href="pat_trie_tag.html"><span class=
+        "c2"><tt>pat_trie_tag</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Update841554648" id=
+"Node_Update841554648"><b>template</b>&lt; 
+  <b>typename</b> Const_Node_Iterator, 
+  <b>typename</b> Node_Iterator, 
+  <b>class</b> E_Access_Traits_, 
+  <b>typename</b> Allocator_&gt;
+<b>class</b> Node_Update </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node updater type.</p>
+
+          <p><a href=
+          "tree_based_containers.html#invariants">Design::Tree-Based
+          Containers::Node Invariants</a> explains this
+          concept.</p>
+        </td>
+
+        <td><a href="null_trie_node_update.html"><span class=
+        "c2"><tt>null_trie_node_update</tt></span></a></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator </a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>
+          <pre>
+std::allocator&lt;<b>char</b>&gt;
+</pre>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Element access traits type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"trie_const_node_iterator.html"><span class=
+"c2"><tt>const_node_iterator</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="trie_node_iterator.html"><span class=
+"c2"><tt>node_iterator</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  trie
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  trie
+  (<b>const</b> <a href=
+"#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a> &amp;r_e_access_traits)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking some policy objects. <span class=
+          "c1"><tt>r_e_access_traits</tt></span> will be copied by
+          the <a href=
+          "#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+          object of the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  trie
+  (It first_it, 
+    It last_it)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of
+          value_types. The value_types between <span class=
+          "c1"><tt>first_it</tt></span> and <span class=
+          "c1"><tt>last_it</tt></span> will be inserted into the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>template</b>&lt;
+    <b>class</b> It&gt;
+  trie
+  (It first_it, 
+    It last_it,
+    <b>const</b> <a href=
+"#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a> &amp;r_e_access_traits)
+</pre>
+        </td>
+
+        <td>
+          <p>Constructor taking iterators to a range of value_types
+          and some policy objects. The value_types between
+          <span class="c1"><tt>first_it</tt></span> and
+          <span class="c1"><tt>last_it</tt></span> will be inserted
+          into the container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+  trie
+  (<b>const</b> <span class=
+"c2"><tt>trie</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Copy constructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~trie
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>trie</tt></span> &amp;
+  <b>operator</b>=
+  (<b>const</b> <span class=
+"c2"><tt>trie</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Assignment operator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>void</b>
+  swap
+  (<span class=
+"c2"><tt>trie</tt></span> &amp;other)
+</pre>
+        </td>
+
+        <td>
+          <p>Swaps content.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Policy Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+  get_e_access_traits
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the comb_hash_fn object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+  get_e_access_traits
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access to the comb_hash_fn object.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Node-Iteration Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_begin
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          corresponding to the node at the root of the trie.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_begin
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          corresponding to the node at the root of the trie.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_end
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          corresponding to a node just after a leaf of the
+          trie.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_end
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          corresponding to a node just after a leaf of the
+          trie.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html
new file mode 100644
index 000000000000..8b670bc11dcc
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_based_containers.html
@@ -0,0 +1,241 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Trie-Based Containers</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Trie Design</h1>
+
+    <h2><a name="overview" id="overview">Overview</a></h2>
+
+    <p>The trie-based container has the following declaration:</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    <b>typename</b> Cmp_Fn = std::less&lt;Key&gt;,
+    <b>typename</b> Tag =  <a href="pat_trie_tag.html">pat_trie_tag</a>,
+    <b>template</b>&lt;
+        <b>typename</b> Const_Node_Iterator,
+        <b>typename</b> Node_Iterator,
+        <b>typename</b> E_Access_Traits_,
+        <b>typename</b> Allocator_&gt;
+    <b>class</b> Node_Update = <a href=
+"null_trie_node_update.html">null_trie_node_update</a>,
+    <b>typename</b> Allocator = std::allocator&lt;<b>char</b>&gt; &gt;
+<b>class</b> <a href=
+"trie.html">trie</a>;
+</pre>
+
+    <p>The parameters have the following meaning:</p>
+
+    <ol>
+      <li><tt>Key</tt> is the key type.</li>
+
+      <li><tt>Mapped</tt> is the mapped-policy, and is explained in
+      <a href="tutorial.html#assoc_ms">Tutorial::Associative
+      Containers::Associative Containers Others than Maps</a>.</li>
+
+      <li><tt>E_Access_Traits</tt> is described in <a href=
+      "#e_access_traits">Element-Access Traits</a>.</li>
+
+      <li><tt>Tag</tt> specifies which underlying data structure
+      to use, and is described shortly.</li>
+
+      <li><tt>Node_Update</tt> is a policy for updating node
+      invariants. This is described in <a href="#invariants">Node
+      Invariants</a>.</li>
+
+      <li><tt>Allocator</tt> is an allocator
+      type.</li>
+    </ol>
+
+    <p>The <tt>Tag</tt> parameter specifies which underlying
+    data structure to use. Instantiating it by <a href=
+    "pat_trie_tag.html">pat_trie_tag</a>, specifies an
+    underlying PATRICIA trie (explained shortly); any other tag is
+    currently illegal.</p>
+    <hr />
+
+    <p>Following is a description of a (PATRICIA) trie
+    (<tt>pb_ds</tt> follows specifically [<a href=
+    "references.html#okasaki98mereable">okasaki98mereable</a>] and
+    [<a href=
+    "references.html#filliatre2000ptset">filliatre2000ptset</a>]).</p>
+
+    <p>A (PATRICIA) trie is similar to a tree, but with the
+    following differences:</p>
+
+    <ol>
+      <li>It explicitly views keys as a sequence of elements.
+      <i>E.g.</i>, a trie can view a string as a sequence of
+      characters; a trie can view a number as a sequence of
+      bits.</li>
+
+      <li>It is not (necessarily) binary. Each node has fan-out <i>n
+      + 1</i>, where <i>n</i> is the number of distinct
+      elements.</li>
+
+      <li>It stores values only at leaf nodes.</li>
+
+      <li>Internal nodes have the properties that A) each has at
+      least two children, and B) each shares the same prefix with
+      any of its descendant.</li>
+    </ol>
+
+    <p><a href="#e_access_traits">Element-Access Traits</a> shows
+    an example of such a trie.</p>
+
+    <p>A (PATRICIA) trie has some useful properties:</p>
+
+    <ol>
+      <li>It can be configured to use large node fan-out, giving it
+      very efficient find performance (albeit at insertion
+      complexity and size).</li>
+
+      <li>It works well for common-prefix keys.</li>
+
+      <li>It can support efficiently queries such as which keys
+      match a certain prefix. This is sometimes useful in
+      file systems and routers.</li>
+    </ol>
+
+    <p>(We would like to thank Matt Austern for the suggestion to
+    include tries.)</p>
+
+    <h2><a name="e_access_traits" id=
+    "e_access_traits">Element-Access Traits</a></h2>
+
+    <p>A trie inherently views its keys as sequences of elements.
+    For example, a trie can view a string as a sequence of
+    characters. A trie needs to map each of <i>n</i> elements to a
+    number in <i>{0, n - 1}</i>. For example, a trie can map a
+    character <tt>c</tt> to
+    <tt>static_cast&lt;size_t&gt;(c)</tt>.</p>
+
+    <p>Seemingly, then, a trie can assume that its keys support
+    (const) iterators, and that the <tt>value_type</tt> of this
+    iterator can be cast to a <tt>size_t</tt>. There are several
+    reasons, though, to decouple the mechanism by which the trie
+    accesses its keys' elements from the trie:</p>
+
+    <ol>
+      <li>In some cases, the numerical value of an element is
+      inappropriate. Consider a trie storing DNA strings. It is
+      logical to use a trie with a fan-out of <i>5 = 1 + |{'A', 'C',
+      'G', 'T'}|</i>. This requires mapping 'T' to 3, though.</li>
+
+      <li>In some cases the keys' iterators are different than what
+      is needed. For example, a trie can be used to search for
+      common <u>suffixes</u>, by using strings'
+      <tt>reverse_iterator</tt>. As another example, a trie mapping
+      UNICODE strings would have a huge fan-out if each node would
+      branch on a UNICODE character; instead, one can define an
+      iterator iterating over 8-bit (or less) groups.</li>
+    </ol>
+
+    <p><a href=
+    "trie.html">trie</a> is,
+    consequently, parametrized by <tt>E_Access_Traits</tt> -
+    traits which instruct how to access sequences' elements.
+    <a href=
+    "string_trie_e_access_traits.html"><tt>string_trie_e_access_traits</tt></a>
+    is a traits class for strings. Each such traits define some
+    types, <i>e.g.</i>,</p>
+    <pre>
+<b>typename</b> E_Access_Traits::const_iterator
+</pre>
+
+    <p>is a const iterator iterating over a key's elements. The
+    traits class must also define methods for obtaining an iterator
+    to the first and last element of a key.</p>
+
+    <p>Figure <a href="#pat_trie">A PATRICIA trie</a> shows a
+    (PATRICIA) trie resulting from inserting the words: "I wish
+    that I could ever see a poem lovely as a trie" (which,
+    unfortunately, does not rhyme).</p>
+
+    <p>The leaf nodes contain values; each internal node contains
+    two <tt><b>typename</b> E_Access_Traits::const_iterator</tt>
+    objects, indicating the maximal common prefix of all keys in
+    the sub-tree. For example, the shaded internal node roots a
+    sub-tree with leafs "a" and "as". The maximal common prefix is
+    "a". The internal node contains, consequently, to const
+    iterators, one pointing to <tt>'a'</tt>, and the other to
+    <tt>'s'</tt>.</p>
+
+    <h6 class="c1"><a name="pat_trie" id="pat_trie"><img src=
+    "pat_trie.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">A PATRICIA trie.</h6>
+
+    <h2><a name="invariants" id="invariants">Node
+    Invariants</a></h2>
+
+    <p>Trie-based containers support node invariants, as do
+    tree-based containers (see <a href=
+    "tree_based_containers.html#invariants">Tree-Based
+    Containers::Node Invariants</a>). There are two minor
+    differences, though, which, unfortunately, thwart sharing them
+    sharing the same node-updating policies:</p>
+
+    <ol>
+      <li>A trie's <tt>Node_Update</tt> template-template
+      parameter is parametrized by <tt>E_Access_Traits</tt>, while
+      a tree's <tt>Node_Update</tt> template-template parameter is
+      parametrized by <tt>Cmp_Fn</tt>.</li>
+
+      <li>Tree-based containers store values in all nodes, while
+      trie-based containers (at least in this implementation) store
+      values in leafs.</li>
+    </ol>
+
+    <p>Figure <a href="#trie_node_update_cd">A trie and its update
+    policy</a> shows the scheme, as well as some predefined
+    policies (which are explained below).</p>
+
+    <h6 class="c1"><a name="trie_node_update_cd" id=
+    "trie_node_update_cd"><img src=
+    "trie_node_update_policy_cd.png" alt="no image" /></a></h6>
+
+    <h6 class="c1">A trie and its update policy.</h6>
+
+    <p><tt>pb_ds</tt> offers the following pre-defined trie node
+    updating policies:</p>
+
+    <ol>
+      <li><a href=
+      "trie_order_statistics_node_update.html"><tt>trie_order_statistics_node_update</tt></a>
+      supports order statistics.</li>
+
+      <li><a href=
+      "trie_prefix_search_node_update.html"><tt>trie_prefix_search_node_update</tt></a>
+      supports searching for ranges that match a given prefix. See
+      <a href=
+      "../../../../testsuite/ext/pb_ds/example/trie_prefix_search.cc"><tt>trie_prefix_search.cc</tt></a>.</li>
+
+      <li><a href=
+      "null_trie_node_update.html"><tt>null_trie_node_update</tt></a>
+      is the null node updater.</li>
+    </ol>
+
+    <h2><a name="add_methods" id="add_methods">Additional
+    Methods</a></h2>
+
+    <p>Trie-based containers support split and join methods; the
+    rationale is equal to that of tree-based containers supporting
+    these methods (see <a href=
+    "tree_based_containers.html#add_methods">Tree-Based
+    Containers::Additional Methods</a>).</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html
new file mode 100644
index 000000000000..0869a7c2f5b9
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_const_node_iterator.html
@@ -0,0 +1,478 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>trie::const_node_iterator
+  Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt><span class=
+    "c2"><tt>trie</tt></span>::const_node_iterator</tt>
+    Interface</h1>
+
+    <p>Const node iterator.</p>
+
+    <p>This is an "iterator to an iterator" - it iterates over
+    nodes, and de-referencing it returns one of the tree's const
+    iterators</p>
+
+    <h2><a name="link1" id="link1">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link2" id="link2">General Container
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="container_base.html#size_type55424436"><span class=
+"c2"><tt>container_base</tt></span>::size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link3" id="link3">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator_category2821876439" id=
+"iterator_category2821876439">iterator_category</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+trivial_iterator_tag
+</pre>
+        </td>
+
+        <td>
+          <p>Category.</p>
+
+          <p>This tag identifies that the iterator has none of the
+          STL's iterators' movement abilities.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="difference_type868028452" id=
+"difference_type868028452">difference_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre class="c2">
+void
+</pre>
+        </td>
+
+        <td>
+          <p>Difference type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Value-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"container_base.html#const_iterator98626788"><span class="c2"><tt>container_base</tt></span>::const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's value type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's reference type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's const <a href=
+          "#reference54418471"><tt>reference</tt></a> type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"trie.html#e_access_traits1948190928"><span class="c2"><tt>trie</tt></span>::e_access_traits</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Element access traits.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_e_iterator2450008044" id=
+"const_e_iterator2450008044">const_e_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a>::const_iterator
+</pre>
+        </td>
+
+        <td>
+          <p>A key's element const iterator.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Metadata Definitions</a></h3>
+
+    <p>These are only defined if <a href=
+    "basic_tree.html#Node_Update841554648"><span class="c2">
+    <tt>basic_tree</tt></span>::Node_Update</a>
+    is not <a href="null_trie_node_update.html"><span class=
+    "c2"><tt>null_trie_node_update</tt></span></a></p>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<tt><b>typename</b></tt> <a href=
+"basic_tree.html#Node_Update841554648"><span class="c2"><tt>basic_tree</tt></span>::Node_Update</a><tt>::metadata_type</tt>
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> Allocator::<b>template</b> rebind&lt;
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const metadata <a href=
+          "#reference54418471"><tt>reference</tt></a> type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link6" id="link6">Public Methods</a></h2>
+
+    <h3><a name="link7" id="link7">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> 
+  const_node_iterator
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> std::pair&lt;
+    <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a>,
+    <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a>&gt;
+  valid_prefix
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Subtree valid prefix.</p>
+
+          <p>Returns the common prefix range of all nodes in this
+          node's subtree.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_reference495461441"><tt>const_reference</tt></a>
+  <b>operator</b>*
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Const access; returns the const iterator associated
+          with the current leaf.</p>
+
+          <p>Should be called only for leaf nodes.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link9" id="link9">Metadata Access Methods</a></h3>
+
+    <p>These are only defined if <a href=
+    "basic_tree.html#Node_Update841554648"><span class="c2">
+    <tt>basic_tree</tt></span>::Node_Update</a>
+    is not <a href="null_trie_node_update.html"><span class=
+    "c2"><tt>null_trie_node_update</tt></span></a></p>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_metadata_reference1108857465"><tt>const_metadata_reference</tt></a>
+  get_metadata
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata access.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link10" id="link10">Movement Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  num_children
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the number of children in the corresponding
+          node.</p>
+
+          <p>If the number of children is 0, then the corresponding
+          node is a leaf; otherwise, it is not a leaf.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>const_node_iterator</tt></span>
+  get_child
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a const node iterator to the corresponding
+          node's <span class="c1"><tt>i</tt></span>-th child.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link11" id="link11">Comparison Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  <b>operator</b>==
+  (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Compares content to a different iterator object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>bool</b>
+  <b>operator</b>!=
+  (<b>const</b> <span class=
+"c2"><tt>const_node_iterator</tt></span> &amp;other) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Compares content (negatively) to a different iterator
+          object.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html
new file mode 100644
index 000000000000..55029c4cb917
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_node_iterator.html
@@ -0,0 +1,235 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>trie::node_iterator Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt><span class=
+    "c2"><tt>trie</tt></span>::node_iterator</tt>
+    Interface</h1>
+
+    <p>Node iterator.</p>
+
+    <p>This is an "iterator to an iterator" - it iterates over
+    nodes, and de-referencing it returns one of the tree's
+    iterators</p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href=
+"trie.html#const_node_iterator4205924553"><span class="c2"><tt>trie</tt></span>::const_node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">General Container
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"trie.html#const_node_iterator4205924553"><span class="c2"><tt>trie</tt></span>::const_node_iterator</a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Value-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="value_type279018186" id=
+"value_type279018186">value_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="container_base.html#iterator10418194"><span class=
+"c2"><tt>container_base</tt></span>::iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's value type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="reference54418471" id="reference54418471">reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's reference type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#value_type279018186"><tt>value_type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator's const <a href=
+          "#reference54418471"><tt>reference</tt></a> type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link5" id="link5">Public Methods</a></h2>
+
+    <h3><a name="link6" id="link6">Constructors, Destructor, and
+    Related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> 
+  pat_trie_node_it_
+  () 
+</pre>
+        </td>
+
+        <td>
+          <p>Default constructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Access Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#reference54418471"><tt>reference</tt></a>
+  <b>operator</b>*
+  () <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Access; returns the iterator associated with the
+          current leaf.</p>
+
+          <p>Should be called only for leaf nodes.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link8" id="link8">Movement Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<span class="c2"><tt>node_iterator</tt></span>
+  get_child
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> i) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns a node iterator to the corresponding node's
+          <span class="c1"><tt>i</tt></span>-th child.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_node_updator_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/trie_node_updator_policy_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..4376929ec28faf6ca8f554ef27b63cf299ddb068
GIT binary patch
literal 12126
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
BWO@Jq

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html
new file mode 100644
index 000000000000..dcc236ff5204
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_order_statistics_node_update.html
@@ -0,0 +1,770 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>trie_order_statistics_node_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>trie_order_statistics_node_update</tt> Interface</h1>
+
+    <p>Functor updating ranks of entrees.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Element access traits.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_e_iterator2450008044" id=
+"const_e_iterator2450008044">const_e_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a>::const_iterator
+</pre>
+        </td>
+
+        <td>
+          <p>Const element iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">Key-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's key type.
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's const key reference type.
+</pre>
+        </td>
+
+        <td>
+          <p>Const key reference.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Metadata-Type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#size_type55424436"><tt>size_type</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"#Const_Node_Iterator1933878761"><tt>Const_Node_Iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Node_Iterator4206909839"><tt>Node_Iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>::value_type
+</pre>
+        </td>
+
+        <td>
+          <p>Const iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>::value_type
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+    <h3><a name="link9" id="link9">Find-Type Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  find_by_order
+  (<a href=
+"#size_type55424436"><tt>size_type</tt></a> order) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Finds an entry by order. Returns a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the entry with the order <span class=
+          "c1"><tt>order</tt></span>, or a <a href=
+          "#const_iterator98626788"><tt>const_iterator</tt></a> to
+          the container object's end if <span class=
+          "c1"><tt>order</tt></span> is at least the size of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+  find_by_order
+  (<a href="#size_type55424436"><tt>size_type</tt></a> order)
+</pre>
+        </td>
+
+        <td>
+          <p>Finds an entry by order. Returns an <a href=
+          "#iterator10418194"><tt>iterator</tt></a> to the entry
+          with the order <span class="c1"><tt>order</tt></span>, or
+          an <a href="#iterator10418194"><tt>iterator</tt></a> to
+          the container object's end if <span class=
+          "c1"><tt>order</tt></span> is at least the size of the
+          container object.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  order_of_key
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the order of a key within a sequence. For
+          example, if <span class="c1"><tt>r_key</tt></span> is the
+          smallest key, this method will return 0; if <span class=
+          "c1"><tt>r_key</tt></span> is a key between the smallest
+          and next key, this method will return 1; if <span class=
+          "c1"><tt>r_key</tt></span> is a key larger than the
+          largest key, this method will return the size of r_c.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <a href="#size_type55424436"><tt>size_type</tt></a>
+  order_of_prefix
+  (<a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b,
+    <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the order of a prefix within a sequence. For
+          <span class="c1"><tt>e</tt></span>example, if [b,
+          <span class="c1"><tt>e</tt></span>] is the smallest
+          prefix, this method will return 0; if r_key is a key
+          <span class="c1"><tt>b</tt></span>between the smallest and
+          next key, this method will return 1; if r_key is a key
+          larger than the largest key, this method will return the
+          size of r_c.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link10" id="link10">Protected Types and
+    Constants</a></h2>
+
+    <h3><a name="link11" id="link11">Value-Type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_reference495461441" id=
+"const_reference495461441">const_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's const reference  type.
+</pre>
+        </td>
+
+        <td>
+          <p>Const reference to the container's value-type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_pointer878814947" id=
+"const_pointer878814947">const_pointer</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's const pointer  type.
+</pre>
+        </td>
+
+        <td>
+          <p>Const pointer to the container's value-type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_metadata_reference1108857465" id=
+"const_metadata_reference1108857465">const_metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::<a href="#const_reference495461441"><tt>const_reference</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const metadata reference.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_reference583863863" id=
+"metadata_reference583863863">metadata_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#Allocator35940069"><tt>Allocator</tt></a>::<b>template</b> rebind&lt;
+    <a href=
+"#metadata_type2849297114"><tt>metadata_type</tt></a>&gt;::other::reference
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata reference.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link12" id="link12">Protected Methods</a></h2>
+
+    <h3><a name="link13" id="link13">Operators</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  <b>operator</b>()
+  (<a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a> node_it,
+    <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> end_nd_it) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Updates the rank of a node through a <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          <span class="c1"><tt>node_it</tt></span>; <span class=
+          "c1"><tt>end_nd_it</tt></span> is the end node <a href=
+          "#iterator10418194"><tt>iterator</tt></a>.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link14" id="link14">Constructors, destructor, and
+    related</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> 
+  ~trie_order_statistics_node_update
+  ()
+</pre>
+        </td>
+
+        <td>
+          <p>Destructor.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link15" id="link15">Private Methods</a></h2>
+
+    <h3><a name="link16" id="link16">Overrides</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <b>bool</b>
+  empty
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns <tt><b>true</b></tt> if the container is
+          empty.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+  begin
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#iterator10418194"><tt>iterator</tt></a> associated with
+          the trie's first element.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+  end
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#iterator10418194"><tt>iterator</tt></a> associated with
+          the trie's just-after-last element.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_begin
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          associated with the trie's root node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_begin
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          associated with the trie's root node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_end
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          associated with a just-after leaf node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_end
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          associated with a just-after leaf node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+  get_e_access_traits
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the cmp_fn object.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html
new file mode 100644
index 000000000000..e3d5e2730427
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_prefix_search_node_update.html
@@ -0,0 +1,628 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>trie_prefix_search_node_update Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>trie_prefix_search_node_update</tt> Interface</h1>
+
+    <p>A node updater that allows tries to be searched for the
+    range of values that match a certain prefix.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/trie_policy.hpp"><tt>trie_policy.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Template Parameters</a></h2>
+
+    <table class="c1" width="100%" border="1" summary=
+    "Template Parameters">
+      <tr>
+        <td width="20%" align="left"><b>Parameter</b></td>
+
+        <td width="50%" align="left"><b>Description</b></td>
+
+        <td width="30%" align="left"><b>Default Value</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Const_Node_Iterator1933878761" id=
+"Const_Node_Iterator1933878761"><b>class</b> Const_Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Node_Iterator4206909839" id=
+"Node_Iterator4206909839"><b>class</b> Node_Iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="E_Access_Traits686553840" id=
+"E_Access_Traits686553840"><b>class</b> E_Access_Traits</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Comparison functor.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="Allocator35940069" id=
+"Allocator35940069"><b>class</b> Allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <p>Allocator type.</p>
+        </td>
+
+        <td>-</td>
+      </tr>
+    </table>
+
+    <h2><a name="link2" id="link2">Public Types and
+    Constants</a></h2>
+
+    <h3><a name="link3" id="link3">Key-Type Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="key_type10393186" id="key_type10393186">key_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's key type.
+</pre>
+        </td>
+
+        <td>
+          <p>Key type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_key_reference3185471705" id=
+"const_key_reference3185471705">const_key_reference</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+The instantiating container's const key reference type.
+</pre>
+        </td>
+
+        <td>
+          <p>Const key reference.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link4" id="link4">Policy Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="e_access_traits1948190928" id=
+"e_access_traits1948190928">e_access_traits</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#E_Access_Traits686553840"><tt>E_Access_Traits</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Element access traits.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_e_iterator2450008044" id=
+"const_e_iterator2450008044">const_e_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a>::const_iterator
+</pre>
+        </td>
+
+        <td>
+          <p>Const element iterator.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="allocator48440069" id="allocator48440069">allocator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Allocator35940069"><tt>Allocator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p><a href="#Allocator35940069"><tt>Allocator</tt></a>
+          type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link5" id="link5">General Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="size_type55424436" id="size_type55424436">size_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#allocator48440069"><tt>allocator</tt></a>::size_type
+</pre>
+        </td>
+
+        <td>
+          <p>Size type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link6" id="link6">Metadata-Type
+    Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="metadata_type2849297114" id=
+"metadata_type2849297114">metadata_type</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+pb_ds::detail::null_node_metadata
+</pre>
+        </td>
+
+        <td>
+          <p>Metadata type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h3><a name="link7" id="link7">Iterator Definitions</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Types">
+      <tr>
+        <td width="30%" align="left"><b>Type</b></td>
+
+        <td width="55%" align="left"><b>Definition</b></td>
+
+        <td width="15%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_node_iterator4205924553" id=
+"const_node_iterator4205924553">const_node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href=
+"#Const_Node_Iterator1933878761"><tt>Const_Node_Iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Const node iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="node_iterator3431975247" id=
+"node_iterator3431975247">node_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<a href="#Node_Iterator4206909839"><tt>Node_Iterator</tt></a>
+</pre>
+        </td>
+
+        <td>
+          <p>Node iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="const_iterator98626788" id=
+"const_iterator98626788">const_iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>::value_type
+</pre>
+        </td>
+
+        <td>
+          <p>Const iterator type.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a name="iterator10418194" id="iterator10418194">iterator</a>
+</pre>
+        </td>
+
+        <td>
+          <pre>
+<b>typename</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>::value_type
+</pre>
+        </td>
+
+        <td>
+          <p>Iterator type.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link8" id="link8">Public Methods</a></h2>
+
+    <h3><a name="link9" id="link9">Find Methods</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+std::pair&lt;
+    <a href="#const_iterator98626788"><tt>const_iterator</tt></a>,
+    <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>&gt;
+  prefix_range
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Finds the <tt><b>const</b></tt> <a href=
+          "#iterator10418194"><tt>iterator</tt></a> range
+          corresponding to all values whose prefixes match
+          <span class="c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+std::pair&lt;
+    <a href="#iterator10418194"><tt>iterator</tt></a>,
+    <a href="#iterator10418194"><tt>iterator</tt></a>&gt;
+  prefix_range
+  (<a href=
+"#const_key_reference3185471705"><tt>const_key_reference</tt></a> r_key)
+</pre>
+        </td>
+
+        <td>
+          <p>Finds the <a href=
+          "#iterator10418194"><tt>iterator</tt></a> range
+          corresponding to all values whose prefixes match
+          <span class="c1"><tt>r_key</tt></span>.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+std::pair&lt;
+    <a href="#const_iterator98626788"><tt>const_iterator</tt></a>,
+    <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>&gt;
+  prefix_range
+  (<a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b,
+    <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Finds the <tt><b>const</b></tt> <a href=
+          "#iterator10418194"><tt>iterator</tt></a> range
+          corresponding to all values whose prefixes match [b,
+          <span class="c1"><tt>e</tt></span>).</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+std::pair&lt;
+    <a href="#iterator10418194"><tt>iterator</tt></a>,
+    <a href="#iterator10418194"><tt>iterator</tt></a>&gt;
+  prefix_range
+  (<a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> b,
+    <a href=
+"#const_e_iterator2450008044"><tt>const_e_iterator</tt></a> e)
+</pre>
+        </td>
+
+        <td>
+          <p>Finds the <a href=
+          "#iterator10418194"><tt>iterator</tt></a> range
+          corresponding to all values whose prefixes match [b,
+          <span class="c1"><tt>e</tt></span>).</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link10" id="link10">Protected Methods</a></h2>
+
+    <h3><a name="link11" id="link11">Operators</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>inline</b> <b>void</b>
+  <b>operator</b>()
+  (<a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a> node_it,
+    <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a> end_nd_it) <b>const</b>
+</pre>
+        </td>
+
+        <td>
+          <p>Called to update a node's metadata.</p>
+        </td>
+      </tr>
+    </table>
+
+    <h2><a name="link12" id="link12">Private Methods</a></h2>
+
+    <h3><a name="link13" id="link13">Overrides</a></h3>
+
+    <table class="c1" width="100%" border="1" summary="Methods">
+      <tr>
+        <td width="45%" align="left"><b>Method</b></td>
+
+        <td width="55%" align="left"><b>Description</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#const_iterator98626788"><tt>const_iterator</tt></a>
+  end
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <tt><b>const</b></tt> <a href=
+          "#iterator10418194"><tt>iterator</tt></a> associated with
+          the just-after last element.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href="#iterator10418194"><tt>iterator</tt></a>
+  end
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#iterator10418194"><tt>iterator</tt></a> associated with
+          the just-after last element.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_begin
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          associated with the trie's root node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_begin
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          associated with the trie's root node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+  node_end
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#const_node_iterator4205924553"><tt>const_node_iterator</tt></a>
+          associated with a just-after leaf node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <a href=
+"#node_iterator3431975247"><tt>node_iterator</tt></a>
+  node_end
+  () = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Returns the <a href=
+          "#node_iterator3431975247"><tt>node_iterator</tt></a>
+          associated with a just-after leaf node.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<b>virtual</b> <b>const</b> <a href=
+"#e_access_traits1948190928"><tt>e_access_traits</tt></a> &amp;
+  get_e_access_traits
+  () <b>const</b> = 0
+</pre>
+        </td>
+
+        <td>
+          <p>Access to the cmp_fn object.</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html
new file mode 100644
index 000000000000..6d2def4e77f3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trie_tag.html
@@ -0,0 +1,47 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>trie_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>trie_tag</tt> Interface</h1>
+
+    <p>Basic trie data structure tag.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+
+    <h2><a name="link1" id="link1">Base Classes</a></h2>
+
+    <table class="c1" width="100%" border="1" summary="Bases">
+      <tr>
+        <td width="80%" align="left"><b>Class</b></td>
+
+        <td width="20%" align="left"><b>Derivation Type</b></td>
+      </tr>
+
+      <tr>
+        <td>
+          <pre>
+<a href="basic_tree_tag.html"><span class=
+"c2"><tt>basic_tree_tag</tt></span></a>
+</pre>
+        </td>
+
+        <td>
+          <p>public</p>
+        </td>
+      </tr>
+    </table>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html b/libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html
new file mode 100644
index 000000000000..be9813be3cb3
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/trivial_iterator_tag.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>trivial_iterator_tag Interface</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1><tt>trivial_iterator_tag</tt> Interface</h1>
+
+    <p>A \quot;trivial\quot; iterator tag. Signifies that the
+    iterators has none of the STL's movement abilities.</p>
+
+    <p>Defined in: <a href=
+    "../../../../include/ext/pb_ds/tag_and_trait.hpp"><tt>tag_and_trait.hpp</tt></a></p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/tutorial.html b/libstdc++-v3/docs/html/ext/pb_ds/tutorial.html
new file mode 100644
index 000000000000..029204b3b20f
--- /dev/null
+++ b/libstdc++-v3/docs/html/ext/pb_ds/tutorial.html
@@ -0,0 +1,670 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+  <meta name="generator" content=
+  "HTML Tidy for Linux/x86 (vers 12 April 2005), see www.w3.org" />
+
+  <title>Tutorial</title>
+  <meta http-equiv="Content-Type" content=
+  "text/html; charset=us-ascii" />
+  </head>
+
+<body>
+  <div id="page">
+    <h1>Short Tutorial</h1>
+
+    <p>Following is a short tutorial illustrating the main points
+    of <tt>pb_ds</tt>. <a href="concepts.html">Concepts</a>
+    describes and summarizes some concepts.</p>
+
+    <h2><a name="assoc_main" id="assoc_main">Associative
+    Containers</a></h2>
+
+    <h3><a name="assoc_basic" id="assoc_basic">Basic Use</a></h3>
+
+    <p>For the most part, <tt>pb_ds</tt>'s containers have the same
+    interface as the STL's, except for the names used for the
+    container classes themselves. For example, this shows basic
+    operations on a collision-chaining hash-based container:</p>
+
+    <pre>
+<a href=
+"cc_hash_table.html">cc_hash_table</a>&lt;<b>int</b>, <b>char</b>&gt; c;
+
+c[2] = 'b';
+
+assert(c.find(1) == c.end());
+</pre>
+
+    <p>The container is called <a href=
+    "cc_hash_table.html"><tt>cc_hash_table</tt></a> as
+    opposed to <tt>unordered_map</tt>, since "unordered map" does
+    not necessarily mean a hash-based map (as the STL implicitly
+    implies). For example, list-based associative containers, which
+    are very useful for the construction of "multimaps" (see
+    <a href=
+    "assoc_performance_tests.html#msc">Associative-Container
+    Performance Tests::Observations::Mapping-Semantics
+    Considerations</a>), are also unordered. It is also not called
+    <tt>hash_map</tt> since there are more ways than one to
+    implement hash tables.</p>
+
+    <p>This snippet shows a red-black tree based container:</p>
+    <pre>
+<a href=
+"tree.html">tree</a>&lt;<b>int</b>, <b>char</b>&gt; c;
+
+c[2] = 'b';
+
+assert(c.find(2) != c.end());
+</pre>
+
+    <p>The container is called <a href=
+    "tree.html"><tt>tree</tt></a>
+    as opposed to <tt>map</tt>, since "map" doesn't say that
+    much.</p>
+
+    <p>Most of the STL's familiar methods are unchanged.
+    <i>E.g.</i>, <tt>being</tt>, <tt>end</tt>, <tt>size</tt>,
+    <tt>empty</tt>, and <tt>clear</tt>, do just the same as is
+    customary. <a href=
+    "assoc_examples.html#basic_usage">Associative-Container
+    Examples::Basic use</a>, and especially <a href=
+    "../../../../testsuite/ext/pb_ds/example/basic_map.cc"><tt>basic_map.cc</tt></a>,
+    show examples of this.</p>
+
+<p>This isn't to say that things are exactly as one would expect,
+given the container requirments and interfaces in the C++
+standard.</p>
+
+
+    <p>The names of containers' policies and policy accessors are
+    different than those of the STL. For example, if <tt>C</tt> is
+    some type of hash-based container, then</p>
+    <pre>
+C::hash_fn
+</pre>gives the type of its hash functor, and if <tt>c</tt> is some
+hash-based container object, then
+    <pre>
+c.get_hash_fn()
+</pre>
+
+    <p>will return a reference to its hash-functor object.</p>
+
+    <p>Similarly, if <tt>C</tt> is some type of tree-based
+    container, then</p>
+    <pre>
+C::cmp_fn
+</pre>gives the type of its comparison functor, and if <tt>c</tt>
+is some tree-based container object, then
+    <pre>
+c.get_cmp_fn()
+</pre>
+
+    <p>will return a reference to its comparison-functor
+    object.</p>
+
+    <p>It would be nice to give names consistent with those in the
+    existing C++ standard (inclusive of TR1). Unfortunately, these
+    standard containers don't consistently name types and
+    methods. For example, <tt>std::tr1::unordered_map</tt> uses
+    <tt>hasher</tt> for the hash functor, but <tt>std::map</tt> uses
+    <tt>key_compare</tt> for the comparison functor. Also, we could
+    not find an accessor for <tt>std::tr1::unordered_map</tt>'s hash
+    functor, but <tt>std::map</tt> uses <tt>compare</tt> for accessing
+    the comparison functor.</p> 
+
+<p>Instead, <tt>pb_ds</tt> attempts to be internally consistent, and
+uses standard-derived terminology if possible.
+</p>
+
+    <p>Another source of difference is in scope: <tt>pb_ds</tt>
+    contains more types of associative containers than the STL, and
+    more opportunities to configure these new containers, since
+    different types of associative containers are useful in different
+    settings (see <a href=
+    "assoc_performance_tests.html#dss_family_choice">Associative-Container
+    Performance Tests::Observations::Underlying Data-Structure
+    Families</a>).</p>
+
+    <p><tt>pb_ds</tt> contains different classes for hash-based containers,
+    tree-based containers, trie-based containers, and list-based
+    containers. <a href=
+    "interface.html#containers_assoc">Inteface::Containers::Associative
+    Containers</a> lists the containers. <a href=
+    "hash_based_containers.html">Design::Associative
+    Containers::Hash-Based Containers</a>, <a href=
+    "tree_based_containers.html">Design::Associative
+    Containers::Tree-Based Containers</a>, <a href=
+    "trie_based_containers.html">Design::Associative
+    Containers::Trie-Based Containers</a>, and <a href=
+    "lu_based_containers.html">Design::Associative
+    Containers::List-Based Containers</a>, explain some more about
+    these types of containers, respectively.</p>
+
+    <p>Since associative containers share parts of their interface,
+    they are organized as a class hierarchy; it is shown in Figure
+    <a href="#cd">Class hierarchy</a>.</p>
+
+    <h6 class="c1"><a name="cd" id="cd"><img src="container_cd.png" alt=
+    "no image" /></a></h6>
+
+    <h6 class="c1">Class hierarchy.</h6>
+
+    <p>Each type or method is defined in the most-common ancestor
+    in which it makes sense:
+  <a href=
+    "../../../../testsuite/ext/pb_ds/example/basic_map.cc"><tt>basic_map.cc</tt></a>
+    shows an example of most of the associative-container
+    types.</p>
+
+ 
+    <p>For example, all associative containers support iteration.
+    Consequently, <a href=
+    "container_base.html"><tt>container_base</tt></a> has the
+    interface:</p>
+    <pre>
+<b>template</b>&lt;...&gt;
+<b>class</b> <a href="container_base.html">container_base</a>
+{
+    ...
+    
+<b>public</b>:
+    ...
+    
+    const_iterator
+    begin() <b>const</b>;
+    
+    iterator
+    begin();
+
+    const_iterator
+    end() <b>const</b>;
+    
+    iterator
+    end();
+        
+    ...
+};
+</pre>
+
+    <p>and so all associative containers inherent this method.
+    Conversely, both collision-chaining and (general) probing
+    hash-based associative containers have a hash functor, so
+    <a href=
+    "basic_hash_table.html"><tt>basic_hash_table</tt></a>
+    has the interface:</p>
+    <pre>
+<b>template</b>&lt;...&gt;
+<b>class</b> <a href="basic_hash_table.html">basic_hash_table</a> : <b>public</b> <a href="container_base.html">container_base</a>
+{
+    ...
+    
+<b>public</b>:
+    ...
+    
+    const hash_fn&amp;
+    get_hash_fn() const;
+        
+    hash_fn&amp;
+    get_hash_fn();
+    ...
+};
+</pre>
+
+    <p>and so all hash-based associative containers inherit the
+    same hash-functor accessor methods.</p>
+
+    <p>This is discussed further in <a href=
+    "ds_gen.html">Design::Associative Containers::Data-Structure
+    Genericity</a>.</p>
+
+    <h3><a name="assoc_policies" id="assoc_policies">Configuring
+    Associative Containers</a></h3>
+
+    <p>In general, each of <tt>pb_ds</tt>'s containers is
+    parametrized by more policies than those of the STL's. For
+    example, the STL's hash-based container is parametrized as
+    follows:</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    <b>typename</b> Hash,
+    <b>typename</b> Pred,
+    <b>typename</b> Allocator,
+    <b>bool</b> Cache_Hashe_Code&gt;
+<b>class</b> unordered_map;
+</pre>
+
+    <p>and so can be configured by key type, mapped type, a functor
+    that translates keys to unsigned integral types, an equivalence
+    predicate, an allocator, and an indicator whether to store hash
+    values with each entry. <tt>pb_ds</tt>'s collision-chaining
+    hash-based container is parametrized as</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Key,
+    <b>typename</b> Mapped,
+    <b>typename</b> Hash_Fn,
+    <b>typename</b> Eq_Fn,
+    <b>typename</b> Comb_Hash_Fn,
+    <b>typename</b> Resize_Policy
+    <b>bool</b> Store_Hash
+    <b>typename</b> Allocator&gt;
+<b>class</b> <a href=
+"cc_hash_table.html">cc_hash_table</a>;
+</pre>
+
+    <p>and so can be configured by the first four types of
+    <tt>std::tr1::unordered_map</tt>, then a policy for translating
+    the key-hash result into a position within the table, then a
+    policy by which the table resizes, an indicator whether to
+    store hash values with each entry, and an allocator (which is
+    typically the last template parameter in STL containers).</p>
+
+    <p>Nearly all policy parameters have default values, so this
+    need not be considered for casual use. It is important to note,
+    however, that hash-based containers' policies can dramatically
+    alter their performance in different settings, and that
+    tree-based containers' policies can make them useful for other
+    purposes than just look-up.</p>
+
+    <p><a href="hash_based_containers.html">Design::Associative
+    Containers::Hash-Based Containers</a>, <a href=
+    "tree_based_containers.html">Design::Associative
+    Containers::Tree-Based Containers</a>, <a href=
+    "trie_based_containers.html">Design::Associative
+    Containers::Trie-Based Containers</a>, and <a href=
+    "lu_based_containers.html">Design::Associative
+    Containers::List-Based Containers</a>, explain some more about
+    configuring hash based, tree based, trie based, and list base
+    containers, respectively. <a href=
+    "interface.html#ds_policy_classes">Interface::Container Policy
+    Classes</a> shows the different policy classes for configuring
+    associative containers. <a href=
+    "assoc_examples.html#hash_based">Examples::Hash-Based
+    Containers</a>, <a href=
+    "assoc_examples.html#tree_like_based">Examples::Tree-Like-Based
+    Containers</a>, and <a href=
+    "assoc_examples.html#trie_based">Examples::Trie-Based
+    Containers</a> show examples for this.</p>
+
+    <h3><a name="assoc_ds_gen" id="assoc_ds_gen">Determining
+    Containers' Attributes</a></h3>
+
+    <p>Associative-containers' underlying data structures obviously
+    affect their performance; Unfortunately, they can also affect
+    their interface. When manipulating generically associative
+    containers, it is often useful to be able to statically
+    determine what they can support and what the cannot. (This was
+    discussed in <a href=
+    "motivation.html#assoc_ds_genericity">Motivation::Associative
+    Containers::Data-Structure Genericity</a>.)</p>
+
+    <p>Happily, the STL provides a good solution to a similar
+    problem - that of the different behavior of iterators. If
+    <tt>It</tt> is an iterator, then</p>
+    <pre>
+<b>typename</b> std::iterator_traits&lt;It&gt;::iterator_category
+</pre>
+
+    <p>is one of a small number of pre-defined
+    <tt><b>struct</b></tt>s, and,</p>
+    <pre>
+<b>typename</b> std::iterator_traits&lt;It&gt;::value_type
+</pre>
+
+    <p>is the value type to which the iterator "points".</p>
+
+    <p>Similarly, in <tt>pb_ds</tt>, if <tt>C</tt> is an
+    associative container, then</p>
+    <pre>
+<b>typename</b> <a href=
+"assoc_container_traits.html"><tt>container_traits</tt></a>&lt;C&gt;::container_category
+</pre>is one of a small number of pre-defined
+<tt><b>struct</b></tt>s, each one corresponding to a class in
+Figure <a href="#cd">Class hierarchy</a>. These tags are listed in
+<a href="interface.html#ds_ts_assoc">Interface::Associative
+Containers::Data-Structure Tags and Traits::Data-Structure
+Tags::Associative-Containers</a>; <a href="ds_gen.html#container_traits">
+    Design::Associative Containers::Data-Structure Tags and
+    Traits</a> explains this further; <a href=
+    "ds_gen.html#tag_cd">Design::Associative
+    Containers::Data-Structure Tags and Traits::Data-structure tag
+    class hierarchy</a> shows a class diagram.
+
+    <p>In most cases, however, the exact underlying data structure
+    is not really important, but only one of its attributes:
+    whether it guarantees storing elements by key order, for
+    example. For this one can use</p>
+    <pre>
+<b>typename</b> <a href=
+"assoc_container_traits.html"><tt>container_traits</tt></a>&lt;C&gt;::order_preserving
+</pre>
+
+    <p>This is described further in <a href=
+    "ds_gen.html">Design::Data-Structure Genericity</a>; <a href=
+    "../../../../testsuite/ext/pb_ds/example/assoc_container_traits.cc"><tt>assoc_container_traits.cc</tt></a>
+    shows an example of querying containers' attributes.</p>
+
+    <h3><a name="assoc_find_range" id="assoc_find_range">Point-Type
+    and Range-Type Methods and Iterators</a></h3>(This subsection
+    addresses points from <a href=
+    "motivation.html#assoc_diff_it">Motivation::Associative
+    Containers::Differentiating between Iterator Types</a>.)
+
+    <p><tt>pb_ds</tt> differentiates between two types of methods
+    and iterators: point-type, and range-type. For example,
+    <tt>find</tt> and <tt>insert</tt> are point-type methods, since
+    they each deal with a specific element; their returned
+    iterators are point-type iterators. <tt>begin</tt> and
+    <tt>end</tt> are range-type methods, since they are not used to
+    find a specific element, but rather to go over all elements in
+    a container object; their returned iterators are range-type
+    iterators.</p>
+
+    <p>Most containers store elements in an order that is
+    determined by their interface. Correspondingly, it is fine that
+    their point-type iterators are synonymous with their range-type
+    iterators. For example, in the following snippet</p>
+    <pre>
+std::for_each(c.find(1), c.find(5), foo);
+</pre>two point-type iterators (returned by <tt>find</tt>) are used
+for a range-type purpose - going over all elements whose key is
+between 1 and 5.
+
+    <p>Conversely, the above snippet makes no sense for
+    self-organizing containers - ones that order (and reorder)
+    their elements by implementation. It would be nice to have a
+    uniform iterator system that would allow the above snippet to
+    compile only if it made sense.</p>
+
+    <p>This could trivially be done by specializing
+    <tt>std::for_each</tt> for the case of iterators returned by
+    <tt>std::tr1::unordered_map</tt>, but this would only solve the
+    problem for one algorithm and one container. Fundamentally, the
+    problem is that one can loop using a self-organizing
+    container's point-type iterators.</p>
+
+    <p><tt>pb_ds</tt>'s containers define two families of
+    iterators: <tt>const_point_iterator</tt> and
+    <tt>point_iterator</tt> are the iterator types returned by
+    point-type methods; <tt>const_iterator</tt> and
+    <tt>iterator</tt> are the iterator types returned by range-type
+    methods.</p>
+    <pre>
+<b>class</b> <i>&lt;- some container -&gt;</i>
+{
+<b>public</b>:
+    ...
+
+    <b>typedef</b> <i>&lt;- something -&gt;</i> const_iterator;
+
+    <b>typedef</b> <i>&lt;- something -&gt;</i> iterator;
+
+    <b>typedef</b> <i>&lt;- something -&gt;</i> const_point_iterator;
+
+    <b>typedef</b> <i>&lt;- something -&gt;</i> point_iterator;
+ 
+    ...
+
+<b>public</b>:
+    ...
+
+    const_iterator begin () <b>const</b>;
+
+    iterator begin();
+
+    const_point_iterator find(...) <b>const</b>;
+
+    point_iterator find(...);
+};
+</pre>
+
+    <p><a href="ds_gen.html#find_range">Design::Associative
+    Containers::Data-Structure Genericity::Point-Type and
+    Range-Type Methods and Iterators</a> discusses the relationship
+    between point-type and range-type iterators in general; for
+    containers whose interface defines sequence order, however, it
+    is very simple: point-type and range-type iterators are exactly
+    the same, which means that the above snippet will compile if it
+    is used for an order-preserving associative container.</p>
+
+    <p>For self-organizing containers, however, (hash-based
+    containers as a special example), the preceding snippet will
+    not compile, because their point-type iterators do not support
+    <tt><b>operator</b>++</tt>.</p>
+
+    <p>In any case, both for order-preserving and self-organizing
+    containers, the following snippet will compile:</p>
+    <pre>
+<b>typename</b> Cntnr::point_iterator it = c.find(2);
+</pre>
+
+    <p>because a range-type iterator can always be converted to a
+    point-type iterator.</p>
+
+    <p><a href="ds_gen.html#find_range">Design::Associative
+    Containers::Data-Structure Genericity::Point-Type and
+    Range-Type Methods and Iterators</a> discusses this
+    further.</p>
+
+    <p><a href=
+    "motivation.html#assoc_diff_it">Motivation::Associative
+    Containers::Differentiating between Iterator Types</a> also
+    raised the point that a container's iterators might have
+    different invalidation rules concerning their de-referencing
+    abilities and movement abilities. This now corresponds exactly
+    to the question of whether point-type and range-type iterators
+    are valid. As explained in <a href="#assoc_ds_gen">Determining
+    Containers' Attributes</a>, <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a> allows
+    querying a container for its data structure attributes. The
+    iterator-invalidation guarantees are certainly a property of
+    the underlying data structure, and so</p>
+    <pre>
+<a href=
+"assoc_container_traits.html">container_traits</a>&lt;C&gt;::invalidation_guarantee
+</pre>
+
+    <p>gives one of three pre-determined types that answer this
+    query. This is explained further in <a href=
+    "ds_gen.html#find_range">Design::Associative
+    Containers::Data-Structure Genericity::Point-Type and
+    Range-Type Methods and Iterators</a>.</p>
+
+    <h3><a name="assoc_ms" id="assoc_ms">Distinguishing between Maps and Sets</a></h3>
+
+    <p>Anyone familiar with the STL knows that there are four kinds
+    of associative containers: maps, sets, multimaps, and
+    multisets. <a href="#assoc_basic">Basic Use</a> discussed how
+    to use maps, <i>i.e.</i> containers that associate each key to
+    some data.</p>
+
+    <p>Sets are associative containers that simply store keys -
+    they do not map them to anything. In the STL, each map class
+    has a corresponding set class. <i>E.g.</i>,
+    <tt>std::map&lt;<b>int</b>, <b>char</b>&gt;</tt> maps each
+    <tt><b>int</b></tt> to a <tt><b>char</b></tt>, but
+    <tt>std::set&lt;<b>int</b>, <b>char</b>&gt;</tt> simply stores
+    <tt><b>int</b></tt>s. In <tt>pb_ds</tt>, however, there are no
+    distinct classes for maps and sets. Instead, an associative
+    container's <tt>Mapped</tt> template parameter is a policy: if
+    it is instantiated by <a href=
+    "null_mapped_type.html"><tt>null_mapped_type</tt></a>, then it
+    is a "set"; otherwise, it is a "map". <i>E.g.</i>,</p>
+    <pre>
+<a href="cc_hash_table.html">cc_hash_table</a>&lt;<b>int</b>, <b>char</b>&gt;
+</pre>is a "map" mapping each <tt><b>int</b></tt> value to a <tt>
+    <b>char</b></tt>, but
+    <pre>
+<a href="cc_hash_table.html">cc_hash_table</a>&lt;<b>int</b>, <a href="null_mapped_type.html">null_mapped_type</a>&gt;
+</pre>is a type that uniquely stores <tt><b>int</b></tt> values.
+
+    <p>Once the <tt>Mapped</tt> template parameter is instantiated
+    by <a href="null_mapped_type.html">null_mapped_type</a>, then
+    the "set" acts very similarly to the STL's sets - it does not
+    map each key to a distinct <a href=
+    "null_mapped_type.html">null_mapped_type</a> object. Also,
+   , the container's <tt>value_type</tt> is essentially
+    its <tt>key_type</tt> - just as with the STL's sets. For a simple example, see <a href=
+    "../../../../testsuite/ext/pb_ds/example/basic_set.cc"><tt>basic_set.cc</tt></a>
+   .</p>
+
+    <p>The STL's multimaps and multisets allow, respectively,
+    non-uniquely mapping keys and non-uniquely storing keys. As
+    discussed in <a href=
+    "motivation.html#assoc_mapping_semantics">Motivation::Associative
+    Containers::Alternative to Multiple Equivalent Keys</a>, the
+    reasons why this might be necessary are 1) that a key might be
+    decomposed into a primary key and a secondary key, 2) that a
+    key might appear more than once, or 3) any arbitrary
+    combination of 1)s and 2)s. Correspondingly,
+    one should use 1) "maps" mapping primary keys to secondary
+    keys, 2) "maps" mapping keys to size types, or 3) any arbitrary
+    combination of 1)s and 2)s. Thus, for example, an
+    <tt>std::multiset&lt;<b>int</b>&gt;</tt> might be used to store
+    multiple instances of integers, but using <tt>pb_ds</tt>'s
+    containers, one might use</p>
+    <pre>
+<a href=
+"tree.html">tree</a>&lt;<b>int</b>, size_t&gt;
+</pre><i>i.e.</i>, a "map" of <tt><b>int</b></tt>s to
+<tt>size_t</tt>s.
+
+    <p><a href="assoc_examples.html#mmaps">Associative-Container
+    Examples::"Multimaps" and "Multisets"</a> shows some simple
+    examples.</p>
+
+    <p>These "multimaps" and "multisets" might be confusing to
+    anyone familiar with the STL's <tt>std::multimap</tt> and
+    <tt>std::multiset</tt>, because there is no clear
+    correspondence between the two. For example, in some cases
+    where one uses <tt>std::multiset</tt> in the STL, one might use
+    in <tt>pb_ds</tt> a "multimap" of "multisets" - <i>i.e.</i>, a
+    container that maps primary keys each to an associative
+    container that maps each secondary key to the number of times
+    it occurs.</p>
+
+    <p>When one uses a "multimap," one should choose with care the
+    type of container used for secondary keys. This is further
+    explained in <a href=
+    "assoc_performance_tests.html#msc">Associative-Container
+    Performance Tests::Observations::Mapping-Semantics
+    Considerations</a>.</p>
+
+<hr>
+    <h2><a name="pq" id="pq">Priority Queues</a></h2>
+
+    <h3><a name="pq_basic" id="pq_basic">Basic Use</a></h3>
+
+    <p><tt>pb_ds</tt>'s priority_queue container is
+    similar to the STL's in interface. For example:</p>
+    <pre>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt; p;
+
+p.push(2);
+p.push(4);
+p.push(1);
+
+assert(p.top() == 4);
+
+p.pop();
+
+assert(p.top() == 2);
+
+assert(p.size() == 2);
+assert(!p.empty());
+</pre>
+
+    <h3><a name="pq_policies" id="pq_policies">Configuring Priority
+    Queues</a></h3>
+
+    <p>As opposed to associative containers, priority queues have
+    relatively few configuration options. The priority queue is
+    parametrized as follows:</p>
+    <pre>
+<b>template</b>&lt;
+    <b>typename</b> Value_Type,
+    <b>typename</b> Cmp_Fn,
+    <b>typename</b> Tag,
+    <b>typename</b> Allocator&gt;
+<b>class</b> <a href="priority_queue.html">priority_queue</a>;
+</pre>
+
+    <p>The <tt>Value_Type</tt>, <tt>Cmp_Fn</tt>, and
+    <tt>Allocator</tt> parameters are the container's value type,
+    comparison-functor type, and allocator type, respectively;
+    these are very similar to the STL's priority queue. The
+    <tt>Tag</tt> parameter is different: there are a number of
+    pre-defined tag types corresponding to binary heaps, binomial
+    heaps, <i>etc.</i>, and <tt>Tag</tt> should be instantiated
+    by one of them. <a href=
+    "interface.html#ds_ts_pq">Interface::Data-Structure Tags and
+    Traits::Data Structure Tags::Priority-Queues</a> lists the
+    possible types, <a href="pq_design.html">Priority-Queue
+    Design</a> explains this further, and <a href=
+    "../../../../testsuite/ext/pb_ds/example/basic_priority_queue.cc"><tt>basic_priority_queue.cc</tt></a>
+    shows an example.</p>
+
+    <p>Note that as opposed to the STL's priority queue, <a href=
+    "priority_queue.html"><tt>priority_queue</tt></a> is not a
+    sequence-adapter; it is a regular container.</p>
+
+    <h3><a name="pq_ds_more_ops" id="pq_ds_more_ops">Supporting
+    More Operations</a></h3>
+
+    <p><a href="priority_queue.html"><tt>priority_queue</tt></a>'s
+    <tt>push</tt> method returns a point-type iterator, which can
+    be used for modifying or erasing arbitrary values. For
+    example:</p>
+    <pre>
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt; p;
+
+<a href=
+"priority_queue.html">priority_queue</a>&lt;<b>int</b>&gt;::point_iterator it = p.push(3);
+
+p.modify(it, 4);
+</pre>
+
+    <p>These types of operations are necessary for making priority
+    queues useful for different applications, especially graph
+    applications. <a href="pq_examples.html#xref">Priority-Queue
+    Examples::Cross-Referencing</a> gives some examples.</p>
+
+    <h3><a name="pq_ds_gen" id="pq_ds_gen">Determining Container
+    Attributes</a></h3>
+
+    <p>Similarly to <a href=
+    "assoc_container_traits.html"><tt>container_traits</tt></a> (described
+    in <a href="#assoc_ds_gen">Associative Containers::Determining
+    Containers' Attributes</a>), <a href=
+    "pq_container_traits.html"><tt>container_traits</tt></a> can be used to
+    statically determine priority-queues' attributes:</p>
+    <pre>
+<a href=
+"pq_container_traits.html">container_traits</a>&lt;C&gt;::container_category
+</pre>is one of a small number of predefined tag structures that
+identifies the underlying data structure, and
+    <pre>
+<a href=
+"pq_container_traits.html">container_traits</a>&lt;C&gt;::invalidation_guarantee
+</pre>
+
+    <p>is its invalidation guarantee. Invalidation guarantees are
+    especially important regarding priority queues, since in
+    <tt>pb_ds</tt>'s design, iterators are practically the only way
+    to manipulate them.</p>
+
+    <p><a href="pq_design.html#pq_traits">Design::Priority
+    Queues::Traits</a> discusses this further. <a href=
+    "pq_examples.html#generics">Priority-Queue
+    Examples::Generics</a> shows an example.</p>
+  </div>
+</body>
+</html>
diff --git a/libstdc++-v3/docs/html/ext/pb_ds/update_policy_cd.png b/libstdc++-v3/docs/html/ext/pb_ds/update_policy_cd.png
new file mode 100644
index 0000000000000000000000000000000000000000..115a751c3503e9ecbafeeae4f11a3f94f3ebc4a5
GIT binary patch
literal 8570
zcmd^lc{r5+`|pH`?38^8Aq+x=?0cDsY#EYeY!#(MmaN&AOvs?J?@KX+?9w1ccCwCS
z9kTEH?>#=9@Ar4kb*|qz*LAM*&pH1*=6Rm?`*q*%?RDSx>k)QGM~nI#+c^jXLVfF|
zx;_L#Vgr7!kduHb5BqXF_;c#HzLqNFQwIkD+>qI;+*W}=Feu6ctJC2AqV-Mv+YpGS
z00iO}2!ZT@M}Bh<i0c&yWZn`2xsd>YFhBiJr6&)X?%YyWF?2UyOe#Wgwq6MO3GISj
zYQT<Oyezqr@=Nb~W84{=G=CMu8?|^Uiz^qO+G@0^!eD4b3CZi=*J=L#R?fdOMh*84
zpSl^l)#r~`1nAZK7*#y+-hPo}+`l=au=BJ2Xp{OZ*+s}Ha%BjKJ^4+j?BCyXGHSor
z=fFccKM2{yr^yiHt>C|Rb*d1|C5^xBLiuI?=}ec)*U(-P#a+fjyth0{Mu+1hOB7Qj
zA}Dj7!u}t;>bl}zU0p5BLFc}%nb`F-d250VIi&Srg@HthT;6MEh4n01vVws?`*-gA
zw`6p%wNoSyDdw2Z_iVk6y3M0308ewRfo|(7s6mxe^+>3qU!SpiUhzH9b1KyK|I)M9
zw9&@K#zp3}=U&_px8Sn%%x+)!S)>)LqRHheo9rWNUgzcU`S(bL({vhMzcm{DUUa}+
z;41E;3l-)MFI<MgUzUuGo0s2^GCV8jaeJC(|7RF}e0<?xW@e^19oy67BH8SSvt{cH
zM0W={h1xP(HQpj`=jqy^^U#JC6%}0@iQOS!#|D%px?vWWy7{6ack|qZcgK}A*$F-i
zTU%R~%k-g-+pcG%mq}qIZ4g`EM9M^p9P8y%7;`okt|n6~kRnn~W1UZhCJY8Q=qep<
zFh>ayJ<<)!vgy1bNMCY92+v&T&C&gYTyz;AgxmYnrB}FU@Ow|s4Hq`)mwC;Z{m{^;
zNDt>hn+L~Ti^x4{6EUI?MS09$mu`%_3mj)v7_K{qtW<bz`r+2E?hGw)^O^)+rkCO)
zU<{g2K8?ahX__&YJ4yH-R*8+3L<J)}n+dH*S!vPd9i7m_2FU?S{&ozDg9KOT^h7Mo
zLdfX3on4W|$5l9jyMaXXBAQYei@i>E34Ne6cPp2jn>R~WE5!uOc+J7eth>@4UG-_6
zA^&T8$$3~3w>OI{BKVrVE|d2XQ@t?y6R(N)@zG)C7e|XPtMEat?~zROIM%LQXI7HX
zX~QM3w0GIu+9FbX&Ryo|t7F$4Hf(tL)U16kpRc^QxxL4>%_BLS)7#O*5L)|%tuZg2
z6hmdS_3ERxHlKoY5?lNtPCA)lgfy|67b#21W+bKt!F*_|&Et{W>V9i+{AR{Oqfbi1
z?anMdEn^|=-3=7AVzLQM`N0>zeAv1dm$v+`nW0%8xG|MnKv5JzZqeuuDvn*kW3%mJ
zdvj}_`$yxtJUF80eSxVa)VL{Pm7n4w+Th`qq&iLA`|j>-HnonNV7tk+TARjZgut~B
zgifQz1dKr$n$xrF5^8n_T2{3X=IG&G<T#zSSfbx%aNL#Jv-7)O?nhvgY#)m{)L~A~
z&44%$qe(Q;xFbfto$#9<;7#uN2PHmY)BSpKNp_9-@N70MXbwZhK@&N!-YuoB!;dbL
zPrSozf-OnrVY<%ihtN6wgHARMF|cN%>TN@h^9)7|hC-0C7p|&J86r(^u@sxp8qft+
zq!l00SQk~aL71(mu0Wp_6Q<BUH0U)ESml2X{E<h0e0<gqpl#x1p(w<F6t+<lkWpT0
z{r*z5{bO!gZbiqDub1#bjM)OT(}1U7`swT>p|;X#Y>StrlDl&+yITRPL8Qv-lVJKL
zO*ZuzFn{><cft@cq+@i-&}xeQ2U_&F|5d{;Ul8TT?Db>VwfZPt^jMH%1q~m%n%di!
zv%V0~tb59hOs77w`%42Knlr1n<Gu#eEg7QV%8mKJCVD7lG+7_%kI;E7G%c<H!PK1h
z7*2wx(qn3>s!B)*MIERYYD&*@x#jw*_a16?F1mc;^EoAPF7UKP_cL$r$M5x~!6Ao>
zSQ$(k{d}DtKHMLM?+;57I(&BThCql__qovNbQy_q-cwj-jV}r2Xk|X6kUs@RUikXn
z<B2!Q$1_hW0}J9Cd0E$W>BdJ#=hTOp*zy?f_gTb4KgP)$@tf*R?C-yn%?KBs9Ooan
z)ei0d;Elc%LMjTsL65UtrZ4=c1;Lo1MA6IwT@i@<kr=UuF<0Tjw$EZb31+5QzO~u$
zJ}_Sehe*bxdnRfzx+<Tk;+N4zg&A3hs?5j`gcwJ%$qXINWH8s|6j+JVsl8M3B(<Sg
zZzY*jVYhmnbM1UER|=5&+PY`?)05B7zj^2R^}3ypmNell+E$zK4%XS+T#u5(8tfA5
z%X--qB(Fi=_Qsi<$dCtZ8papyV%7+D^6GCJhe8WICi*B#^Lgnvv3<`~2n$vsJ%+{@
z_}*8WIfr)W;v<Bm-H^KQq<RS0K{Ns7#_{4JXnno{<3I7Mu}vA>E1K-MWZcaIucm@j
zeXV*b%96WG#Zh~0c_9%#j)c30=GjP^N2N@CYlLk33iK4yTBz+HQ@S7Rzg>&JfD@q0
zd`^OaGxvPvRE72iU$<x(K95UK_lz;tVPd9IVL`<jj0>6+cT>Z8(Co_DVH#ju5ti8R
zOk|*)sAqBoHCEEev2>FP)6Ue5Jye0NpJv9iGxruMs6tCMuUpmA;k;BdpzBRn9Z+<*
z!sy$B;#f(GJM=g&i66s!SV;#P#w|+F!4N!!mu`_`+S!Hz4^;uoh5z?qE}=o_*}>67
zDIF4Y<>sb+t3nY1HF~ixC@^rg!N{?_)fVn;J{~y&fmZ3@jf4@wKoxLBV`@(pp5n^*
zyuz!U6chxRD4xBM`x3m^=E)=_fb}7$YKQCz`XRQs)jZ$41`R~hHv~_e!b+;p5mY5X
z!xF!qBr33}sPr;vD?x|K-?yCf0l63iM(bn(hRi-EnAEBQ!L-wBc}9l;0HJpq{1gD-
z)<uFQF91ll?1_T{0BCe3w+8_5K;F{r0RX*$F;SU30Dyv@vlT>_c1D<IOb`IzkJ;d(
z2LO6k2-*w)AV#_8H5>rIyEDaQ0f6l9o8tQPz=NRJj?9YyfSfPsJ0PF-3%Z`M{s4d{
ze1qqde`ku4mbf+sS|m6paNkck2O#K>hKvl6&*gkPKA2UiHs(QtjG=dX+&AT8!Nyq<
zP7q(@sMy5pFQu|hWoV%ky>{+|Psa-C;%i^VW2!eONRoh6IZBo#0fCiov`RJZtGrnK
z-nQA!6u~9&`vJ;Yz(mxmpn_Hk>{Jh~7%mdq@_xw`c=kuwOy+%(pB?(0g*G(tt{v^Q
z!-Yr)a>%6NskHPdh0?xQSQvkA+o*rG+ZZrWP030lD45!sg^kIHYyAe__T&Q##3XU>
zQ6N>^THax2=NtFY%CD~h<Htwa)cZSBqD4AtR4$sp5Y+O^JzeF655D^&<M^vy2ZzhP
zPJ`9QUz(3u@;lX_8$@SB%-yRYr^2Sk#>Pm3UpSIrMxU*?4ZC8UbNt7jSJ313=J?Ry
zjCL`DT)4=6Vvz(4%QN&O2mMd|u_au*NRv)FN^jutemFB;Oc{bH3<)L1F;xrDrS5l7
z1tnPL1s>l2U*K}-aqr*1mv+JjG7{5i*C+7AqOEz5eiqenIR9E4saPJbS2ERTGE{cT
zn=*bpa9)|1s8ncyO^(w0Hrq-DcAA@;+w7xj$lVP>uYL&Ba<*31U}k>)k&W)9Hz;nU
z^1OI)i}?c(HH$xmx2oOecJjz14M6gsQ<Qv<Hh)^ovZgVS-2lh(#d)Y%lCCmx_s@{j
z!ZaH)FAslsSo>Mq_ZzIXPcJ+RWZDm`B4pFYZ}h80*w*atZ8}7xFRC}u;d%@|BRaIE
zbF$M){Y{}+Z^1b_-knXcA4%gS^91L0i$Un1kpE)VXY)@yXno1sGno-RSA-I0U;O;}
zGx@aVR$j%1{%lpcq^Wp+nDOmHbd-TqqXCljf-CPTCFXO9HmAaca={y;AMQb2y@k!f
z__bv(uuWGB0GBxxKcr|jc<xq@ABv%Ea{7<cCA8wL_;r$V2^3kg5fbaA%FVs%abcC&
zS$ZS_5~YG-UUPAVclIv5S5$psgb%8fm!pFXq54fPkQZrhXEQwYkp1?-nd`<QSM5||
z%mE-sVrJ#n0ecV$4+aHg5iOVe&aBe0>~hrRhQxgEpP;MrqCzI2Xmd~gyMjHUMiqU#
z;Y~fyf5=4Xh$)nAggZbn`I+{ZCmQIpNP>v1uIN-ue+EjvMJgI`w2JbLT=U&^Ug;rA
zl~81D&KYfjZ3&~9&xVjHFs!sqIDsQMBn8v`mA?Fr-qT8o>#}Fh-S8}%*3uhst8KHE
zb|%Ay{uu=s0k#OaJBrjsBF;0Bh&J6HPmJJ4@jZ&-Q4Fvj-AX<OGDSDaE_M;?)ao}A
zD{zw4$d5CLAZu7xZH-CMG97XGZFJ|y)^CZ-`k9H=+$MeTTAc+~<D%@gS1B&0^T-m!
z)_N{tIJ*s(t+U~F5sg2a8L@VWOrPJn-%X%R99N8&3Nr7oyV+Dn?jnS)f>mnlx0Ob`
zytky8M-OvV9~M|GC2NLujZb&QIeYX<DN$w$SNXZXc<og-FC@){&&KD}l@XRrxR5Ry
zoS)ox6kr5f*;7WWc{9fK?0fz09@0?HU86haWiE9Qe!i|ck7E`$pA+M!<hhdUSBIw?
zf0}z9m+=}szQD5F-^|aSHSMPJ$P~3~GOyDY<<Dl&H^%M{(qgau#fq`bDj4QZlq8L`
zh9xz|Y$XNqpyaYcz+_+jpG2|&k%j<KrC6xC)lopF{FA=<c)+$!e^$H%{I6l1vqi@4
zszIx%Iior+`5`*Uw90%y{=A7%BWChx;w1OO`Psepv`YqRKyJ_X3NYH}$J5t$9GN}A
zrR9b-EY#N9kXQ^<mo=P884FI1as%93NXzn<59gd&%f+$oBWz%i6nXy(;+)fm4*lvi
zjwzcFMVfHagQ{cViD>ax`|7UJul8~StoKx*3mM`6&HkV38!k0cfGfNk03in><|35i
zamC&|%_9RKDsIxN{B=Ln)?&4B<TUXa-ATzpY=~?<lTsH`c+Cm$dnkBA<>uf|tvC{t
z3@(_CK?Y#o=wJ3L(sCw=v2KAh_%EGTnFTLWO5n?h<3y4F7rb9}9(H|aBhKcdM+9O(
ziwsmjU+z&lt_+E7fJ>BXGdfw`BOQ~R5!~=CgjOp1jQ8*>2)kE#DxCd9zk&EKQn*x7
zRVxUX1_C(;;;+D{4Bh7N-lI7Yelm!g(s70L!o71UK(Bd#BKD1-02k}qFd_gGKUfis
zXGp4l<e)Apf3bM0_h}(~C+NkLAWIi(gbSWXKdHh0Ov}4B2F##&!)XdI^>RBzKd*@r
z;Sp~EJX2Gc1W|JW;*b;>n1;u}Tu~>t4PxY1MbS=m91BeoK<@x7zcADyN%WbC{6T8(
z(~4w42UP!pha%p&7r8r+lgO3=^v`XgKajq%xmnhM8m_OZV(S&NB??rZb&26YH${<?
zFuT(&-mEXQDkQ<>^f>cnyzoE>!nEhS6Q@ePm&ePO`)kuMUB>0*Wn6`q9#i_0^I~y5
zMutDBg)qOzRI0B}$8ZpbIxI+s^pN3dUU9eEh?vmnS7_MNj?Aj!DsbVtV%?=Eg&yw9
zV}&^w?$g0023i<@aJus9oma2z3o8o!(&4HBJ5^*+KXBpx&%*AM%=EivVU5DSa;w8X
z0scXVZ_?iq+$*>oe9frhTGC+l@FUR=JEUNFe!Wo!B8R&SOD}Rmj)Uc~I;ka9oCLaA
zI5p%!Z694ey<}l4fBm$uXWqmOO=HyjYwoeothm<sEJlq+l+@&UM7)&|R52$va$1yk
zLgZW}<vpm8qD`kUwE3t2r9+c8-eXa8{cTDn8%kmcERUQZ$j&U~<vDug_c&=Ht+3V^
z_HVdgqUh<^?l-#kdW#9W!88SV8pFm_31%<&(3sFi8z4}nD9yax%h6Q>5z12pE6HVF
zwWJK?B;@LcXT8RzA$6GV>+On>)T~RqT2h0MaBU#77N5#<L_S=7`|QdUG?MW3=|wbG
zqBYc2t$e1^jzfZd^$Na8_<j-cVOq)68;<k|?j7>_P#j7=ATi6l`Gr};g9qi0WOrqV
zt9(`GR}Er#m!+3x_7xWk&~Vt$hnH~kGIY3v?tH(f1jm~~3U{S_HiXgVk`)^-yEDL2
z=ECPh+Rs&*H|Kj|p^B60R`z~P`hv+HJ;(YfmwZU_D>!r<N}*aGn=>L_5*Hq*PP8qb
z-A83uSWw|vXU%C#nP3;z*KdmN54}tAo5yOp{Fcqt`Y9&Bbvwe=%Pr?XHM0pm$C>P&
zJy(l+cHi}W!2wBE>eGb&u-h6|N&D8(B!mlFgS0b^1wIeMM%anx<Q3WPhrjbyi#fnL
zvr|P*^W7R+-7==F35f2k=2N&Ce9a+0xEJwh{oeFkm1R7$bpL0B82%pBiNFdWvjZui
zy>iC66D{{o1O!=G<lcMl<b)-tq{1*$f>n0v?}UkCF}>KJ>rzH{+6(+9P9Ib^6_+@@
z#!^gvLI!j)w}HMZ_gCMw;OWXj)V<tZnruN~nNE&>72nG4`mBZTVVPV-HIbKG;_YRq
zK;H(k!Cz_ue^p{<hB;@uM5*%|=T17A^7|pm*;o%=ozRcnKZNs8!1pN`aqL$~99I&X
z3$m}Wdp(-d`xkA@zFN_`c6hM6?j&<@<%cwiOW}8cR>o3dZxEn6RbdrnvbPj*m3^>H
zz(%uQ`{_K~+@y=d$|UJ8GR|k@>6PHgnHcB>bp`%ho@C`^98HXH@rUQOd`aOcNj7>y
zx!)Qn*5r&o!yWv6RC;j-A5Af7k|bRD_pOv9k;t>KHPnh!(IXnUi|FrxdpqqcybJ72
zssUtnHYDs`Y>|`4l~}qV&%p9E6g*c@!8)|i={zMh1F#9`R!-cSg?IKD&Nu>|iz4_0
zfA_pwDf&l{kq$SS2w#pOCh@&UB{ds`f>EZeSc;SQ=sfP@uuX$06s-C0{U9TfaT10f
zguZ;K;O~2yn68Wdtcie@&rE(llQIzCOn(f**PnmAJG4;+VQgJ8n8%r`!mA88pRi;f
zT4*0P(&!_33e%p{x)DXKSTNN9{4!eMm#j*GpTy1BIrC~|;{=ldwee0mlTP7^pc5;L
z`mg>S()wA|Y`ilN58gCH!Yu=I1D@Fg=q{*KhWdh_y!EelK9XrT+d&W3Z*;P#dv&Hj
z>Vt1fsSlL4J+@Lx^h3;a*m$;_NilM^R8pG~-eF)J1CvG!L$_Rt?x%{hLl@GP|2j;x
z()mINQ$ek`y}dm-QRlfiPw347WXfeR?bTXPP>=<0?bzJh+}~aXk%RJGlFd2Hhropg
z6DQ7mG`S-nk`lirTqydoMRXc3BzLm74rj9leCpMvGT+axPPRCW*Cm~UF}%!2Q|Xkw
z$gT-Aqpsa`hCX-^ljkF4r7vwPDsLTX)}Nw1X}@+HX=_`uR#`&G<r<i3*S{`Z91CUa
zpj&WeePMp4P+A?2$3L1g4u7eb6Dv7(EhxOg<%rNLxX(SC|A{2W&a?ztc`hKUOpQi(
zrty)+1*1VR>UUkRA9ug$UO;ozd+kbkiHP2V!aU?$rErB$c2q3R+~y9?dU<L8QEgx`
zzVCT0JRv?&Vc^lDP?sn|(XBnZjr&ipx^~VUPyF~@s7TeDR+F@Mo@G13U@ZGLSKkMH
zag=F9b*o}^`jbb-4<{Z7Gu}P@3L)la?3~`uGF_#UdE-Vmtf=!Q`_;Mq>&3#@`?H;y
zF_(XCwx&r}{eWHx8HmEyCYubi4)u9oxc$~VC?&Z(A0By)w3G?gvu^PG_U^;d5+=K`
z>XL`F3Nv@sR$E9a#O!Ts{0BLt{1F2IkL^RDy(1~w-t}`Y)<s_=R7K}%<5Z5g@hCAb
zb10t^u3Y<j9rtuhteJ0?mycPxn(-wc9(4KL7wR;*Pe$n}b?l{VRlO}b?t$%jZ{!za
zMR?3$%w&zY@k1}Coua0Oo;f+esl^AMy_C33<xB@V-Uh)QQ*sy9O`x7QTgb`_gxRt@
zlh(bqD3Rr&pF-gh8YcKQzYcG2k1g>*Jk)~XI1D<lg0M|J!qh|L%_K^##BT>mHQcZO
z(kG-I?BwgpP_>BzmEw)IjIRyv+FCdaom%@5lZhK<*@^=e(QljtBFNdj258!j|M(ss
zZi6z@=Og25?^S$a`~r1!7Q$2%DQu#HGJ}VGx@YR^EjX9H6fP4b9Ju^?En`|aM0<l2
zv#~;dTD4KF-_eU616`i@Y9GXs=5=@nx|mk`n#VEgt*JQUUFR<<rH{j>f7LyGmqZU6
zN7)kR4;E%ib()K#@5!G=zz(4DQ6CQow%L5uxld~#AvrNrYM*6oZ|-xjvpV8b|M*Hl
z{Te1!4rMP_gC~9{!X?J`<bE&+_RD)BFC<^p$GE+&=MZu=ssox4_HF;E3I?h~S)Eqm
zX4}hEug&wbfu6FI?e4%!OQE6xT;Nda(EX-tY!BgMCxU^Y=<&Ope%pKm%~H!PBtdA>
z>MHKNbaot1N`Cq}_{w5vkhGtdBR6PR{yCPy!8%bsz<eZa^G}hqdNKoS{8O9L7}c~w
z;o38;ho?222)6S5a+fUm@WIa?Jic>u2Rc@D<jIU`i{A$9BIKI&195;E5w;NXisM&M
zdco?pV%RI;Q~6VD#-z+<?d@Tfvvn;T(e`a?@w1eAGiT=cwYzeHkLI+^!uk|qk3+U6
zSuh)~30j*uSbg)#NUFWG0G$o}5PVDzEw+c7|14jC_NQ&AulYb(EXDc(w*@7JqjTP-
z710A_)|(vd<ijm%(+rqyt`&@oq=%_FkXGo(W-N3s2`QnLf<>vT_;Qj3OrPL_r{24X
zQN7!;wCX&o5EE3!-3m&BTjPCnvfm{rb*CO*vdUcAJ>VWi&88&LK6zf|Ixn!+^0lYn
z<`KD;W5j0Mw<xTA+a9@?Z5sHRlW(B4coALjJIQfW+QWmRc3V4<)x<qgq%ILR*>{tt
zh~~b+I;$6aL3mPVW*B8dhl`$&F>nN7MOg;EW8g&tJ6gku$Ki6Sgpjcw-aAa6i&Nmr
zP-gi1)9^zlwMO60j>|2Xjn*F`#47@)rN)os9cvGm2njPZI4rZ;tP!^fm;;J)7%GxI
z7x#pf9L4Wk=z|ueBfVV~yhU3f?dWeNI$Tq<IsT&B)U<V1@L9m~99#e5`G$5$Hvy2q
z0Oe}$^Wfiza%e+>Oq7cya3U+UY5v%Unw_@b&Dd`x1LEXxPuw%I1e2&qmrs5FW5i4_
z`4mIC&&q53HU9e?F^Iw6mb=(;oU%ht%1D$J&b}Q7uveO?qA3Dy6u@j6p^nGK5C0us
z+o8|xC2Or&U&L_$M=H<NscUY>QUE3ObC$>?`IS<RmN45vPn})x`H;f8oi6c8ZfTXe
zKzn1eq@zN4AQ)w!ift&IrO)I(FQc6msA@6%pZyR5RKjXDjj0{;42f4L*^wqF(X`W8
zNvk^`;W*=ZH~xE|$smZ!jub@HfVO|5f)dag_5h55#W47Lph{9dzoZq@bs+!UQ>7#d
z%#!K?RP%*m(G;b{Jm}3q22*7y<C!=ffNbv?22Tj0#uT=oyNCnM{Z9i10r;=0-fL4~
zzuQjvj~~oPgVO$H!f*B$go$q<ml(*@l@p7t@b^pdI1j6<VaV*qCu!nbA}HpcZ>(^h
z<ZIV~B=zJ~qUK2&m}(Eo<Ie7HZYK=~13`94VaMiwlFB868ec(+cKn~u{*0g!6i9eT
zOzI$Ho<M!t;!yAkIcazsRL<`$v+4ggj2)i|QMaTrSnB2j{~Q6irJ<w#N!9Yze*lpT
BxX}Or

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/docs/html/ext/pb_ds/update_seq_diagram.png b/libstdc++-v3/docs/html/ext/pb_ds/update_seq_diagram.png
new file mode 100644
index 0000000000000000000000000000000000000000..880a50edf8ed0870e04434fdb736ec600b65e0fd
GIT binary patch
literal 10789
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
JU)dt?KL9+a4r>4a

literal 0
HcmV?d00001

diff --git a/libstdc++-v3/include/Makefile.am b/libstdc++-v3/include/Makefile.am
index 9d9e34b2faa4..23a4120fda5b 100644
--- a/libstdc++-v3/include/Makefile.am
+++ b/libstdc++-v3/include/Makefile.am
@@ -198,247 +198,331 @@ backward_headers = \
 	${backward_srcdir}/backward_warning.h
 
 
-assoc_srcdir = ${glibcxx_srcdir}/include/ext/pb_assoc
-assoc_builddir = ./ext/pb_assoc
+pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds
+pb_builddir = ./ext/pb_ds
 
-assoc_subdirs = \
-	${assoc_builddir}/detail \
-	${assoc_builddir}/detail/tree_assoc_cntnr \
-	${assoc_builddir}/detail/basic_assoc_cntnr \
-	${assoc_builddir}/detail/splay_tree_ \
-	${assoc_builddir}/detail/typelist \
-	${assoc_builddir}/detail/basic_hash_assoc_cntnr \
-	${assoc_builddir}/detail/cc_ht_map_ \
-	${assoc_builddir}/detail/gp_ht_map_ \
-	${assoc_builddir}/detail/tree_policy \
-	${assoc_builddir}/detail/resize_policy \
-	${assoc_builddir}/detail/bin_search_tree_ \
-	${assoc_builddir}/detail/basic_tree_assoc_cntnr \
-	${assoc_builddir}/detail/cc_hash_assoc_cntnr \
-	${assoc_builddir}/detail/value_type_adapter \
-	${assoc_builddir}/detail/lu_policy \
-	${assoc_builddir}/detail/gp_hash_assoc_cntnr \
-	${assoc_builddir}/detail/unordered_iterator \
-	${assoc_builddir}/detail/ov_tree_map_ \
-	${assoc_builddir}/detail/lu_assoc_cntnr \
-	${assoc_builddir}/detail/hash_fn \
-	${assoc_builddir}/detail/eq_fn \
-	${assoc_builddir}/detail/rb_tree_map_ \
-	${assoc_builddir}/detail/lu_map_
+pb_subdirs = \
+	${pb_builddir}/detail \
+	${pb_builddir}/detail/pairing_heap_ \
+	${pb_builddir}/detail/splay_tree_ \
+	${pb_builddir}/detail/list_update_map_ \
+	${pb_builddir}/detail/typelist \
+	${pb_builddir}/detail/basic_tree_policy \
+	${pb_builddir}/detail/trie_policy \
+	${pb_builddir}/detail/gp_hash_table_map_ \
+	${pb_builddir}/detail/tree_policy \
+	${pb_builddir}/detail/binomial_heap_base_ \
+	${pb_builddir}/detail/resize_policy \
+	${pb_builddir}/detail/bin_search_tree_ \
+	${pb_builddir}/detail/binomial_heap_ \
+	${pb_builddir}/detail/thin_heap_ \
+	${pb_builddir}/detail/pat_trie_ \
+	${pb_builddir}/detail/cc_hash_table_map_ \
+	${pb_builddir}/detail/rc_binomial_heap_ \
+	${pb_builddir}/detail/left_child_next_sibling_heap_ \
+	${pb_builddir}/detail/unordered_iterator \
+	${pb_builddir}/detail/binary_heap_ \
+	${pb_builddir}/detail/ov_tree_map_ \
+	${pb_builddir}/detail/hash_fn \
+	${pb_builddir}/detail/eq_fn \
+	${pb_builddir}/detail/rb_tree_map_ \
+	${pb_builddir}/detail/list_update_policy
 
 # The ability for make and the underlying host to deal with this
 # unweildy list as one entire entity is not a sure thing, and may
-# cause build errors. Thus, split one list into five smaller ones.
-assoc_headers1 = \
-	${assoc_srcdir}/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/type_utils.hpp \
-	${assoc_srcdir}/detail/order_statistics_imp.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/d_find_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/extract_key.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/d_extract_key.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/splay_tree_.hpp \
-	${assoc_srcdir}/detail/splay_tree_/node.hpp \
-	${assoc_srcdir}/detail/splay_tree_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/splay_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_transform.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_apply.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_filter.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_at_index.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_contains.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_append.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_typelist_append.hpp \
-	${assoc_srcdir}/detail/ds_trait_imp.hpp \
-	${assoc_srcdir}/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp 
+# cause build errors. Thus, split one list into many smaller
+# mini-lists, with the maximum size per mini-list of no more than 42.
 
-assoc_headers2 = \
-	${assoc_srcdir}/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/find_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/resize_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/cmp_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/entry_list_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/cc_ht_map_.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/standard_policies.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/size_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/find_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/resize_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/gp_ht_map_.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/iterator_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp 
+pb_headers1 = \
+	${pb_srcdir}/assoc_container.hpp \
+	${pb_srcdir}/exception.hpp \
+	${pb_srcdir}/hash_policy.hpp \
+	${pb_srcdir}/list_update_policy.hpp \
+	${pb_srcdir}/priority_queue.hpp \
+	${pb_srcdir}/tag_and_trait.hpp \
+	${pb_srcdir}/tree_policy.hpp \
+	${pb_srcdir}/trie_policy.hpp \
+	${pb_srcdir}/detail/basic_tree_policy/basic_tree_policy_base.hpp \
+	${pb_srcdir}/detail/basic_tree_policy/null_node_metadata.hpp \
+	${pb_srcdir}/detail/basic_tree_policy/traits.hpp \
+	${pb_srcdir}/detail/basic_types.hpp \
+	${pb_srcdir}/detail/binary_heap_/binary_heap_.hpp \
+	${pb_srcdir}/detail/binary_heap_/const_iterator.hpp \
+	${pb_srcdir}/detail/binary_heap_/const_point_iterator.hpp \
+	${pb_srcdir}/detail/binary_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/entry_cmp.hpp \
+	${pb_srcdir}/detail/binary_heap_/entry_pred.hpp \
+	${pb_srcdir}/detail/binary_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/resize_policy.hpp \
+	${pb_srcdir}/detail/binary_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/binomial_heap_base_.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_/binomial_heap_.hpp \
+	${pb_srcdir}/detail/binomial_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp 
 
-assoc_headers3 = \
-	${assoc_srcdir}/detail/tree_policy/order_statistics_imp.hpp \
-	${assoc_srcdir}/detail/tree_policy/null_node_updator_imp.hpp \
-	${assoc_srcdir}/detail/types_traits.hpp \
-	${assoc_srcdir}/detail/mapping_level_imp.hpp \
-	${assoc_srcdir}/detail/map_debug_base.hpp \
-	${assoc_srcdir}/detail/resize_policy/ht_prime_size_policy_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_prime_size_policy_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/size_base.hpp \
-	${assoc_srcdir}/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_exponential_size_policy_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_standard_resize_policy_imp.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/find_iterators.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/node_iterators.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/rotate_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/r_erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp 
+pb_headers2 = \
+	${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/node_iterators.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/point_iterators.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/r_erase_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/rotate_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/traits.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/cc_ht_map_.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/cmp_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/entry_list_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/resize_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp 
 
-assoc_headers4 = \
-	${assoc_srcdir}/detail/assoc_cntnr_base.hpp \
-	${assoc_srcdir}/detail/ms_category_imp.hpp \
-	${assoc_srcdir}/detail/hash_types_traits.hpp \
-	${assoc_srcdir}/detail/typelist.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/invalidation_guarantee_selector.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/iterator.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/constructor_destructor_and_related.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/value_type_traits.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/ref_pair.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/it_value_type_traits.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/erase_if_pred.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/value_type_adapter.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/iterator_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_policy/mtf_lu_policy_imp.hpp \
-	${assoc_srcdir}/detail/lu_policy/counter_lu_policy_imp.hpp \
-	${assoc_srcdir}/detail/lu_policy/counter_lu_metadata_imp.hpp \
-	${assoc_srcdir}/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/find_iterator.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/iterator.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/const_iterator.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/const_find_iterator.hpp \
-	${assoc_srcdir}/detail/standard_policies.hpp \
-	${assoc_srcdir}/detail/standard_sizes.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/node_iterators.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/cond_dtor.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+pb_headers3 = \
+	${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/cond_dealtor.hpp \
+	${pb_srcdir}/detail/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/container_base_dispatch.hpp \
+	${pb_srcdir}/detail/eq_fn/eq_by_less.hpp \
+	${pb_srcdir}/detail/eq_fn/hash_eq_fn.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/gp_ht_map_.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/iterator_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/resize_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/standard_policies.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/hash_fn/direct_mask_range_hashing_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/direct_mod_range_hashing_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/linear_probe_fn_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/mask_based_range_hashing.hpp \
+	${pb_srcdir}/detail/hash_fn/mod_based_range_hashing.hpp \
+	${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \
+	${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp 
+
+pb_headers4 = \
+	${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/sample_ranged_hash_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/sample_ranged_probe_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/sample_range_hashing.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/const_iterator.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/const_point_iterator.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/node.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/null_metadata.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/constructor_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/entry_metadata_base.hpp \
+	${pb_srcdir}/detail/list_update_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/lu_map_.hpp \
+	${pb_srcdir}/detail/list_update_map_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_policy/counter_lu_metadata.hpp \
+	${pb_srcdir}/detail/list_update_policy/counter_lu_policy_imp.hpp \
+	${pb_srcdir}/detail/list_update_policy/mtf_lu_policy_imp.hpp \
+	${pb_srcdir}/detail/list_update_policy/sample_update_policy.hpp \
+	${pb_srcdir}/detail/map_debug_base.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/cond_dtor.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp 
+
+pb_headers5 = \
+	${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/traits.hpp \
+	${pb_srcdir}/detail/pairing_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/pairing_heap_.hpp \
+	${pb_srcdir}/detail/pairing_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/child_iterator.hpp \
+	${pb_srcdir}/detail/pat_trie_/cond_dtor_entry_dealtor.hpp \
+	${pb_srcdir}/detail/pat_trie_/const_child_iterator.hpp \
+	${pb_srcdir}/detail/pat_trie_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/head.hpp \
+	${pb_srcdir}/detail/pat_trie_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/insert_join_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/internal_node.hpp \
+	${pb_srcdir}/detail/pat_trie_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/leaf.hpp \
+	${pb_srcdir}/detail/pat_trie_/node_base.hpp \
+	${pb_srcdir}/detail/pat_trie_/node_iterators.hpp \
+	${pb_srcdir}/detail/pat_trie_/node_metadata_base.hpp \
+	${pb_srcdir}/detail/pat_trie_/pat_trie_.hpp \
+	${pb_srcdir}/detail/pat_trie_/point_iterators.hpp \
+	${pb_srcdir}/detail/pat_trie_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/r_erase_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/rotate_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/split_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/split_join_branch_bag.hpp \
+	${pb_srcdir}/detail/pat_trie_/synth_e_access_traits.hpp \
+	${pb_srcdir}/detail/pat_trie_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/traits.hpp \
+	${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \
+	${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp 
+
+pb_headers6 = \
+	${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/node.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/rb_tree_.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/traits.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/rc_binomial_heap_.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/rc.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_exponential_size_policy_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_prime_size_policy_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_standard_resize_policy_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/sample_resize_policy.hpp \
+	${pb_srcdir}/detail/resize_policy/sample_resize_trigger.hpp \
+	${pb_srcdir}/detail/resize_policy/sample_size_policy.hpp \
+	${pb_srcdir}/detail/splay_tree_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/node.hpp \
+	${pb_srcdir}/detail/splay_tree_/splay_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/splay_tree_.hpp \
+	${pb_srcdir}/detail/splay_tree_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/traits.hpp \
+	${pb_srcdir}/detail/standard_policies.hpp \
+	${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp 
+
+pb_headers7 = \
+	${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/thin_heap_.hpp \
+	${pb_srcdir}/detail/thin_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/tree_policy/node_metadata_selector.hpp \
+	${pb_srcdir}/detail/tree_policy/null_node_update_imp.hpp \
+	${pb_srcdir}/detail/tree_policy/order_statistics_imp.hpp \
+	${pb_srcdir}/detail/tree_policy/sample_tree_node_update.hpp \
+	${pb_srcdir}/detail/tree_trace_base.hpp \
+	${pb_srcdir}/detail/trie_policy/node_metadata_selector.hpp \
+	${pb_srcdir}/detail/trie_policy/null_node_update_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/order_statistics_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/prefix_search_node_update_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/sample_trie_e_access_traits.hpp \
+	${pb_srcdir}/detail/trie_policy/sample_trie_node_update.hpp \
+	${pb_srcdir}/detail/trie_policy/string_trie_e_access_traits_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/trie_policy_base.hpp \
+	${pb_srcdir}/detail/typelist_assoc_container.hpp \
+	${pb_srcdir}/detail/typelist.hpp \
+	${pb_srcdir}/detail/typelist/typelist_append.hpp \
+	${pb_srcdir}/detail/typelist/typelist_apply.hpp \
+	${pb_srcdir}/detail/typelist/typelist_assoc_container_find.hpp \
+	${pb_srcdir}/detail/typelist/typelist_at_index.hpp \
+	${pb_srcdir}/detail/typelist/typelist_contains.hpp \
+	${pb_srcdir}/detail/typelist/typelist_filter.hpp \
+	${pb_srcdir}/detail/typelist/typelist_flatten.hpp \
+	${pb_srcdir}/detail/typelist/typelist_transform.hpp \
+	${pb_srcdir}/detail/typelist/typelist_typelist_append.hpp \
+	${pb_srcdir}/detail/types_traits.hpp \
+	${pb_srcdir}/detail/type_utils.hpp \
+	${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \
+	${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \
+	${pb_srcdir}/detail/unordered_iterator/iterator.hpp \
+	${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp 
 
-assoc_headers5 = \
-	${assoc_srcdir}/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/hash_fn/linear_probe_fn_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/mod_based_range_hashing.hpp \
-	${assoc_srcdir}/detail/hash_fn/direct_mod_range_hashing_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/probe_fn_base.hpp \
-	${assoc_srcdir}/detail/hash_fn/ranged_probe_fn.hpp \
-	${assoc_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/direct_mask_range_hashing_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \
-	${assoc_srcdir}/detail/hash_fn/mask_based_range_hashing.hpp \
-	${assoc_srcdir}/detail/eq_fn/eq_by_less.hpp \
-	${assoc_srcdir}/detail/eq_fn/hash_eq_fn.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/node.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/rb_tree_.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/lu_map_.hpp \
-	${assoc_srcdir}/detail/lu_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/ms_trait_imp.hpp \
-	${assoc_srcdir}/detail/cond_dealtor.hpp \
-	${assoc_srcdir}/hash_policy.hpp \
-	${assoc_srcdir}/trivial_iterator_def.hpp \
-	${assoc_srcdir}/ds_trait.hpp \
-	${assoc_srcdir}/exception.hpp \
-	${assoc_srcdir}/tree_policy.hpp \
-	${assoc_srcdir}/lu_policy.hpp \
-	${assoc_srcdir}/ms_trait.hpp \
-	${assoc_srcdir}/assoc_cntnr.hpp \
-	${assoc_srcdir}/data_type.hpp 
 
 
 ext_srcdir = ${glibcxx_srcdir}/include/ext
@@ -696,7 +780,7 @@ endif
 # CLEANFILES and all-local are kept up-to-date.
 allstamped = \
 	stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
-	stamp-backward stamp-ext stamp-assoc stamp-tr1 stamp-debug stamp-host
+	stamp-backward stamp-ext stamp-pb stamp-tr1 stamp-debug stamp-host
 
 # List of all files that are created by explicit building, editing, or
 # catenation.
@@ -777,42 +861,54 @@ stamp-ext: ${ext_headers}
 
 # Have to deal with nested include directories, gah! Strip off source
 # directory before making the link.
-# XXX check  ${assoc_headers}
-stamp-assoc:
-	@if [ ! -d "${assoc_builddir}" ]; then \
-	    mkdir -p ${assoc_subdirs} ;\
+# XXX check  ${pb_headers}
+stamp-pb:
+	@if [ ! -d "${pb_builddir}" ]; then \
+	    mkdir -p ${pb_subdirs} ;\
 	fi 
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers1}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers1}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
+		$(LN_S) $$h $${build_name} || true ;\
+	      done ;\
+	fi
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers2}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
+		$(LN_S) $$h $${build_name} || true ;\
+	      done ;\
+	fi
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers3}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers2}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers4}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers3}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers5}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers4}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers6}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers5}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers7}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	$(STAMP) stamp-assoc
+	$(STAMP) stamp-pb
 
 stamp-tr1: ${tr1_headers}
 	@if [ ! -d "${tr1_builddir}" ]; then \
@@ -981,28 +1077,36 @@ install-headers:
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir}
 	for file in ${ext_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done
-	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${assoc_builddir}
-	for dir in ${assoc_subdirs}; do \
+	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pb_builddir}
+	for dir in ${pb_subdirs}; do \
 	  $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/$${dir} ; done
-	for file in ${assoc_headers1}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers1}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
+	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
+	for file in ${pb_headers2}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
+	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
+	for file in ${pb_headers3}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers2}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers4}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers3}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers5}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers4}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers6}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers5}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers7}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr1_builddir}
 	for file in ${tr1_headers}; do \
diff --git a/libstdc++-v3/include/Makefile.in b/libstdc++-v3/include/Makefile.in
index b13053096374..d389b1d17008 100644
--- a/libstdc++-v3/include/Makefile.in
+++ b/libstdc++-v3/include/Makefile.in
@@ -419,247 +419,329 @@ backward_headers = \
 	${backward_srcdir}/strstream \
 	${backward_srcdir}/backward_warning.h
 
-assoc_srcdir = ${glibcxx_srcdir}/include/ext/pb_assoc
-assoc_builddir = ./ext/pb_assoc
-assoc_subdirs = \
-	${assoc_builddir}/detail \
-	${assoc_builddir}/detail/tree_assoc_cntnr \
-	${assoc_builddir}/detail/basic_assoc_cntnr \
-	${assoc_builddir}/detail/splay_tree_ \
-	${assoc_builddir}/detail/typelist \
-	${assoc_builddir}/detail/basic_hash_assoc_cntnr \
-	${assoc_builddir}/detail/cc_ht_map_ \
-	${assoc_builddir}/detail/gp_ht_map_ \
-	${assoc_builddir}/detail/tree_policy \
-	${assoc_builddir}/detail/resize_policy \
-	${assoc_builddir}/detail/bin_search_tree_ \
-	${assoc_builddir}/detail/basic_tree_assoc_cntnr \
-	${assoc_builddir}/detail/cc_hash_assoc_cntnr \
-	${assoc_builddir}/detail/value_type_adapter \
-	${assoc_builddir}/detail/lu_policy \
-	${assoc_builddir}/detail/gp_hash_assoc_cntnr \
-	${assoc_builddir}/detail/unordered_iterator \
-	${assoc_builddir}/detail/ov_tree_map_ \
-	${assoc_builddir}/detail/lu_assoc_cntnr \
-	${assoc_builddir}/detail/hash_fn \
-	${assoc_builddir}/detail/eq_fn \
-	${assoc_builddir}/detail/rb_tree_map_ \
-	${assoc_builddir}/detail/lu_map_
+pb_srcdir = ${glibcxx_srcdir}/include/ext/pb_ds
+pb_builddir = ./ext/pb_ds
+pb_subdirs = \
+	${pb_builddir}/detail \
+	${pb_builddir}/detail/pairing_heap_ \
+	${pb_builddir}/detail/splay_tree_ \
+	${pb_builddir}/detail/list_update_map_ \
+	${pb_builddir}/detail/typelist \
+	${pb_builddir}/detail/basic_tree_policy \
+	${pb_builddir}/detail/trie_policy \
+	${pb_builddir}/detail/gp_hash_table_map_ \
+	${pb_builddir}/detail/tree_policy \
+	${pb_builddir}/detail/binomial_heap_base_ \
+	${pb_builddir}/detail/resize_policy \
+	${pb_builddir}/detail/bin_search_tree_ \
+	${pb_builddir}/detail/binomial_heap_ \
+	${pb_builddir}/detail/thin_heap_ \
+	${pb_builddir}/detail/pat_trie_ \
+	${pb_builddir}/detail/cc_hash_table_map_ \
+	${pb_builddir}/detail/rc_binomial_heap_ \
+	${pb_builddir}/detail/left_child_next_sibling_heap_ \
+	${pb_builddir}/detail/unordered_iterator \
+	${pb_builddir}/detail/binary_heap_ \
+	${pb_builddir}/detail/ov_tree_map_ \
+	${pb_builddir}/detail/hash_fn \
+	${pb_builddir}/detail/eq_fn \
+	${pb_builddir}/detail/rb_tree_map_ \
+	${pb_builddir}/detail/list_update_policy
 
 
 # The ability for make and the underlying host to deal with this
 # unweildy list as one entire entity is not a sure thing, and may
-# cause build errors. Thus, split one list into five smaller ones.
-assoc_headers1 = \
-	${assoc_srcdir}/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/type_utils.hpp \
-	${assoc_srcdir}/detail/order_statistics_imp.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/d_find_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/extract_key.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/d_extract_key.hpp \
-	${assoc_srcdir}/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/splay_tree_.hpp \
-	${assoc_srcdir}/detail/splay_tree_/node.hpp \
-	${assoc_srcdir}/detail/splay_tree_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/splay_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/splay_tree_/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_transform.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_apply.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_filter.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_at_index.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_contains.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_append.hpp \
-	${assoc_srcdir}/detail/typelist/typelist_typelist_append.hpp \
-	${assoc_srcdir}/detail/ds_trait_imp.hpp \
-	${assoc_srcdir}/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp 
-
-assoc_headers2 = \
-	${assoc_srcdir}/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/find_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/resize_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/cmp_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/entry_list_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/cc_ht_map_.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/standard_policies.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/size_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/find_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/resize_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/gp_ht_map_.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/iterator_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp \
-	${assoc_srcdir}/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp 
-
-assoc_headers3 = \
-	${assoc_srcdir}/detail/tree_policy/order_statistics_imp.hpp \
-	${assoc_srcdir}/detail/tree_policy/null_node_updator_imp.hpp \
-	${assoc_srcdir}/detail/types_traits.hpp \
-	${assoc_srcdir}/detail/mapping_level_imp.hpp \
-	${assoc_srcdir}/detail/map_debug_base.hpp \
-	${assoc_srcdir}/detail/resize_policy/ht_prime_size_policy_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_prime_size_policy_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/size_base.hpp \
-	${assoc_srcdir}/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_exponential_size_policy_imp.hpp \
-	${assoc_srcdir}/detail/resize_policy/hash_standard_resize_policy_imp.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/find_iterators.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/node_iterators.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/rotate_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/r_erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp \
-	${assoc_srcdir}/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp 
-
-assoc_headers4 = \
-	${assoc_srcdir}/detail/assoc_cntnr_base.hpp \
-	${assoc_srcdir}/detail/ms_category_imp.hpp \
-	${assoc_srcdir}/detail/hash_types_traits.hpp \
-	${assoc_srcdir}/detail/typelist.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/invalidation_guarantee_selector.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/iterator.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/constructor_destructor_and_related.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/value_type_traits.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/ref_pair.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/it_value_type_traits.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/erase_if_pred.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/value_type_adapter.hpp \
-	${assoc_srcdir}/detail/value_type_adapter/iterator_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_policy/mtf_lu_policy_imp.hpp \
-	${assoc_srcdir}/detail/lu_policy/counter_lu_policy_imp.hpp \
-	${assoc_srcdir}/detail/lu_policy/counter_lu_metadata_imp.hpp \
-	${assoc_srcdir}/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/find_iterator.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/iterator.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/const_iterator.hpp \
-	${assoc_srcdir}/detail/unordered_iterator/const_find_iterator.hpp \
-	${assoc_srcdir}/detail/standard_policies.hpp \
-	${assoc_srcdir}/detail/standard_sizes.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/node_iterators.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/cond_dtor.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-
-assoc_headers5 = \
-	${assoc_srcdir}/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/hash_fn/linear_probe_fn_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/mod_based_range_hashing.hpp \
-	${assoc_srcdir}/detail/hash_fn/direct_mod_range_hashing_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/probe_fn_base.hpp \
-	${assoc_srcdir}/detail/hash_fn/ranged_probe_fn.hpp \
-	${assoc_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/direct_mask_range_hashing_imp.hpp \
-	${assoc_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \
-	${assoc_srcdir}/detail/hash_fn/mask_based_range_hashing.hpp \
-	${assoc_srcdir}/detail/eq_fn/eq_by_less.hpp \
-	${assoc_srcdir}/detail/eq_fn/hash_eq_fn.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/node.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/split_join_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/rb_tree_.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/lu_map_.hpp \
-	${assoc_srcdir}/detail/lu_map_/erase_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/policy_access_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/insert_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/find_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/constructor_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/info_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/iterators_fn_imps.hpp \
-	${assoc_srcdir}/detail/lu_map_/debug_fn_imps.hpp \
-	${assoc_srcdir}/detail/constructors_destructor_fn_imps.hpp \
-	${assoc_srcdir}/detail/ms_trait_imp.hpp \
-	${assoc_srcdir}/detail/cond_dealtor.hpp \
-	${assoc_srcdir}/hash_policy.hpp \
-	${assoc_srcdir}/trivial_iterator_def.hpp \
-	${assoc_srcdir}/ds_trait.hpp \
-	${assoc_srcdir}/exception.hpp \
-	${assoc_srcdir}/tree_policy.hpp \
-	${assoc_srcdir}/lu_policy.hpp \
-	${assoc_srcdir}/ms_trait.hpp \
-	${assoc_srcdir}/assoc_cntnr.hpp \
-	${assoc_srcdir}/data_type.hpp 
+# cause build errors. Thus, split one list into many smaller
+# mini-lists, with the maximum size per mini-list of no more than 42.
+pb_headers1 = \
+	${pb_srcdir}/assoc_container.hpp \
+	${pb_srcdir}/exception.hpp \
+	${pb_srcdir}/hash_policy.hpp \
+	${pb_srcdir}/list_update_policy.hpp \
+	${pb_srcdir}/priority_queue.hpp \
+	${pb_srcdir}/tag_and_trait.hpp \
+	${pb_srcdir}/tree_policy.hpp \
+	${pb_srcdir}/trie_policy.hpp \
+	${pb_srcdir}/detail/basic_tree_policy/basic_tree_policy_base.hpp \
+	${pb_srcdir}/detail/basic_tree_policy/null_node_metadata.hpp \
+	${pb_srcdir}/detail/basic_tree_policy/traits.hpp \
+	${pb_srcdir}/detail/basic_types.hpp \
+	${pb_srcdir}/detail/binary_heap_/binary_heap_.hpp \
+	${pb_srcdir}/detail/binary_heap_/const_iterator.hpp \
+	${pb_srcdir}/detail/binary_heap_/const_point_iterator.hpp \
+	${pb_srcdir}/detail/binary_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/entry_cmp.hpp \
+	${pb_srcdir}/detail/binary_heap_/entry_pred.hpp \
+	${pb_srcdir}/detail/binary_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/resize_policy.hpp \
+	${pb_srcdir}/detail/binary_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/binary_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/binomial_heap_base_.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_base_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_/binomial_heap_.hpp \
+	${pb_srcdir}/detail/binomial_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/binomial_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/bin_search_tree_.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp 
+
+pb_headers2 = \
+	${pb_srcdir}/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/node_iterators.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/point_iterators.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/r_erase_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/rotate_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/bin_search_tree_/traits.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/cc_ht_map_.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/cmp_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/entry_list_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/resize_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/size_fn_imps.hpp \
+	${pb_srcdir}/detail/cc_hash_table_map_/standard_policies.hpp 
+
+pb_headers3 = \
+	${pb_srcdir}/detail/cc_hash_table_map_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/cond_dealtor.hpp \
+	${pb_srcdir}/detail/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/container_base_dispatch.hpp \
+	${pb_srcdir}/detail/eq_fn/eq_by_less.hpp \
+	${pb_srcdir}/detail/eq_fn/hash_eq_fn.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/gp_ht_map_.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/iterator_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/resize_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/standard_policies.hpp \
+	${pb_srcdir}/detail/gp_hash_table_map_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/hash_fn/direct_mask_range_hashing_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/direct_mod_range_hashing_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/linear_probe_fn_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/mask_based_range_hashing.hpp \
+	${pb_srcdir}/detail/hash_fn/mod_based_range_hashing.hpp \
+	${pb_srcdir}/detail/hash_fn/probe_fn_base.hpp \
+	${pb_srcdir}/detail/hash_fn/quadratic_probe_fn_imp.hpp \
+	${pb_srcdir}/detail/hash_fn/ranged_hash_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/ranged_probe_fn.hpp 
+
+pb_headers4 = \
+	${pb_srcdir}/detail/hash_fn/sample_probe_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/sample_ranged_hash_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/sample_ranged_probe_fn.hpp \
+	${pb_srcdir}/detail/hash_fn/sample_range_hashing.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/const_iterator.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/const_point_iterator.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/node.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/null_metadata.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/constructor_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/entry_metadata_base.hpp \
+	${pb_srcdir}/detail/list_update_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_map_/lu_map_.hpp \
+	${pb_srcdir}/detail/list_update_map_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/list_update_policy/counter_lu_metadata.hpp \
+	${pb_srcdir}/detail/list_update_policy/counter_lu_policy_imp.hpp \
+	${pb_srcdir}/detail/list_update_policy/mtf_lu_policy_imp.hpp \
+	${pb_srcdir}/detail/list_update_policy/sample_update_policy.hpp \
+	${pb_srcdir}/detail/map_debug_base.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/cond_dtor.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/node_iterators.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/ov_tree_map_.hpp 
+
+pb_headers5 = \
+	${pb_srcdir}/detail/ov_tree_map_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/ov_tree_map_/traits.hpp \
+	${pb_srcdir}/detail/pairing_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/pairing_heap_/pairing_heap_.hpp \
+	${pb_srcdir}/detail/pairing_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/child_iterator.hpp \
+	${pb_srcdir}/detail/pat_trie_/cond_dtor_entry_dealtor.hpp \
+	${pb_srcdir}/detail/pat_trie_/const_child_iterator.hpp \
+	${pb_srcdir}/detail/pat_trie_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/head.hpp \
+	${pb_srcdir}/detail/pat_trie_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/insert_join_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/internal_node.hpp \
+	${pb_srcdir}/detail/pat_trie_/iterators_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/leaf.hpp \
+	${pb_srcdir}/detail/pat_trie_/node_base.hpp \
+	${pb_srcdir}/detail/pat_trie_/node_iterators.hpp \
+	${pb_srcdir}/detail/pat_trie_/node_metadata_base.hpp \
+	${pb_srcdir}/detail/pat_trie_/pat_trie_.hpp \
+	${pb_srcdir}/detail/pat_trie_/point_iterators.hpp \
+	${pb_srcdir}/detail/pat_trie_/policy_access_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/r_erase_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/rotate_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/split_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/split_join_branch_bag.hpp \
+	${pb_srcdir}/detail/pat_trie_/synth_e_access_traits.hpp \
+	${pb_srcdir}/detail/pat_trie_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/pat_trie_/traits.hpp \
+	${pb_srcdir}/detail/pat_trie_/update_fn_imps.hpp \
+	${pb_srcdir}/detail/priority_queue_base_dispatch.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/debug_fn_imps.hpp 
+
+pb_headers6 = \
+	${pb_srcdir}/detail/rb_tree_map_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/node.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/rb_tree_.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/rb_tree_map_/traits.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/rc_binomial_heap_.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/rc.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/rc_binomial_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_exponential_size_policy_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_prime_size_policy_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/hash_standard_resize_policy_imp.hpp \
+	${pb_srcdir}/detail/resize_policy/sample_resize_policy.hpp \
+	${pb_srcdir}/detail/resize_policy/sample_resize_trigger.hpp \
+	${pb_srcdir}/detail/resize_policy/sample_size_policy.hpp \
+	${pb_srcdir}/detail/splay_tree_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/erase_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/info_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/node.hpp \
+	${pb_srcdir}/detail/splay_tree_/splay_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/splay_tree_.hpp \
+	${pb_srcdir}/detail/splay_tree_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/splay_tree_/traits.hpp \
+	${pb_srcdir}/detail/standard_policies.hpp \
+	${pb_srcdir}/detail/thin_heap_/constructors_destructor_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/debug_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/erase_fn_imps.hpp 
+
+pb_headers7 = \
+	${pb_srcdir}/detail/thin_heap_/find_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/insert_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/split_join_fn_imps.hpp \
+	${pb_srcdir}/detail/thin_heap_/thin_heap_.hpp \
+	${pb_srcdir}/detail/thin_heap_/trace_fn_imps.hpp \
+	${pb_srcdir}/detail/tree_policy/node_metadata_selector.hpp \
+	${pb_srcdir}/detail/tree_policy/null_node_update_imp.hpp \
+	${pb_srcdir}/detail/tree_policy/order_statistics_imp.hpp \
+	${pb_srcdir}/detail/tree_policy/sample_tree_node_update.hpp \
+	${pb_srcdir}/detail/tree_trace_base.hpp \
+	${pb_srcdir}/detail/trie_policy/node_metadata_selector.hpp \
+	${pb_srcdir}/detail/trie_policy/null_node_update_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/order_statistics_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/prefix_search_node_update_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/sample_trie_e_access_traits.hpp \
+	${pb_srcdir}/detail/trie_policy/sample_trie_node_update.hpp \
+	${pb_srcdir}/detail/trie_policy/string_trie_e_access_traits_imp.hpp \
+	${pb_srcdir}/detail/trie_policy/trie_policy_base.hpp \
+	${pb_srcdir}/detail/typelist_assoc_container.hpp \
+	${pb_srcdir}/detail/typelist.hpp \
+	${pb_srcdir}/detail/typelist/typelist_append.hpp \
+	${pb_srcdir}/detail/typelist/typelist_apply.hpp \
+	${pb_srcdir}/detail/typelist/typelist_assoc_container_find.hpp \
+	${pb_srcdir}/detail/typelist/typelist_at_index.hpp \
+	${pb_srcdir}/detail/typelist/typelist_contains.hpp \
+	${pb_srcdir}/detail/typelist/typelist_filter.hpp \
+	${pb_srcdir}/detail/typelist/typelist_flatten.hpp \
+	${pb_srcdir}/detail/typelist/typelist_transform.hpp \
+	${pb_srcdir}/detail/typelist/typelist_typelist_append.hpp \
+	${pb_srcdir}/detail/types_traits.hpp \
+	${pb_srcdir}/detail/type_utils.hpp \
+	${pb_srcdir}/detail/unordered_iterator/const_iterator.hpp \
+	${pb_srcdir}/detail/unordered_iterator/const_point_iterator.hpp \
+	${pb_srcdir}/detail/unordered_iterator/iterator.hpp \
+	${pb_srcdir}/detail/unordered_iterator/point_iterator.hpp 
 
 ext_srcdir = ${glibcxx_srcdir}/include/ext
 ext_builddir = ./ext 
@@ -910,7 +992,7 @@ PCHFLAGS = -Winvalid-pch -Wno-deprecated -x c++-header $(CXXFLAGS)
 # CLEANFILES and all-local are kept up-to-date.
 allstamped = \
 	stamp-std stamp-bits stamp-c_base stamp-c_compatibility \
-	stamp-backward stamp-ext stamp-assoc stamp-tr1 stamp-debug stamp-host
+	stamp-backward stamp-ext stamp-pb stamp-tr1 stamp-debug stamp-host
 
 
 # List of all files that are created by explicit building, editing, or
@@ -1160,42 +1242,54 @@ stamp-ext: ${ext_headers}
 
 # Have to deal with nested include directories, gah! Strip off source
 # directory before making the link.
-# XXX check  ${assoc_headers}
-stamp-assoc:
-	@if [ ! -d "${assoc_builddir}" ]; then \
-	    mkdir -p ${assoc_subdirs} ;\
+# XXX check  ${pb_headers}
+stamp-pb:
+	@if [ ! -d "${pb_builddir}" ]; then \
+	    mkdir -p ${pb_subdirs} ;\
 	fi 
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers1}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers1}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers2}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers2}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers3}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers3}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers4}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers4}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	@if [ ! -f stamp-assoc ]; then \
-	    cd ${assoc_builddir} && for h in ${assoc_headers5}; do \
-		build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers5}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
 		$(LN_S) $$h $${build_name} || true ;\
 	      done ;\
 	fi
-	$(STAMP) stamp-assoc
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers6}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
+		$(LN_S) $$h $${build_name} || true ;\
+	      done ;\
+	fi
+	@if [ ! -f stamp-pb ]; then \
+	    cd ${pb_builddir} && for h in ${pb_headers7}; do \
+		build_name=`echo $$h | sed -e "s|${pb_srcdir}|.|g"` ;\
+		$(LN_S) $$h $${build_name} || true ;\
+	      done ;\
+	fi
+	$(STAMP) stamp-pb
 
 stamp-tr1: ${tr1_headers}
 	@if [ ! -d "${tr1_builddir}" ]; then \
@@ -1355,28 +1449,36 @@ install-headers:
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${ext_builddir}
 	for file in ${ext_headers}; do \
 	  $(INSTALL_DATA) $${file} $(DESTDIR)${gxx_include_dir}/${ext_builddir}; done
-	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${assoc_builddir}
-	for dir in ${assoc_subdirs}; do \
+	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${pb_builddir}
+	for dir in ${pb_subdirs}; do \
 	  $(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/$${dir} ; done
-	for file in ${assoc_headers1}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers1}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
+	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
+	for file in ${pb_headers2}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
+	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
+	for file in ${pb_headers3}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers2}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers4}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers3}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers5}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers4}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers6}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
-	for file in ${assoc_headers5}; do \
-	  install_base=$(DESTDIR)${gxx_include_dir}/${assoc_builddir} ; \
-	  relative_name=`echo $$file | sed -e "s|${assoc_srcdir}|.|g"` ;\
+	for file in ${pb_headers7}; do \
+	  install_base=$(DESTDIR)${gxx_include_dir}/${pb_builddir} ; \
+	  relative_name=`echo $$file | sed -e "s|${pb_srcdir}|.|g"` ;\
 	  $(INSTALL_DATA) $${file} $${install_base}/$${relative_name} ; done
 	$(mkinstalldirs) $(DESTDIR)${gxx_include_dir}/${tr1_builddir}
 	for file in ${tr1_headers}; do \
diff --git a/libstdc++-v3/include/ext/pb_assoc/assoc_cntnr.hpp b/libstdc++-v3/include/ext/pb_assoc/assoc_cntnr.hpp
deleted file mode 100644
index 741b93814b5f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/assoc_cntnr.hpp
+++ /dev/null
@@ -1,1590 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file assoc_cntnr.hpp
- * Contains associative containers.
- */
-
-#ifndef ASSOC_CNTNR_HPP
-#define ASSOC_CNTNR_HPP
-
-#include <ext/pb_assoc/ms_trait.hpp>
-#include <ext/pb_assoc/ds_trait.hpp>
-#include <ext/pb_assoc/detail/type_utils.hpp>
-#include <ext/pb_assoc/detail/typelist.hpp>
-#include <ext/pb_assoc/detail/standard_policies.hpp>
-#include <ext/pb_assoc/detail/mapping_level_imp.hpp>
-#include <ext/pb_assoc/detail/assoc_cntnr_base.hpp>
-#include <ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp>
-
-namespace pb_assoc
-{
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class DS_Tag, \
-		class Policy_Tl, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	basic_assoc_cntnr< \
-		Key, \
-		Data, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	detail::assoc_cntnr_base< \
-		Key, \
-		Data, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator>::type
-
-#define PB_ASSOC_DIRECT_BASE_C_DEC \
-	detail::assoc_cntnr_base< \
-		Key, \
-		Data, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator>::type
-
-  template<typename Key,
-	   typename Data,
-	   class DS_Tag,
-	   class Policy_Tl,
-	   class Allocator>
-  class basic_assoc_cntnr 
-  : public detail::assoc_cntnr_base<Key, Data, DS_Tag, Policy_Tl, Allocator>::type
-  {
-  public:
-    typedef typename Allocator::size_type size_type;
-    typedef typename Allocator::difference_type difference_type;
-    typedef DS_Tag ds_category;
-    typedef data_enabled_ms_tag ms_category;
-    typedef Allocator allocator;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::value_type
-    key_type;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::reference
-    key_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::const_reference
-    const_key_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::pointer
-    key_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::const_pointer
-    const_key_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      Data>::other::value_type
-    data_type;
-
-    typedef
-    typename allocator::template rebind<
-      Data>::other::reference
-    data_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Data>::other::const_reference
-    const_data_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Data>::other::pointer
-    data_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      Data>::other::const_pointer
-    const_data_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, data_type> >::other::value_type
-    value_type;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, data_type> >::other::reference
-    reference;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, data_type> >::other::const_reference
-    const_reference;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, data_type> >::other::pointer
-    pointer;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, data_type> >::other::const_pointer
-    const_pointer;
-
-    typedef
-    typename PB_ASSOC_BASE_C_DEC::const_find_iterator
-    const_find_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::find_iterator find_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator;
-
-  public:
-
-    virtual
-    ~basic_assoc_cntnr();
-
-    inline size_type
-    size() const;
-
-    inline size_type
-    max_size() const;
-
-    inline bool
-    empty() const;
-
-    inline static const_key_reference
-    extract_key(const_reference r_val);
-
-    inline std::pair<find_iterator, bool>
-    insert(const_reference r_val);
-
-    inline data_reference
-    operator[](const_key_reference r_key);
-
-    inline find_iterator
-    find(const_key_reference r_key)
-    {
-      return (my_base::find(r_key));
-    }
-
-    inline const_find_iterator
-    find(const_key_reference r_key) const
-    {
-      return (my_base::find(r_key));
-    }
-
-    inline const_data_reference
-    operator[](const_key_reference r_key) const;
-
-    inline size_type
-    erase(const_key_reference r_key);
-
-    template<class Pred>
-    inline size_type
-    erase_if(Pred prd);
-
-    void
-    clear();
-
-    inline iterator
-    begin();
-
-    inline const_iterator
-    begin() const;
-
-    inline iterator
-    end();
-
-    inline const_iterator
-    end() const;
-
-  protected:
-
-#define PB_ASSOC_CLASS_NAME basic_assoc_cntnr
-
-#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \
-	typename PB_ASSOC_DIRECT_BASE_C_DEC
-
-#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-  private:
-    typedef typename PB_ASSOC_BASE_C_DEC my_base;
-
-  private:
-    basic_assoc_cntnr& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-  };
-
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		class Cntnr, \
-		class DS_Tag, \
-		class Policy_Tl, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	basic_assoc_cntnr< \
-		Key, \
-		compound_data_type< \
-			Cntnr>, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator>
-
-#define PB_ASSOC_DIRECT_BASE_C_DEC \
-	detail::value_type_adapter< \
-		Key, \
-		compound_data_type< \
-			Cntnr>, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator, \
-		detail::mapping_level_imp< \
-			compound_data_type< \
-				Cntnr> >::value - 1>
-
-#define PB_ASSOC_BASE_C_DEC \
-	detail::assoc_cntnr_base< \
-		Key, \
-		compound_data_type< \
-			Cntnr>, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator>::type
-
-  template<typename Key,
-	   class Cntnr,
-	   class DS_Tag,
-	   class Policy_Tl,
-	   class Allocator>
-  class basic_assoc_cntnr<Key, compound_data_type< Cntnr>, DS_Tag, Policy_Tl, Allocator> : public PB_ASSOC_DIRECT_BASE_C_DEC
-  {
-  public:
-    typedef typename Allocator::size_type size_type;
-    typedef typename Allocator::difference_type difference_type;
-    typedef DS_Tag ds_category;
-    typedef compound_data_enabled_ms_tag ms_category;
-    typedef Allocator allocator;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::value_type
-    key_type;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::reference
-    key_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::const_reference
-    const_key_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::pointer
-    key_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::const_pointer
-    const_key_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      Cntnr>::other::value_type
-    data_type;
-
-    typedef
-    typename allocator::template rebind<
-      Cntnr>::other::reference
-    data_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Cntnr>::other::const_reference
-    const_data_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Cntnr>::other::pointer
-    data_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      Cntnr>::other::const_pointer
-    const_data_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, Cntnr> >::other::value_type
-    value_type;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, Cntnr> >::other::reference
-    reference;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, Cntnr> >::other::const_reference
-    const_reference;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, Cntnr> >::other::pointer
-    pointer;
-
-    typedef
-    typename allocator::template rebind<
-      std::pair<const key_type, Cntnr> >::other::const_pointer
-    const_pointer;
-
-    typedef
-    typename PB_ASSOC_BASE_C_DEC::const_find_iterator
-    const_find_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::find_iterator find_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator;
-
-    template<int Mapping_Level>
-    struct rebind
-    {
-    private:
-      enum
-	{
-	  mapping_level =
-	  detail::mapping_level_imp<compound_data_type<Cntnr> >::value
-	};
-
-    public:
-      typedef
-      detail::value_type_adapter<
-	Key,
-	compound_data_type<
-	Cntnr>,
-	DS_Tag,
-	Policy_Tl,
-	Allocator,
-	mapping_level - Mapping_Level>
-      other;
-    };
-
-  public:
-
-    virtual
-    ~basic_assoc_cntnr();
-
-    inline size_type
-    size() const;
-
-    inline size_type
-    max_size() const;
-
-    inline bool
-    empty() const;
-
-    inline static const_key_reference
-    extract_key(const_reference r_val);
-
-    inline std::pair<find_iterator, bool>
-    insert(const_reference r_val);
-
-    inline data_reference
-    operator[](const_key_reference r_key);
-
-    inline find_iterator
-    find(const_key_reference r_key)
-    {
-      return (my_base::find(r_key));
-    }
-
-    inline const_find_iterator
-    find(const_key_reference r_key) const
-    {
-      return (my_base::find(r_key));
-    }
-
-    inline const_data_reference
-    operator[](const_key_reference r_key) const;
-
-    inline size_type
-    erase(const_key_reference r_key);
-
-    template<class Pred>
-    inline size_type
-    erase_if(Pred prd);
-
-    void
-    clear();
-
-    inline iterator
-    begin();
-
-    inline const_iterator
-    begin() const;
-
-    inline iterator
-    end();
-
-    inline const_iterator
-    end() const;
-
-  protected:
-
-#define PB_ASSOC_CLASS_NAME basic_assoc_cntnr
-
-#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \
-	typename PB_ASSOC_DIRECT_BASE_C_DEC
-
-#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-  private:
-    typedef typename PB_ASSOC_BASE_C_DEC my_base;
-
-  private:
-    basic_assoc_cntnr& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-  };
-
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, class DS_Tag, class Policy_Tl, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	basic_assoc_cntnr< \
-		Key, \
-		null_data_type, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	detail::assoc_cntnr_base< \
-		Key, \
-		null_data_type, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator>::type
-
-  template<typename Key, class DS_Tag, class Policy_Tl, class Allocator>
-  class basic_assoc_cntnr<Key, null_data_type, DS_Tag, Policy_Tl, Allocator> : public PB_ASSOC_BASE_C_DEC
-  {
-  public:
-    typedef typename Allocator::size_type size_type;
-    typedef typename Allocator::difference_type difference_type;
-    typedef DS_Tag ds_category;
-    typedef basic_ms_tag ms_category;
-    typedef Allocator allocator;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::value_type
-    key_type;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::reference
-    key_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::const_reference
-    const_key_reference;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::pointer
-    key_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      Key>::other::const_pointer
-    const_key_pointer;
-
-    typedef
-    typename allocator::template rebind<
-      key_type>::other::value_type
-    value_type;
-
-    typedef
-    typename allocator::template rebind<
-      key_type>::other::const_reference
-    reference;
-
-    typedef
-    typename allocator::template rebind<
-      key_type>::other::const_reference
-    const_reference;
-
-    typedef
-    typename allocator::template rebind<
-      key_type>::other::const_pointer
-    pointer;
-
-    typedef
-    typename allocator::template rebind<key_type>::other::const_pointer
-    const_pointer;
-
-    typedef
-    typename PB_ASSOC_BASE_C_DEC::const_find_iterator
-    const_find_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::find_iterator find_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator;
-
-  public:
-
-    virtual
-    ~basic_assoc_cntnr();
-
-    inline size_type
-    size() const;
-
-    inline size_type
-    max_size() const;
-
-    inline bool
-    empty() const;
-
-    inline static const_key_reference
-    extract_key(const_reference r_val);
-
-    inline std::pair<find_iterator, bool>
-    insert(const_reference r_val);
-
-    inline find_iterator
-    find(const_key_reference r_key)
-    { return (my_base::find(r_key)); }
-
-    inline const_find_iterator
-    find(const_key_reference r_key) const
-    { return (my_base::find(r_key)); }
-
-    inline size_type
-    erase(const_key_reference r_key);
-
-    template<class Pred>
-    inline size_type
-    erase_if(Pred prd);
-
-    void
-    clear();
-
-    inline iterator
-    begin();
-
-    inline const_iterator
-    begin() const;
-
-    inline iterator
-    end();
-
-    inline const_iterator
-    end() const;
-
-  protected:
-
-#define PB_ASSOC_CLASS_NAME basic_assoc_cntnr
-
-#define PB_ASSOC_DIRECT_BASE_C_DEC PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \
-	typename PB_ASSOC_DIRECT_BASE_C_DEC
-
-#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-  private:
-    typedef typename PB_ASSOC_BASE_C_DEC my_base;
-
-  private:
-    basic_assoc_cntnr& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-  };
-
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_TYPELIST_CHAIN1(X0) pb_assoc::detail::typelist_chain<X0, pb_assoc::detail::null_type>
-#define PB_ASSOC_TYPELIST_CHAIN2(X0, X1) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN1(X1) >
-#define PB_ASSOC_TYPELIST_CHAIN3(X0, X1, X2) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN2(X1, X2) >
-#define PB_ASSOC_TYPELIST_CHAIN4(X0, X1, X2, X3) pb_assoc::detail::typelist_chain<X0,  PB_ASSOC_TYPELIST_CHAIN3(X1, X2, X3) >
-#define PB_ASSOC_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) pb_assoc::detail::typelist_chain<X0,  PB_ASSOC_TYPELIST_CHAIN4(X1, X2, X3, X4) >
-#define PB_ASSOC_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN5(X1, X2, X3, X4, X5) >
-#define PB_ASSOC_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN6(X1, X2, X3, X4, X5, X6) >
-#define PB_ASSOC_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN7(X1, X2, X3, X4, X5, X6, X7) >
-#define PB_ASSOC_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN8(X1, X2, X3, X4, X5, X6, X7, X8) >
-#define PB_ASSOC_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN9(X1, X2, X3, X4, X5, X6, X7, X8, X9) >
-#define PB_ASSOC_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN10(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) >
-#define PB_ASSOC_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN11(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) >
-#define PB_ASSOC_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN12(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) >
-#define PB_ASSOC_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN13(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) >
-#define PB_ASSOC_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN14(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) >
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Hash_Fn, \
-		class Eq_Fn, \
-		class Resize_Policy, \
-		bool Store_Hash, \
-		class DS_Tag, \
-		class Policy_TL, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	basic_hash_assoc_cntnr< \
-		Key, \
-		Data, \
-		Hash_Fn, \
-		Eq_Fn, \
-		Resize_Policy, \
-		Store_Hash, \
-		DS_Tag, \
-		Policy_TL, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	basic_assoc_cntnr< \
-		Key, \
-		Data, \
-		DS_Tag, \
-		typename pb_assoc::detail::typelist_append< \
-			pb_assoc::detail::typelist< \
-				PB_ASSOC_TYPELIST_CHAIN4( Hash_Fn, Eq_Fn, Resize_Policy, pb_assoc::detail::int_to_type<Store_Hash>) >, \
-				Policy_TL>::type, \
-		Allocator>
-
-  template<typename Key,
-	   typename Data,
-	   class Hash_Fn,
-	   class Eq_Fn,
-	   class Resize_Policy,
-	   bool Store_Hash,
-	   class DS_Tag,
-	   class Policy_TL,
-	   class Allocator>
-  class basic_hash_assoc_cntnr : public PB_ASSOC_BASE_C_DEC
-  {
-  public:
-    typedef Hash_Fn hash_fn;
-
-    typedef Eq_Fn eq_fn;
-
-    typedef Resize_Policy resize_policy;
-
-    enum
-      {
-	store_hash = Store_Hash
-      };
-
-    virtual
-    ~basic_hash_assoc_cntnr();
-
-    hash_fn& 
-    get_hash_fn();
-
-    const hash_fn& 
-    get_hash_fn() const;
-
-    eq_fn& 
-    get_eq_fn();
-
-    const eq_fn& 
-    get_eq_fn() const;
-
-    Resize_Policy& 
-    get_resize_policy();
-
-    const resize_policy& 
-    get_resize_policy() const;
-
-  protected:
-
-    typedef typename Allocator::size_type size_type;
-
-    virtual void
-    do_resize(size_type new_size);
-
-#define PB_ASSOC_CLASS_NAME basic_hash_assoc_cntnr
-
-#define PB_ASSOC_DIRECT_BASE_C_DEC PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \
-	PB_ASSOC_DIRECT_BASE_C_DEC
-
-#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-  private:
-    typedef PB_ASSOC_BASE_C_DEC my_base;
-
-    basic_hash_assoc_cntnr& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-  };
-
-#include <ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Hash_Fn, \
-		class Eq_Fn, \
-		class Comb_Hash_Fn, \
-		class Resize_Policy, \
-		bool Store_Hash, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	cc_hash_assoc_cntnr< \
-		Key, \
-		Data, \
-		Hash_Fn, \
-		Eq_Fn, \
-		Comb_Hash_Fn, \
-		Resize_Policy, \
-		Store_Hash, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	basic_hash_assoc_cntnr< \
-		Key, \
-		Data, \
-		Hash_Fn, \
-		Eq_Fn, \
-		Resize_Policy, \
-		Store_Hash, \
-		cc_hash_ds_tag, \
-		pb_assoc::detail::typelist< \
-			PB_ASSOC_TYPELIST_CHAIN1( \
-				Comb_Hash_Fn) >, \
-		Allocator>
-
-  template<typename Key,
-	   typename Data,
-	   class Hash_Fn = typename pb_assoc::detail::def_hash_fn<Key>::type,
-	   class Eq_Fn = typename pb_assoc::detail::def_eq_fn<Key>::type,
-	   class Comb_Hash_Fn = pb_assoc::detail::def_comb_hash_fn::type,
-	   class Resize_Policy =
-	   typename pb_assoc::detail::def_resize_policy<Comb_Hash_Fn>::type,
-	   bool Store_Hash = pb_assoc::detail::def_store_hash,
-	   class Allocator = std::allocator<char> >
-  class cc_hash_assoc_cntnr : public PB_ASSOC_BASE_C_DEC
-  {
-  public:
-    typedef Comb_Hash_Fn comb_hash_fn;
-
-    cc_hash_assoc_cntnr();
-
-    cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn);
-
-    cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn);
-
-    cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, 
-			const Comb_Hash_Fn& r_comb_hash_fn);
-
-    cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, 
-			const Comb_Hash_Fn& r_comb_hash_fn, 
-			const Resize_Policy& r_resize_policy);
-
-    template<class It>
-    cc_hash_assoc_cntnr(It first_it, It last_it);
-
-    template<class It>
-    cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn);
-
-    template<class It>
-    cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, 
-			const Eq_Fn& r_eq_fn);
-
-    template<class It>
-    cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn);
-
-    template<class It>
-    cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn, const Resize_Policy& r_resize_policy);
-
-    cc_hash_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    virtual
-    ~cc_hash_assoc_cntnr();
-
-    PB_ASSOC_CLASS_C_DEC& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    void
-    swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-    comb_hash_fn& 
-    get_comb_hash_fn();
-
-    const comb_hash_fn& 
-    get_comb_hash_fn() const;
-
-  private:
-    typedef PB_ASSOC_BASE_C_DEC my_base;
-  };
-
-#include <ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Hash_Fn, \
-		class Eq_Fn, \
-		class Comb_Probe_Fn, \
-		class Probe_Fn, \
-		class Resize_Policy, \
-		bool Store_Hash, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	gp_hash_assoc_cntnr< \
-		Key, \
-		Data, \
-		Hash_Fn, \
-		Eq_Fn, \
-		Comb_Probe_Fn, \
-		Probe_Fn, \
-		Resize_Policy, \
-		Store_Hash, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	basic_hash_assoc_cntnr< \
-		Key, \
-		Data, \
-		Hash_Fn, \
-		Eq_Fn, \
-		Resize_Policy, \
-		Store_Hash, \
-		gp_hash_ds_tag, \
-		pb_assoc::detail::typelist< \
-			PB_ASSOC_TYPELIST_CHAIN2( Comb_Probe_Fn, Probe_Fn) >, \
-		Allocator>
-
-  template<typename Key,
-	   typename Data,
-	   class Hash_Fn = typename pb_assoc::detail::def_hash_fn<Key>::type,
-	   class Eq_Fn = typename pb_assoc::detail::def_eq_fn<Key>::type,
-	   class Comb_Probe_Fn = pb_assoc::detail::def_comb_hash_fn::type,
-	   class Probe_Fn = typename detail::def_probe_fn<Comb_Probe_Fn>::type,
-	   class Resize_Policy =
-	   typename pb_assoc::detail::def_resize_policy<Comb_Probe_Fn>::type,
-
-	   bool Store_Hash = pb_assoc::detail::def_store_hash,
-	   class Allocator = std::allocator<char> >
-  class gp_hash_assoc_cntnr : public PB_ASSOC_BASE_C_DEC
-  {
-  public:
-    typedef Comb_Probe_Fn comb_probe_fn;
-    typedef Probe_Fn probe_fn;
-
-    gp_hash_assoc_cntnr();
-
-    gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn);
-
-    gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn);
-
-    gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, 
-			const Comb_Probe_Fn& r_comb_probe_fn);
-
-    gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, 
-			const Comb_Probe_Fn& r_comb_probe_fn, 
-			const Probe_Fn& r_probe_fn);
-
-    gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, 
-			const Comb_Probe_Fn& r_comb_probe_fn, 
-			const Probe_Fn& r_probe_fn, 
-			const Resize_Policy& r_resize_policy);
-
-    template<class It>
-    gp_hash_assoc_cntnr(It first_it, It last_it);
-
-    template<class It>
-    gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn);
-
-    template<class It>
-    gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn);
-
-    template<class It>
-    gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn);
-
-    template<class It>
-    gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn);
-
-    template<class It>
-    gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn, const Resize_Policy& r_resize_policy);
-
-    gp_hash_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    virtual
-    ~gp_hash_assoc_cntnr();
-
-    PB_ASSOC_CLASS_C_DEC& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    void
-    swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-    comb_probe_fn& 
-    get_comb_probe_fn();
-
-    const comb_probe_fn& 
-    get_comb_probe_fn() const;
-
-    probe_fn& 
-    get_probe_fn();
-
-    const probe_fn& 
-    get_probe_fn() const;
-
-  private:
-    typedef PB_ASSOC_BASE_C_DEC my_base;
-  };
-
-#include <ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef  PB_ASSOC_CLASS_C_DEC
-
-#undef  PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Cmp_Fn, \
-		class DS_Tag, \
-		class Node_Updator, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	basic_tree_assoc_cntnr< \
-		Key, \
-		Data, \
-		Cmp_Fn, \
-		DS_Tag, \
-		Node_Updator, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	basic_assoc_cntnr< \
-		Key, \
-		Data, \
-		DS_Tag, \
-		pb_assoc::detail::typelist< \
-			PB_ASSOC_TYPELIST_CHAIN2( Cmp_Fn, Node_Updator) >, \
-		Allocator>
-
-  template<typename Key,
-	   typename Data,
-	   class Cmp_Fn,
-	   class DS_Tag,
-	   class Node_Updator,
-	   class Allocator>
-  class basic_tree_assoc_cntnr : public PB_ASSOC_BASE_C_DEC
-  {
-  public:
-    typedef typename Allocator::size_type size_type;
-
-    typedef
-    typename Allocator::template rebind<
-      Key>::other::const_reference
-    const_key_reference;
-
-    typedef Cmp_Fn cmp_fn;
-
-    typedef Node_Updator node_updator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator;
-
-    typedef
-    typename PB_ASSOC_BASE_C_DEC::const_reverse_iterator
-    const_reverse_iterator;
-
-    typedef
-    typename PB_ASSOC_BASE_C_DEC::reverse_iterator
-    reverse_iterator;
-
-    typedef
-    typename PB_ASSOC_BASE_C_DEC::const_node_iterator
-    const_node_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::node_iterator node_iterator;
-
-    virtual
-    ~basic_tree_assoc_cntnr();
-
-    cmp_fn& 
-    get_cmp_fn();
-
-    const cmp_fn& 
-    get_cmp_fn() const;
-
-    node_updator& 
-    get_node_updator();
-
-    const node_updator& 
-    get_node_updator() const;
-
-    inline size_type
-    erase(const_key_reference r_key);
-
-    inline iterator
-    erase(iterator it);
-
-    inline reverse_iterator
-    erase(reverse_iterator it)
-    {
-      return (my_base::erase(it));
-    }
-
-    inline reverse_iterator
-    rbegin()
-    {
-      return (my_base::rbegin());
-    }
-
-    inline const_reverse_iterator
-    rbegin() const
-    {
-      return (my_base::rbegin());
-    }
-
-    inline reverse_iterator
-    rend()
-    {
-      return (my_base::rend());
-    }
-
-    inline const_reverse_iterator
-    rend() const
-    {
-      return (my_base::rend());
-    }
-
-    inline node_iterator
-    node_begin()
-    {
-      return (my_base::node_begin());
-    }
-
-    inline const_node_iterator
-    node_begin() const
-    {
-      return (my_base::node_begin());
-    }
-
-    inline node_iterator
-    node_end()
-    {
-      return (my_base::node_end());
-    }
-
-    inline const_node_iterator
-    node_end() const
-    {
-      return (my_base::node_end());
-    }
-
-    void
-    join(PB_ASSOC_CLASS_C_DEC& r_other);
-
-    inline void
-    split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other);
-
-  protected:
-
-#define PB_ASSOC_CLASS_NAME basic_tree_assoc_cntnr
-
-#define PB_ASSOC_DIRECT_BASE_C_DEC PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \
-	PB_ASSOC_DIRECT_BASE_C_DEC
-
-#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-  private:
-    typedef PB_ASSOC_BASE_C_DEC my_base;
-  };
-
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Cmp_Fn, \
-		class Node_Updator, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	basic_tree_assoc_cntnr< \
-		Key, \
-		Data, \
-		Cmp_Fn, \
-		ov_tree_ds_tag, \
-		Node_Updator, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	basic_assoc_cntnr< \
-		Key, \
-		Data, \
-		ov_tree_ds_tag, \
-		pb_assoc::detail::typelist< \
-			PB_ASSOC_TYPELIST_CHAIN2( Cmp_Fn, Node_Updator) >, \
-		Allocator>
-
-  template<typename Key,
-	   typename Data,
-	   typename Cmp_Fn,
-	   typename Node_Updator,
-	   typename Allocator>
-  class basic_tree_assoc_cntnr<Key, Data, Cmp_Fn, ov_tree_ds_tag, Node_Updator, Allocator> 
-  : public PB_ASSOC_BASE_C_DEC
-  {
-  public:
-    typedef typename Allocator::size_type size_type;
-
-    typedef
-    typename Allocator::template rebind<
-      Key>::other::const_reference
-    const_key_reference;
-
-    typedef Cmp_Fn cmp_fn;
-
-    typedef Node_Updator node_updator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator;
-
-    typedef
-    typename PB_ASSOC_BASE_C_DEC::const_node_iterator
-    const_node_iterator;
-
-    typedef typename PB_ASSOC_BASE_C_DEC::node_iterator node_iterator;
-
-    virtual
-    ~basic_tree_assoc_cntnr();
-
-    cmp_fn& 
-    get_cmp_fn();
-
-    const cmp_fn& 
-    get_cmp_fn() const;
-
-    node_updator& 
-    get_node_updator();
-
-    const node_updator& 
-    get_node_updator() const;
-
-    inline size_type
-    erase(const_key_reference r_key);
-
-    inline iterator
-    erase(iterator it);
-
-    inline node_iterator
-    node_begin()
-    {
-      return (my_base::node_begin());
-    }
-
-    inline const_node_iterator
-    node_begin() const
-    {
-      return (my_base::node_begin());
-    }
-
-    inline node_iterator
-    node_end()
-    {
-      return (my_base::node_end());
-    }
-
-    inline const_node_iterator
-    node_end() const
-    {
-      return (my_base::node_end());
-    }
-
-    void
-    join(PB_ASSOC_CLASS_C_DEC& r_other);
-
-    inline void
-    split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other);
-
-  protected:
-
-#define PB_ASSOC_CLASS_NAME basic_tree_assoc_cntnr
-
-#define PB_ASSOC_DIRECT_BASE_C_DEC PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \
-	PB_ASSOC_DIRECT_BASE_C_DEC
-
-#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-  private:
-    typedef PB_ASSOC_BASE_C_DEC my_base;
-  };
-
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp>
-#include <ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Cmp_Fn, \
-		class DS_Tag, \
-		class Node_Updator, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	tree_assoc_cntnr< \
-		Key, \
-		Data, \
-		Cmp_Fn, \
-		DS_Tag, \
-		Node_Updator, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	basic_tree_assoc_cntnr< \
-		Key, \
-		Data, \
-		Cmp_Fn, \
-		DS_Tag, \
-		Node_Updator, \
-		Allocator>
-
-  template<typename Key, typename Data, class Cmp_Fn =	std::less<Key>,
-	   typename DS_Tag = rb_tree_ds_tag,
-	   typename Node_Updator = pb_assoc::detail::def_node_updator,
-	   typename Allocator = std::allocator<char> >
-  class tree_assoc_cntnr : public PB_ASSOC_BASE_C_DEC
-  {
-    typedef Cmp_Fn cmp_fn;
-    typedef Node_Updator node_updator;
-
-  public:
-    tree_assoc_cntnr();
-    tree_assoc_cntnr(const cmp_fn& r_cmp_fn);
-    tree_assoc_cntnr(const cmp_fn& r_cmp_fn, const Node_Updator&r);
- 
-    template<typename It>
-      tree_assoc_cntnr(It first_it, It last_it);
-
-    template<typename It>
-      tree_assoc_cntnr(It first_it, It last_it, const cmp_fn& r_cmp_fn);
-
-    template<typename It>
-      tree_assoc_cntnr(It, It, const cmp_fn&, const Node_Updator&);
-
-    tree_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    virtual
-    ~tree_assoc_cntnr();
-
-    PB_ASSOC_CLASS_C_DEC& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    void
-    swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-  private:
-    typedef PB_ASSOC_BASE_C_DEC my_base;
-  };
-
-#include <ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Eq_Fn, \
-		class Update_Policy, \
-		class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	lu_assoc_cntnr< \
-		Key, \
-		Data, \
-		Eq_Fn, \
-		Update_Policy, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	basic_assoc_cntnr< \
-		Key, \
-		Data, \
-		lu_ds_tag, \
-		pb_assoc::detail::typelist< \
-			PB_ASSOC_TYPELIST_CHAIN2( Eq_Fn, Update_Policy) >, \
-		Allocator>
-
-  template<typename Key,
-	   typename Data,
-	   typename Eq_Fn = typename pb_assoc::detail::def_eq_fn<Key>::type,
-	   typename Update_Policy = pb_assoc::detail::def_update_policy::type,
-	   typename Allocator = std::allocator<char> >
-  class lu_assoc_cntnr : public PB_ASSOC_BASE_C_DEC
-  {
-  public:
-    typedef Eq_Fn eq_fn;
-    typedef Allocator allocator;
-    typedef Update_Policy update_policy;
-    
-    lu_assoc_cntnr();    
-    lu_assoc_cntnr(const Eq_Fn& r_eq_fn);    
-    lu_assoc_cntnr(const Eq_Fn& r_eq_fn, const Update_Policy& r_update_policy);
-    
-    template<typename It>
-      lu_assoc_cntnr(It first_it, It last_it);
-
-    template<typename It>
-      lu_assoc_cntnr(It first_it, It last_it, const Eq_Fn& r_eq_fn);
-
-    template<typename It>
-      lu_assoc_cntnr(It, It, const Eq_Fn&, const Update_Policy&);
-
-    lu_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    virtual
-    ~lu_assoc_cntnr();
-
-    PB_ASSOC_CLASS_C_DEC& 
-    operator=(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-    void
-    swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-    eq_fn& 
-    get_eq_fn();
-
-    const eq_fn& 
-    get_eq_fn() const;
-
-    update_policy& 
-    get_update_policy();
-
-    const update_policy& 
-    get_update_policy() const;
-
-  private:
-    typedef PB_ASSOC_BASE_C_DEC my_base;
-  };
-
-#include <ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#undef PB_ASSOC_TYPELIST_CHAIN1
-#undef PB_ASSOC_TYPELIST_CHAIN2
-#undef PB_ASSOC_TYPELIST_CHAIN3
-#undef PB_ASSOC_TYPELIST_CHAIN4
-#undef PB_ASSOC_TYPELIST_CHAIN5
-#undef PB_ASSOC_TYPELIST_CHAIN6
-#undef PB_ASSOC_TYPELIST_CHAIN7
-#undef PB_ASSOC_TYPELIST_CHAIN8
-#undef PB_ASSOC_TYPELIST_CHAIN9
-#undef PB_ASSOC_TYPELIST_CHAIN10
-#undef PB_ASSOC_TYPELIST_CHAIN11
-#undef PB_ASSOC_TYPELIST_CHAIN12
-#undef PB_ASSOC_TYPELIST_CHAIN13
-#undef PB_ASSOC_TYPELIST_CHAIN14
-#undef PB_ASSOC_TYPELIST_CHAIN15
-
-} // namespace pb_assoc
-
-#endif // #ifndef ASSOC_CNTNR_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/data_type.hpp b/libstdc++-v3/include/ext/pb_assoc/data_type.hpp
deleted file mode 100644
index b670a0088a38..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/data_type.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file data_tye.hpp
- * Contains a traits class of types used by containers.
- */
-
-#ifndef DATA_TYPE_HPP
-#define DATA_TYPE_HPP
-
-namespace pb_assoc
-{
-  struct null_data_type
-  { };
-
-  template<typename Cntnr>
-    struct compound_data_type
-    {
-      typedef Cntnr cntnr;
-    };
-} // namespace pb_assoc
-
-#endif // #ifndef DATA_TYPE_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/assoc_cntnr_base.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/assoc_cntnr_base.hpp
deleted file mode 100644
index 4e441b81a993..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/assoc_cntnr_base.hpp
+++ /dev/null
@@ -1,346 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file assoc_cntnr_base.hpp
- * Contains an associative container dispatching base.
- */
-
-#ifndef ASSOC_CNTNR_BASE_HPP
-#define ASSOC_CNTNR_BASE_HPP
-
-#include <ext/pb_assoc/detail/typelist.hpp>
-
-#define PB_ASSOC_DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/lu_map_/lu_map_.hpp>
-#undef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#define PB_ASSOC_DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/lu_map_/lu_map_.hpp>
-#undef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp>
-#undef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#define PB_ASSOC_DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp>
-#undef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp>
-#undef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#define PB_ASSOC_DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp>
-#undef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp>
-#undef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#define PB_ASSOC_DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp>
-#undef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp>
-#undef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#define PB_ASSOC_DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp>
-#undef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp>
-#undef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#define PB_ASSOC_DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp>
-#undef PB_ASSOC_DATA_FALSE_INDICATOR
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<typename Key,
-	     typename Data,
-	     class Data_Structure_Taq,
-	     class Policy_Tl,
-	     class Allocator>
-    struct assoc_cntnr_base;
-
-    template<typename Key, typename Data, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      Data,
-      lu_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      lu_map_data_<
-	Key,
-	Data,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      null_data_type,
-      lu_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      lu_map_no_data_<
-	Key,
-	null_data_type,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, typename Data, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      Data,
-      rb_tree_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      rb_tree_data_<
-	Key,
-	Data,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      null_data_type,
-      rb_tree_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      rb_tree_no_data_<
-	Key,
-	null_data_type,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, typename Data, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      Data,
-      splay_tree_ds_tag,
-      Policy_Tl,
-      Allocator>
-
-    {
-      typedef
-      splay_tree_data_<
-	Key,
-	Data,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      null_data_type,
-      splay_tree_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      splay_tree_no_data_<
-	Key,
-	null_data_type,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, typename Data, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      Data,
-      ov_tree_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      ov_tree_data_<
-	Key,
-	Data,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      null_data_type,
-      ov_tree_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      ov_tree_no_data_<
-	Key,
-	null_data_type,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	Allocator,
-	typename typelist_at_index<Policy_Tl, 1>::type>
-      type;
-    };
-
-    template<typename Key, typename Data, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      Data,
-      cc_hash_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      cc_ht_map_data_<
-	Key,
-	Data,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	typename typelist_at_index<Policy_Tl, 1>::type,
-	Allocator,
-	typelist_at_index<Policy_Tl, 3>::type::value,
-	typename typelist_at_index<Policy_Tl, 4>::type,
-	typename typelist_at_index<Policy_Tl, 2>::type>
-      type;
-    };
-
-    template<typename Key, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      null_data_type,
-      cc_hash_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      cc_ht_map_no_data_<
-	Key,
-	null_data_type,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	typename typelist_at_index<Policy_Tl, 1>::type,
-	Allocator,
-	typelist_at_index<Policy_Tl, 3>::type::value,
-	typename typelist_at_index<Policy_Tl, 4>::type,
-	typename typelist_at_index<Policy_Tl, 2>::type>
-      type;
-    };
-
-    template<typename Key, typename Data, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      Data,
-      gp_hash_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      gp_ht_map_data_<
-	Key,
-	Data,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	typename typelist_at_index<Policy_Tl, 1>::type,
-	Allocator,
-	typelist_at_index<Policy_Tl, 3>::type::value,
-	typename typelist_at_index<Policy_Tl, 4>::type,
-	typename typelist_at_index<Policy_Tl, 5>::type,
-	typename typelist_at_index<Policy_Tl, 2>::type>
-      type;
-    };
-
-    template<typename Key, class Policy_Tl, class Allocator>
-    struct assoc_cntnr_base<
-      Key,
-      null_data_type,
-      gp_hash_ds_tag,
-      Policy_Tl,
-      Allocator>
-    {
-      typedef
-      gp_ht_map_no_data_<
-	Key,
-	null_data_type,
-	typename typelist_at_index<Policy_Tl, 0>::type,
-	typename typelist_at_index<Policy_Tl, 1>::type,
-	Allocator,
-	typelist_at_index<Policy_Tl, 3>::type::value,
-	typename typelist_at_index<Policy_Tl, 4>::type,
-	typename typelist_at_index<Policy_Tl, 5>::type,
-	typename typelist_at_index<Policy_Tl, 2>::type>
-      type;
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef ASSOC_CNTNR_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index a0dd0898bfb0..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of constructors, destructors,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0, typename T1>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0, typename T1, typename T2>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1, T2 t2) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0, typename T1, typename T2, typename T3>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1, T2 t2, T3 t3) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5, t6)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6,
-	 typename T7>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5, t6, t7)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6,
-	 typename T7,
-	 typename T8>
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8) :
-  PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5, t6, t7, t8)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-basic_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  PB_ASSOC_DIRECT_BASE_C_DEC((const PB_ASSOC_DIRECT_BASE_C_DEC& )r_other)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~basic_assoc_cntnr()
-{ }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index 5cd12513c2bb..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,48 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructors_destructor_fn_imps.hpp
- * Contains constructors and destructor implementation.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~basic_assoc_cntnr()
-{ }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
deleted file mode 100644
index 1c7747edaa4f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file d_extract_key.hpp
- * Contains implementations of info related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_key_reference
-PB_ASSOC_CLASS_C_DEC::
-extract_key(const_reference r_val)
-{
-  return (r_val.first);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
deleted file mode 100644
index 30b03281d194..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file d_find_fn_imps.hpp
- * Contains implementations of gp_ht_maps's find related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_data_reference
-PB_ASSOC_CLASS_C_DEC::
-operator[](const_key_reference r_key) const
-{
-  return (my_base::const_subscript_imp(r_key));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
deleted file mode 100644
index 4193589d3ebe..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file d_insert_fn_imps.hpp
- * Contains implementations of gp_ht_maps's erase related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-operator[](const_key_reference r_key)
-{
-  return (my_base::subscript_imp(r_key));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
deleted file mode 100644
index e22bc2645595..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains implementations of gp_ht_maps's erase related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key)
-{
-  return (my_base::erase(r_key));
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear()
-{
-  return (my_base::clear());
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class Pred>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_if(Pred pred)
-{
-  return (my_base::erase_if(pred));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
deleted file mode 100644
index 6806d0b89e79..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file extract_key.hpp
- * Contains implementations of info related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_key_reference
-PB_ASSOC_CLASS_C_DEC::
-extract_key(const_reference r_val)
-{
-  return (r_val);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
deleted file mode 100644
index 7467b05fb265..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains implementations of info related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  return (my_base::size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (my_base::max_size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (my_base::empty());
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
deleted file mode 100644
index c8edc7eb95c1..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_fn_imps.hpp
- * Contains implementations of gp_ht_maps's erase related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert(const_reference r_value)
-{
-  return (my_base::insert(r_value));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
deleted file mode 100644
index 3bd1642c1901..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterators_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s iterators related functions, e.g.,
- *	begin().
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-begin()
-{
-  return (my_base::begin());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-end()
-{
-  return (my_base::end());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-begin() const
-{
-  return (my_base::begin());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-end() const
-{
-  return (my_base::end());
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index da0be878a84e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of cc_ht's constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~PB_ASSOC_CLASS_NAME()
-{ }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index 48180a1744b1..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of cc_ht's constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~basic_hash_assoc_cntnr()
-{ }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
deleted file mode 100644
index c5dd71438603..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
+++ /dev/null
@@ -1,51 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file resize_fn_imps.hpp
- * Contains implementations of resize functions
- */
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-do_resize(size_type new_size)
-{
-  return (my_base::do_resize(new_size));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index c5d2d01626ec..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of cc_ht's constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~basic_tree_assoc_cntnr()
-{ }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index c5d2d01626ec..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of cc_ht's constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~basic_tree_assoc_cntnr()
-{ }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
deleted file mode 100644
index b91511ce8d2b..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains implementations of rb_tree's find related functions,
- *	common to all tree container types.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key)
-{
-  return (my_base::erase(r_key));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(iterator it)
-{
-  return (my_base::erase(it));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
deleted file mode 100644
index d872d3df8a61..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file node_iteration_fn_imps.hpp
- * Contains a rb_tree set implementation.
- */
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
deleted file mode 100644
index 7c71b6e0e137..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file policy_access_fn_imps.hpp
- * Contains implementation of rb trees
- */
-
-PB_ASSOC_CLASS_T_DEC
-Cmp_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_cmp_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Cmp_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_cmp_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Node_Updator& 
-PB_ASSOC_CLASS_C_DEC::
-get_node_updator()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Node_Updator& 
-PB_ASSOC_CLASS_C_DEC::
-get_node_updator() const
-{
-  return (*this);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
deleted file mode 100644
index f6f13e1dbbeb..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains implementations of rb_tree's find related functions,
- *	common to all tree container types.
- */
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
deleted file mode 100644
index bdeb1d352bb3..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file range_iteration_fn_imps.hpp
- * Contains a rb_tree set implementation.
- */
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
deleted file mode 100644
index bdeb1d352bb3..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file range_iteration_fn_imps.hpp
- * Contains a rb_tree set implementation.
- */
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
deleted file mode 100644
index b8c46562a9bf..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file split_join_fn_imps.hpp
- * Contains implementation of rb trees
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-join(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  return (my_base::join(r_other));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  my_base::split(r_key, r_other);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
deleted file mode 100644
index b450f539807e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
+++ /dev/null
@@ -1,525 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file bin_search_tree_.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-/*
- * This implementation uses an idea from the SGI STL (using a "header" node
- *	which is needed for efficient iteration).
- */
-
-#include <ext/pb_assoc/exception.hpp>
-#include <ext/pb_assoc/detail/eq_fn/eq_by_less.hpp>
-#include <ext/pb_assoc/detail/types_traits.hpp>
-#include <ext/pb_assoc/detail/map_debug_base.hpp>
-#include <ext/pb_assoc/tree_policy.hpp>
-#include <ext/pb_assoc/detail/cond_dealtor.hpp>
-#include <ext/pb_assoc/detail/type_utils.hpp>
-#include <utility>
-#include <functional>
-#include <assert.h>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Node, \
-		class Cmp_Fn, \
-		class Allocator, \
-		class Node_Updator>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	bin_search_tree_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	bin_search_tree_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_CLASS_NAME< \
-		Key, \
-		Data, \
-		Node, \
-		Cmp_Fn, \
-		Allocator, \
-		Node_Updator>
-
-#define PB_ASSOC_TYPES_TRAITS_C_DEC \
-	pb_assoc::detail::types_traits< \
-		Key, \
-		Data, \
-		Allocator>
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-#define PB_ASSOC_MAP_DEBUG_BASE_C_DEC \
-	pb_assoc::detail::map_debug_base< \
-		Key, \
-		eq_by_less<Key, Cmp_Fn> >
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_V2F(X) (X).first
-#define PB_ASSOC_V2S(X) (X).second
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value)
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_V2F(X) (X)
-#define PB_ASSOC_V2S(X) Mapped_Data()
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value.first)
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-    template<typename Key,
-	     typename Data,
-	     class Node,
-	     class Cmp_Fn,
-	     class Allocator,
-	     class Node_Updator>
-    class PB_ASSOC_CLASS_NAME :
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-      protected PB_ASSOC_MAP_DEBUG_BASE_C_DEC,
-#endif // #ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-      protected Cmp_Fn,
-      public PB_ASSOC_TYPES_TRAITS_C_DEC,
-      public Node_Updator
-    {
-
-    protected:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_key_reference
-      const_key_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_type data_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_reference
-      data_reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_data_reference
-      const_data_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type value_type;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::pointer pointer;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_pointer
-      const_pointer;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::reference reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_reference
-      const_reference;
-
-      typedef PB_ASSOC_TYPES_TRAITS_C_DEC my_traits_base;
-
-      typedef Node node;
-
-      typedef
-      pb_assoc::detail::cond_dealtor<
-	node,
-	Allocator>
-      cond_dealtor_t;
-
-      typedef
-      typename Allocator::template rebind<node>::other
-      node_allocator;
-
-      typedef typename node_allocator::value_type node_type;
-
-      typedef typename node_allocator::pointer node_pointer;
-
-      typedef value_type mapped_value_type;
-
-      typedef reference mapped_reference;
-
-      typedef const_reference const_mapped_reference;
-
-      typedef pointer mapped_pointer;
-
-      typedef const_pointer const_mapped_pointer;
-
-#include <ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp>
-
-      typedef const_it_<true> const_find_iterator;
-
-      typedef it_<true> find_iterator;
-
-      typedef const_find_iterator const_iterator;
-
-      typedef find_iterator iterator;
-
-      typedef const_it_<false> const_reverse_iterator;
-
-      typedef it_<false> reverse_iterator;
-
-#include <ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp>
-
-      typedef const_node_it_ const_node_iterator;
-
-      typedef node_it_ node_iterator;
-
-      typedef Cmp_Fn cmp_fn;
-
-      typedef Allocator allocator;
-
-    private:
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-      typedef PB_ASSOC_MAP_DEBUG_BASE_C_DEC my_map_debug_base;
-#endif // #ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-    protected:
-
-      PB_ASSOC_CLASS_NAME();
-
-      PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
-
-      PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_updator);
-
-      PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      ~PB_ASSOC_CLASS_NAME();
-
-      void
-      initialize_min_max();
-
-      template<class Other_Map_Type>
-      bool
-      cmp_with_other(const Other_Map_Type& r_other) const;
-
-      inline bool
-      empty() const;
-
-      inline size_type
-      size() const;
-
-      inline size_type
-      max_size() const;
-
-      Cmp_Fn& 
-      get_cmp_fn();
-
-      const Cmp_Fn& 
-      get_cmp_fn() const;
-
-      inline std::pair<find_iterator, bool>
-      insert_leaf(const_reference r_value);
-
-      inline find_iterator
-      lower_bound(const_key_reference r_key);
-
-      inline const_find_iterator
-      lower_bound(const_key_reference r_key) const;
-
-      inline find_iterator
-      upper_bound(const_key_reference r_key);
-
-      inline const_find_iterator
-      upper_bound(const_key_reference r_key) const;
-
-      inline find_iterator
-      find(const_key_reference r_key);
-
-      inline const_find_iterator
-      find(const_key_reference r_key) const;
-
-      inline void
-      update_min_max_for_erased_node(node_pointer p_nd);
-
-      inline void
-      actual_erase_node(node_pointer p_nd);
-
-      void
-      clear();
-
-      inline void
-      rotate_left(node_pointer p_x);
-
-      inline void
-      rotate_right(node_pointer p_y);
-
-      inline void
-      rotate_parent(node_pointer p_nd);
-
-      inline void
-      apply_update(node_pointer p_nd, pb_assoc::null_node_updator* );
-
-      template<class Node_Updator_>
-      inline void
-      apply_update(node_pointer p_nd, Node_Updator_* p_updator);
-
-      template<class Node_Updator_>
-      inline void
-      update_to_top(node_pointer p_nd, Node_Updator_* p_updator);
-
-      inline void
-      update_to_top(node_pointer p_nd, pb_assoc::null_node_updator* );
-
-      inline iterator
-      begin();
-
-      inline const_iterator
-      begin() const;
-
-      inline iterator
-      find_end();
-
-      inline const_iterator
-      find_end() const;
-
-      inline iterator
-      end();
-
-      inline const_iterator
-      end() const;
-
-      inline reverse_iterator
-      rbegin()
-      {
-	return (reverse_iterator(m_p_head->m_p_right));
-      }
-
-      inline const_reverse_iterator
-      rbegin() const;
-
-      inline reverse_iterator
-      find_rend();
-
-      inline const_reverse_iterator
-      find_rend() const;
-
-      inline reverse_iterator
-      rend();
-
-      inline const_reverse_iterator
-      rend() const;
-
-      bool
-      join_prep(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      join_finish(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      bool
-      split_prep(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      split_finish(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      size_type
-      recursive_count(node_pointer p_nd) const;
-
-      inline const_node_iterator
-      node_begin() const;
-
-      inline node_iterator
-      node_begin();
-
-      inline const_node_iterator
-      node_end() const;
-
-      inline node_iterator
-      node_end();
-
-    private:
-
-      inline std::pair<node_pointer, bool>
-      erase(node_pointer p_nd);
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-      void
-      assert_valid(bool check_iterators, bool check_metadata) const;
-
-      std::pair<const_pointer, const_pointer>
-      assert_node_consistent(const node_pointer p_nd) const
-      {
-	if (p_nd == NULL)
-	  return (std::make_pair((const_pointer)NULL,(const_pointer)NULL));
-
-	assert_node_consistent_with_left(p_nd);
-	assert_node_consistent_with_right(p_nd);
-
-	const std::pair<const_pointer, const_pointer>
-	  l_range =
-	  assert_node_consistent(p_nd->m_p_left);
-
-	if (l_range.second != NULL)
-	  PB_ASSOC_DBG_ASSERT(Cmp_Fn::operator()(
-						 PB_ASSOC_V2F(*l_range.second),
-						 PB_ASSOC_V2F(p_nd->m_value)));
-
-	const std::pair<const_pointer, const_pointer>
-	  r_range =
-	  assert_node_consistent(p_nd->m_p_right);
-
-	if (r_range.first != NULL)
-	  PB_ASSOC_DBG_ASSERT(Cmp_Fn::operator()(
-						 PB_ASSOC_V2F(p_nd->m_value),
-						 PB_ASSOC_V2F(*r_range.first)));
-
-	return (std::make_pair((l_range.first != NULL)? l_range.first :& p_nd->m_value,(r_range.second != NULL)? r_range.second :& p_nd->m_value));
-      }
-
-      void
-      assert_consistent_with_debug_base() const;
-
-      void
-      assert_node_consistent_with_left(const node_pointer p_nd) const;
-
-      void
-      assert_node_consistent_with_right(const node_pointer p_nd) const;
-
-      void
-      assert_consistent_with_debug_base(const node_pointer p_nd) const;
-
-      void
-      assert_min() const;
-
-      void
-      assert_min_imp(const node_pointer p_nd) const;
-
-      void
-      assert_max() const;
-
-      void
-      assert_max_imp(const node_pointer p_nd) const;
-
-      void
-      assert_iterators() const;
-
-      void
-      assert_size() const;
-
-#endif // #ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-      void
-      initialize();
-
-      node_pointer
-      recursive_copy_node(const node_pointer p_nd);
-
-      inline node_pointer
-      get_new_node_for_leaf_insert(const_reference r_val, pb_assoc::detail::int_to_type<false>);
-
-      inline node_pointer
-      get_new_node_for_leaf_insert(const_reference r_val, pb_assoc::detail::int_to_type<true>);
-
-      inline iterator
-      insert_imp_empty(const_reference r_value);
-
-      inline iterator
-      insert_leaf_new(const_reference r_value, node_pointer p_nd, bool left_nd);
-
-      static void
-      clear_imp(node_pointer p_nd);
-
-    protected:
-      node_pointer m_p_head;
-
-      iterator m_end_it;
-
-      reverse_iterator m_rend_it;
-
-      size_type m_size;
-
-      static node_allocator s_node_allocator;
-    };
-
-#include <ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp>
-#include <ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_MAP_DEBUG_BASE_C_DEC
-
-#undef PB_ASSOC_V2F
-#undef PB_ASSOC_EP2VP
-#undef PB_ASSOC_V2S
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index 4020e62f4f7c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,258 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructors_destructor_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::node_allocator
-PB_ASSOC_CLASS_C_DEC::s_node_allocator;
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME() :
-  m_p_head(s_node_allocator.allocate(1)),
-  m_end_it(m_p_head),
-  m_rend_it(m_p_head),
-  m_size(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
-  Cmp_Fn(r_cmp_fn),
-  m_p_head(s_node_allocator.allocate(1)),
-  m_end_it(m_p_head),
-  m_rend_it(m_p_head),
-  m_size(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator) :
-  Cmp_Fn(r_cmp_fn),
-  Node_Updator(r_node_updator),
-  m_p_head(s_node_allocator.allocate(1)),
-  m_end_it(m_p_head),
-  m_rend_it(m_p_head),
-  m_size(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) :
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-  my_map_debug_base(r_other),
-#endif // #ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-  Cmp_Fn(r_other),
-  Node_Updator(r_other),
-  m_p_head(s_node_allocator.allocate(1)),
-  m_end_it(m_p_head),
-  m_rend_it(m_p_head),
-  m_size(0)
-{
-  initialize();
-
-  m_size = r_other.m_size;
-
-  PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-    try
-      {
-	m_p_head->m_p_parent =
-	  recursive_copy_node(r_other.m_p_head->m_p_parent);
-
-	if (m_p_head->m_p_parent != NULL)
-	  m_p_head->m_p_parent->m_p_parent = m_p_head;
-
-	m_size = r_other.m_size;
-
-	initialize_min_max();
-      }
-    catch(...)
-      {
-	PB_ASSOC_DBG_ONLY(my_map_debug_base::clear();)
-
-	  s_node_allocator.deallocate(m_p_head, 1);
-
-	throw;
-      }
-
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-    PB_ASSOC_DBG_ONLY(my_map_debug_base::swap(r_other);)
-
-    std::swap(m_p_head, r_other.m_p_head);
-
-  std::swap(m_size, r_other.m_size);
-
-  std::swap(m_end_it, r_other.m_end_it);
-
-  std::swap(m_rend_it, r_other.m_rend_it);
-
-  std::swap((Cmp_Fn& )(*this), (Cmp_Fn& )r_other);
-
-  Node_Updator::swap(r_other);
-
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~PB_ASSOC_CLASS_NAME()
-{
-  clear();
-
-  s_node_allocator.deallocate(m_p_head, 1);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-initialize()
-{
-  m_p_head->m_p_parent = NULL;
-  m_p_head->m_p_left = m_p_head;
-  m_p_head->m_p_right = m_p_head;
-
-  m_size = 0;
-}
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::node_pointer
-PB_ASSOC_CLASS_C_DEC::
-recursive_copy_node(const node_pointer p_nd)
-{
-  if (p_nd == NULL)
-    return (NULL);
-
-  node_pointer p_ret = s_node_allocator.allocate(1);
-
-  try
-    {
-      new (p_ret) node(*p_nd);
-    }
-  catch(...)
-    {
-      s_node_allocator.deallocate(p_ret, 1);
-
-      throw;
-    }
-
-  p_ret->m_p_left = p_ret->m_p_right = NULL;
-
-  try
-    {
-      p_ret->m_p_left = recursive_copy_node(p_nd->m_p_left);
-
-      p_ret->m_p_right = recursive_copy_node(p_nd->m_p_right);
-    }
-  catch(...)
-    {
-      clear_imp(p_ret);
-
-      throw;
-    }
-
-  if (p_ret->m_p_left != NULL)
-    p_ret->m_p_left->m_p_parent = p_ret;
-
-  if (p_ret->m_p_right != NULL)
-    p_ret->m_p_right->m_p_parent = p_ret;
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_ret);)
-
-    return (p_ret);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-initialize_min_max()
-{
-  if (m_p_head->m_p_parent == NULL)
-    {
-      m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
-
-      return;
-    }
-
-  {
-    node_pointer p_min = m_p_head->m_p_parent;
-
-    while (p_min->m_p_left != NULL)
-      p_min = p_min->m_p_left;
-
-    m_p_head->m_p_left = p_min;
-  }
-
-  {
-    node_pointer p_max = m_p_head->m_p_parent;
-
-    while (p_max->m_p_right != NULL)
-      p_max = p_max->m_p_right;
-
-    m_p_head->m_p_right = p_max;
-  }
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
deleted file mode 100644
index f3b12d06d6f9..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
+++ /dev/null
@@ -1,278 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid(bool check_iterators, bool check_metadata) const
-{
-  PB_ASSOC_DBG_ASSERT(m_p_head != NULL);
-
-  if (m_p_head->m_p_parent == NULL)
-    {
-      PB_ASSOC_DBG_ASSERT(m_p_head->m_p_left == m_p_head);
-      PB_ASSOC_DBG_ASSERT(m_p_head->m_p_right == m_p_head);
-
-      if (check_metadata)
-	PB_ASSOC_DBG_ASSERT(m_size == 0);
-    }
-  else
-    {
-      PB_ASSOC_DBG_ASSERT(m_p_head->m_p_parent->m_p_parent == m_p_head);
-
-      PB_ASSOC_DBG_ASSERT(m_p_head->m_p_left != m_p_head);
-      PB_ASSOC_DBG_ASSERT(m_p_head->m_p_right != m_p_head);
-
-      if (check_metadata)
-	PB_ASSOC_DBG_ASSERT(m_size > 0);
-    }
-
-  if (check_metadata)
-    assert_size();
-
-  if (m_p_head->m_p_parent != NULL)
-    assert_node_consistent(m_p_head->m_p_parent);
-
-  assert_min();
-  assert_max();
-
-  if (check_metadata)
-    assert_consistent_with_debug_base();
-
-  if (check_iterators&&  check_metadata)
-    assert_iterators();
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_node_consistent_with_left(const node_pointer p_nd) const
-{
-  if (p_nd->m_p_left == NULL)
-    return;
-
-  PB_ASSOC_DBG_ASSERT(p_nd->m_p_left->m_p_parent == p_nd);
-
-  PB_ASSOC_DBG_ASSERT(!Cmp_Fn::operator()(
-					  PB_ASSOC_V2F(p_nd->m_value),
-					  PB_ASSOC_V2F(p_nd->m_p_left->m_value)));
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_node_consistent_with_right(const node_pointer p_nd) const
-{
-  if (p_nd->m_p_right == NULL)
-    return;
-
-  PB_ASSOC_DBG_ASSERT(p_nd->m_p_right->m_p_parent == p_nd);
-
-  PB_ASSOC_DBG_ASSERT(!Cmp_Fn::operator()(
-					  PB_ASSOC_V2F(p_nd->m_p_right->m_value),
-					  PB_ASSOC_V2F(p_nd->m_value)));
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_min() const
-{
-  assert_min_imp(m_p_head->m_p_parent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_min_imp(const node_pointer p_nd) const
-{
-  if (p_nd == NULL)
-    {
-      PB_ASSOC_DBG_ASSERT(m_p_head->m_p_left == m_p_head);
-
-      return;
-    }
-
-  if (p_nd->m_p_left == NULL)
-    {
-      PB_ASSOC_DBG_ASSERT(p_nd == m_p_head->m_p_left);
-
-      return;
-    }
-
-  assert_min_imp(p_nd->m_p_left);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_max() const
-{
-  assert_max_imp(m_p_head->m_p_parent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_max_imp(const node_pointer p_nd) const
-{
-  if (p_nd == NULL)
-    {
-      PB_ASSOC_DBG_ASSERT(m_p_head->m_p_right == m_p_head);
-
-      return;
-    }
-
-  if (p_nd->m_p_right == NULL)
-    {
-      PB_ASSOC_DBG_ASSERT(p_nd == m_p_head->m_p_right);
-
-      return;
-    }
-
-  assert_max_imp(p_nd->m_p_right);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_iterators() const
-{
-  PB_ASSOC_DBG_ASSERT(m_end_it.m_p_nd == m_p_head);
-  PB_ASSOC_DBG_ASSERT(m_rend_it.m_p_nd == m_p_head);
-
-  size_type iterated_num = 0;
-
-  const_iterator prev_it = end();
-
-  for (const_iterator it = begin(); it != end(); ++it)
-    {
-      ++iterated_num;
-
-      PB_ASSOC_DBG_ASSERT(lower_bound(
-				      PB_ASSOC_V2F(*it)).m_p_nd == it.m_p_nd);
-
-      const_iterator upper_bound_it = upper_bound(
-						  PB_ASSOC_V2F(*it));
-
-      --upper_bound_it;
-
-      PB_ASSOC_DBG_ASSERT(upper_bound_it.m_p_nd == it.m_p_nd);
-
-      if (prev_it != end())
-	PB_ASSOC_DBG_ASSERT(Cmp_Fn::operator()(
-					       PB_ASSOC_V2F(*prev_it),
-					       PB_ASSOC_V2F(*it)));
-
-      prev_it = it;
-    }
-
-  PB_ASSOC_DBG_ASSERT(iterated_num == m_size);
-
-  size_type reverse_iterated_num = 0;
-
-  const_reverse_iterator reverse_prev_it = rend();
-
-  for (const_reverse_iterator reverse_it = rbegin(); reverse_it != rend();
-       ++reverse_it)
-    {
-      ++reverse_iterated_num;
-
-      PB_ASSOC_DBG_ASSERT(lower_bound(
-				      PB_ASSOC_V2F(*reverse_it)).m_p_nd == reverse_it.m_p_nd);
-
-      const_iterator upper_bound_it = upper_bound(
-						  PB_ASSOC_V2F(*reverse_it));
-
-      --upper_bound_it;
-
-      PB_ASSOC_DBG_ASSERT(upper_bound_it.m_p_nd == reverse_it.m_p_nd);
-
-      if (reverse_prev_it != rend())
-	PB_ASSOC_DBG_ASSERT(!Cmp_Fn::operator()(
-						PB_ASSOC_V2F(*reverse_prev_it),
-						PB_ASSOC_V2F(*reverse_it)));
-
-      reverse_prev_it = reverse_it;
-    }
-
-  PB_ASSOC_DBG_ASSERT(reverse_iterated_num == m_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_consistent_with_debug_base() const
-{
-  my_map_debug_base::check_size(m_size);
-
-  assert_consistent_with_debug_base(m_p_head->m_p_parent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_consistent_with_debug_base(const node_pointer p_nd) const
-{
-  if (p_nd == NULL)
-    return;
-
-  my_map_debug_base::check_key_exists(
-				      PB_ASSOC_V2F(p_nd->m_value));
-
-  assert_consistent_with_debug_base(p_nd->m_p_left);
-  assert_consistent_with_debug_base(p_nd->m_p_right);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_size() const
-{
-  PB_ASSOC_DBG_ASSERT(recursive_count(m_p_head->m_p_parent) == m_size);
-}
-
-#endif // #ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
deleted file mode 100644
index cceea5134ee5..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-actual_erase_node(node_pointer p_z)
-{
-  PB_ASSOC_DBG_ASSERT(m_size > 0);
-  --m_size;
-
-  PB_ASSOC_DBG_ONLY(erase_existing(PB_ASSOC_V2F(p_z->m_value)));
-
-  p_z->~node();
-
-  s_node_allocator.deallocate(p_z, 1);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-update_min_max_for_erased_node(node_pointer p_z)
-{
-  if (m_size == 1)
-    {
-      m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
-
-      return;
-    }
-
-  if (m_p_head->m_p_left == p_z)
-    {
-      iterator it(p_z);
-
-      ++it;
-
-      m_p_head->m_p_left = it.m_p_nd;
-    }
-  else if (m_p_head->m_p_right == p_z)
-    {
-      iterator it(p_z);
-
-      --it;
-
-      m_p_head->m_p_right = it.m_p_nd;
-    }
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-
-    clear_imp(m_p_head->m_p_parent);
-
-  m_size = 0;
-
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::clear();)
-
-    PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear_imp(node_pointer p_nd)
-{
-  if (p_nd == NULL)
-    return;
-
-  clear_imp(p_nd->m_p_left);
-
-  clear_imp(p_nd->m_p_right);
-
-  p_nd->~Node();
-
-  s_node_allocator.deallocate(p_nd, 1);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
deleted file mode 100644
index 436cd25f8618..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-lower_bound(const_key_reference r_key) const
-{
-  node_pointer p_pot = m_p_head;
-  node_pointer p_nd = m_p_head->m_p_parent;
-
-  while (p_nd != NULL)
-    if (!Cmp_Fn::operator()(PB_ASSOC_V2F(p_nd->m_value), r_key))
-      {
-	p_pot = p_nd;
-
-	p_nd = p_nd->m_p_left;
-      }
-    else
-      p_nd = p_nd->m_p_right;
-
-  return (iterator(p_pot));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-lower_bound(const_key_reference r_key)
-{
-  node_pointer p_pot = m_p_head;
-  node_pointer p_nd = m_p_head->m_p_parent;
-
-  while (p_nd != NULL)
-    if (!Cmp_Fn::operator()(
-			    PB_ASSOC_V2F(p_nd->m_value),
-			    r_key))
-      {
-	p_pot = p_nd;
-
-	p_nd = p_nd->m_p_left;
-      }
-    else
-      p_nd = p_nd->m_p_right;
-
-  return (iterator(p_pot));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-upper_bound(const_key_reference r_key) const
-{
-  node_pointer p_pot = m_p_head;
-  node_pointer p_nd = m_p_head->m_p_parent;
-
-  while (p_nd != NULL)
-    if (Cmp_Fn::operator()(r_key,
-			   PB_ASSOC_V2F(p_nd->m_value)))
-      {
-	p_pot = p_nd,
-
-	  p_nd = p_nd->m_p_left;
-      }
-    else
-      p_nd = p_nd->m_p_right;
-
-  return (const_iterator(p_pot));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-upper_bound(const_key_reference r_key)
-{
-  node_pointer p_pot = m_p_head;
-  node_pointer p_nd = m_p_head->m_p_parent;
-
-  while (p_nd != NULL)
-    if (Cmp_Fn::operator()(r_key,
-			   PB_ASSOC_V2F(p_nd->m_value)))
-      {
-	p_pot = p_nd,
-
-	  p_nd = p_nd->m_p_left;
-      }
-    else
-      p_nd = p_nd->m_p_right;
-
-  return (find_iterator(p_pot));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, false);)
-
-    node_pointer p_pot = m_p_head;
-  node_pointer p_nd = m_p_head->m_p_parent;
-
-  while (p_nd != NULL)
-    if (!Cmp_Fn::operator()(PB_ASSOC_V2F(p_nd->m_value), r_key))
-      {
-	p_pot = p_nd;
-
-	p_nd = p_nd->m_p_left;
-      }
-    else
-      p_nd = p_nd->m_p_right;
-
-  return find_iterator((p_pot != m_p_head&&  Cmp_Fn::operator()(
-								r_key,
-								PB_ASSOC_V2F(p_pot->m_value)))?
-		       m_p_head : p_pot);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-
-    node_pointer p_pot = m_p_head;
-  node_pointer p_nd = m_p_head->m_p_parent;
-
-  while (p_nd != NULL)
-    if (!Cmp_Fn::operator()(PB_ASSOC_V2F(p_nd->m_value), r_key))
-      {
-	p_pot = p_nd;
-
-	p_nd = p_nd->m_p_left;
-      }
-    else
-      p_nd = p_nd->m_p_right;
-
-  return const_find_iterator((p_pot != m_p_head&&  Cmp_Fn::operator()(
-								      r_key,
-								      PB_ASSOC_V2F(p_pot->m_value)))?
-			     m_p_head : p_pot);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
deleted file mode 100644
index d6ddadc7a559..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
+++ /dev/null
@@ -1,391 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_iterators.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-#define PB_ASSOC_CONST_IT_C_DEC \
-	const_it_< \
-		Is_Forward_Iterator>
-
-#define PB_ASSOC_CONST_ODIR_IT_C_DEC \
-	const_it_< \
-		!Is_Forward_Iterator>
-
-#define PB_ASSOC_IT_C_DEC \
-	it_< \
-		Is_Forward_Iterator>
-
-#define PB_ASSOC_ODIR_IT_C_DEC \
-	it_< \
-		!Is_Forward_Iterator>
-
-template<bool Is_Forward_Iterator>
-class const_it_
-{
-
-public:
-
-  typedef std::bidirectional_iterator_tag iterator_category;
-
-  typedef typename Allocator::difference_type difference_type;
-
-  typedef mapped_value_type value_type;
-
-  typedef mapped_pointer pointer;
-
-  typedef const_mapped_pointer const_pointer;
-
-  typedef mapped_reference reference;
-
-  typedef const_mapped_reference const_reference;
-
-public:
-
-  inline
-  const_it_(const node_pointer p_nd = NULL) : m_p_nd(const_cast<node_pointer>(p_nd))
-  { }
-
-  inline
-  const_it_(const PB_ASSOC_CONST_ODIR_IT_C_DEC& 
-	    r_other)
-
-    : m_p_nd(r_other.m_p_nd)
-  { }
-
-  inline
-  PB_ASSOC_CONST_IT_C_DEC& 
-  operator=(const PB_ASSOC_CONST_IT_C_DEC& 
-	    r_other)
-  {
-    m_p_nd = r_other.m_p_nd;
-
-    return (*this);
-  }
-
-  inline
-  PB_ASSOC_CONST_IT_C_DEC& 
-  operator=(const PB_ASSOC_CONST_ODIR_IT_C_DEC& 
-	    r_other)
-  {
-    m_p_nd = r_other.m_p_nd;
-
-    return (*this);
-  }
-
-  inline const_pointer
-  operator->() const
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_nd != NULL);
-
-    return (&m_p_nd->m_value);
-  }
-
-  inline const_reference
-  operator*() const
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_nd != NULL);
-
-    return (m_p_nd->m_value);
-  }
-
-  inline bool
-  operator==(const PB_ASSOC_CONST_IT_C_DEC
-	     &r_other) const
-  {
-    return (m_p_nd == r_other.m_p_nd);
-  }
-
-  inline bool
-  operator==(const PB_ASSOC_CONST_ODIR_IT_C_DEC
-	     &r_other) const
-  {
-    return (m_p_nd == r_other.m_p_nd);
-  }
-
-  inline bool
-  operator!=(const PB_ASSOC_CONST_IT_C_DEC& 
-	     r_other) const
-  {
-    return (m_p_nd != r_other.m_p_nd);
-  }
-
-  inline bool
-  operator!=(const PB_ASSOC_CONST_ODIR_IT_C_DEC& 
-	     r_other) const
-  {
-    return (m_p_nd != r_other.m_p_nd);
-  }
-
-  inline PB_ASSOC_CONST_IT_C_DEC& 
-  operator++()
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_nd != NULL);
-
-    inc(int_to_type<Is_Forward_Iterator>());
-
-    return (*this);
-  }
-
-  inline PB_ASSOC_CONST_IT_C_DEC
-  operator++(int)
-  {
-    PB_ASSOC_CONST_IT_C_DEC
-      ret_it(m_p_nd);
-
-    operator++();
-
-    return (ret_it);
-  }
-
-  inline PB_ASSOC_CONST_IT_C_DEC& 
-  operator--()
-  {
-    dec(int_to_type<Is_Forward_Iterator>());
-
-    return (*this);
-  }
-
-  inline PB_ASSOC_CONST_IT_C_DEC
-  operator--(int)
-  {
-    PB_ASSOC_CONST_IT_C_DEC
-      ret_it(m_p_nd);
-
-    operator--();
-
-    return (ret_it);
-  }
-
-protected:
-  inline void
-  inc(int_to_type<false>)
-  {
-    dec(int_to_type<true>());
-  }
-
-  void
-  inc(int_to_type<true>)
-  {
-    if (m_p_nd->m_p_right != NULL)
-      {
-	m_p_nd = m_p_nd->m_p_right;
-
-	while (m_p_nd->m_p_left != NULL)
-	  m_p_nd = m_p_nd->m_p_left;
-
-	return;
-      }
-
-    node_pointer p_y = m_p_nd->m_p_parent;
-
-    while (m_p_nd == p_y->m_p_right)
-      {
-	m_p_nd = p_y;
-
-	p_y = p_y->m_p_parent;
-      }
-
-    if (m_p_nd->m_p_right != p_y)
-      m_p_nd = p_y;
-  }
-
-  inline void
-  dec(int_to_type<false>)
-  {
-    inc(int_to_type<true>());
-  }
-
-  void
-  dec(int_to_type<true>)
-  {
-    if (m_p_nd->special_dec_check()&& 
-	m_p_nd->m_p_parent->m_p_parent == m_p_nd)
-      {
-	m_p_nd = m_p_nd->m_p_right;
-
-	return;
-      }
-
-    if (m_p_nd->m_p_left != NULL)
-      {
-	node_pointer p_y = m_p_nd->m_p_left;
-
-	while (p_y->m_p_right != NULL)
-	  p_y = p_y->m_p_right;
-
-	m_p_nd = p_y;
-
-	return;
-      }
-
-    node_pointer p_y = m_p_nd->m_p_parent;
-
-    while (m_p_nd == p_y->m_p_left)
-      {
-	m_p_nd = p_y;
-
-	p_y = p_y->m_p_parent;
-      }
-
-    /*
-     * This seems to correct an apparent bug in the SGI STL
-     * implementation. */
-    if (m_p_nd->m_p_left != p_y)
-      m_p_nd = p_y;
-  }
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-
-public:
-  node_pointer m_p_nd;
-};
-
-template<bool Is_Forward_Iterator>
-class it_ : 
-  public PB_ASSOC_CONST_IT_C_DEC
-
-{
-
-public:
-
-  inline
-  it_(const node_pointer p_nd = NULL) : PB_ASSOC_CONST_IT_C_DEC((node_pointer)p_nd)
-  { }
-
-  inline
-  it_(const PB_ASSOC_ODIR_IT_C_DEC& 
-      r_other)
-
-    : PB_ASSOC_CONST_IT_C_DEC(
-			      r_other.m_p_nd)
-  { }
-
-  inline
-  PB_ASSOC_IT_C_DEC& 
-  operator=(const PB_ASSOC_IT_C_DEC& 
-	    r_other)
-  {
-    my_base_it::m_p_nd = r_other.m_p_nd;
-
-    return (*this);
-  }
-
-  inline
-  PB_ASSOC_IT_C_DEC& 
-  operator=(const PB_ASSOC_ODIR_IT_C_DEC& 
-	    r_other)
-  {
-    my_base_it::m_p_nd = r_other.m_p_nd;
-
-    return (*this);
-  }
-
-  inline pointer
-  operator->()
-  {
-    PB_ASSOC_DBG_ASSERT(my_base_it::m_p_nd != NULL);
-
-    return (&my_base_it::m_p_nd->m_value);
-  }
-
-  inline reference
-  operator*()
-  {
-    PB_ASSOC_DBG_ASSERT(my_base_it::m_p_nd != NULL);
-
-    return (my_base_it::m_p_nd->m_value);
-  }
-
-  inline PB_ASSOC_IT_C_DEC& 
-  operator++()
-  {
-    PB_ASSOC_CONST_IT_C_DEC::
-      operator++();
-
-    return (*this);
-  }
-
-  inline PB_ASSOC_IT_C_DEC
-  operator++(int)
-  {
-    PB_ASSOC_IT_C_DEC
-      ret_it(my_base_it::m_p_nd);
-
-    operator++();
-
-    return (ret_it);
-  }
-
-  inline PB_ASSOC_IT_C_DEC& 
-  operator--()
-  {
-    PB_ASSOC_CONST_IT_C_DEC::
-      operator--();
-
-    return (*this);
-  }
-
-  inline PB_ASSOC_IT_C_DEC
-  operator--(int)
-  {
-    PB_ASSOC_IT_C_DEC
-      ret_it(my_base_it::m_p_nd);
-
-    operator--();
-
-    return (ret_it);
-  }
-
-protected:
-  typedef PB_ASSOC_CONST_IT_C_DEC my_base_it;
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-};
-
-#undef PB_ASSOC_CONST_IT_C_DEC
-
-#undef PB_ASSOC_CONST_ODIR_IT_C_DEC
-
-#undef PB_ASSOC_IT_C_DEC
-
-#undef PB_ASSOC_ODIR_IT_C_DEC
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
deleted file mode 100644
index d60da1a9093e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-template<class Other_Map_Type>
-bool
-PB_ASSOC_CLASS_C_DEC::
-cmp_with_other(const Other_Map_Type& r_other) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-
-    if (m_size != r_other.size())
-      return (false);
-
-  for (typename Other_Map_Type::const_iterator it = r_other.begin();
-       it != r_other.end(); ++it)
-    if (find((const_key_reference)PB_ASSOC_V2F(*it)) == end())
-      return (false);
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (size() == 0);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (s_node_allocator.max_size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  return (m_size);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
deleted file mode 100644
index 664a9d1d8964..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
+++ /dev/null
@@ -1,215 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file insert_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert_leaf(const_mapped_reference r_mapped_value)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-
-    if (m_size == 0)
-      return (std::make_pair(
-			     insert_imp_empty(r_mapped_value),
-			     true));
-
-  node_pointer p_nd = m_p_head->m_p_parent;
-  node_pointer p_pot = m_p_head;
-
-  while (p_nd != NULL)
-    if (!Cmp_Fn::operator()(
-			    PB_ASSOC_V2F(p_nd->m_value),
-			    PB_ASSOC_V2F(r_mapped_value)))
-      {
-	p_pot = p_nd;
-
-	p_nd = p_nd->m_p_left;
-      }
-    else
-      p_nd = p_nd->m_p_right;
-
-  if (p_pot == m_p_head)
-    return (std::make_pair(
-			   insert_leaf_new(r_mapped_value, m_p_head->m_p_right, false),
-			   true));
-
-  if (!Cmp_Fn::operator()(
-			  PB_ASSOC_V2F(r_mapped_value),
-			  PB_ASSOC_V2F(p_pot->m_value)))
-    {
-      PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-
-	PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(
-							      PB_ASSOC_V2F(r_mapped_value)));
-
-      return (std::make_pair(p_pot, false));
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(
-								PB_ASSOC_V2F(r_mapped_value)));
-
-  p_nd = p_pot->m_p_left;
-  if (p_nd == NULL)
-    return (std::make_pair(
-			   insert_leaf_new(r_mapped_value, p_pot, true),
-			   true));
-
-  while (p_nd->m_p_right != NULL)
-    p_nd = p_nd->m_p_right;
-
-  return (std::make_pair(
-			 insert_leaf_new(r_mapped_value, p_nd, false),
-			 true));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-insert_leaf_new(const_mapped_reference r_mapped_value, node_pointer p_nd, bool left_nd)
-{
-  node_pointer p_new_nd =
-    get_new_node_for_leaf_insert(r_mapped_value, my_traits_base::s_no_throw_copies_indicator);
-
-  if (left_nd)
-    {
-      PB_ASSOC_DBG_ASSERT(p_nd->m_p_left == NULL);
-      PB_ASSOC_DBG_ASSERT(Cmp_Fn::operator()(
-					     PB_ASSOC_V2F(r_mapped_value),
-					     PB_ASSOC_V2F(p_nd->m_value)));
-
-      p_nd->m_p_left = p_new_nd;
-
-      if (m_p_head->m_p_left == p_nd)
-	m_p_head->m_p_left = p_new_nd;
-    }
-  else
-    {
-      PB_ASSOC_DBG_ASSERT(p_nd->m_p_right == NULL);
-      PB_ASSOC_DBG_ASSERT(Cmp_Fn::operator()(
-					     PB_ASSOC_V2F(p_nd->m_value),
-					     PB_ASSOC_V2F(r_mapped_value)));
-
-      p_nd->m_p_right = p_new_nd;
-
-      if (m_p_head->m_p_right == p_nd)
-	m_p_head->m_p_right = p_new_nd;
-    }
-
-  p_new_nd->m_p_parent = p_nd;
-
-  p_new_nd->m_p_left = p_new_nd->m_p_right = NULL;
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_nd));
-
-  update_to_top(p_new_nd, (Node_Updator* )this);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(
-						  PB_ASSOC_V2F(r_mapped_value)));
-
-  return (iterator(p_new_nd));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-insert_imp_empty(const_mapped_reference r_mapped_value)
-{
-  node_pointer p_new_node =
-    get_new_node_for_leaf_insert(r_mapped_value, my_traits_base::s_no_throw_copies_indicator);
-
-  m_p_head->m_p_left = m_p_head->m_p_right =
-    m_p_head->m_p_parent = p_new_node;
-
-  p_new_node->m_p_parent = m_p_head;
-
-  p_new_node->m_p_left = p_new_node->m_p_right = NULL;
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(
-						  PB_ASSOC_V2F(r_mapped_value)));
-
-  update_to_top(m_p_head->m_p_parent, (Node_Updator* )this);
-
-  return (iterator(p_new_node));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::node_pointer
-PB_ASSOC_CLASS_C_DEC::
-get_new_node_for_leaf_insert(const_mapped_reference r_val, pb_assoc::detail::int_to_type<false>)
-{
-  node_pointer p_new_nd = s_node_allocator.allocate(1);
-
-  cond_dealtor_t cond(p_new_nd);
-
-  new (const_cast<void* >(
-			  static_cast<const void* >(&p_new_nd->m_value)))
-    typename Node::value_type(r_val);
-
-  cond.set_no_action();
-
-  p_new_nd->m_p_left = p_new_nd->m_p_right = NULL;
-
-  ++m_size;
-
-  return (p_new_nd);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::node_pointer
-PB_ASSOC_CLASS_C_DEC::
-get_new_node_for_leaf_insert(const_mapped_reference r_val, pb_assoc::detail::int_to_type<true>)
-{
-  node_pointer p_new_nd = s_node_allocator.allocate(1);
-
-  new (const_cast<void* >(
-			  static_cast<const void* >(&p_new_nd->m_value)))
-    typename Node::value_type(r_val);
-
-  p_new_nd->m_p_left = p_new_nd->m_p_right = NULL;
-
-  ++m_size;
-
-  return (p_new_nd);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
deleted file mode 100644
index 57c23f216532..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterators_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end()
-{
-  return (m_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end() const
-{
-  return (m_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-begin()
-{
-  return (iterator(m_p_head->m_p_left));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-begin() const
-{
-  return (const_iterator(m_p_head->m_p_left));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-end()
-{
-  return (m_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-end() const
-{
-  return (m_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_rend()
-{
-  return (m_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_rend() const
-{
-  return (m_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-rbegin() const
-{
-  return (const_reverse_iterator(m_p_head->m_p_right));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-rend()
-{
-  return (m_rend_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-rend() const
-{
-  return (m_rend_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_node_iterator
-PB_ASSOC_CLASS_C_DEC::
-node_begin() const
-{
-  return (const_node_iterator(m_p_head->m_p_parent));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::node_iterator
-PB_ASSOC_CLASS_C_DEC::
-node_begin()
-{
-  return (node_iterator(m_p_head->m_p_parent));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_node_iterator
-PB_ASSOC_CLASS_C_DEC::
-node_end() const
-{
-  return (const_node_iterator(NULL));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::node_iterator
-PB_ASSOC_CLASS_C_DEC::
-node_end()
-{
-  return (node_iterator(NULL));
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
deleted file mode 100644
index 0386fea973b5..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
+++ /dev/null
@@ -1,144 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file node_iterators.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-class const_node_it_
-{
-
-public:
-
-  typedef trivial_iterator_tag iterator_category;
-
-  typedef trivial_iterator_difference_type difference_type;
-
-  typedef const_iterator value_type;
-
-  typedef const_iterator*  pointer;
-
-  typedef const_iterator*  const_pointer;
-
-  typedef const_iterator&  reference;
-
-  typedef const iterator&  const_reference;
-
-public:
-
-  inline
-  const_node_it_(const node_pointer p_nd = NULL)
-
-    : m_p_nd(const_cast<node_pointer>(p_nd))
-  { }
-
-  inline const_iterator
-  operator*() const
-  {
-    return (const_iterator(m_p_nd));
-  }
-
-  inline const_node_it_
-  l_child() const
-  {
-    return (const_node_it_(m_p_nd->m_p_left));
-  }
-
-  inline const_node_it_
-  r_child() const
-  {
-    return (const_node_it_(m_p_nd->m_p_right));
-  }
-
-  inline bool
-  operator==(const const_node_it_& r_other) const
-  {
-    return (m_p_nd == r_other.m_p_nd);
-  }
-
-  inline bool
-  operator!=(const const_node_it_& r_other) const
-  {
-    return (m_p_nd != r_other.m_p_nd);
-  }
-
-private:
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-
-public:
-  node_pointer m_p_nd;
-};
-
-class node_it_ : 
-  public const_node_it_
-
-{
-
-public:
-
-  inline
-  node_it_(const node_pointer p_nd = NULL)
-
-    : const_node_it_(const_cast<node_pointer>(p_nd))
-  { }
-
-  inline iterator
-  operator*() const
-  {
-    return (iterator(const_node_it_::m_p_nd));
-  }
-
-  inline node_it_
-  l_child()
-  {
-    return (node_it_(const_node_it_::m_p_nd->m_p_left));
-  }
-
-  inline node_it_
-  r_child()
-  {
-    return (node_it_(const_node_it_::m_p_nd->m_p_right));
-  }
-
-private:
-  friend class PB_ASSOC_CLASS_C_DEC;
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
deleted file mode 100644
index 280300139c74..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file r_erase_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-actual_erase_node(node_pointer p_z)
-{
-  PB_ASSOC_DBG_ASSERT(m_size > 0);
-  --m_size;
-
-  PB_ASSOC_DBG_ONLY(erase_existing(PB_ASSOC_V2F(p_z->m_value)));
-
-  p_z->~node();
-
-  s_node_allocator.deallocate(p_z, 1);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-update_min_max_for_erased_node(node_pointer p_z)
-{
-  if (m_size == 1)
-    {
-      m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
-
-      return;
-    }
-
-  if (m_p_head->m_p_left == p_z)
-    {
-      iterator it(p_z);
-
-      ++it;
-
-      m_p_head->m_p_left = it.m_p_nd;
-    }
-  else if (m_p_head->m_p_right == p_z)
-    {
-      iterator it(p_z);
-
-      --it;
-
-      m_p_head->m_p_right = it.m_p_nd;
-    }
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-
-    clear_imp(m_p_head->m_p_parent);
-
-  m_size = 0;
-
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::clear();)
-
-    PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear_imp(node_pointer p_nd)
-{
-  if (p_nd == NULL)
-    return;
-
-  clear_imp(p_nd->m_p_left);
-
-  clear_imp(p_nd->m_p_right);
-
-  p_nd->~Node();
-
-  s_node_allocator.deallocate(p_nd, 1);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
deleted file mode 100644
index 356a9f79670d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
+++ /dev/null
@@ -1,163 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file rotate_fn_imps.hpp
- * Contains imps for rotating nodes.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-rotate_left(node_pointer p_x)
-{
-  node_pointer p_y = p_x->m_p_right;
-
-  p_x->m_p_right = p_y->m_p_left;
-
-  if (p_y->m_p_left != NULL)
-    p_y->m_p_left->m_p_parent = p_x;
-
-  p_y->m_p_parent = p_x->m_p_parent;
-
-  if (p_x == m_p_head->m_p_parent)
-    m_p_head->m_p_parent = p_y;
-  else if (p_x == p_x->m_p_parent->m_p_left)
-    p_x->m_p_parent->m_p_left = p_y;
-  else
-    p_x->m_p_parent->m_p_right = p_y;
-
-  p_y->m_p_left = p_x;
-  p_x->m_p_parent = p_y;
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_x);)
-    PB_ASSOC_DBG_ONLY(assert_node_consistent(p_y);)
-
-    apply_update(p_x, (Node_Updator* )this);
-  apply_update(p_x->m_p_parent, (Node_Updator* )this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-rotate_right(node_pointer p_x)
-{
-  node_pointer p_y = p_x->m_p_left;
-
-  p_x->m_p_left = p_y->m_p_right;
-
-  if (p_y->m_p_right != NULL)
-    p_y->m_p_right->m_p_parent = p_x;
-
-  p_y->m_p_parent = p_x->m_p_parent;
-
-  if (p_x == m_p_head->m_p_parent)
-    m_p_head->m_p_parent = p_y;
-  else if (p_x == p_x->m_p_parent->m_p_right)
-    p_x->m_p_parent->m_p_right = p_y;
-  else
-    p_x->m_p_parent->m_p_left = p_y;
-
-  p_y->m_p_right = p_x;
-  p_x->m_p_parent = p_y;
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_x);)
-    PB_ASSOC_DBG_ONLY(assert_node_consistent(p_y);)
-
-    apply_update(p_x, (Node_Updator* )this);
-  apply_update(p_x->m_p_parent, (Node_Updator* )this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-rotate_parent(node_pointer p_nd)
-{
-  node_pointer p_parent = p_nd->m_p_parent;
-
-  if (p_nd == p_parent->m_p_left)
-    rotate_right(p_parent);
-  else
-    rotate_left(p_parent);
-
-  PB_ASSOC_DBG_ASSERT(p_parent->m_p_parent = p_nd);
-  PB_ASSOC_DBG_ASSERT(p_nd->m_p_left == p_parent ||
-		      p_nd->m_p_right == p_parent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-apply_update(node_pointer /*p_nd*/, pb_assoc::null_node_updator*  /*p_updator*/)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<class Node_Updator_>
-inline void
-PB_ASSOC_CLASS_C_DEC::
-apply_update(node_pointer p_nd, Node_Updator_* p_updator)
-{
-  p_updator->operator()(
-			&PB_ASSOC_V2F(p_nd->m_value),(p_nd->m_p_left == NULL)?
-			NULL :
-			&PB_ASSOC_V2F(p_nd->m_p_left->m_value),(p_nd->m_p_right == NULL)?
-			NULL :
-			&PB_ASSOC_V2F(p_nd->m_p_right->m_value));
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class Node_Updator_>
-inline void
-PB_ASSOC_CLASS_C_DEC::
-update_to_top(node_pointer p_nd, Node_Updator_* p_updator)
-{
-  while (p_nd != m_p_head)
-    {
-      apply_update(p_nd, p_updator);
-
-      p_nd = p_nd->m_p_parent;
-    }
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-update_to_top(node_pointer /*p_nd*/, pb_assoc::null_node_updator*  /*p_updator*/)
-{ }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
deleted file mode 100644
index 2bd3c64e2107..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
+++ /dev/null
@@ -1,192 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file split_join_fn_imps.hpp
- * Contains an implementation class for bin_search_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-bool
-PB_ASSOC_CLASS_C_DEC::
-join_prep(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-    if (r_other.m_size == 0)
-      return (false);
-
-  if (m_size == 0)
-    {
-      swap(r_other);
-
-      return (false);
-    }
-
-  const bool greater = Cmp_Fn::operator()(
-					  PB_ASSOC_V2F(m_p_head->m_p_right->m_value),
-					  PB_ASSOC_V2F(r_other.m_p_head->m_p_left->m_value));
-
-  const bool lesser = Cmp_Fn::operator()(
-					 PB_ASSOC_V2F(r_other.m_p_head->m_p_right->m_value),
-					 PB_ASSOC_V2F(m_p_head->m_p_left->m_value));
-
-  if (!greater&&  !lesser)
-    throw cannot_join();
-
-  if (lesser)
-    swap(r_other);
-
-  m_size += r_other.m_size;
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-  for (const_iterator other_it = r_other.begin(); other_it != r_other.end();
-       ++other_it)
-    {
-      my_map_debug_base::insert_new(PB_ASSOC_V2F(*other_it));
-      r_other.my_map_debug_base::erase_existing(PB_ASSOC_V2F(*other_it));
-    }
-#endif // PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-join_finish(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  initialize_min_max();
-
-  r_other.initialize();
-}
-
-PB_ASSOC_CLASS_T_DEC
-bool
-PB_ASSOC_CLASS_C_DEC::
-split_prep(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-    r_other.clear();
-
-  if (m_size == 0)
-    {
-      PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-	return (false);
-    }
-
-  if (Cmp_Fn::operator()(r_key, PB_ASSOC_V2F(m_p_head->m_p_left->m_value)))
-    {
-      swap(r_other);
-
-      PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-	return (false);
-    }
-
-  if (!Cmp_Fn::operator()(
-			  r_key,
-			  PB_ASSOC_V2F(m_p_head->m_p_right->m_value)))
-    {
-      PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-	return (false);
-    }
-
-  if (m_size == 1)
-    {
-      swap(r_other);
-
-      PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-
-	return (false);
-    }
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-  for (const_iterator it = begin(); it != end(); ++it)
-    if (Cmp_Fn::operator()(
-			   r_key,
-			   PB_ASSOC_V2F(*it)))
-      {
-	my_map_debug_base::erase_existing(PB_ASSOC_V2F(*it));
-	r_other.my_map_debug_base::insert_new(PB_ASSOC_V2F(*it));
-      }
-#endif // PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-split_finish(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  r_other.m_size = r_other.recursive_count(r_other.m_p_head->m_p_parent);
-
-  r_other.initialize_min_max();
-
-  m_size -= r_other.m_size;
-
-  initialize_min_max();
-
-  PB_ASSOC_DBG_ONLY(assert_valid(true, true);)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-recursive_count(node_pointer p_nd) const
-{
-  if (p_nd == NULL)
-    return (0);
-
-  return (1 +
-	  recursive_count(p_nd->m_p_left) +
-	  recursive_count(p_nd->m_p_right));
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index 5345c17323c4..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of cc_ht's constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn) :
-  my_base(r_hash_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
-  my_base(r_hash_fn, r_eq_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-  my_base(r_hash_fn, r_eq_fn, r_comb_hash_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn, const Resize_Policy& r_resize_policy) :
-  my_base(r_hash_fn, r_eq_fn, r_comb_hash_fn, r_resize_policy)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC& 
-PB_ASSOC_CLASS_C_DEC::
-operator=(const PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  if (this !=& r_other)
-    {
-      PB_ASSOC_CLASS_C_DEC tmp(r_other);
-
-      swap(tmp);
-    }
-
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(It first_it, It last_it)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn) :
-  my_base(r_hash_fn)
-{
-  copy_from_range(first_it, last_it);
-}
-
-// Tmp Ami make all methods in assoc_cntnr.hpp inline
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
-  my_base(r_hash_fn, r_eq_fn)
-{
-  copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-  my_base(r_hash_fn, r_eq_fn, r_comb_hash_fn)
-{
-  copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn, const Resize_Policy& r_resize_policy) :
-  my_base(r_hash_fn, r_eq_fn, r_comb_hash_fn, r_resize_policy)
-{
-  copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  PB_ASSOC_BASE_C_DEC((const PB_ASSOC_BASE_C_DEC& )r_other)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~cc_hash_assoc_cntnr()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  my_base::swap(r_other);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
deleted file mode 100644
index a854afc2576d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
+++ /dev/null
@@ -1,602 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file cc_ht_map_.hpp
- * Contains an implementation class for cc_ht_map_.
- */
-
-#include <utility>
-#include <iterator>
-#include <ext/pb_assoc/detail/cond_dealtor.hpp>
-#include <ext/pb_assoc/trivial_iterator_def.hpp>
-#include <ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp>
-#include <ext/pb_assoc/detail/hash_types_traits.hpp>
-#include <ext/pb_assoc/detail/types_traits.hpp>
-#include <ext/pb_assoc/exception.hpp>
-#include <ext/pb_assoc/detail/map_debug_base.hpp>
-#include <ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Hash_Fn, \
-		class Eq_Fn, \
-		class Allocator, \
-		bool Store_Hash, \
-		class Comb_Hash_Fn, \
-		class Resize_Policy>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	cc_ht_map_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	cc_ht_map_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_CLASS_NAME< \
-		Key, \
-		Data, \
-		Hash_Fn, \
-		Eq_Fn, \
-		Allocator, \
-		Store_Hash, \
-		Comb_Hash_Fn, \
-		Resize_Policy >
-
-#define PB_ASSOC_HASH_EQ_FN_C_DEC \
-	pb_assoc::detail::hash_eq_fn< \
-		Key, \
-		Eq_Fn, \
-		Allocator, \
-		Store_Hash>
-
-#define PB_ASSOC_RANGED_HASH_FN_C_DEC \
-	pb_assoc::detail::ranged_hash_fn< \
-		Key, \
-		Hash_Fn, \
-		Allocator, \
-		Comb_Hash_Fn, \
-		Store_Hash>
-
-#define PB_ASSOC_TYPES_TRAITS_C_DEC \
-	types_traits< \
-		Key, \
-		Data, \
-		Allocator>
-
-#define PB_ASSOC_HASH_TYPES_TRAITS_C_DEC \
-	hash_types_traits< \
-		typename Allocator::size_type, \
-		Store_Hash>
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-#define PB_ASSOC_MAP_DEBUG_BASE_C_DEC \
-	pb_assoc::detail::map_debug_base< \
-		Key, \
-		Eq_Fn>
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_V2F(X) (X).first
-#define PB_ASSOC_V2S(X) (X).second
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_V2F(X) (X)
-#define PB_ASSOC_V2S(X) Mapped_Data()
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_STATIC_ASSERT(UNIQUE, E) \
-	typedef \
-		pb_assoc::detail::static_assert_dummy_class< \
-			sizeof(pb_assoc::detail::static_assert<(bool)(E)>)> \
-			UNIQUE##static_assert_type
-
-    template<typename Key,
-	     typename Data,
-	     class Hash_Fn,
-	     class Eq_Fn,
-	     class Allocator,
-	     bool Store_Hash,
-	     class Comb_Hash_Fn,
-	     class Resize_Policy >
-    class PB_ASSOC_CLASS_NAME:
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-      protected PB_ASSOC_MAP_DEBUG_BASE_C_DEC,
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-      public PB_ASSOC_HASH_EQ_FN_C_DEC,
-      public Resize_Policy,
-      public PB_ASSOC_RANGED_HASH_FN_C_DEC,
-      public PB_ASSOC_TYPES_TRAITS_C_DEC,
-      public PB_ASSOC_HASH_TYPES_TRAITS_C_DEC
-    {
-
-    public:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_key_reference
-      const_key_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_type data_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_reference
-      data_reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_data_reference
-      const_data_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type value_type;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::pointer pointer;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_pointer
-      const_pointer;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::reference reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_reference
-      const_reference;
-
-    protected:
-
-      typedef typename PB_ASSOC_HASH_TYPES_TRAITS_C_DEC::comp_hash comp_hash;
-
-      struct no_store_hash_entry
-      {
-	value_type m_value;
-
-	typename Allocator::template rebind<
-	  no_store_hash_entry>::other::pointer m_p_next;
-      };
-
-      struct store_hash_entry
-      {
-	value_type m_value;
-
-	size_type m_hash;
-
-	typename Allocator::template rebind<
-	  store_hash_entry>::other::pointer m_p_next;
-      };
-
-      typedef
-      typename cond_type<
-	Store_Hash,
-	store_hash_entry,
-	no_store_hash_entry>::type
-      entry;
-
-      typedef
-      typename Allocator::template rebind<entry>::other
-      entry_allocator;
-
-      typedef typename entry_allocator::pointer entry_pointer;
-
-      typedef typename entry_allocator::const_pointer const_entry_pointer;
-
-      typedef typename entry_allocator::reference entry_reference;
-
-      typedef
-      typename entry_allocator::const_reference
-      const_entry_reference;
-
-      typedef
-      typename Allocator::template rebind<entry_pointer>::other
-      entry_pointer_allocator;
-
-      typedef typename entry_pointer_allocator::pointer entry_pointer_array;
-
-      typedef value_type mapped_value_type;
-
-      typedef pointer mapped_pointer;
-
-      typedef const_pointer const_mapped_pointer;
-
-      typedef reference mapped_reference;
-
-      typedef const_reference const_mapped_reference;
-
-#define PB_ASSOC_GEN_POS std::pair<entry_pointer, size_type>
-
-#include <ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/iterator.hpp>
-
-#undef PB_ASSOC_GEN_POS
-
-      typedef find_iterator_ find_iterator;
-
-      typedef const_find_iterator_ const_find_iterator;
-
-      typedef iterator_ iterator;
-
-      typedef const_iterator_ const_iterator;
-
-      typedef Hash_Fn hash_fn;
-
-      typedef Eq_Fn eq_fn;
-
-      typedef Allocator allocator;
-
-      typedef Resize_Policy resize_policy;
-
-    protected:
-
-      PB_ASSOC_CLASS_NAME();
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn, const Resize_Policy& r_resize_policy);
-
-      PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      virtual
-      ~PB_ASSOC_CLASS_NAME();
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      template<class It>
-      void
-      copy_from_range(It first_it, It last_it);
-
-      inline size_type
-      size() const;
-
-      inline size_type
-      max_size() const;
-
-      inline bool
-      empty() const;
-
-      Hash_Fn& 
-      get_hash_fn();
-
-      const Hash_Fn& 
-      get_hash_fn() const;
-
-      Eq_Fn& 
-      get_eq_fn();
-
-      const Eq_Fn& 
-      get_eq_fn() const;
-
-      Comb_Hash_Fn& 
-      get_comb_hash_fn();
-
-      const Comb_Hash_Fn& 
-      get_comb_hash_fn() const;
-
-      Resize_Policy& 
-      get_resize_policy();
-
-      const Resize_Policy& 
-      get_resize_policy() const;
-
-      inline std::pair<find_iterator, bool>
-      insert(const_reference r_val);
-
-      inline data_reference
-      subscript_imp(const_key_reference r_key);
-
-      inline find_iterator
-      find(const_key_reference r_key);
-
-      inline const_find_iterator
-      find(const_key_reference r_key) const;
-
-      inline find_iterator
-      find_end();
-
-      inline const_find_iterator
-      find_end() const;
-
-      template<class T>
-      inline size_type
-      erase(T r_t, bool erase_entry_if_last, pb_assoc::detail::int_to_type<false>);
-
-      template<class T>
-      inline size_type
-      erase(T r_t, bool erase_entry_if_last, pb_assoc::detail::int_to_type<true>);
-
-      template<class Pred>
-      inline size_type
-      erase_if(Pred& r_pred);
-
-      void
-      clear();
-
-      inline iterator
-      begin();
-
-      inline const_iterator
-      begin() const;
-
-      inline iterator
-      end();
-
-      inline const_iterator
-      end() const;
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-      virtual void
-      assert_valid() const;
-
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-      virtual void
-      do_resize(size_type new_size);
-
-    private:
-
-      typedef PB_ASSOC_TYPES_TRAITS_C_DEC my_traits_base;
-
-      typedef PB_ASSOC_HASH_TYPES_TRAITS_C_DEC my_hash_traits_base;
-
-      typedef PB_ASSOC_RANGED_HASH_FN_C_DEC my_ranged_hash_fn_base;
-
-      typedef PB_ASSOC_HASH_EQ_FN_C_DEC my_hash_eq_fn_base;
-
-      typedef Resize_Policy my_resize_base;
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-      typedef PB_ASSOC_MAP_DEBUG_BASE_C_DEC my_map_debug_base;
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-    private:
-
-      inline bool
-      do_resize_if_needed();
-
-      inline void
-      do_resize_if_needed_no_throw();
-
-      void
-      resize_imp_no_exceptions(size_type new_size, entry_pointer_array a_p_entries_resized, size_type old_size);
-
-      inline entry_pointer
-      resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, int_to_type<false>);
-
-      inline entry_pointer
-      resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, int_to_type<true>);
-
-      template<class For_Each_Fn>
-      void
-      do_for_each(For_Each_Fn fn);
-
-      void
-      deallocate_links_in_list(entry_pointer p_e);
-
-      inline entry_pointer
-      get_entry(const_reference r_val, int_to_type<false>);
-
-      inline entry_pointer
-      get_entry(const_reference r_val, int_to_type<true>);
-
-      inline void
-      rels_entry(entry_pointer p_e);
-
-      void
-      constructor_insert_new_imp(const_reference r_val, size_type pos, int_to_type<false>);
-
-      void
-      constructor_insert_new_imp(const_reference r_val, size_type pos, int_to_type<true>);
-
-      void
-      deallocate_all();
-
-      inline data_reference
-      subscript_imp(const_key_reference r_key, int_to_type<false>);
-
-      inline data_reference
-      subscript_imp(const_key_reference r_key, int_to_type<true>);
-
-      inline std::pair<find_iterator, bool>
-      insert_imp(const_reference r_val, int_to_type<false>);
-
-      inline std::pair<find_iterator, bool>
-      insert_imp(const_reference r_val, int_to_type<true>);
-
-      inline pointer
-      insert_new_imp(const_reference r_val, size_type pos);
-
-      inline pointer
-      insert_new_imp(const_reference r_val, comp_hash& r_pos_hash_pair);
-
-      inline const_data_reference
-      const_subscript_imp(const_key_reference r_key, int_to_type<false>) const;
-
-      inline const_data_reference
-      const_subscript_imp(const_key_reference r_key, int_to_type<true>) const;
-
-      inline pointer
-      find_key_pointer(const_key_reference r_key, int_to_type<false>);
-
-      inline pointer
-      find_key_pointer(const_key_reference r_key, int_to_type<true>);
-
-      template<class T>
-      inline size_type
-      erase_in_pos_imp(T r_t, bool erase_entry_if_last, size_type pos);
-
-      template<class T>
-      inline size_type
-      erase_in_pos_imp(T r_t, bool erase_entry_if_last, const comp_hash& r_pos_hash_pair);
-
-      inline void
-      erase_entry_pointer(entry_pointer& r_p_e);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      void
-      inc_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const;
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      void
-      inc_it_state(const_pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const;
-
-      void
-      get_start_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const;
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-      void
-      assert_entry_pointer_array_valid(const entry_pointer_array a_p_entries) const;
-
-      void
-      assert_entry_pointer_valid(const entry_pointer p_e, store_hash_true_indicator) const;
-
-      void
-      assert_entry_pointer_valid(const entry_pointer p_e, store_hash_false_indicator) const;
-
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-    private:
-      static entry_allocator s_entry_allocator;
-
-      static entry_pointer_allocator s_entry_pointer_allocator;
-
-      typedef
-      pb_assoc::detail::cond_dealtor<
-	entry,
-	Allocator>
-      cond_dealtor_t;
-
-      entry_pointer_array m_a_p_entries;
-
-      size_type m_num_e_p;
-
-      size_type m_num_used_e;
-
-      friend class iterator_;
-
-      friend class const_iterator_;
-
-      static iterator s_end_it;
-
-      static const_iterator s_const_end_it;
-
-      static find_iterator s_find_end_it;
-
-      static const_find_iterator s_const_find_end_it;
-
-      enum
-	{
-	  store_hash_ok =
-	  !Store_Hash ||
-	  !pb_assoc::detail::is_same_type<
-	  Hash_Fn,
-	  pb_assoc::null_hash_fn>::value
-	};
-
-      PB_ASSOC_STATIC_ASSERT(sth, store_hash_ok);
-    };
-
-#include <ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_HASH_EQ_FN_C_DEC
-
-#undef PB_ASSOC_RANGED_HASH_FN_C_DEC
-
-#undef PB_ASSOC_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_HASH_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_MAP_DEBUG_BASE_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_V2F
-#undef PB_ASSOC_V2S
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-#undef PB_ASSOC_STATIC_ASSERT
-
-  } // namespace detail
-
-} // namespace pb_assoc
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
deleted file mode 100644
index a10167fd193c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
+++ /dev/null
@@ -1,92 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file cmp_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s entire container comparison related
- *	functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-template<class Other_HT_Map_Type>
-bool
-PB_ASSOC_CLASS_C_DEC::
-operator==(const Other_HT_Map_Type& r_other) const
-{
-  return (cmp_with_other(r_other));
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class Other_Map_Type>
-bool
-PB_ASSOC_CLASS_C_DEC::
-cmp_with_other(const Other_Map_Type& r_other) const
-{
-  if (size() != r_other.size())
-    return (false);
-
-  for (typename Other_Map_Type::const_iterator it = r_other.begin();
-       it != r_other.end(); ++it)
-    {
-      const_key_reference r_key =(const_key_reference)PB_ASSOC_V2F(*it);
-
-      const_mapped_pointer p_mapped_value =
-	const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).
-	find_key_pointer(r_key, my_traits_base::m_store_hash_indicator);
-
-      if (p_mapped_value == NULL)
-	return (false);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      if (p_mapped_value->second != it->second)
-	return (false);
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-    }
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class Other_HT_Map_Type>
-bool
-PB_ASSOC_CLASS_C_DEC::
-operator!=(const Other_HT_Map_Type& r_other) const
-{
-  return (!operator==(r_other));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
deleted file mode 100644
index 343dc512653d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file cond_key_dtor_entry_dealtor.hpp
- * Contains a conditional key destructor, used for exception handling.
- */
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class HT_Map>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_CKDED_CLASS_NAME< \
-		HT_Map>
-
-    /**
-     * A conditional key destructor, used for exception handling.
-     **/
-    template<class HT_Map>
-    class PB_ASSOC_CKDED_CLASS_NAME
-    {
-    public:
-      typedef typename HT_Map::entry entry;
-
-      typedef typename HT_Map::entry_allocator entry_allocator;
-
-      typedef typename HT_Map::key_type key_type;
-
-    public:
-      inline
-      PB_ASSOC_CKDED_CLASS_NAME(entry_allocator* p_a, entry* p_e);
-
-      inline
-      ~PB_ASSOC_CKDED_CLASS_NAME();
-
-      inline void
-      set_key_destruct();
-
-      inline void
-      set_no_action_destructor();
-
-    protected:
-      entry_allocator* const m_p_a;
-      entry* const m_p_e;
-
-      bool m_key_destruct;
-      bool m_no_action_destructor;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    inline
-    PB_ASSOC_CLASS_C_DEC::
-    PB_ASSOC_CKDED_CLASS_NAME(entry_allocator* p_a, entry* p_e) :
-      m_p_a(p_a),
-      m_p_e(p_e),
-      m_key_destruct(false),
-      m_no_action_destructor(false)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    set_key_destruct()
-    {
-      m_key_destruct = true;
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    set_no_action_destructor()
-    {
-      m_no_action_destructor = true;
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline
-    PB_ASSOC_CLASS_C_DEC::
-    ~PB_ASSOC_CKDED_CLASS_NAME()
-    {
-      if (m_no_action_destructor)
-	return;
-
-      if (m_key_destruct)
-	m_p_e->m_value.first.~key_type();
-
-      m_p_a->deallocate(m_p_e, 1);
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index 4dedb91259d8..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::entry_allocator
-PB_ASSOC_CLASS_C_DEC::s_entry_allocator;
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::entry_pointer_allocator
-PB_ASSOC_CLASS_C_DEC::s_entry_pointer_allocator;
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_range(It first_it, It last_it)
-{
-  while (first_it != last_it)
-    insert(*(first_it++));
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME() :
-  my_ranged_hash_fn_base(Resize_Policy::get_init_size()),
-  m_a_p_entries(s_entry_pointer_allocator.allocate(
-						   Resize_Policy::get_init_size())),
-  m_num_e_p(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn) :
-  my_ranged_hash_fn_base(Resize_Policy::get_init_size(),
-			 r_hash_fn),
-  m_a_p_entries(s_entry_pointer_allocator.allocate(
-						   Resize_Policy::get_init_size())),
-  m_num_e_p(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
-  PB_ASSOC_HASH_EQ_FN_C_DEC(r_eq_fn),
-  my_ranged_hash_fn_base(Resize_Policy::get_init_size(),
-			 r_hash_fn),
-  m_a_p_entries(s_entry_pointer_allocator.allocate(
-						   Resize_Policy::get_init_size())),
-  m_num_e_p(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-  PB_ASSOC_HASH_EQ_FN_C_DEC(r_eq_fn),
-  my_ranged_hash_fn_base(Resize_Policy::get_init_size(),
-			 r_hash_fn, r_comb_hash_fn),
-  m_a_p_entries(s_entry_pointer_allocator.allocate(
-						   Resize_Policy::get_init_size())),
-  m_num_e_p(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn, const Resize_Policy& r_resize_policy) :
-  PB_ASSOC_HASH_EQ_FN_C_DEC(r_eq_fn),
-  Resize_Policy(r_resize_policy),
-  my_ranged_hash_fn_base(Resize_Policy::get_init_size(),
-			 r_hash_fn, r_comb_hash_fn),
-  m_a_p_entries(s_entry_pointer_allocator.allocate(
-						   Resize_Policy::get_init_size())),
-  m_num_e_p(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  PB_ASSOC_HASH_EQ_FN_C_DEC(r_other),
-  my_resize_base(r_other),
-  my_ranged_hash_fn_base(r_other),
-  m_a_p_entries(s_entry_pointer_allocator.allocate(
-						   r_other.m_num_e_p)),
-  m_num_e_p(r_other.m_num_e_p),
-  m_num_used_e(r_other.m_num_used_e)
-{
-  PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-    std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
-
-  try
-    {
-      for (size_type i  = 0; i < m_num_e_p; ++i)
-	{
-	  entry_pointer p_e = r_other.m_a_p_entries[i];
-
-	  while (p_e != NULL)
-	    {
-	      constructor_insert_new_imp(
-					 const_mapped_reference(p_e->m_value), i,
-					 my_hash_traits_base::s_store_hash_indicator);
-
-	      p_e = p_e->m_p_next;
-	    }
-	}
-    }
-  catch(...)
-    {
-      deallocate_all();
-
-      throw;
-    }
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~PB_ASSOC_CLASS_NAME()
-{
-  deallocate_all();
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-
-  std::swap(m_a_p_entries, r_other.m_a_p_entries);
-
-  std::swap(m_num_e_p, r_other.m_num_e_p);
-
-  std::swap(m_num_used_e, r_other.m_num_used_e);
-
-  my_ranged_hash_fn_base::swap(r_other);
-
-  my_hash_eq_fn_base::swap(r_other);
-
-  my_resize_base::swap(r_other);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::swap(r_other));
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-deallocate_all()
-{
-  clear();
-
-  s_entry_pointer_allocator.deallocate(m_a_p_entries, m_num_e_p);
-}
-
-#include <ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp>
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 6687d5dff83e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_no_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-constructor_insert_new_imp(const_mapped_reference r_val, size_type pos, int_to_type<false>)
-{
-  // Following lines might throw an exception.
-  entry_pointer p_e = get_entry(r_val, my_traits_base::s_no_throw_copies_indicator);
-
-  // At this point no exceptions can be thrown.
-
-  p_e->m_p_next = m_a_p_entries[pos];
-
-  m_a_p_entries[pos] = p_e;
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(r_key);)
-    }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
deleted file mode 100644
index 2ea0864a456d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_no_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-constructor_insert_new_imp(const_reference r_val, size_type pos, int_to_type<true>)
-{
-  // Following lines might throw an exception.
-  entry_pointer p_e = get_entry(r_val, my_traits_base::s_no_throw_copies_indicator);
-
-  // At this point no exceptions can be thrown.
-
-  p_e->m_p_next = m_a_p_entries[pos];
-
-  p_e->m_hash = my_ranged_hash_fn_base::operator()((const_key_reference)(PB_ASSOC_V2F(p_e->m_value))).second;
-
-  m_a_p_entries[pos] = p_e;
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(r_key);)
-    }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
deleted file mode 100644
index cd58e234ff43..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s debug-mode functions.
- */
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid() const
-{
-  my_map_debug_base::check_size(m_num_used_e);
-
-  assert_entry_pointer_array_valid(m_a_p_entries);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_entry_pointer_array_valid(const entry_pointer_array a_p_entries) const
-{
-  size_type iterated_num_used_e = 0;
-
-  for (size_type pos = 0; pos < m_num_e_p; ++pos)
-    {
-      entry_pointer p_e = a_p_entries[pos];
-
-      while (p_e != NULL)
-	{
-	  ++iterated_num_used_e;
-
-	  assert_entry_pointer_valid(p_e, my_traits_base::m_store_hash_indicator);
-
-	  p_e = p_e->m_p_next;
-	}
-    }
-
-  PB_ASSOC_DBG_ASSERT(iterated_num_used_e == m_num_used_e);
-}
-
-#include <ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp>
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 889b59d39a25..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,54 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_no_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s debug-mode functions.
- */
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_entry_pointer_valid(const entry_pointer  p_e, store_hash_false_indicator) const
-{
-  my_map_debug_base::check_key_exists(p_e->m_value.first);
-}
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
deleted file mode 100644
index 41b520ebb470..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,59 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s debug-mode functions.
- */
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_entry_pointer_valid(const entry_pointer  p_e, store_hash_true_indicator) const
-{
-  my_map_debug_base::check_key_exists(p_e->m_value.first);
-
-  comp_hash pos_hash_pair =
-    my_ranged_hash_fn_base::operator()(p_e->m_value.first);
-
-  PB_ASSOC_DBG_ASSERT(p_e->m_hash == pos_hash_pair.second);
-}
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
deleted file mode 100644
index e5297ec18995..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
+++ /dev/null
@@ -1,111 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file entry_list_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s entry-list related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-deallocate_links_in_list(entry_pointer p_e)
-{
-  while (p_e != NULL)
-    {
-      entry_pointer p_dealloc_e = p_e;
-
-      p_e = p_e->m_p_next;
-
-      s_entry_allocator.deallocate(p_dealloc_e, 1);
-    }
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::entry_pointer
-PB_ASSOC_CLASS_C_DEC::
-get_entry(const_mapped_reference r_val, int_to_type<true>)
-{
-  // Following line might throw an exception.
-
-  entry_pointer p_e = s_entry_allocator.allocate(1);
-
-  // Following lines* cannot* throw an exception.
-
-  new (&p_e->m_value) mapped_value_type(r_val);
-
-  return (p_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::entry_pointer
-PB_ASSOC_CLASS_C_DEC::
-get_entry(const_mapped_reference r_val, int_to_type<false>)
-{
-  // Following line might throw an exception.
-
-  entry_pointer p_e = s_entry_allocator.allocate(1);
-
-  cond_dealtor_t cond(p_e);
-
-  // Following lines might throw an exception.
-
-  new (&p_e->m_value) mapped_value_type(r_val);
-
-  cond.set_no_action();
-
-  return (p_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-rels_entry(entry_pointer p_e)
-{
-  /* The following lines cannot throw exceptions
-   *	(unless if key-data dtors do). */
-
-  PB_ASSOC_V2F(p_e->m_value).~Key();
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-  p_e->m_value.second.~data_type();
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-  s_entry_allocator.deallocate(p_e, 1);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
deleted file mode 100644
index c9875c7d082f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
+++ /dev/null
@@ -1,114 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s erase related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-erase_entry_pointer(entry_pointer& r_p_e)
-{
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::erase_existing(r_p_e->m_value.first));
-
-  entry_pointer p_e = r_p_e;
-
-  r_p_e = r_p_e->m_p_next;
-
-  rels_entry(p_e);
-
-  PB_ASSOC_DBG_ASSERT(m_num_used_e > 0);
-  my_resize_base::notify_erased(--m_num_used_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class Pred>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_if(Pred& r_pred)
-{
-  size_type num_num_ersd = 0;
-
-  for (size_type pos = 0; pos < m_num_e_p; ++pos)
-    {
-      size_t num_ersd = 0;
-
-      if (m_a_p_entries[pos] != NULL&& 
-	  r_pred(m_a_p_entries[pos]->m_value))
-	{
-	  ++num_ersd;
-
-	  erase_entry_pointer(m_a_p_entries[pos]);
-	}
-
-      entry_pointer p_e = m_a_p_entries[pos];
-
-      while (p_e != NULL&&  p_e->m_p_next != NULL)
-	if (r_pred(p_e->m_p_next->m_value))
-	  {
-	    ++num_num_ersd;
-
-	    erase_entry_pointer(p_e->m_p_next);
-	  }
-    }
-
-  do_resize_if_needed_no_throw();
-
-  return (num_num_ersd);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear()
-{
-  for (size_type pos = 0; pos < m_num_e_p; ++pos)
-    while (m_a_p_entries[pos] != NULL)
-      erase_entry_pointer(m_a_p_entries[pos]);
-
-  do_resize_if_needed_no_throw();
-
-  my_resize_base::notify_cleared();
-}
-
-#include <ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp>
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 2ad4444bcff7..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_no_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s erase related functions, when the hash
- *	value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-template<class T>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(T r_t, bool erase_entry_if_last, pb_assoc::detail::int_to_type<false>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (erase_in_pos_imp<T>(r_t,
-				erase_entry_if_last,
-				my_ranged_hash_fn_base::operator()(
-								   my_traits_base::ext_eraser::extract_key(r_t))));
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class T>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_in_pos_imp(T r_t, bool erase_entry_if_last, size_type pos)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    entry_pointer p_e = m_a_p_entries[pos];
-
-  my_resize_base::notify_erase_search_start();
-
-  if (p_e == NULL)
-    {
-      my_resize_base::notify_erase_search_end();
-
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(
-								    ext_eraser::extract_key(r_t));)
-
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return (0);
-    }
-
-  if (my_hash_eq_fn_base::operator()(
-				     p_e->m_value.first,
-				     my_traits_base::ext_eraser::extract_key(r_t)))
-    {
-      my_resize_base::notify_erase_search_end();
-
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			check_key_exists(my_traits_base::ext_eraser::extract_key(r_t));)
-
-	std::pair<size_type, bool> ers_pair =
-	my_traits_base::ext_eraser::erase(
-					  PB_ASSOC_EP2VP(m_a_p_entries[pos]),
-					  r_t, erase_entry_if_last);
-
-      if (ers_pair.second)
-	{
-	  erase_entry_pointer(m_a_p_entries[pos]);
-
-	  do_resize_if_needed_no_throw();
-	}
-
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return (ers_pair.first);
-    }
-
-  while (true)
-    {
-      entry_pointer p_next_e = p_e->m_p_next;
-
-      if (p_next_e == NULL)
-	{
-	  my_resize_base::notify_erase_search_end();
-
-	  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			    check_key_does_not_exist(
-						     my_traits_base::ext_eraser::extract_key(r_t));)
-
-	    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	    return (0);
-	}
-
-      if (my_hash_eq_fn_base::operator()(
-					 p_next_e->m_value.first,
-					 my_traits_base::ext_eraser::extract_key(r_t)))
-	{
-	  my_resize_base::notify_erase_search_end();
-
-	  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			    check_key_exists(
-					     my_traits_base::ext_eraser::extract_key(r_t));)
-
-	    std::pair<size_type, bool> ers_pair =
-	    my_traits_base::ext_eraser::erase(
-					      PB_ASSOC_EP2VP(p_e->m_p_next),
-					      r_t, erase_entry_if_last);
-
-	  if (ers_pair.second)
-	    {
-	      erase_entry_pointer(p_e->m_p_next);
-
-	      do_resize_if_needed_no_throw();
-	    }
-
-	  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	    return (ers_pair.first);
-	}
-
-      my_resize_base::notify_erase_search_collision();
-
-      p_e = p_next_e;
-    }
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
deleted file mode 100644
index e3d429f83903..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,159 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s erase related functions, when the hash
- *	value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-template<class T>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(T r_t, bool erase_entry_if_last, pb_assoc::detail::int_to_type<true>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (erase_in_pos_imp<T>(r_t, erase_entry_if_last,
-				my_ranged_hash_fn_base::operator()(
-								   my_traits_base::ext_eraser::extract_key(r_t))));
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class T>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_in_pos_imp(T r_t, bool erase_entry_if_last, const comp_hash& r_pos_hash_pair)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    entry_pointer p_e = m_a_p_entries[r_pos_hash_pair.first];
-
-  my_resize_base::notify_erase_search_start();
-
-  if (p_e == NULL)
-    {
-      my_resize_base::notify_erase_search_end();
-
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			check_key_does_not_exist(
-						 my_traits_base::ext_eraser::extract_key(r_t));)
-
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return (0);
-    }
-
-  if (my_hash_eq_fn_base::operator()(p_e->m_value.first, p_e->m_hash,
-				     my_traits_base::ext_eraser::extract_key(r_t), r_pos_hash_pair.second))
-    {
-      my_resize_base::notify_erase_search_end();
-
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(
-							    my_traits_base::ext_eraser::extract_key(r_t));)
-
-	std::pair<size_type, bool> ers_pair =
-	my_traits_base::ext_eraser::erase(
-					  PB_ASSOC_EP2VP(m_a_p_entries[r_pos_hash_pair.first]),
-					  r_t, erase_entry_if_last);
-
-      if (ers_pair.second)
-	{
-	  erase_entry_pointer(m_a_p_entries[r_pos_hash_pair.first]);
-
-	  do_resize_if_needed_no_throw();
-	}
-
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return (ers_pair.first);
-    }
-
-  while (true)
-    {
-      entry_pointer p_next_e = p_e->m_p_next;
-
-      if (p_next_e == NULL)
-	{
-	  my_resize_base::notify_erase_search_end();
-
-	  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			    check_key_does_not_exist(
-						     my_traits_base::ext_eraser::extract_key(r_t));)
-
-	    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	    return (0);
-	}
-
-      if (my_hash_eq_fn_base::operator()(
-					 p_next_e->m_value.first, p_next_e->m_hash,
-					 my_traits_base::ext_eraser::extract_key(r_t),
-					 r_pos_hash_pair.second))
-	{
-	  my_resize_base::notify_erase_search_end();
-
-	  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			    check_key_exists(
-					     my_traits_base::ext_eraser::extract_key(r_t));)
-
-	    std::pair<size_type, bool> ers_pair =
-	    my_traits_base::ext_eraser::erase(
-					      PB_ASSOC_EP2VP(p_e->m_p_next),
-					      r_t, erase_entry_if_last);
-
-	  if (ers_pair.second)
-	    {
-	      erase_entry_pointer(p_e->m_p_next);
-
-	      do_resize_if_needed_no_throw();
-	    }
-
-	  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	    return (ers_pair.first);
-	}
-
-      my_resize_base::notify_erase_search_collision();
-
-      p_e = p_next_e;
-    }
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
deleted file mode 100644
index a287d5bffb9c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
+++ /dev/null
@@ -1,83 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s find related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (find_key_pointer(r_key, my_hash_traits_base::s_store_hash_indicator));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).find_key_pointer(r_key, my_hash_traits_base::s_store_hash_indicator));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end()
-{
-  return (NULL);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end() const
-{
-  return (NULL);
-}
-
-#include <ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp>
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
deleted file mode 100644
index c0d404d2fafc..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_no_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s find related functions, when the hash
- *	value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_data_reference
-PB_ASSOC_CLASS_C_DEC::
-const_subscript_imp(const_key_reference r_key, int_to_type<false>) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).
-	    find_key_pointer(r_key, my_hash_traits_base::s_store_hash_indicator)->second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::
-find_key_pointer(const_key_reference r_key, int_to_type<false>)
-{
-  entry_pointer p_e =
-    m_a_p_entries[my_ranged_hash_fn_base::operator()(r_key)];
-
-  my_resize_base::notify_find_search_start();
-
-  while (p_e != NULL&& 
-	 !my_hash_eq_fn_base::operator()(PB_ASSOC_V2F(p_e->m_value), r_key))
-    {
-      my_resize_base::notify_find_search_collision();
-
-      p_e = p_e->m_p_next;
-    }
-
-  my_resize_base::notify_find_search_end();
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-  if (p_e == NULL)
-    my_map_debug_base::check_key_does_not_exist(r_key);
-  else
-    my_map_debug_base::check_key_exists(r_key);
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-  return (&p_e->m_value);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
deleted file mode 100644
index 3b9571e13b5c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s find related functions, when the hash
- *	value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_data_reference
-PB_ASSOC_CLASS_C_DEC::
-const_subscript_imp(const_key_reference r_key, int_to_type<true>)  const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).find_key_pointer(r_key, my_traits_base::m_store_hash_indicator)->second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::
-find_key_pointer(const_key_reference r_key, int_to_type<true>)
-{
-  comp_hash pos_hash_pair = my_ranged_hash_fn_base::operator()(r_key);
-
-  entry_pointer p_e = m_a_p_entries[pos_hash_pair.first];
-
-  my_resize_base::notify_find_search_start();
-
-  while (p_e != NULL&& 
-	 !my_hash_eq_fn_base::operator()(PB_ASSOC_V2F(p_e->m_value),
-					 p_e->m_hash,
-					 r_key,
-					 pos_hash_pair.second))
-    {
-      my_resize_base::notify_find_search_collision();
-
-      p_e = p_e->m_p_next;
-    }
-
-  my_resize_base::notify_find_search_end();
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-  if (p_e == NULL)
-    my_map_debug_base::check_key_does_not_exist(r_key);
-  else
-    my_map_debug_base::check_key_exists(r_key);
-#endif // #ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-  return (const_cast<pointer>(&p_e->m_value));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
deleted file mode 100644
index 98894c81c195..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s entire container info related
- *	functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  return (m_num_used_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (m_entry_allocator.max_size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (size() == 0);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
deleted file mode 100644
index 15d2353fd965..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s insert related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert(const_reference r_val)
-{
-  return (insert_imp(r_val, my_hash_traits_base::s_store_hash_indicator));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key)
-{
-  return (subscript_imp(r_key, my_hash_traits_base::s_store_hash_indicator));
-}
-
-#include <ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp>
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
deleted file mode 100644
index c6383a69a397..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_no_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s insert related functions, when the hash
- *	value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key, int_to_type<false>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    const size_type pos = my_ranged_hash_fn_base::operator()(r_key);
-
-  entry_pointer p_e = m_a_p_entries[pos];
-
-  my_resize_base::notify_insert_search_start();
-
-  while (p_e != NULL&& 
-	 !my_hash_eq_fn_base::operator()(p_e->m_value.first, r_key))
-    {
-      my_resize_base::notify_insert_search_collision();
-
-      p_e = p_e->m_p_next;
-    }
-
-  my_resize_base::notify_insert_search_end();
-
-  if (p_e != NULL)
-    {
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-	return (p_e->m_value.second);
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key);)
-
-    return (insert_new_imp(std::make_pair(r_key, data_type()), pos)->second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert_imp(const_reference r_val, int_to_type<false>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    const_key_reference r_key = PB_ASSOC_V2F(r_val);
-
-  const size_type pos = my_ranged_hash_fn_base::operator()(r_key);
-
-  entry_pointer p_e = m_a_p_entries[pos];
-
-  my_resize_base::notify_insert_search_start();
-
-  while (p_e != NULL&& 
-	 !my_hash_eq_fn_base::operator()(
-					 PB_ASSOC_V2F(p_e->m_value),
-					 r_key))
-    {
-      my_resize_base::notify_insert_search_collision();
-
-      p_e = p_e->m_p_next;
-    }
-
-  my_resize_base::notify_insert_search_end();
-
-  if (p_e != NULL)
-    {
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-	return (std::make_pair(&p_e->m_value, false));
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key);)
-
-    return (
-	    std::make_pair(
-			   insert_new_imp(r_val, pos),
-			   true));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::
-insert_new_imp(const_reference r_val, size_type pos)
-{
-  if (do_resize_if_needed())
-    pos = my_ranged_hash_fn_base::operator()(PB_ASSOC_V2F(r_val));
-
-  // Following lines might throw an exception.
-  entry_pointer p_e = get_entry(r_val, my_traits_base::s_no_throw_copies_indicator);
-
-  // At this point no exceptions can be thrown.
-
-  p_e->m_p_next = m_a_p_entries[pos];
-
-  m_a_p_entries[pos] = p_e;
-
-  my_resize_base::notify_inserted(++m_num_used_e);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(r_key);)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (&p_e->m_value);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
deleted file mode 100644
index f484fcae2bb0..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,157 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s insert related functions, when the hash
- *	value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key, int_to_type<true>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    comp_hash pos_hash_pair = my_ranged_hash_fn_base::operator()(r_key);
-
-  entry_pointer p_e = m_a_p_entries[pos_hash_pair.first];
-
-  my_resize_base::notify_insert_search_start();
-
-  while (p_e != NULL&& 
-	 !my_hash_eq_fn_base::operator()(p_e->m_value.first, p_e->m_hash, r_key, pos_hash_pair.second))
-    {
-      my_resize_base::notify_insert_search_collision();
-
-      p_e = p_e->m_p_next;
-    }
-
-  my_resize_base::notify_insert_search_end();
-
-  if (p_e != NULL)
-    {
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-	return (p_e->m_value.second);
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key);)
-
-    return (insert_new_imp(
-			   value_type(r_key, Data()), pos_hash_pair)->second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert_imp(const_reference r_val, int_to_type<true>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    const_key_reference r_key = PB_ASSOC_V2F(r_val);
-
-  comp_hash pos_hash_pair = my_ranged_hash_fn_base::operator()(r_key);
-
-  entry_pointer p_e = m_a_p_entries[pos_hash_pair.first];
-
-  my_resize_base::notify_insert_search_start();
-
-  while (p_e != NULL&& 
-	 !my_hash_eq_fn_base::operator()(
-					 PB_ASSOC_V2F(p_e->m_value),
-					 p_e->m_hash,
-					 r_key, pos_hash_pair.second))
-    {
-      my_resize_base::notify_insert_search_collision();
-
-      p_e = p_e->m_p_next;
-    }
-
-  my_resize_base::notify_insert_search_end();
-
-  if (p_e != NULL)
-    {
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-	return (
-		std::make_pair(
-			       static_cast<pointer>(&p_e->m_value),
-			       false));
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key);)
-
-    return (
-	    std::make_pair(
-			   insert_new_imp(r_val, pos_hash_pair),
-			   true));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::
-insert_new_imp(const_reference r_val, comp_hash& r_pos_hash_pair)
-{
-  // Following lines might throw an exception.
-
-  if (do_resize_if_needed())
-    r_pos_hash_pair = my_ranged_hash_fn_base::operator()(
-							 PB_ASSOC_V2F(r_val));
-
-  entry_pointer p_e = get_entry(r_val, my_traits_base::s_no_throw_copies_indicator);
-
-  // At this point no exceptions can be thrown.
-
-  p_e->m_hash = r_pos_hash_pair.second;
-
-  p_e->m_p_next = m_a_p_entries[r_pos_hash_pair.first];
-
-  m_a_p_entries[r_pos_hash_pair.first] = p_e;
-
-  my_resize_base::notify_inserted(++m_num_used_e);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(r_key);)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (static_cast<pointer>(&p_e->m_value));
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
deleted file mode 100644
index c813a321c648..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
+++ /dev/null
@@ -1,153 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterators_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s iterators related functions, e.g.,
- *	begin().
- */
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::s_end_it;
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::s_const_end_it;
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-begin()
-{
-  pointer p_value;
-  std::pair<entry_pointer, size_type> pos;
-
-  get_start_it_state(p_value, pos);
-
-  return (iterator(p_value, pos, this));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-end()
-{
-  return (s_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-begin() const
-{
-  pointer p_value;
-
-  std::pair<entry_pointer, size_type> pos;
-
-  get_start_it_state(p_value, pos);
-
-  return (const_iterator(p_value, pos, this));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-end() const
-{
-  return (s_const_end_it);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-inc_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const
-{
-  inc_it_state((const_pointer& )r_p_value, r_pos);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-inc_it_state(const_pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const
-{
-  PB_ASSOC_DBG_ASSERT(r_p_value != NULL);
-
-  r_pos.first = r_pos.first->m_p_next;
-
-  if (r_pos.first != NULL)
-    {
-      r_p_value =& r_pos.first->m_value;
-
-      return;
-    }
-
-  for (++r_pos.second; r_pos.second < m_num_e_p; ++r_pos.second)
-    if (m_a_p_entries[r_pos.second] != NULL)
-      {
-	r_pos.first = m_a_p_entries[r_pos.second];
-
-	r_p_value =& r_pos.first->m_value;
-
-	return;
-      }
-
-  r_p_value = NULL;
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-get_start_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const
-{
-  for (r_pos.second = 0; r_pos.second < m_num_e_p; ++r_pos.second)
-    if (m_a_p_entries[r_pos.second] != NULL)
-      {
-	r_pos.first = m_a_p_entries[r_pos.second];
-
-	r_p_value = (pointer)(r_pos.first);
-
-	return;
-      }
-
-  r_p_value = NULL;
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
deleted file mode 100644
index 829298bdfdc1..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
+++ /dev/null
@@ -1,108 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file policy_access_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s policy access
- *	functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-Hash_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_hash_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Hash_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_hash_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Comb_Hash_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_comb_hash_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Comb_Hash_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_comb_hash_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Resize_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_resize_policy()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Resize_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_resize_policy() const
-{
-  return (*this);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
deleted file mode 100644
index f7b1f109d8ed..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
+++ /dev/null
@@ -1,146 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file resize_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s resize related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-do_resize_if_needed()
-{
-  if (!my_resize_base::is_resize_needed())
-    return (false);
-
-  do
-    do_resize(my_resize_base::get_new_size(m_num_e_p, m_num_used_e));
-  while (my_resize_base::is_resize_needed());
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-do_resize_if_needed_no_throw()
-{
-  if (!my_resize_base::is_resize_needed())
-    return;
-
-  try
-    {
-      do
-	do_resize(my_resize_base::get_new_size(m_num_e_p, m_num_used_e));
-      while (my_resize_base::is_resize_needed());
-    }
-  catch(...)
-    { }
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-do_resize(size_type new_size)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    const size_type old_size = m_num_e_p;
-
-  entry_pointer_array a_p_entries_resized;
-
-  // Following line might throw an exception.
-
-  my_ranged_hash_fn_base::notify_resized(new_size);
-
-  try
-    {
-      // Following line might throw an exception.
-
-      a_p_entries_resized = s_entry_pointer_allocator.allocate(new_size);
-
-      m_num_e_p = new_size;
-    }
-  catch(...)
-    {
-      my_ranged_hash_fn_base::notify_resized(old_size);
-
-      throw;
-    }
-
-  // At this point no exceptions can be thrown.
-
-  resize_imp_no_exceptions(new_size, a_p_entries_resized, old_size);
-
-  Resize_Policy::notify_resized(new_size);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-resize_imp_no_exceptions(size_type new_size, entry_pointer_array a_p_entries_resized, size_type old_size)
-{
-  std::fill(a_p_entries_resized, a_p_entries_resized + m_num_e_p,(entry_pointer)NULL);
-
-  for (size_type pos = 0; pos < old_size; ++pos)
-    {
-      entry_pointer p_e = m_a_p_entries[pos];
-
-      while (p_e != NULL)
-	p_e = resize_imp_no_exceptions_reassign_pointer(p_e, a_p_entries_resized, my_hash_traits_base::s_store_hash_indicator);
-    }
-
-  m_num_e_p = new_size;
-
-  PB_ASSOC_DBG_ONLY(assert_entry_pointer_array_valid(a_p_entries_resized);)
-
-    s_entry_pointer_allocator.deallocate(m_a_p_entries, old_size);
-
-  m_a_p_entries = a_p_entries_resized;
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-#include <ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp>
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 0b6ea2d32f88..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file resize_no_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s resize related functions, when the
- *	hash value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::entry_pointer
-PB_ASSOC_CLASS_C_DEC::
-resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, int_to_type<false>)
-{
-  const size_type hash_pos =
-    my_ranged_hash_fn_base::operator()(PB_ASSOC_V2F(p_e->m_value));
-
-  entry_pointer const p_next_e = p_e->m_p_next;
-
-  p_e->m_p_next = a_p_entries_resized[hash_pos];
-
-  a_p_entries_resized[hash_pos] = p_e;
-
-  return (p_next_e);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
deleted file mode 100644
index d74a8dd46d7d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file resize_store_hash_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s resize related functions, when the
- *	hash value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::entry_pointer
-PB_ASSOC_CLASS_C_DEC::
-resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, int_to_type<true>)
-{
-  const comp_hash pos_hash_pair =
-    my_ranged_hash_fn_base::operator()(
-				       PB_ASSOC_V2F(p_e->m_value),
-				       p_e->m_hash);
-
-  entry_pointer const p_next_e = p_e->m_p_next;
-
-  p_e->m_p_next = a_p_entries_resized[pos_hash_pair.first];
-
-  a_p_entries_resized[pos_hash_pair.first] = p_e;
-
-  return (p_next_e);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
deleted file mode 100644
index 3ccc172890d3..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file size_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s entire container size related
- *	functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  return (m_num_used_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (size() == 0);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (s_entry_allocator.max_size());
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
deleted file mode 100644
index a32d3ec3bda3..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
+++ /dev/null
@@ -1,50 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file standard_policies.hpp
- * Contains standard policies for cc_ht_map types.
- */
-
-#ifndef CC_HT_MAP_STANDARD_POLICIES_HPP
-#define CC_HT_MAP_STANDARD_POLICIES_HPP
-
-#include <ext/pb_assoc/detail/standard_policies.hpp>
-
-#endif // #ifndef CC_HT_MAP_STANDARD_POLICIES_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/cond_dealtor.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/cond_dealtor.hpp
deleted file mode 100644
index 53f2c506819c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/cond_dealtor.hpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file cond_dealtor.hpp
- * Contains a conditional deallocator.
- */
-
-#ifndef COND_DEALTOR_HPP
-#define COND_DEALTOR_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#define PB_ASSOC_COND_DEALTOR_CLASS_T_DEC \
-	template<class Entry, class Allocator>
-
-#define PB_ASSOC_COND_DEALTOR_CLASS_C_DEC \
-	cond_dealtor< \
-		Entry, \
-		Allocator>
-
-    template<class Entry, class Allocator>
-    class cond_dealtor
-    {
-    public:
-      typedef
-      typename Allocator::template rebind<Entry>::other
-      entry_allocator;
-
-      typedef typename entry_allocator::pointer entry_pointer;
-
-    public:
-      inline
-      cond_dealtor(entry_pointer p_e);
-
-      inline
-      ~cond_dealtor();
-
-      inline void
-      set_no_action();
-
-    private:
-      entry_pointer m_p_e;
-
-      bool m_no_action_destructor;
-
-      static entry_allocator s_alloc;
-    };
-
-    PB_ASSOC_COND_DEALTOR_CLASS_T_DEC
-    typename PB_ASSOC_COND_DEALTOR_CLASS_C_DEC::entry_allocator
-    PB_ASSOC_COND_DEALTOR_CLASS_C_DEC::s_alloc;
-
-    PB_ASSOC_COND_DEALTOR_CLASS_T_DEC
-    inline
-    PB_ASSOC_COND_DEALTOR_CLASS_C_DEC::
-    cond_dealtor(entry_pointer p_e) :
-      m_p_e(p_e),
-      m_no_action_destructor(false)
-    { }
-
-    PB_ASSOC_COND_DEALTOR_CLASS_T_DEC
-    inline void
-    PB_ASSOC_COND_DEALTOR_CLASS_C_DEC::
-    set_no_action()
-    {
-      m_no_action_destructor = true;
-    }
-
-    PB_ASSOC_COND_DEALTOR_CLASS_T_DEC
-    inline
-    PB_ASSOC_COND_DEALTOR_CLASS_C_DEC::
-    ~cond_dealtor()
-    {
-      if (m_no_action_destructor)
-	return;
-
-      s_alloc.deallocate(m_p_e, 1);
-    }
-
-#undef PB_ASSOC_COND_DEALTOR_CLASS_T_DEC
-#undef PB_ASSOC_COND_DEALTOR_CLASS_C_DEC
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef COND_DEALTOR_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index 0f682873927e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructors_destructor_fn_imps.hpp
- * Contains constructors_destructor_fn_imps applicable to different containers.
- */
-
-inline
-PB_ASSOC_CLASS_NAME()
-{ }
-
-inline
-PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) : PB_ASSOC_DIRECT_BASE_C_DEC((const PB_ASSOC_DIRECT_BASE_CAST_C_DEC& )r_other)
-{ }
-
-template<typename T0>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0) : PB_ASSOC_DIRECT_BASE_C_DEC(t0)
-{ }
-
-template<typename T0, typename T1>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1)
-{ }
-
-template<typename T0, typename T1, typename T2>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1, T2 t2) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2)
-{ }
-
-template<typename T0, typename T1, typename T2, typename T3>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3)
-{ }
-
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4)
-{ }
-
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5)
-{ }
-
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5, t6)
-{ }
-
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6,
-	 typename T7>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5, t6, t7)
-{ }
-
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6,
-	 typename T7,
-	 typename T8>
-inline
-PB_ASSOC_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8) : PB_ASSOC_DIRECT_BASE_C_DEC(t0, t1, t2, t3, t4, t5, t6, t7, t8)
-{ }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ds_trait_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ds_trait_imp.hpp
deleted file mode 100644
index d0b826753908..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ds_trait_imp.hpp
+++ /dev/null
@@ -1,336 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ds_trait_imp.hpp
- * Contains data-structure traits implementation.
- */
-
-#ifndef DS_TRAIT_IMP_HPP
-#define DS_TRAIT_IMP_HPP
-
-namespace detail
-{
-
-  template<class Cntnr, class DS_Category>
-  struct erase_can_throw_imp
-  {
-    enum
-      {
-	value =
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	ov_tree_ds_tag>::value
-      };
-  };
-
-  template<class Cntnr>
-  struct erase_can_throw_imp<
-    Cntnr,
-    compound_ds_tag>
-  {
-    enum
-      {
-	value = Cntnr::erase_can_throw
-      };
-  };
-
-  template<class Cntnr, class DS_Category>
-  struct erase_iterators_imp
-  {
-    enum
-      {
-	value =
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	rb_tree_ds_tag>::value ||
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	splay_tree_ds_tag>::value
-      };
-  };
-
-  template<class Cntnr>
-  struct erase_iterators_imp<
-    Cntnr,
-    compound_ds_tag>
-  {
-    enum
-      {
-	value = Cntnr::erase_iterators
-      };
-  };
-
-  template<class Cntnr, class DS_Category>
-  struct order_preserving_imp
-  {
-    enum
-      {
-	value =
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	rb_tree_ds_tag>::value ||
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	splay_tree_ds_tag>::value ||
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	ov_tree_ds_tag>::value
-      };
-  };
-
-  template<class Cntnr>
-  struct order_preserving_imp<
-    Cntnr,
-    compound_ds_tag>
-  {
-    enum
-      {
-	value = Cntnr::order_preserving
-      };
-  };
-
-  template<class Cntnr, class DS_Category>
-  struct invalidation_guarantee_imp
-  {
-  private:
-    enum
-      {
-	node_based =
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	cc_hash_ds_tag>::value ||
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	rb_tree_ds_tag>::value ||
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	splay_tree_ds_tag>::value ||
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	lu_ds_tag>::value
-      };
-
-    enum
-      {
-	vector_organized =
-	pb_assoc::detail::is_same_type<
-	DS_Category,
-	cc_hash_ds_tag>::value
-      };
-
-  public:
-    typedef
-    typename cond_type<
-      node_based,
-      typename cond_type<
-      vector_organized,
-      find_invalidation_guarantee,
-      range_invalidation_guarantee>::type,
-      basic_invalidation_guarantee>::type
-    type;
-  };
-
-  template<class Cntnr>
-  struct invalidation_guarantee_imp<
-    Cntnr,
-    compound_ds_tag>
-  {
-    typedef typename Cntnr::invalidation_guarantee type;
-  };
-
-  template<class Cntnr, class DS_Category>
-  struct reverse_iteration_imp
-  {
-    enum
-      {
-	value =
-	is_same_type<
-	DS_Category,
-	rb_tree_ds_tag>::value ||
-	is_same_type<
-	DS_Category,
-	splay_tree_ds_tag>::value
-      };
-  };
-
-  template<class Cntnr>
-  struct reverse_iteration_imp<
-    Cntnr,
-    compound_ds_tag>
-  {
-    enum
-      {
-	value = Cntnr::reverse_iteration
-      };
-  };
-
-  template<class Cntnr, class DS_Category>
-  struct split_join_imp
-  {
-    enum
-      {
-	value =
-	is_same_type<
-	DS_Category,
-	rb_tree_ds_tag>::value ||
-	is_same_type<
-	DS_Category,
-	splay_tree_ds_tag>::value ||
-	is_same_type<
-	DS_Category,
-	ov_tree_ds_tag>::value
-      };
-  };
-
-  template<class Cntnr>
-  struct split_join_imp<
-    Cntnr,
-    compound_ds_tag>
-  {
-    enum
-      {
-	value = false
-      };
-  };
-
-  template<class Cntnr>
-  struct basic_data_structure_traits
-  {
-
-  private:
-    typedef Cntnr cntnr;
-
-    typedef typename Cntnr::ds_category ds_category;
-
-  public:
-    enum
-      {
-	erase_can_throw =
-	pb_assoc::detail::erase_can_throw_imp<
-	cntnr,
-	ds_category>::value
-      };
-
-    enum
-      {
-	order_preserving =
-	pb_assoc::detail::order_preserving_imp<
-	cntnr,
-	ds_category>::value
-      };
-
-    enum
-      {
-	erase_iterators =
-	pb_assoc::detail::erase_iterators_imp<
-	Cntnr,
-	ds_category>::value
-      };
-
-    typedef
-    typename pb_assoc::detail::invalidation_guarantee_imp<
-      cntnr,
-      ds_category>::type
-    invalidation_guarantee;
-
-    enum
-      {
-	reverse_iteration =
-	pb_assoc::detail::reverse_iteration_imp<
-	cntnr,
-	ds_category>::value
-      };
-
-    enum
-      {
-	split_join =
-	pb_assoc::detail::split_join_imp<
-	cntnr,
-	ds_category>::value
-      };
-  };
-
-  template<class Cntnr, class DS_Category>
-  struct data_structure_traits : public basic_data_structure_traits<
-    Cntnr>
-  { };
-
-  template<class Cntnr>
-  struct data_structure_traits<
-    Cntnr,
-    rb_tree_ds_tag> : public basic_data_structure_traits<
-    Cntnr>
-  {
-  public:
-    enum
-      {
-	split_join_can_throw = false
-      };
-  };
-
-  template<class Cntnr>
-  struct data_structure_traits<
-    Cntnr,
-    splay_tree_ds_tag> : public basic_data_structure_traits<
-    Cntnr>
-  {
-  public:
-    enum
-      {
-	split_join_can_throw = false
-      };
-  };
-
-  template<class Cntnr>
-  struct data_structure_traits<
-    Cntnr,
-    ov_tree_ds_tag> : public basic_data_structure_traits<
-    Cntnr>
-  {
-  public:
-    enum
-      {
-	split_join_can_throw = true
-      };
-  };
-
-} // namespace detail
-
-#endif // #ifndef DS_TRAIT_IMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
deleted file mode 100644
index d09312d06838..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
+++ /dev/null
@@ -1,78 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file eq_by_less.hpp
- * Contains an equivalence function.
- */
-
-#ifndef EQ_BY_LESS_HPP
-#define EQ_BY_LESS_HPP
-
-#include <utility>
-#include <functional>
-#include <vector>
-#include <assert.h>
-#include <ext/pb_assoc/detail/types_traits.hpp>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#include <functional>
-
-    template<typename Key, class Cmp_Fn>
-    struct eq_by_less : public std::binary_function<const Key& , const Key& , bool>,
-			protected Cmp_Fn
-    {
-      bool
-      operator()(const Key& r_lhs, const Key& r_rhs) const
-      {
-	return (!(Cmp_Fn::operator()(r_lhs, r_rhs)&& 
-		  !(Cmp_Fn::operator()(r_rhs, r_lhs))));
-      }
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef EQ_BY_LESS_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
deleted file mode 100644
index bbea3709d651..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
+++ /dev/null
@@ -1,211 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_eq_fn.hpp
- * Contains 2 eqivalence functions, one employing a hash value,
- *	and one ignoring it.
- */
-
-#ifndef HASH_EQ_FN_HPP
-#define HASH_EQ_FN_HPP
-
-#include <utility>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_HASH_EQ_FN_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_HASH_EQ_FN_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_HASH_EQ_FN_DEBUG
-
-    template<typename Key, class Eq_Fn, class Allocator, bool Store_Hash>
-    struct hash_eq_fn;
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, class Eq_Fn, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	hash_eq_fn< \
-		Key, \
-		Eq_Fn, \
-		Allocator, \
-		false>
-
-    /**
-     * Specialization 1- The client requests that hash values not be stored.
-     **/
-    template<typename Key, class Eq_Fn, class Allocator>
-    struct hash_eq_fn<Key, Eq_Fn, Allocator, false> : public Eq_Fn
-    {
-      typedef Eq_Fn my_eq_fn_base;
-
-      typedef typename Allocator::template rebind<Key>::other key_allocator;
-
-      typedef typename key_allocator::const_reference const_key_reference;
-
-      hash_eq_fn();
-
-      hash_eq_fn(const Eq_Fn& r_eq_fn);
-
-      inline bool
-      operator()(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const;
-
-      inline void
-      swap(const PB_ASSOC_CLASS_C_DEC& r_other);
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    hash_eq_fn()
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(const PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      std::swap((Eq_Fn& )(*this), (Eq_Fn& )r_other);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    hash_eq_fn(const Eq_Fn& r_eq_fn) :
-      Eq_Fn(r_eq_fn)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline bool
-    PB_ASSOC_CLASS_C_DEC::
-    operator()(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const
-    {
-      return (my_eq_fn_base::operator()(r_lhs_key, r_rhs_key));
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, class Eq_Fn, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	hash_eq_fn< \
-		Key, \
-		Eq_Fn, \
-		Allocator, \
-		true>
-
-    /**
-     * Specialization 2- The client requests that hash values be stored.
-     **/
-    template<typename Key, class Eq_Fn, class Allocator>
-    struct hash_eq_fn<Key, Eq_Fn, Allocator, true> :
-      public Eq_Fn
-    {
-      typedef typename Allocator::size_type size_type;
-
-      typedef Eq_Fn my_eq_fn_base;
-
-      typedef typename Allocator::template rebind<Key>::other key_allocator;
-
-      typedef typename key_allocator::const_reference const_key_reference;
-
-      hash_eq_fn();
-
-      hash_eq_fn(const Eq_Fn& r_eq_fn);
-
-      inline bool
-      operator()(const_key_reference r_lhs_key, size_type lhs_hash, const_key_reference r_rhs_key, size_type rhs_hash) const;
-
-      inline void
-      swap(const PB_ASSOC_CLASS_C_DEC& r_other);
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    hash_eq_fn()
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    hash_eq_fn(const Eq_Fn& r_eq_fn) :
-      Eq_Fn(r_eq_fn)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline bool
-    PB_ASSOC_CLASS_C_DEC::
-    operator()(const_key_reference r_lhs_key, size_type lhs_hash, const_key_reference r_rhs_key, size_type rhs_hash) const
-    {
-      PB_ASSOC_DBG_ASSERT(!my_eq_fn_base::operator()(r_lhs_key, r_rhs_key) ||
-			  lhs_hash == rhs_hash);
-
-      return (lhs_hash == rhs_hash&& 
-	      my_eq_fn_base::operator()(r_lhs_key, r_rhs_key));
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(const PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      std::swap((Eq_Fn& )(*this), (Eq_Fn& )(r_other));
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef HASH_EQ_FN_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index 0a8f647ba1e8..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,166 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of gp_ht_maps's constructors, destructors,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn, r_comb_hash_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn, r_comb_hash_fn, r_probe_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn, const Resize_Policy& r_resize_policy) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn, r_comb_hash_fn, r_probe_fn, r_resize_policy)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(It first_it, It last_it)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn, r_comb_hash_fn)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn, r_comb_hash_fn, r_probe_fn)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(It first_it, It last_it, const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn, const Resize_Policy& r_resize_policy) :
-  PB_ASSOC_BASE_C_DEC(r_hash_fn, r_eq_fn, r_comb_hash_fn, r_probe_fn, r_resize_policy)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-gp_hash_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  PB_ASSOC_BASE_C_DEC((const PB_ASSOC_BASE_C_DEC& )(r_other))
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC& 
-PB_ASSOC_CLASS_C_DEC::
-operator=(const PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  if (this !=& r_other)
-    {
-      PB_ASSOC_CLASS_C_DEC tmp(r_other);
-
-      swap(tmp);
-    }
-
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~gp_hash_assoc_cntnr()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  my_base::swap(r_other);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index cb42444c281a..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,255 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::entry_allocator
-PB_ASSOC_CLASS_C_DEC::s_entry_allocator;
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_range(It first_it, It last_it)
-{
-  while (first_it != last_it)
-    insert(*(first_it++));
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME() :
-  my_ranged_probe_fn_base(Resize_Policy::get_init_size()),
-  m_a_entries(s_entry_allocator.allocate(
-					 Resize_Policy::get_init_size())),
-  m_num_e(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn)  :
-  my_ranged_probe_fn_base(Resize_Policy::get_init_size(), r_hash_fn),
-  m_a_entries(s_entry_allocator.allocate(
-					 Resize_Policy::get_init_size())),
-  m_num_e(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
-  my_hash_eq_fn_base(r_eq_fn),
-  my_ranged_probe_fn_base(Resize_Policy::get_init_size(), r_hash_fn),
-  m_a_entries(s_entry_allocator.allocate(
-					 Resize_Policy::get_init_size())),
-  m_num_e(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn) :
-  my_hash_eq_fn_base(r_eq_fn),
-  my_ranged_probe_fn_base(Resize_Policy::get_init_size(),
-			  r_hash_fn, r_comb_hash_fn),
-  m_a_entries(s_entry_allocator.allocate(
-					 Resize_Policy::get_init_size())),
-  m_num_e(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn) :
-  my_hash_eq_fn_base(r_eq_fn),
-  my_ranged_probe_fn_base(Resize_Policy::get_init_size(),
-			  r_hash_fn, r_comb_hash_fn, r_probe_fn),
-  m_a_entries(s_entry_allocator.allocate(
-					 Resize_Policy::get_init_size())),
-  m_num_e(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn, const Resize_Policy& r_resize_policy) :
-  my_hash_eq_fn_base(r_eq_fn),
-  my_resize_base(r_resize_policy),
-  my_ranged_probe_fn_base(Resize_Policy::get_init_size(),
-			  r_hash_fn, r_comb_hash_fn, r_probe_fn),
-  m_a_entries(s_entry_allocator.allocate(
-					 Resize_Policy::get_init_size())),
-  m_num_e(Resize_Policy::get_init_size()),
-  m_num_used_e(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_r_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  my_hash_eq_fn_base(r_other),
-  my_resize_base(r_other),
-  my_ranged_probe_fn_base(r_other),
-  m_a_entries(s_entry_allocator.allocate(
-					 r_other.m_num_e)),
-  m_num_e(r_other.m_num_e),
-  m_num_used_e(r_other.m_num_used_e)
-{
-  initialize();
-
-  try
-    {
-      for (size_type i = 0; i < m_num_e; ++i)
-	{
-	  entry_pointer p_e =& r_other.m_a_entries[i];
-	  if (p_e->m_stat == VALID_ENTRY_STATUS)
-	    constructor_insert_new_imp((const_mapped_reference)p_e->m_value,
-				       i,
-				       my_hash_traits_base::s_store_hash_indicator);
-	}
-    }
-  catch(...)
-    {
-      deallocate_all();
-
-      throw;
-    }
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~PB_ASSOC_CLASS_NAME()
-{
-  deallocate_all();
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-
-  std::swap(m_a_entries, r_other.m_a_entries);
-
-  std::swap(m_num_e, r_other.m_num_e);
-
-  std::swap(m_num_used_e, r_other.m_num_used_e);
-
-  my_ranged_probe_fn_base::swap(r_other);
-
-  my_hash_eq_fn_base::swap(r_other);
-
-  my_resize_base::swap(r_other);
-
-  PB_ASSOC_DBG_ONLY(my_cntnr_debug_base::swap(r_other));
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-deallocate_all()
-{
-  clear();
-
-  erase_all_valid_entries(m_a_entries, m_num_e);
-
-  s_entry_allocator.deallocate(m_a_entries, m_num_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-erase_all_valid_entries(entry_array a_entries_resized, size_type size)
-{
-  for (size_type pos = 0; pos < size; ++pos)
-    {
-      entry_pointer p_e =& a_entries_resized[pos];
-
-      if (p_e->m_stat == VALID_ENTRY_STATUS)
-	p_e->m_value.~value_type();
-    }
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-initialize()
-{
-  for (size_type i = 0; i < m_num_e; ++i)
-    m_a_entries[i].m_stat = (entry_status)EMPTY_ENTRY_STATUS;
-}
-
-#include <ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp>
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 715ac789b144..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,61 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_no_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-constructor_insert_new_imp(const_mapped_reference r_val, size_type pos, int_to_type<false>)
-{
-  PB_ASSOC_DBG_ASSERT(m_a_entries[pos].m_stat != VALID_ENTRY_STATUS);
-
-  entry* const p_e = m_a_entries + pos;
-
-  new (&p_e->m_value) mapped_value_type(r_val);
-
-  p_e->m_stat = VALID_ENTRY_STATUS;
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-		    insert_new(p_e->m_value.first);)
-    }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
deleted file mode 100644
index 22b00705486a..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,64 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-constructor_insert_new_imp(const_mapped_reference r_val, size_type pos, int_to_type<true>)
-{
-  PB_ASSOC_DBG_ASSERT(m_a_entries[pos].m_stat != VALID_ENTRY_STATUS);
-
-  entry* const p_e = m_a_entries + pos;
-
-  new (&p_e->m_value) mapped_value_type(r_val);
-
-  p_e->m_hash = my_ranged_probe_fn_base::operator()(
-						    PB_ASSOC_V2F(r_val)).second;
-
-  p_e->m_stat = VALID_ENTRY_STATUS;
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-		    insert_new(p_e->m_value.first);)
-    }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
deleted file mode 100644
index e5dccef07498..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s debug-mode functions.
- */
-
-#ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid() const
-{
-  my_map_debug_base::check_size(m_num_used_e);
-
-  assert_entry_array_valid(m_a_entries, my_traits_base::m_store_hash_indicator);
-}
-
-#include <ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp>
-
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 4ce7674ac06e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_no_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s debug-mode functions.
- */
-
-#ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_entry_array_valid(const entry_array a_entries, store_hash_false_indicator) const
-{
-  size_type iterated_num_used_e = 0;
-
-  for (size_type pos = 0; pos < m_num_e; ++pos)
-    {
-      const_entry_pointer p_e =& a_entries[pos];
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	case ERASED_ENTRY_STATUS:
-	  break;
-	case VALID_ENTRY_STATUS:
-	  {
-	    const_key_reference r_key = p_e->m_value.first;
-
-	    my_map_debug_base::check_key_exists(r_key);
-
-	    ++iterated_num_used_e;
-
-	    break;
-	  }
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-    }
-
-  PB_ASSOC_DBG_ASSERT(iterated_num_used_e == m_num_used_e);
-}
-
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
deleted file mode 100644
index 7f245d0b56d2..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,86 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s debug-mode functions.
- */
-
-#ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_entry_array_valid(const entry_array a_entries, store_hash_true_indicator) const
-{
-  size_type iterated_num_used_e = 0;
-
-  for (size_type pos = 0; pos < m_num_e; ++pos)
-    {
-      const_entry_pointer p_e =& a_entries[pos];
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	case ERASED_ENTRY_STATUS:
-	  break;
-	case VALID_ENTRY_STATUS:
-	  {
-	    const_key_reference r_key = p_e->m_value.first;
-
-	    my_map_debug_base::check_key_exists(r_key);
-
-	    const comp_hash pos_hash_pair =
-	      my_ranged_probe_fn_base::operator()(r_key);
-
-	    PB_ASSOC_DBG_ASSERT(p_e->m_hash == pos_hash_pair.second);
-
-	    ++iterated_num_used_e;
-
-	    break;
-	  }
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-    }
-
-  PB_ASSOC_DBG_ASSERT(iterated_num_used_e == m_num_used_e);
-}
-
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
deleted file mode 100644
index c475b2def018..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
+++ /dev/null
@@ -1,110 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s erase related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-erase_entry(entry_pointer p_e)
-{
-  PB_ASSOC_DBG_ASSERT(p_e->m_stat = VALID_ENTRY_STATUS);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::erase_existing(p_e->m_value.first);)
-
-    p_e->m_value.~value_type();
-
-  p_e->m_stat = ERASED_ENTRY_STATUS;
-
-  PB_ASSOC_DBG_ASSERT(m_num_used_e > 0);
-  my_resize_base::notify_erased(--m_num_used_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear()
-{
-  for (size_type pos = 0; pos < m_num_e; ++pos)
-    {
-      entry_pointer p_e =& m_a_entries[pos];
-
-      if (p_e->m_stat == VALID_ENTRY_STATUS)
-	erase_entry(p_e);
-    }
-
-  do_resize_if_needed_no_throw();
-
-  my_resize_base::notify_cleared();
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class Pred>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_if(Pred pred)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    size_type num_ersd = 0;
-
-  for (size_type pos = 0; pos < m_num_e; ++pos)
-    {
-      entry_pointer p_e =& m_a_entries[pos];
-
-      if (p_e->m_stat == VALID_ENTRY_STATUS&&  pred(p_e->m_value))
-	{
-	  ++num_ersd;
-
-	  erase_entry(p_e);
-	}
-    }
-
-  do_resize_if_needed_no_throw();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (num_ersd);
-}
-
-#include <ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp>
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
deleted file mode 100644
index c4251023247f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,104 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_no_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s erase related functions, when the hash
- *	value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key, int_to_type<false>)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    size_type hash = my_ranged_probe_fn_base::operator()(r_key);
-
-  size_type i;
-
-  my_resize_base::notify_erase_search_start();
-
-  for (i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos =
-	my_ranged_probe_fn_base::operator()(r_key, hash, i);
-
-      entry* const p_e = m_a_entries + pos;
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	  {
-	    my_resize_base::notify_erase_search_end();
-
-	    PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(
-									  r_key));
-
-	    return (0);
-	  }
-	  break;
-	case VALID_ENTRY_STATUS:
-	  if (my_hash_eq_fn_base::operator()(
-					     PB_ASSOC_V2F(p_e->m_value)))
-	    {
-	      my_resize_base::notify_erase_search_end();
-
-	      erase_entry(p_e);
-
-	      do_resize_if_needed_no_throw();
-
-	      return (1);
-	    }
-	  break;
-	case ERASED_ENTRY_STATUS:
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-
-      my_resize_base::notify_erase_search_collision();
-    }
-
-  my_resize_base::notify_erase_search_end();
-
-  return (0);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
deleted file mode 100644
index 60d4aa51cd8f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,109 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s erase related functions, when the hash
- *	value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key, int_to_type<true>)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (erase_in_pos_imp(r_key, 0));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_in_pos_imp(const_key_reference r_key, const comp_hash& /*r_pos_hash_pair*/)
-{
-  const comp_hash pos_hash_pair =
-    my_ranged_probe_fn_base::operator()(r_key);
-
-  for (size_type i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos = my_ranged_probe_fn_base::operator()(r_key, pos_hash_pair.second, i);
-
-      entry* const p_e = m_a_entries + pos;
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	  {
-	    my_resize_base::notify_erase_search_end();
-
-	    PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(
-									  r_key));
-
-	    return (0);
-	  }
-	  break;
-	case VALID_ENTRY_STATUS:
-	  if (my_hash_eq_fn_base::operator()(p_e->m_value.first, p_e->m_hash, r_key, pos_hash_pair.second))
-	    {
-	      my_resize_base::notify_erase_search_end();
-
-	      erase_entry(p_e);
-
-	      do_resize_if_needed_no_throw();
-
-	      return (1);
-	    }
-	  break;
-	case ERASED_ENTRY_STATUS:
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-
-      my_resize_base::notify_erase_search_collision();
-    }
-
-  my_resize_base::notify_erase_search_end();
-
-  return (0);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
deleted file mode 100644
index 076b726996fd..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s find related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return ((find_key_pointer(r_key, my_hash_traits_base::s_store_hash_indicator)));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).
-	    find_key_pointer(r_key, my_hash_traits_base::s_store_hash_indicator));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end()
-{
-  return (NULL);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end() const
-{
-  return (NULL);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_data_reference
-PB_ASSOC_CLASS_C_DEC::
-const_subscript_imp(const_key_reference r_key) const
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (const_subscript_imp(r_key, my_hash_traits_base::s_store_hash_indicator));
-}
-
-#include <ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp>
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
deleted file mode 100644
index bc135b9b817b..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_no_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s find related functions, when the hash
- *	value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_data_reference
-PB_ASSOC_CLASS_C_DEC::
-const_subscript_imp(const_key_reference r_key, int_to_type<false>) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).
-	    find_key_pointer(r_key, my_traits_base::m_store_hash_indicator)->second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::find_key_pointer(const_key_reference r_key, int_to_type<false>)
-{
-  const size_type hash = my_ranged_probe_fn_base::operator()(r_key);
-
-  size_type i;
-
-  my_resize_base::notify_find_search_start();
-
-  // Loop until entry is found or until all possible entries accessed.
-
-  for (i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos =
-	my_ranged_probe_fn_base::operator()(r_key, hash, i);
-
-      entry* const p_e = m_a_entries + pos;
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	  {
-	    my_resize_base::notify_find_search_end();
-
-	    PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			      check_key_does_not_exist(r_key);)
-
-	      return (NULL);
-	  }
-	  break;
-	case VALID_ENTRY_STATUS:
-	  if (my_hash_eq_fn_base::operator()(
-					     PB_ASSOC_V2F(p_e->m_value),
-					     r_key))
-	    {
-	      my_resize_base::notify_find_search_end();
-
-	      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-		return ((pointer)&p_e->m_value);
-	    }
-	  break;
-	case ERASED_ENTRY_STATUS:
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-
-      my_resize_base::notify_find_search_collision();
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-		    check_key_does_not_exist(r_key);)
-
-    my_resize_base::notify_find_search_end();
-
-  return (NULL);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
deleted file mode 100644
index b80087113a17..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,118 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s insert related functions, when the hash
- *	value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_data_reference
-PB_ASSOC_CLASS_C_DEC::
-const_subscript_imp(const_key_reference r_key, int_to_type<true>)  const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).find_key_pointer(r_key, my_traits_base::m_store_hash_indicator)->second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::
-find_key_pointer(const_key_reference r_key, int_to_type<true>)
-{
-  comp_hash pos_hash_pair = my_ranged_probe_fn_base::operator()(r_key);
-
-  size_type i;
-
-  my_resize_base::notify_find_search_start();
-
-  // Loop until entry is found or until all possible entries accessed.
-
-  for (i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos =
-	my_ranged_probe_fn_base::operator()(r_key, pos_hash_pair.second, i);
-
-      entry* const p_e = m_a_entries + pos;
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	  {
-	    my_resize_base::notify_find_search_end();
-
-	    PB_ASSOC_DBG_ONLY(my_map_debug_base::
-			      check_key_does_not_exist(r_key);)
-
-	      return (NULL);
-	  }
-	  break;
-	case VALID_ENTRY_STATUS:
-	  if (my_hash_eq_fn_base::operator()(
-					     PB_ASSOC_V2F(p_e->m_value),
-					     p_e->m_hash,
-					     r_key,
-					     pos_hash_pair.second))
-	    {
-	      my_resize_base::notify_find_search_end();
-
-	      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-		return ((pointer)&p_e->m_value);
-	    }
-	  break;
-	case ERASED_ENTRY_STATUS:
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-
-      my_resize_base::notify_find_search_collision();
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-		    check_key_does_not_exist(r_key);)
-
-    my_resize_base::notify_find_search_end();
-
-  return (NULL);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
deleted file mode 100644
index a56a0ede260a..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
+++ /dev/null
@@ -1,602 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file gp_ht_map_.hpp
- * Contains an implementation class for gp_ht_map_.
- */
-
-#include <ext/pb_assoc/detail/cond_dealtor.hpp>
-#include <ext/pb_assoc/trivial_iterator_def.hpp>
-#include <ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp>
-#include <ext/pb_assoc/detail/hash_types_traits.hpp>
-#include <ext/pb_assoc/detail/types_traits.hpp>
-#include <ext/pb_assoc/exception.hpp>
-#include <ext/pb_assoc/detail/map_debug_base.hpp>
-#include <ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp>
-#ifdef PB_ASSOC_BASIC_REGRESSION
-#include <pb_assoc/testsuite/regression/basic_test/throw_prob_adjustor.hpp>
-#endif // #ifdef PB_ASSOC_BASIC_REGRESSION
-#include <utility>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Hash_Fn, \
-		class Eq_Fn, \
-		class Allocator, \
-		bool Store_Hash, \
-		class Comb_Probe_Fn, \
-		class Probe_Fn, \
-		class Resize_Policy>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	gp_ht_map_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	gp_ht_map_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_CLASS_NAME< \
-		Key, \
-		Data, \
-		Hash_Fn, \
-		Eq_Fn, \
-		Allocator, \
-		Store_Hash, \
-		Comb_Probe_Fn, \
-		Probe_Fn, \
-		Resize_Policy>
-
-#define PB_ASSOC_HASH_EQ_FN_C_DEC \
-	pb_assoc::detail::hash_eq_fn< \
-		Key, \
-		Eq_Fn, \
-		Allocator, \
-		Store_Hash>
-
-#define PB_ASSOC_RANGED_PROBE_FN_C_DEC \
-	pb_assoc::detail::ranged_probe_fn< \
-		Key, \
-		Hash_Fn, \
-		Allocator, \
-		Comb_Probe_Fn, \
-		Probe_Fn, \
-		Store_Hash>
-
-#define PB_ASSOC_TYPES_TRAITS_C_DEC \
-	types_traits< \
-		Key, \
-		Data, \
-		Allocator>
-
-#define PB_ASSOC_HASH_TYPES_TRAITS_C_DEC \
-	hash_types_traits< \
-		typename Allocator::size_type, \
-		Store_Hash>
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-#define PB_ASSOC_MAP_DEBUG_BASE_C_DEC \
-	pb_assoc::detail::map_debug_base< \
-		Key, \
-		Eq_Fn>
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_V2F(X) (X).first
-#define PB_ASSOC_V2S(X) (X).second
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_V2F(X) (X)
-#define PB_ASSOC_V2S(X) Mapped_Data()
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_STATIC_ASSERT(UNIQUE, E) \
-	typedef \
-		pb_assoc::detail::static_assert_dummy_class< \
-			sizeof(pb_assoc::detail::static_assert<(bool)(E)>)> \
-			UNIQUE##static_assert_type
-
-    template<typename Key,
-	     typename Data,
-	     class Hash_Fn,
-	     class Eq_Fn,
-	     class Allocator,
-	     bool Store_Hash,
-	     class Comb_Probe_Fn,
-	     class Probe_Fn,
-	     class Resize_Policy>
-    class PB_ASSOC_CLASS_NAME :
-#ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-      protected PB_ASSOC_MAP_DEBUG_BASE_C_DEC,
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-      public PB_ASSOC_HASH_EQ_FN_C_DEC,
-      public Resize_Policy,
-      public PB_ASSOC_RANGED_PROBE_FN_C_DEC,
-      public PB_ASSOC_TYPES_TRAITS_C_DEC,
-      public PB_ASSOC_HASH_TYPES_TRAITS_C_DEC
-    {
-
-    public:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_key_reference
-      const_key_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_type data_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_reference
-      data_reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_data_reference
-      const_data_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type value_type;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::pointer pointer;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_pointer
-      const_pointer;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::reference reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_reference
-      const_reference;
-
-    protected:
-
-      typedef typename PB_ASSOC_HASH_TYPES_TRAITS_C_DEC::comp_hash comp_hash;
-
-      enum ENTRY_STATUS
-	{
-	  EMPTY_ENTRY_STATUS,
-	  VALID_ENTRY_STATUS,
-	  ERASED_ENTRY_STATUS
-	};
-
-      typedef char entry_status;
-
-      struct store_hash_entry
-      {
-	value_type m_value;
-
-	entry_status m_stat;
-
-	size_type m_hash;
-      };
-
-      struct no_store_hash_entry
-      {
-	value_type m_value;
-
-	entry_status m_stat;
-      };
-
-      typedef
-      typename cond_type<
-	Store_Hash,
-	store_hash_entry,
-	no_store_hash_entry>::type
-      entry;
-
-      typedef
-      typename Allocator::template rebind<entry>::other
-      entry_allocator;
-
-      typedef typename entry_allocator::pointer entry_pointer;
-
-      typedef typename entry_allocator::const_pointer const_entry_pointer;
-
-      typedef typename entry_allocator::reference entry_reference;
-
-      typedef
-      typename entry_allocator::const_reference
-      const_entry_reference;
-
-      typedef typename entry_allocator::pointer entry_array;
-
-      typedef value_type mapped_value_type;
-
-      typedef pointer mapped_pointer;
-
-      typedef const_pointer const_mapped_pointer;
-
-      typedef reference mapped_reference;
-
-      typedef const_reference const_mapped_reference;
-
-#define PB_ASSOC_GEN_POS size_type
-
-#include <ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/iterator.hpp>
-
-#undef PB_ASSOC_GEN_POS
-
-      typedef find_iterator_ find_iterator;
-
-      typedef const_find_iterator_ const_find_iterator;
-
-      typedef iterator_ iterator;
-
-      typedef const_iterator_ const_iterator;
-
-      typedef Hash_Fn hash_fn;
-
-      typedef Eq_Fn eq_fn;
-
-      typedef Allocator allocator;
-
-      typedef Probe_Fn probe_fn;
-
-      typedef Comb_Probe_Fn comb_hash_fn;
-
-      typedef Resize_Policy resize_policy;
-
-    protected:
-
-      PB_ASSOC_CLASS_NAME();
-
-      PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn);
-
-      PB_ASSOC_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn, const Resize_Policy& r_resize_policy);
-
-      template<class It>
-      void
-      copy_from_range(It first_it, It last_it);
-
-      virtual
-      ~PB_ASSOC_CLASS_NAME();
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      inline size_type
-      size() const;
-
-      inline size_type
-      max_size() const;
-
-      inline bool
-      empty() const;
-
-      Hash_Fn& 
-      get_hash_fn();
-
-      const Hash_Fn& 
-      get_hash_fn() const;
-
-      Eq_Fn& 
-      get_eq_fn();
-
-      const Eq_Fn& 
-      get_eq_fn() const;
-
-      Probe_Fn& 
-      get_probe_fn();
-
-      const Probe_Fn& 
-      get_probe_fn() const;
-
-      Comb_Probe_Fn& 
-      get_comb_probe_fn();
-
-      const Comb_Probe_Fn& 
-      get_comb_probe_fn() const;
-
-      Resize_Policy& 
-      get_resize_policy();
-
-      const Resize_Policy& 
-      get_resize_policy() const;
-
-      inline std::pair<find_iterator, bool>
-      insert(const_reference r_val);
-
-      inline data_reference
-      subscript_imp(const_key_reference r_key);
-
-      inline find_iterator
-      find(const_key_reference r_key);
-
-      inline const_find_iterator
-      find(const_key_reference r_key) const;
-
-      inline find_iterator
-      find_end();
-
-      inline const_find_iterator
-      find_end() const;
-
-      inline size_type
-      erase(const_key_reference r_key, int_to_type<false>);
-
-      inline size_type
-      erase(const_key_reference r_key, int_to_type<true>);
-
-      template<class Pred>
-      inline size_type
-      erase_if(Pred prd);
-
-      void
-      clear();
-
-      inline iterator
-      begin();
-
-      inline const_iterator
-      begin() const;
-
-      inline iterator
-      end();
-
-      inline const_iterator
-      end() const;
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-      virtual void
-      assert_valid() const;
-
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-
-      virtual void
-      do_resize(size_type new_size);
-
-    private:
-
-      typedef PB_ASSOC_TYPES_TRAITS_C_DEC my_traits_base;
-
-      typedef PB_ASSOC_HASH_TYPES_TRAITS_C_DEC my_hash_traits_base;
-
-      typedef PB_ASSOC_RANGED_PROBE_FN_C_DEC my_ranged_probe_fn_base;
-
-#ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-      typedef PB_ASSOC_MAP_DEBUG_BASE_C_DEC my_map_debug_base;
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-
-      typedef PB_ASSOC_HASH_EQ_FN_C_DEC my_hash_eq_fn_base;
-
-      typedef Resize_Policy my_resize_base;
-
-      friend class iterator_;
-
-      friend class const_iterator_;
-
-    private:
-
-      void
-      deallocate_all();
-
-      void
-      initialize();
-
-      inline void
-      constructor_insert_new_imp(const_reference r_val, size_type pos, int_to_type<true>);
-
-      inline void
-      constructor_insert_new_imp(const_reference r_val, size_type pos, int_to_type<false>);
-
-      void
-      erase_all_valid_entries(entry_array a_entries_resized, size_type size);
-
-      inline bool
-      do_resize_if_needed();
-
-      inline void
-      do_resize_if_needed_no_throw();
-
-      void
-      resize_imp(entry_array a_entries_resized, size_type old_size);
-
-      inline void
-      resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, int_to_type<false>);
-
-      inline void
-      resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, int_to_type<true>);
-
-      inline size_type
-      find_ins_pos(const_key_reference r_key, int_to_type<false>);
-
-      inline comp_hash
-      find_ins_pos(const_key_reference r_key, int_to_type<true>);
-
-      inline std::pair<find_iterator, bool>
-      insert_imp(const_reference r_val, int_to_type<false>);
-
-      inline std::pair<find_iterator, bool>
-      insert_imp(const_reference r_val, int_to_type<true>);
-
-      inline pointer
-      insert_new_imp(const_reference r_val, size_type pos);
-
-      inline pointer
-      insert_new_imp(const_reference r_val, comp_hash& r_pos_hash_pair);
-
-      inline data_reference
-      subscript_imp(const_key_reference r_key, int_to_type<false>);
-
-      inline data_reference
-      subscript_imp(const_key_reference r_key, int_to_type<true>);
-
-      inline const_data_reference
-      const_subscript_imp(const_key_reference r_key) const;
-
-      inline pointer
-      find_key_pointer(const_key_reference r_key, int_to_type<false>);
-
-      inline pointer
-      find_key_pointer(const_key_reference r_key, int_to_type<true>);
-
-      inline const_data_reference
-      const_subscript_imp(const_key_reference r_key, int_to_type<false>) const;
-
-      inline const_data_reference
-      const_subscript_imp(const_key_reference r_key, int_to_type<true>) const;
-
-      inline size_type
-      erase_in_pos_imp(const_key_reference r_key, const comp_hash& r_pos_hash_pair);
-
-      inline void
-      erase_entry(entry_pointer p_e);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      void
-      inc_it_state(pointer& r_p_value, size_type& r_pos) const;
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      void
-      inc_it_state(const_pointer& r_p_value, size_type& r_pos) const;
-
-      void
-      get_start_it_state(const_pointer& r_p_value, size_type& r_pos) const;
-
-      void
-      get_start_it_state(pointer& r_p_value, size_type& r_pos);
-
-#ifdef PB_ASSOC_CC_HT_MAP_DEBUG
-
-      void
-      assert_entry_array_valid(const entry_array a_entries, int_to_type<false>) const;
-
-      void
-      assert_entry_array_valid(const entry_array a_entries, int_to_type<true>) const;
-
-#endif // #ifdef PB_ASSOC_GP_HT_MAP_DEBUG_
-
-    private:
-      static entry_allocator s_entry_allocator;
-
-      entry_pointer m_a_entries;
-
-      size_type m_num_e;
-
-      size_type m_num_used_e;
-
-      static iterator s_end_it;
-
-      static const_iterator s_const_end_it;
-
-      enum
-	{
-	  store_hash_ok =
-	  !Store_Hash ||
-	  !pb_assoc::detail::is_same_type<
-	  Hash_Fn,
-	  pb_assoc::null_hash_fn>::value
-	};
-
-      PB_ASSOC_STATIC_ASSERT(sth, store_hash_ok);
-    };
-
-#include <ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_HASH_EQ_FN_C_DEC
-
-#undef PB_ASSOC_RANGED_PROBE_FN_C_DEC
-
-#undef PB_ASSOC_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_HASH_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_MAP_DEBUG_BASE_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_V2F
-#undef PB_ASSOC_V2S
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-#undef PB_ASSOC_STATIC_ASSERT
-
-  } // namespace detail
-
-} // namespace pb_assoc
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
deleted file mode 100644
index 49e912807dbb..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s entire container info related
- *	functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  return (m_num_used_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (s_entry_allocator.max_size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (size() == 0);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
deleted file mode 100644
index ff88d992b04d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s insert related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert(const_mapped_reference r_val)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (insert_imp(r_val, my_hash_traits_base::s_store_hash_indicator));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (subscript_imp(r_key, my_hash_traits_base::s_store_hash_indicator));
-}
-
-#include <ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp>
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 245865537773..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,184 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_no_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s insert related functions, when the hash
- *	value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-find_ins_pos(const_key_reference r_key, int_to_type<false>)
-{
-  size_type hash = my_ranged_probe_fn_base::operator()(r_key);
-
-  size_type i;
-
-  /* The insertion position is initted to a non-legal value to indicate
-   *	that it has not been initted yet.
-   */
-  size_type ins_pos = m_num_e;
-
-  my_resize_base::notify_insert_search_start();
-
-  for (i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos =
-	my_ranged_probe_fn_base::operator()(r_key, hash, i);
-
-      entry* const p_e = m_a_entries + pos;
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	  {
-	    my_resize_base::notify_insert_search_end();
-
-	    PB_ASSOC_DBG_ONLY(
-			      my_map_debug_base::check_key_does_not_exist(r_key);)
-
-	      return ((ins_pos == m_num_e)? pos : ins_pos);
-	  }
-	  break;
-	case ERASED_ENTRY_STATUS:
-	  if (ins_pos == m_num_e)
-	    ins_pos = pos;
-	  break;
-	case VALID_ENTRY_STATUS:
-	  if (my_hash_eq_fn_base::operator()(
-					     PB_ASSOC_V2F(p_e->m_value), r_key))
-	    {
-	      my_resize_base::notify_insert_search_end();
-
-	      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-		return (pos);
-	    }
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-
-      my_resize_base::notify_insert_search_collision();
-    }
-
-  my_resize_base::notify_insert_search_end();
-
-  if (ins_pos == m_num_e)
-    throw cannot_insert();
-
-  return (ins_pos);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key, int_to_type<false>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    const size_type pos =
-    find_ins_pos(r_key, my_hash_traits_base::s_store_hash_indicator);
-
-  entry_pointer p_e =& m_a_entries[pos];
-
-  if (p_e->m_stat != VALID_ENTRY_STATUS)
-    return (insert_new_imp(
-			   value_type(r_key, Data()), pos)->second);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-    return (p_e->m_value.second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert_imp(const_reference r_val, int_to_type<false>)
-{
-  const_key_reference r_key = PB_ASSOC_V2F(r_val);
-
-  const size_type pos =
-    find_ins_pos(r_key, my_hash_traits_base::s_store_hash_indicator);
-
-  if (m_a_entries[pos].m_stat == VALID_ENTRY_STATUS)
-    {
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-	return (std::make_pair(&m_a_entries[pos].m_value, false));
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key));
-
-  return (std::make_pair(
-			 insert_new_imp(r_val, pos),
-			 true));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::
-insert_new_imp(const_reference r_val, size_type pos)
-{
-  PB_ASSOC_DBG_ASSERT(m_a_entries[pos].m_stat != VALID_ENTRY_STATUS);
-
-  if (do_resize_if_needed())
-    pos = find_ins_pos(PB_ASSOC_V2F(r_val),
-		       my_hash_traits_base::s_store_hash_indicator);
-
-  PB_ASSOC_DBG_ASSERT(m_a_entries[pos].m_stat != VALID_ENTRY_STATUS);
-
-  entry* const p_e = m_a_entries + pos;
-
-  new (&p_e->m_value) value_type(r_val);
-
-  p_e->m_stat = VALID_ENTRY_STATUS;
-
-  my_resize_base::notify_inserted(++m_num_used_e);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::
-		    insert_new(p_e->m_value.first);)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (static_cast<pointer>(&p_e->m_value));
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
deleted file mode 100644
index f342a084c6a7..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,195 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s find related functions, when the hash
- *	value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::comp_hash
-PB_ASSOC_CLASS_C_DEC::
-find_ins_pos(const_key_reference r_key, int_to_type<true>)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    comp_hash pos_hash_pair = my_ranged_probe_fn_base::operator()(r_key);
-
-  size_type i;
-
-  /* The insertion position is initted to a non-legal value to indicate
-   *	that it has not been initted yet.
-   */
-  size_type ins_pos = m_num_e;
-
-  my_resize_base::notify_insert_search_start();
-
-  for (i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos =
-	my_ranged_probe_fn_base::operator()(r_key, pos_hash_pair.second, i);
-
-      entry* const p_e = m_a_entries + pos;
-
-      switch(p_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	  {
-	    my_resize_base::notify_insert_search_end();
-
-	    PB_ASSOC_DBG_ONLY(
-			      my_map_debug_base::check_key_does_not_exist(r_key);)
-
-	      return ((ins_pos == m_num_e)?
-		      std::make_pair(pos, pos_hash_pair.second) :
-		      std::make_pair(ins_pos, pos_hash_pair.second));
-	  }
-	  break;
-	case ERASED_ENTRY_STATUS:
-	  if (ins_pos == m_num_e)
-	    ins_pos = pos;
-	  break;
-	case VALID_ENTRY_STATUS:
-	  if (my_hash_eq_fn_base::operator()(
-					     PB_ASSOC_V2F(p_e->m_value),
-					     p_e->m_hash,
-					     r_key,
-					     pos_hash_pair.second))
-	    {
-	      my_resize_base::notify_insert_search_end();
-
-	      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key);)
-
-		return (std::make_pair(pos, pos_hash_pair.second));
-	    }
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-
-      my_resize_base::notify_insert_search_collision();
-    }
-
-  my_resize_base::notify_insert_search_end();
-
-  if (ins_pos == m_num_e)
-    throw cannot_insert();
-
-  return (std::make_pair(ins_pos, pos_hash_pair.second));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key, int_to_type<true>)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    comp_hash pos_hash_pair =
-    find_ins_pos(r_key, my_hash_traits_base::s_store_hash_indicator);
-
-  if (m_a_entries[pos_hash_pair.first].m_stat != VALID_ENTRY_STATUS)
-    return (insert_new_imp(
-			   value_type(r_key, Data()), pos_hash_pair)->second);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key));
-
-  return ((m_a_entries + pos_hash_pair.first)->m_value.second);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert_imp(const_reference r_val, int_to_type<true>)
-{
-  const_key_reference r_key = PB_ASSOC_V2F(r_val);
-
-  comp_hash pos_hash_pair =
-    find_ins_pos(r_key, my_hash_traits_base::s_store_hash_indicator);
-
-  entry_pointer p_e =& m_a_entries[pos_hash_pair.first];
-
-  if (p_e->m_stat == VALID_ENTRY_STATUS)
-    {
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key));
-
-      return (std::make_pair(&p_e->m_value, false));
-    }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key));
-
-  return (std::make_pair(
-			 insert_new_imp(r_val, pos_hash_pair),
-			 true));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::pointer
-PB_ASSOC_CLASS_C_DEC::
-insert_new_imp(const_reference r_val, comp_hash& r_pos_hash_pair)
-{
-  PB_ASSOC_DBG_ASSERT(m_a_entries[r_pos_hash_pair.first].m_stat !=
-		      VALID_ENTRY_STATUS);
-
-  if (do_resize_if_needed())
-    r_pos_hash_pair = find_ins_pos(
-				   PB_ASSOC_V2F(r_val),
-				   my_hash_traits_base::s_store_hash_indicator);
-
-  PB_ASSOC_DBG_ASSERT(m_a_entries[r_pos_hash_pair.first].m_stat !=
-		      VALID_ENTRY_STATUS);
-
-  entry* const p_e = m_a_entries + r_pos_hash_pair.first;
-
-  new (&p_e->m_value) value_type(r_val);
-
-  p_e->m_hash = r_pos_hash_pair.second;
-
-  p_e->m_stat = VALID_ENTRY_STATUS;
-
-  my_resize_base::notify_inserted(++m_num_used_e);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(p_e->m_value.first);)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (static_cast<pointer>(&p_e->m_value));
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
deleted file mode 100644
index 96a9b29c5acc..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterator_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s iterators related functions, e.g.,
- *	begin().
- */
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::s_end_it;
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::s_const_end_it;
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-begin()
-{
-  pointer p_value;
-  size_type pos;
-
-  get_start_it_state(p_value, pos);
-
-  return (iterator(p_value, pos, this));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-end()
-{
-  return (s_end_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-begin() const
-{
-  const_pointer p_value;
-  size_type pos;
-
-  get_start_it_state(p_value, pos);
-
-  return (const_iterator(p_value, pos, this));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-end() const
-{
-  return (s_const_end_it);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-inc_it_state(pointer& r_p_value, size_type& r_pos) const
-{
-  PB_ASSOC_DBG_ASSERT(r_p_value != NULL);
-
-  for (++r_pos; r_pos < m_num_e; ++r_pos)
-    {
-      const_entry_pointer p_e =& m_a_entries[r_pos];
-
-      if (p_e->m_stat == VALID_ENTRY_STATUS)
-	{
-	  r_p_value = static_cast<const_pointer>(&p_e->m_value);
-
-	  return;
-	}
-    }
-
-  r_p_value = NULL;
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-inc_it_state(const_pointer& r_p_value, size_type& r_pos) const
-{
-  PB_ASSOC_DBG_ASSERT(r_p_value != NULL);
-
-  for (++r_pos; r_pos < m_num_e; ++r_pos)
-    {
-      const_entry_pointer p_e =& m_a_entries[r_pos];
-
-      if (p_e->m_stat == VALID_ENTRY_STATUS)
-	{
-	  r_p_value = static_cast<const_pointer>(&p_e->m_value);
-
-	  return;
-	}
-    }
-
-  r_p_value = NULL;
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-get_start_it_state(const_pointer& r_p_value, size_type& r_pos) const
-{
-  for (r_pos = 0; r_pos < m_num_e; ++r_pos)
-    {
-      const_entry_pointer p_e =& m_a_entries[r_pos];
-
-      if (p_e->m_stat == VALID_ENTRY_STATUS)
-	{
-	  r_p_value =& p_e->m_value;
-
-	  return;
-	}
-    }
-
-  r_p_value = NULL;
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-get_start_it_state(pointer& r_p_value, size_type& r_pos)
-{
-  for (r_pos = 0; r_pos < m_num_e; ++r_pos)
-    {
-      entry_pointer p_e =& m_a_entries[r_pos];
-
-      if (p_e->m_stat == VALID_ENTRY_STATUS)
-	{
-	  r_p_value = const_cast<pointer>(&p_e->m_value);
-
-	  return;
-	}
-    }
-
-  r_p_value = NULL;
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
deleted file mode 100644
index 783f6ea63b2d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
+++ /dev/null
@@ -1,124 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file policy_access_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s policy agpess
- *	functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-Hash_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_hash_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Hash_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_hash_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Probe_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_probe_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Probe_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_probe_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Comb_Probe_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_comb_probe_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Comb_Probe_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_comb_probe_fn() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Resize_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_resize_policy()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Resize_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_resize_policy() const
-{
-  return (*this);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
deleted file mode 100644
index c3e8981faa9c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
+++ /dev/null
@@ -1,158 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file resize_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s resize related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-do_resize_if_needed()
-{
-  if (!my_resize_base::is_resize_needed())
-    return (false);
-
-  do
-    do_resize(my_resize_base::get_new_size(m_num_e, m_num_used_e));
-  while (my_resize_base::is_resize_needed());
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-do_resize_if_needed_no_throw()
-{
-  if (!my_resize_base::is_resize_needed())
-    return;
-
-  try
-    {
-      do
-	do_resize(my_resize_base::get_new_size(m_num_e, m_num_used_e));
-      while (my_resize_base::is_resize_needed());
-    }
-  catch(...)
-    { }
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-do_resize(size_type new_size)
-{
-#ifdef PB_ASSOC_BASIC_REGRESSION
-  throw_prob_adjustor adjust(m_num_e);
-#endif // #ifdef PB_ASSOC_BASIC_REGRESSION
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    const size_type old_size = m_num_e;
-
-  entry_array a_entries_resized = NULL;
-
-  my_ranged_probe_fn_base::notify_resized(new_size);
-
-  // Following line might throw an exception.
-
-  try
-    {
-      a_entries_resized = s_entry_allocator.allocate(new_size);
-    }
-  catch(...)
-    {
-      my_ranged_probe_fn_base::notify_resized(old_size);
-
-      throw;
-    }
-
-  m_num_e = new_size;
-
-  for (size_type i = 0; i < m_num_e; ++i)
-    a_entries_resized[i].m_stat = (entry_status)EMPTY_ENTRY_STATUS;
-
-  try
-    {
-      resize_imp(a_entries_resized, old_size);
-    }
-  catch(...)
-    {
-      erase_all_valid_entries(a_entries_resized, new_size);
-
-      m_num_e = old_size;
-
-      s_entry_allocator.deallocate(a_entries_resized, new_size);
-
-      my_ranged_probe_fn_base::notify_resized(old_size);
-
-      throw;
-    }
-
-  // At this point no exceptions can be thrown.
-
-  PB_ASSOC_DBG_ONLY(assert_entry_array_valid(a_entries_resized, my_hash_traits_base::s_store_hash_indicator);)
-
-    Resize_Policy::notify_resized(new_size);
-
-  erase_all_valid_entries(m_a_entries, old_size);
-
-  s_entry_allocator.deallocate(m_a_entries, old_size);
-
-  m_a_entries = a_entries_resized;
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-resize_imp(entry_array a_entries_resized, size_type old_size)
-{
-  for (size_type pos = 0; pos < old_size; ++pos)
-    if (m_a_entries[pos].m_stat == VALID_ENTRY_STATUS)
-      resize_imp_reassign(m_a_entries + pos, a_entries_resized, my_hash_traits_base::s_store_hash_indicator);
-}
-
-#include <ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp>
-#include <ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp>
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
deleted file mode 100644
index 019673f7df7b..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file resize_no_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s resize related functions, when the
- *	hash value is not stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, int_to_type<false>)
-{
-  const_key_reference r_key = PB_ASSOC_V2F(p_e->m_value);
-
-  size_type hash = my_ranged_probe_fn_base::operator()(r_key);
-
-  size_type i;
-
-  for (i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos =
-	my_ranged_probe_fn_base::operator()(r_key, hash, i);
-
-      entry* const p_new_e = a_entries_resized + pos;
-
-      switch(p_new_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-	  new (&p_new_e->m_value) value_type(p_e->m_value);
-
-	  p_new_e->m_stat = VALID_ENTRY_STATUS;
-
-	  return;
-	case ERASED_ENTRY_STATUS:
-	  PB_ASSOC_DBG_ASSERT(0);
-	  break;
-	case VALID_ENTRY_STATUS:
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-    }
-
-  throw cannot_insert();
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
deleted file mode 100644
index 002512f7b9b2..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file resize_store_hash_fn_imps.hpp
- * Contains implementations of gp_ht_map_'s resize related functions, when the
- *	hash value is stored.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, int_to_type<true>)
-{
-  const_key_reference r_key = PB_ASSOC_V2F(p_e->m_value);
-
-  size_type hash =
-    my_ranged_probe_fn_base::operator()(r_key, p_e->m_hash);
-
-  size_type i;
-
-  for (i = 0; i < m_num_e; ++i)
-    {
-      const size_type pos =
-	my_ranged_probe_fn_base::operator()(r_key, hash, i);
-
-      entry* const p_new_e = a_entries_resized + pos;
-
-      switch(p_new_e->m_stat)
-	{
-	case EMPTY_ENTRY_STATUS:
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-	  new (&p_new_e->m_value) mapped_value_type(p_e->m_value);
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-	  new (&p_new_e->m_value) Key(p_e->m_value);
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATO
-
-	  p_new_e->m_hash = hash;
-
-	  p_new_e->m_stat = VALID_ENTRY_STATUS;
-
-	  return;
-	case ERASED_ENTRY_STATUS:
-	  PB_ASSOC_DBG_ASSERT(0);
-	  break;
-	case VALID_ENTRY_STATUS:
-	  break;
-	default:
-	  PB_ASSOC_DBG_ASSERT(0);
-	};
-    }
-
-  throw cannot_insert();
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
deleted file mode 100644
index 570211389d6b..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file direct_mask_range_hashing_imp.hpp
- * Contains an implementation of direct_mask_range_hashing.
- */
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  my_mask_based_base::swap(r_other);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_resized(size_type size)
-{
-  my_mask_based_base::notify_resized(size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-operator()(size_type hash) const
-{
-  return (my_mask_based_base::range_hash(hash));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
deleted file mode 100644
index 80ba9c215c27..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file direct_mod_range_hashing_imp.hpp
- * Contains an implementation of direct_mod_range_hashing.
- */
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  my_mod_based_base::swap(r_other);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_resized(size_type size)
-{
-  my_mod_based_base::notify_resized(size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-operator()(size_type hash) const
-{
-  return (my_mod_based_base::range_hash(hash));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
deleted file mode 100644
index e0042da8a0f9..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file linear_probe_fn_imp.hpp
- * Contains an implementation of linear_probe_fn
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-operator()(Const_Key_Ref /*r_key*/, size_type i) const
-{
-  return (i);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
deleted file mode 100644
index 5cf6c99607dc..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
+++ /dev/null
@@ -1,141 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file mask_based_range_hashing.hpp
- * Contains a range hashing policy base.
- */
-
-#ifndef MASK_BASED_RANGE_HASHING_HPP
-#define MASK_BASED_RANGE_HASHING_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	mask_based_range_hashing< \
-		Size_Type>
-
-    template<typename Size_Type>
-    class mask_based_range_hashing
-    {
-    protected:
-      typedef Size_Type size_type;
-
-    protected:
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      notify_resized(size_type size);
-
-      inline size_type
-      range_hash(size_type hash) const;
-
-    private:
-      size_type m_mask;
-
-      const static size_type s_num_bits_in_size_type;
-
-      const static size_type s_highest_bit_1;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    const typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::s_num_bits_in_size_type =
-    sizeof(typename PB_ASSOC_CLASS_C_DEC::size_type) << 3;
-
-    PB_ASSOC_CLASS_T_DEC
-    const typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::s_highest_bit_1 =
-    (typename PB_ASSOC_CLASS_C_DEC::size_type) 1
-      << (s_num_bits_in_size_type - 1);
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      std::swap(m_mask, r_other.m_mask);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    notify_resized(size_type size)
-    {
-      size_type i = 0;
-
-      while (size ^ s_highest_bit_1)
-	{
-	  size <<= 1;
-
-	  ++i;
-	}
-
-      m_mask = 1;
-
-      i += 2;
-
-      while (i++ < s_num_bits_in_size_type)
-	m_mask = (m_mask << 1) ^ 1;
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
-    range_hash(size_type hash) const
-    {
-      return (hash&  m_mask);
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef MASK_BASED_RANGE_HASHING_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
deleted file mode 100644
index 55dceba06191..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file mod_based_range_hashing.hpp
- * Contains a range hashing policy base.
- */
-
-#ifndef MOD_BASED_RANGE_HASHING_HPP
-#define MOD_BASED_RANGE_HASHING_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	mod_based_range_hashing< \
-		Size_Type>
-
-    template<typename Size_Type>
-    class mod_based_range_hashing
-    {
-    protected:
-      typedef Size_Type size_type;
-
-    protected:
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      notify_resized(size_type size);
-
-      inline size_type
-      range_hash(size_type hash) const;
-
-    private:
-      size_type m_size;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      std::swap(m_size, r_other.m_size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    notify_resized(size_type size)
-    {
-      m_size = size;
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
-    range_hash(size_type hash) const
-    {
-      return (hash % m_size);
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef MOD_BASED_RANGE_HASHING_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
deleted file mode 100644
index 9eded811246f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file probe_fn_base.hpp
- * Contains a probe policy base.
- */
-
-#ifndef PROBE_FN_BASE_HPP
-#define PROBE_FN_BASE_HPP
-
-#include <functional>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PROBE_FN_BASE_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PROBE_FN_BASE_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PROBE_FN_BASE_DEBUG
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	probe_fn_base< \
-		Allocator>
-
-    template<class Allocator>
-    class probe_fn_base
-    {
-    protected:
-      ~probe_fn_base();
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ~probe_fn_base()
-    { }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef PROBE_FN_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
deleted file mode 100644
index fec29254736e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
+++ /dev/null
@@ -1,57 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file quadratic_probe_fn_imp.hpp
- * Contains an implementation of quadratic_probe_fn.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-operator()(Const_Key_Ref /*r_key*/, size_type i) const
-{
-  return (i*  i);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
deleted file mode 100644
index c260ccabfe88..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
+++ /dev/null
@@ -1,459 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ranged_hash_fn.hpp
- * Contains a unified ranged hash functor, allowing the hash tables to deal with
- *	a single class for ranged hashing.
- */
-
-#ifndef RANGED_HASH_FN_HPP
-#define RANGED_HASH_FN_HPP
-
-#include <utility>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_RANGED_HASH_FN_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_RANGED_HASH_FN_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_RANGED_HASH_FN_DEBUG
-
-    template<typename Key,
-	     class Hash_Fn,
-	     class Allocator,
-	     class Comb_Hash_Fn,
-	     bool Store_Hash>
-    class ranged_hash_fn;
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		class Hash_Fn, \
-		class Allocator, \
-		class Comb_Hash_Fn>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	ranged_hash_fn< \
-		Key, \
-		Hash_Fn, \
-		Allocator, \
-		Comb_Hash_Fn, \
-		false>
-
-    /**
-     * Specialization 1- The client supplies a hash function and a ranged
-     *	hash function, and requests that hash values not be stored.
-     **/
-    template<typename Key,
-	     class Hash_Fn,
-	     class Allocator,
-	     class Comb_Hash_Fn>
-    class ranged_hash_fn<Key, Hash_Fn, Allocator, Comb_Hash_Fn, false> : public Hash_Fn,
-									 public Comb_Hash_Fn
-    {
-    protected:
-      typedef typename Allocator::size_type size_type;
-
-      typedef Hash_Fn my_hash_fn_base;
-
-      typedef Comb_Hash_Fn my_comb_hash_fn_base;
-
-      typedef typename Allocator::template rebind<Key>::other key_allocator;
-
-      typedef typename key_allocator::const_reference const_key_reference;
-
-    protected:
-      ranged_hash_fn(size_type size);
-
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn);
-
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      notify_resized(size_type size);
-
-      inline size_type
-      operator()(const_key_reference r_key) const;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn) :
-      Hash_Fn(r_hash_fn)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Hash_Fn(r_comb_hash_fn)
-    {
-      my_comb_hash_fn_base::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      my_comb_hash_fn_base::swap(r_other);
-
-      std::swap((Hash_Fn& )(*this), (Hash_Fn& )r_other);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    notify_resized(size_type size)
-    {
-      my_comb_hash_fn_base::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
-    operator()(const_key_reference r_key) const
-    {
-      return (my_comb_hash_fn_base::operator()(
-					       my_hash_fn_base::operator()(r_key)));
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		class Hash_Fn, \
-		class Allocator, \
-		class Comb_Hash_Fn>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	ranged_hash_fn< \
-		Key, \
-		Hash_Fn, \
-		Allocator, \
-		Comb_Hash_Fn, \
-		true>
-
-    /**
-     * Specialization 2- The client supplies a hash function and a ranged
-     *	hash function, and requests that hash values be stored.
-     **/
-    template<typename Key,
-	     class Hash_Fn,
-	     class Allocator,
-	     class Comb_Hash_Fn>
-    class ranged_hash_fn<Key, Hash_Fn, Allocator, Comb_Hash_Fn, true> :
-      public Hash_Fn,
-      public Comb_Hash_Fn
-    {
-    protected:
-      typedef typename Allocator::size_type size_type;
-
-      typedef std::pair<size_type, size_type> comp_hash;
-
-      typedef Hash_Fn my_hash_fn_base;
-
-      typedef Comb_Hash_Fn my_comb_hash_fn_base;
-
-      typedef typename Allocator::template rebind<Key>::other key_allocator;
-
-      typedef typename key_allocator::const_reference const_key_reference;
-
-    protected:
-      ranged_hash_fn(size_type size);
-
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn);
-
-      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      notify_resized(size_type size);
-
-      inline comp_hash
-      operator()(const_key_reference r_key) const;
-
-      inline comp_hash
-      operator()(const_key_reference r_key, size_type hash) const;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn) :
-      Hash_Fn(r_hash_fn)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Hash_Fn(r_hash_fn),
-      Comb_Hash_Fn(r_comb_hash_fn)
-    {
-      my_comb_hash_fn_base::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      my_comb_hash_fn_base::swap(r_other);
-
-      std::swap((Hash_Fn& )(*this), (Hash_Fn& )r_other);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    notify_resized(size_type size)
-    {
-      my_comb_hash_fn_base::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::comp_hash
-    PB_ASSOC_CLASS_C_DEC::
-    operator()(const_key_reference r_key) const
-    {
-      const size_type hash = my_hash_fn_base::operator()(r_key);
-
-      return (std::make_pair(my_comb_hash_fn_base::operator()(hash), hash));
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::comp_hash
-    PB_ASSOC_CLASS_C_DEC::
-    operator()
-#ifdef PB_ASSOC_RANGED_HASH_FN_DEBUG
-      (const_key_reference r_key, size_type hash) const
-#else // #ifdef PB_ASSOC_RANGED_HASH_FN_DEBUG
-      (const_key_reference /*r_key*/, size_type hash) const
-#endif // #ifdef PB_ASSOC_RANGED_HASH_FN_DEBUG
-    {
-      PB_ASSOC_DBG_ASSERT(hash == my_hash_fn_base::operator()(r_key));
-
-      return (std::make_pair(my_comb_hash_fn_base::operator()(hash), hash));
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, class Allocator, class Comb_Hash_Fn>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	ranged_hash_fn< \
-		Key, \
-		null_hash_fn, \
-		Allocator, \
-		Comb_Hash_Fn, \
-		false>
-
-    /**
-     * Specialization 3- The client does not supply a hash function
-     *	(by specifying null_hash_fn as the Hash_Fn parameter),
-     *	and requests that hash values not be stored.
-
-    **/
-    template<typename Key, class Allocator, class Comb_Hash_Fn>
-    class ranged_hash_fn<Key, null_hash_fn, Allocator,
-			 Comb_Hash_Fn, false> :
-      public null_hash_fn,
-      public Comb_Hash_Fn
-    {
-    protected:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef Comb_Hash_Fn my_comb_hash_fn_base;
-
-    protected:
-      ranged_hash_fn(size_type size);
-
-      ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn);
-
-      ranged_hash_fn(size_type size, const null_hash_fn&r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Comb_Hash_Fn(r_comb_hash_fn)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const null_hash_fn& r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Comb_Hash_Fn(r_comb_hash_fn)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      my_comb_hash_fn_base::swap(r_other);
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, class Allocator, class Comb_Hash_Fn>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	ranged_hash_fn< \
-		Key, \
-		null_hash_fn, \
-		Allocator, \
-		Comb_Hash_Fn, \
-		true>
-
-    /**
-     * Specialization 4- The client does not supply a hash function
-     *	(by specifying null_hash_fn as the Hash_Fn parameter),
-     *	and requests that hash values be stored.
-
-    **/
-    template<typename Key, class Allocator, class Comb_Hash_Fn>
-    class ranged_hash_fn<Key, null_hash_fn, Allocator,
-			 Comb_Hash_Fn, true> :
-      public null_hash_fn,
-      public Comb_Hash_Fn
-    {
-    protected:
-      typedef typename Allocator::size_type size_type;
-
-      typedef Comb_Hash_Fn my_comb_hash_fn_base;
-
-    protected:
-      ranged_hash_fn(size_type size);
-
-      ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn);
-
-      ranged_hash_fn(size_type size, const null_hash_fn&r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size)
-    {
-      Comb_Hash_Fn::notify_resized(size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Comb_Hash_Fn(r_comb_hash_fn)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ranged_hash_fn(size_type size, const null_hash_fn&r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
-      Comb_Hash_Fn(r_comb_hash_fn)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      my_comb_hash_fn_base::swap(r_other);
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef RANGED_HASH_FN_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_types_traits.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/hash_types_traits.hpp
deleted file mode 100644
index 01b723f436a6..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_types_traits.hpp
+++ /dev/null
@@ -1,94 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file types_traits.hpp
- * Contains a traits class of types used by containers.
- */
-
-#ifndef HASH_TYPES_TRAITS
-#define HASH_TYPES_TRAITS
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type, bool Store_Hash>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	hash_types_traits< \
-		Size_Type, \
-		Store_Hash>
-
-    template<typename Size_Type, bool Store_Hash>
-    struct hash_types_traits
-    {
-    public:
-      typedef
-      typename cond_type<
-	Store_Hash,
-	std::pair<Size_Type, Size_Type>,
-	Size_Type>::type
-      comp_hash;
-
-      typedef int_to_type<false> store_hash_false_indicator;
-
-      typedef int_to_type<true> store_hash_true_indicator;
-
-      static pb_assoc::detail::int_to_type<Store_Hash>
-      s_store_hash_indicator;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    pb_assoc::detail::int_to_type<Store_Hash>
-    PB_ASSOC_CLASS_C_DEC::s_store_hash_indicator;
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef HASH_TYPES_TRAITS
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index 94ded017788e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,121 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of lu's constructors, destructor,
- *	and related functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-lu_assoc_cntnr()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-lu_assoc_cntnr(const Eq_Fn& r_eq_fn) :
-  my_base(r_eq_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-lu_assoc_cntnr(const Eq_Fn& r_eq_fn, const Update_Policy& r_update_policy) :
-  my_base(r_eq_fn, r_update_policy)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-lu_assoc_cntnr(It first_it, It last_it)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-lu_assoc_cntnr(It first_it, It last_it, const Eq_Fn& r_eq_fn) :
-  my_base(r_eq_fn)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-lu_assoc_cntnr(It first_it, It last_it, const Eq_Fn& r_eq_fn, const Update_Policy& r_update_policy) :
-  my_base(r_eq_fn, r_update_policy)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-lu_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  my_base((const my_base& )(r_other))
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~lu_assoc_cntnr()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC& 
-PB_ASSOC_CLASS_C_DEC::
-operator=(const PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  if (this !=& r_other)
-    {
-      PB_ASSOC_CLASS_C_DEC tmp(r_other);
-
-      swap(tmp);
-    }
-
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  my_base::swap(r_other);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
deleted file mode 100644
index fe9395cc8e2e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
+++ /dev/null
@@ -1,77 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file policy_access_fn_imps.hpp
- * Contains implementations of lu_map_'s policy access
- *	functions.
- */
-
-PB_ASSOC_CLASS_T_DEC
-Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn()
-{
-  return (my_base::get_eq_fn());
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn() const
-{
-  return (my_base::get_eq_fn());
-}
-
-PB_ASSOC_CLASS_T_DEC
-Update_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_update_policy()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Update_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_update_policy() const
-{
-  return (*this);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index 4b6738973c34..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,178 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementations of PB_ASSOC_CLASS_NAME.
- */
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::entry_allocator
-PB_ASSOC_CLASS_C_DEC::s_entry_allocator;
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_range(It first_it, It last_it)
-{
-  while (first_it != last_it)
-    insert(*(first_it++));
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME() :
-  m_p_l(s_entry_allocator.allocate(1)),
-  m_size(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Eq_Fn& r_eq_fn) :
-  Eq_Fn(r_eq_fn),
-  m_p_l(s_entry_allocator.allocate(1)),
-  m_size(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Eq_Fn& r_eq_fn, const Update_Policy& r_update_policy) :
-  Eq_Fn(r_eq_fn),
-  Update_Policy(r_update_policy),
-  m_p_l(s_entry_allocator.allocate(1)),
-  m_size(0)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  Eq_Fn(r_other),
-  Update_Policy(r_other),
-  m_p_l(s_entry_allocator.allocate(1)),
-  m_size(0)
-{
-  initialize();
-
-  try
-    {
-      copy_from_range(r_other.begin(), r_other.end());
-    }
-  catch(...)
-    {
-      deallocate_all(true);
-
-      throw;
-    }
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-    std::swap(m_p_l, r_other.m_p_l);
-
-  std::swap(m_size, r_other.m_size);
-
-  std::swap((Eq_Fn& )(*this), (Eq_Fn& )r_other);
-
-  Update_Policy::swap(r_other);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::swap(r_other);)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-deallocate_all(bool deallocate_root)
-{
-  entry_pointer p_l = m_p_l->m_p_next;
-
-  while (p_l != NULL)
-    {
-      entry_pointer p_next_l = p_l->m_p_next;
-
-      p_l->~entry();
-
-      s_entry_allocator.deallocate(p_l, 1);
-
-      p_l = p_next_l;
-    }
-
-  if (deallocate_root)
-    s_entry_allocator.deallocate(m_p_l, 1);
-  else
-    m_p_l->m_p_next = NULL;
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~PB_ASSOC_CLASS_NAME()
-{
-  deallocate_all(true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-initialize()
-{
-  m_p_l->m_p_next = NULL;
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
deleted file mode 100644
index 54982776dc5d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_fn_imps.hpp
- * Contains implementations of cc_ht_map_'s debug-mode functions.
- */
-
-#ifdef PB_ASSOC_LU_MAP_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid() const
-{
-  size_type calc_size = 0;
-
-  for (const_iterator it = begin(); it != end(); ++it)
-    {
-      my_map_debug_base::check_key_exists(PB_ASSOC_V2F(*it));
-
-      ++calc_size;
-    }
-
-  PB_ASSOC_DBG_ASSERT(calc_size == m_size);
-
-  my_map_debug_base::check_size(m_size);
-}
-
-#endif // #ifdef PB_ASSOC_LU_MAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
deleted file mode 100644
index 7b5f554ff5a8..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
+++ /dev/null
@@ -1,129 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains implementations of lu_map_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    entry_pointer p_l = find_imp(r_key);
-
-  if (p_l->m_p_next == NULL)
-    return (0);
-
-  erase_imp(p_l);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (1);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    PB_ASSOC_DBG_ONLY(my_map_debug_base::clear();)
-
-    deallocate_all(false);
-
-  m_size = 0;
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-template<class Pred>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_if(Pred& r_pred)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    size_type num_ersd = 0;
-
-  entry_pointer p_l = m_p_l;
-
-  while (p_l->m_p_next != NULL)
-    {
-      if (r_pred(p_l->m_p_next->m_value))
-	{
-	  erase_imp(p_l);
-
-	  ++num_ersd;
-	}
-      else
-	p_l = p_l->m_p_next;
-    }
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (num_ersd);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-erase_imp(entry_pointer p_l)
-{
-  PB_ASSOC_DBG_ASSERT(p_l->m_p_next != NULL);
-
-  entry_pointer p_next_l = p_l->m_p_next->m_p_next;
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::erase_existing(
-						      PB_ASSOC_V2F(p_l->m_p_next->m_value));)
-
-    p_l->m_p_next->m_value.~mapped_value_type();
-
-  s_entry_allocator.deallocate(p_l->m_p_next, 1);
-
-  p_l->m_p_next = p_next_l;
-
-  PB_ASSOC_DBG_ASSERT(m_size > 0);
-  --m_size;
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
deleted file mode 100644
index 38ae5f81af7f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains implementations of lu_map_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end()
-{
-  return (NULL);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find_end() const
-{
-  return (NULL);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-move_next_to_front(entry_pointer p_l) const
-{
-  entry_pointer p_move_l = p_l->m_p_next;
-
-  PB_ASSOC_DBG_ASSERT(p_move_l != NULL);
-
-  p_l->m_p_next = p_move_l->m_p_next;
-
-  p_move_l->m_p_next = m_p_l->m_p_next;
-
-  m_p_l->m_p_next = p_move_l;
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_data_reference
-PB_ASSOC_CLASS_C_DEC::
-const_subscript_imp(const_key_reference r_key) const
-{
-  entry_pointer p_l = find_imp(r_key);
-
-  PB_ASSOC_DBG_ASSERT(p_l->m_p_next != NULL)
-
-    if (Update_Policy::operator()(p_l->m_update_metadata))
-      {
-	move_next_to_front(p_l);
-
-	return (m_p_l->m_p_next->m_value.second);
-      }
-    else
-      return (p_l->m_p_next->m_value.second);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::find(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    entry_pointer p_l = find_imp(r_key);
-
-  if (p_l->m_p_next != NULL)
-    {
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return (&p_l->m_p_next->m_value);
-    }
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (find_end());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::find(const_key_reference r_key) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    entry_pointer p_l = find_imp(r_key);
-
-  if (p_l->m_p_next != NULL)
-    {
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return (&m_p_l->m_p_next->m_value);
-    }
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (find_end());
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
deleted file mode 100644
index 663ffe7c174f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains implementations of lu_map_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  return (m_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (s_entry_allocator.max_size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (m_size == 0);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
deleted file mode 100644
index df600435d00f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
+++ /dev/null
@@ -1,148 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_fn_imps.hpp
- * Contains implementations of lu_map_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<
-  typename PB_ASSOC_CLASS_C_DEC::find_iterator,
-  bool>
-PB_ASSOC_CLASS_C_DEC::
-insert(const_reference r_val)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    entry_pointer p_l = find_imp(PB_ASSOC_V2F(r_val));
-
-  bool found = true;
-
-  if (p_l->m_p_next == NULL)
-    {
-      found = false;
-
-      insert_new_after(p_l, r_val);
-    }
-
-  PB_ASSOC_DBG_ASSERT(Eq_Fn::operator()(
-					PB_ASSOC_V2F(p_l->m_p_next->m_value),
-					PB_ASSOC_V2F(r_val)));
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    if (Update_Policy::operator()(p_l->m_update_metadata))
-      {
-	move_next_to_front(p_l);
-
-	return (std::make_pair(
-			       find_iterator(&m_p_l->m_p_next->m_value),
-			       !found));
-      }
-    else
-      return (std::make_pair(
-			     find_iterator(&p_l->m_p_next->m_value),
-			     !found));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-insert_new_after(entry_pointer p_l, const_reference r_val)
-{
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(
-								PB_ASSOC_V2F(r_val));)
-
-    entry_pointer p_new_l = s_entry_allocator.allocate(1);
-
-  cond_dealtor_t cond(p_new_l);
-
-  new (const_cast<void* >(
-			  static_cast<const void* >(&p_new_l->m_value)))
-    value_type(r_val);
-
-  cond.set_no_action();
-
-  PB_ASSOC_DBG_ASSERT(p_l->m_p_next == NULL);
-  p_l->m_p_next = p_new_l;
-
-  p_new_l->m_p_next = NULL;
-
-  ++m_size;
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(PB_ASSOC_V2F(r_val));)
-    }
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    entry_pointer p_l = find_imp(r_key);
-
-  bool found = true;
-
-  if (p_l->m_p_next == NULL)
-    {
-      found = false;
-
-      insert_new_after(p_l, value_type(r_key, data_type()));
-    }
-
-  PB_ASSOC_DBG_ASSERT(Eq_Fn::operator()(
-					PB_ASSOC_V2F(p_l->m_p_next->m_value),
-					PB_ASSOC_V2F(r_val)));
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    if (Update_Policy::operator()(p_l->m_update_metadata))
-      {
-	move_next_to_front(p_l);
-
-	return (m_p_l->m_p_next->m_value.second);
-      }
-    else
-      return (p_l->m_p_next->m_value.second);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
deleted file mode 100644
index 6ad96a8f45c0..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
+++ /dev/null
@@ -1,106 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterators_fn_imps.hpp
- * Contains implementations of lu_map_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-begin()
-{
-  if (m_size == 0)
-    {
-      PB_ASSOC_DBG_ASSERT(m_p_l->m_p_next == NULL);
-
-      return (end());
-    }
-
-  PB_ASSOC_DBG_ASSERT(m_p_l->m_p_next != NULL);
-
-  return (iterator(&m_p_l->m_p_next->m_value, m_p_l->m_p_next, this));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-begin()  const
-{
-  if (m_size == 0)
-    {
-      PB_ASSOC_DBG_ASSERT(m_p_l->m_p_next == NULL);
-
-      return (end());
-    }
-
-  PB_ASSOC_DBG_ASSERT(m_p_l->m_p_next != NULL);
-
-  return (iterator(&m_p_l->m_p_next->m_value, m_p_l->m_p_next,
-		   const_cast<PB_ASSOC_CLASS_C_DEC* >(this)));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-end()
-{
-  return (iterator(NULL, NULL, this));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-end() const
-{
-  return (const_iterator(NULL, NULL,
-			 const_cast<PB_ASSOC_CLASS_C_DEC* const>(this)));
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-inc_it_state(const_mapped_pointer& r_p_value, entry_pointer& r_pos) const
-{
-  r_pos = r_pos->m_p_next;
-
-  r_p_value = (r_pos == NULL)? NULL :& r_pos->m_value;
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/lu_map_.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
deleted file mode 100644
index b91f95fc6d38..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
+++ /dev/null
@@ -1,464 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file lu_map_.hpp
- * Contains a list update map.
- */
-
-#include <utility>
-#include <iterator>
-#include <ext/pb_assoc/detail/cond_dealtor.hpp>
-#include <ext/pb_assoc/trivial_iterator_def.hpp>
-#include <ext/pb_assoc/detail/types_traits.hpp>
-#include <ext/pb_assoc/exception.hpp>
-#include <ext/pb_assoc/detail/map_debug_base.hpp>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_LU_MAP_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_LU_MAP_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_LU_MAP_DEBUG_
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Eq_Fn, \
-		class Allocator, \
-		class Update_Policy>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	lu_map_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	lu_map_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_CLASS_NAME< \
-		Key, \
-		Data, \
-		Eq_Fn, \
-		Allocator, \
-		Update_Policy>
-
-#define PB_ASSOC_TYPES_TRAITS_C_DEC \
-	pb_assoc::detail::types_traits< \
-		Key, \
-		Data, \
-		Allocator>
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-#define PB_ASSOC_MAP_DEBUG_BASE_C_DEC \
-	pb_assoc::detail::map_debug_base< \
-		Key, \
-		Eq_Fn>
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_V2F(X) (X).first
-#define PB_ASSOC_V2S(X) (X).second
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value)
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_V2F(X) (X)
-#define PB_ASSOC_V2S(X) Data()
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value.first)
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#ifdef PB_ASSOC_LU_MAP_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_LU_MAP_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_LU_MAP_DEBUG_
-
-    /* Skip to the lu, my darling. */
-
-    template<typename Key,
-	     typename Data,
-	     class Eq_Fn,
-	     class Allocator,
-	     class Update_Policy>
-    class PB_ASSOC_CLASS_NAME :
-#ifdef PB_ASSOC_LU_MAP_DEBUG_
-      protected PB_ASSOC_MAP_DEBUG_BASE_C_DEC,
-#endif // #ifdef PB_ASSOC_LU_MAP_DEBUG_
-      public Eq_Fn,
-      public Update_Policy,
-      public PB_ASSOC_TYPES_TRAITS_C_DEC
-    {
-
-    protected:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_key_reference
-      const_key_reference;
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_type data_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_reference
-      data_reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_data_reference
-      const_data_reference;
-
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type value_type;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::pointer pointer;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_pointer
-      const_pointer;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::reference reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_reference
-      const_reference;
-
-      typedef Update_Policy update_policy;
-
-      typedef typename Update_Policy::metadata_type update_metadata;
-
-      struct entry
-      {
-	typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type m_value;
-
-	update_metadata m_update_metadata;
-
-	typename Allocator::template rebind<entry>::other::pointer m_p_next;
-      };
-
-      typedef
-      typename Allocator::template rebind<entry>::other
-      entry_allocator;
-
-      typedef typename entry_allocator::pointer entry_pointer;
-
-      typedef typename entry_allocator::const_pointer const_entry_pointer;
-
-      typedef typename entry_allocator::reference entry_reference;
-
-      typedef
-      typename entry_allocator::const_reference
-      const_entry_reference;
-
-      typedef
-      typename Allocator::template rebind<entry_pointer>::other
-      entry_pointer_allocator;
-
-      typedef typename entry_pointer_allocator::pointer entry_pointer_array;
-
-#define PB_ASSOC_GEN_POS entry_pointer
-
-      typedef value_type mapped_value_type;
-
-      typedef pointer mapped_pointer;
-
-      typedef const_pointer const_mapped_pointer;
-
-      typedef reference mapped_reference;
-
-      typedef const_reference const_mapped_reference;
-
-#include <ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp>
-#include <ext/pb_assoc/detail/unordered_iterator/iterator.hpp>
-
-#undef PB_ASSOC_GEN_POS
-
-      typedef find_iterator_ find_iterator;
-
-      typedef const_find_iterator_ const_find_iterator;
-
-      typedef iterator_ iterator;
-
-      typedef const_iterator_ const_iterator;
-
-      typedef Eq_Fn eq_fn;
-
-      typedef Allocator allocator;
-
-    protected:
-
-      PB_ASSOC_CLASS_NAME();
-
-      PB_ASSOC_CLASS_NAME(const Eq_Fn& r_eq_fn);
-
-      PB_ASSOC_CLASS_NAME(const Eq_Fn& r_eq_fn, const Update_Policy& r_update_policy);
-
-      PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      virtual
-      ~PB_ASSOC_CLASS_NAME();
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      template<class It>
-      void
-      copy_from_range(It first_it, It last_it);
-
-      inline size_type
-      size() const;
-
-      inline size_type
-      max_size() const;
-
-      inline bool
-      empty() const;
-
-      Eq_Fn& 
-      get_eq_fn();
-
-      const Eq_Fn& 
-      get_eq_fn() const;
-
-      inline std::pair<find_iterator, bool>
-      insert(const_reference r_val);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline data_reference
-      subscript_imp(const_key_reference r_key);
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      inline find_iterator
-      find(const_key_reference r_key);
-
-      inline const_find_iterator
-      find(const_key_reference r_key) const;
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline const_data_reference
-      const_subscript_imp(const_key_reference r_key) const;
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      inline size_type
-      erase(const_key_reference r_key);
-
-      template<class Pred>
-      inline size_type
-      erase_if(Pred& r_pred);
-
-      void
-      clear();
-
-      inline iterator
-      begin();
-
-      inline const_iterator
-      begin() const;
-
-      inline iterator
-      end();
-
-      inline const_iterator
-      end() const;
-
-#ifdef PB_ASSOC_LU_MAP_DEBUG_
-
-      virtual void
-      assert_valid() const;
-
-#endif // #ifdef PB_ASSOC_LU_MAP_DEBUG_
-
-    private:
-
-      typedef PB_ASSOC_TYPES_TRAITS_C_DEC my_traits_base;
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-      typedef PB_ASSOC_MAP_DEBUG_BASE_C_DEC my_map_debug_base;
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-      typedef
-      pb_assoc::detail::cond_dealtor<
-	entry,
-	Allocator>
-      cond_dealtor_t;
-
-    private:
-
-      void
-      deallocate_all(bool deallocate_root);
-
-      inline void
-      move_next_to_front(entry_pointer p_l) const;
-
-      void
-      initialize();
-
-      inline void
-      insert_new_after(entry_pointer p_l, const_reference r_val);
-
-      inline entry_pointer
-      find_imp(const_key_reference r_key) const
-      {
-	entry_pointer p_l = m_p_l;
-
-	while (p_l->m_p_next != NULL)
-	  if (Eq_Fn::operator()(
-				r_key,
-				PB_ASSOC_V2F(p_l->m_p_next->m_value)))
-	    {
-	      if (Update_Policy::operator()(p_l->m_update_metadata))
-		{
-		  move_next_to_front(p_l);
-
-		  return (m_p_l);
-		}
-	      else
-		return (p_l);
-	    }
-	  else
-	    p_l = p_l->m_p_next;
-
-	return (p_l);
-      }
-
-      inline void
-      erase_imp(entry_pointer p_l);
-
-      inline find_iterator
-      find_end();
-
-      inline const_find_iterator
-      find_end() const;
-
-      void
-      inc_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const;
-
-      void
-      inc_it_state(const_pointer& r_p_value, entry_pointer& r_pos) const;
-
-      void
-      get_start_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const;
-
-#ifdef PB_ASSOC_LU_MAP_DEBUG_
-
-      void
-      assert_entry_pointer_array_valid(const entry_pointer_array a_p_lntries) const;
-
-      void
-      assert_entry_pointer_valid(const entry_pointer p_l, store_hash_true_indicator) const;
-
-      void
-      assert_entry_pointer_valid(const entry_pointer p_l, store_hash_false_indicator) const;
-
-#endif // #ifdef PB_ASSOC_LU_MAP_DEBUG_
-
-    private:
-
-      static entry_allocator s_entry_allocator;
-
-      mutable entry_pointer m_p_l;
-
-      size_type m_size;
-
-      friend class iterator_;
-
-      friend class const_iterator_;
-
-      static iterator s_end_it;
-
-      static const_iterator s_const_end_it;
-
-      static find_iterator s_find_end_it;
-
-      static const_find_iterator s_const_find_end_it;
-
-    };
-
-#include <ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_MAP_DEBUG_BASE_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_V2F
-#undef PB_ASSOC_EP2VP
-#undef PB_ASSOC_V2S
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
deleted file mode 100644
index e11e14087728..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
+++ /dev/null
@@ -1,60 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file policy_access_fn_imps.hpp
- * Contains implementations of lu_map_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Eq_Fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_eq_fn() const
-{
-  return (*this);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
deleted file mode 100644
index 446b1d6c9f37..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
+++ /dev/null
@@ -1,66 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file counter_lu_metadata_imp.hpp
- * Contains implementation of a lu counter policy's metadata.
- */
-
-PB_ASSOC_CLASS_T_DEC
-counter_lu_metadata<
-  Size_Type>
-PB_ASSOC_CLASS_C_DEC::
-operator()(size_type m_max_count) const
-{
-  return (counter_lu_metadata<Size_Type>(std::rand() % m_max_count));
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<typename Metadata_Reference>
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-operator()(Metadata_Reference r_data, size_type m_max_count) const
-{
-  if (++r_data.m_count != m_max_count)
-    return (false);
-
-  r_data.m_count = 0;
-
-  return (true);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
deleted file mode 100644
index 1cc8029a370c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
+++ /dev/null
@@ -1,74 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file counter_lu_policy_imp.hpp
- * Contains a lu counter policy implementation.
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-counter_lu_policy(size_type max_count /*= 5*/) :
-  m_max_count(max_count)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  std::swap(m_max_count, r_other.m_max_count);
-}
-
-PB_ASSOC_CLASS_T_DEC
-counter_lu_metadata<
-  Size_Type>
-PB_ASSOC_CLASS_C_DEC::
-operator()() const
-{
-  return (my_base::operator()(m_max_count));
-}
-
-PB_ASSOC_CLASS_T_DEC
-bool
-PB_ASSOC_CLASS_C_DEC::
-operator()(metadata_reference r_data) const
-{
-  return (my_base::operator()(r_data, m_max_count));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
deleted file mode 100644
index 291e10640947..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file mtf_lu_policy.hpp
- * Contains a move-to-front policy implementation.
- */
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& /*r_other*/)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::metadata_type
-PB_ASSOC_CLASS_C_DEC::
-operator()() const
-{
-  return (move_to_front_lu_metadata());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-operator()(metadata_reference /*r_data*/) const
-{
-  return (true);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/map_debug_base.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/map_debug_base.hpp
deleted file mode 100644
index 1f7dbc07fbde..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/map_debug_base.hpp
+++ /dev/null
@@ -1,248 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file map_debug_base.hpp
- * Contains a debug-mode base for all maps.
- */
-
-#ifndef MAP_DEBUG_BASE_HPP
-#define MAP_DEBUG_BASE_HPP
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-#include <assert.h>
-#include <utility>
-#include <set>
-#include <pb_assoc/testsuite/regression/res_mng/dbg_ex_allocator_base.hpp>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_MAP_DEBUG_BASE_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_MAP_DEBUG_BASE_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_MAP_DEBUG_BASE_DEBUG
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, class Eq_Fn>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	map_debug_base< \
-		Key, \
-		Eq_Fn>
-
-    template<typename Key, class Eq_Fn>
-    class map_debug_base
-    {
-    private:
-      typedef typename std::allocator<Key> key_allocator;
-
-      typedef typename key_allocator::size_type size_type;
-
-      typedef typename key_allocator::const_reference const_key_reference;
-
-    protected:
-      map_debug_base();
-
-      map_debug_base(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      ~map_debug_base();
-
-      inline void
-      insert_new(const_key_reference r_key);
-
-      inline void
-      insert_existing(const_key_reference r_key);
-
-      inline void
-      erase_existing(const_key_reference r_key);
-
-      void
-      clear();
-
-      inline void
-      check_key_exists(const_key_reference r_key) const;
-
-      inline void
-      check_key_does_not_exist(const_key_reference r_key) const;
-
-      inline void
-      check_size(size_type size) const;
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-    private:
-      typedef std::set<Key> key_set;
-
-    private:
-      key_set m_key_set;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    map_debug_base()
-    {
-
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    map_debug_base(const PB_ASSOC_CLASS_C_DEC& r_other) :
-      m_key_set(r_other.m_key_set)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    ~map_debug_base()
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    insert_new(const_key_reference r_key)
-    {
-      const double orig_throw_prob =
-	pb_assoc::detail::test::dbg_ex_allocator_base().get_throw_prob();
-
-      pb_assoc::detail::test::dbg_ex_allocator_base().
-	set_throw_prob(0);
-
-      if (m_key_set.find(r_key) != m_key_set.end())
-	std::abort();
-
-      try
-	{
-	  m_key_set.insert(r_key);
-	}
-      catch(...)
-	{
-	  pb_assoc::detail::test::dbg_ex_allocator_base().
-	    set_throw_prob(orig_throw_prob);
-
-	  throw;
-	}
-
-      pb_assoc::detail::test::dbg_ex_allocator_base().
-	set_throw_prob(orig_throw_prob);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    erase_existing(const_key_reference r_key)
-    {
-      if (m_key_set.find(r_key) == m_key_set.end())
-	std::abort();
-
-      m_key_set.erase(r_key);
-
-      if (m_key_set.find(r_key) != m_key_set.end())
-	std::abort();
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    clear()
-    {
-      m_key_set.clear();
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    check_key_exists(const_key_reference r_key) const
-    {
-      if (m_key_set.find(r_key) == m_key_set.end())
-	std::abort();
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    check_key_does_not_exist(const_key_reference r_key) const
-    {
-      if (m_key_set.find(r_key) != m_key_set.end())
-	std::abort();
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    check_size(size_type size) const
-    {
-      const size_type key_set_size = m_key_set.size();
-
-      if (size != key_set_size)
-	std::abort();
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      m_key_set.swap(r_other.m_key_set);
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-#endif // #ifndef MAP_DEBUG_BASE_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/mapping_level_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/mapping_level_imp.hpp
deleted file mode 100644
index 76ffc8c1cf8c..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/mapping_level_imp.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file mapping_level_imp.hpp
- * Contains mapping level implementation.
- */
-
-#ifndef MAPPING_LEVEL_IMP_HPP
-#define MAPPING_LEVEL_IMP_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<class Given_Data>
-    struct mapping_level_imp
-    {
-      enum
-	{
-	  value = 1
-	};
-    };
-
-    template<>
-    struct mapping_level_imp<
-      null_data_type>
-    {
-      enum
-	{
-	  value = 1
-	};
-    };
-
-    template<class Cntnr>
-    struct mapping_level_imp<
-      compound_data_type<
-      Cntnr> >
-    {
-      enum
-	{
-	  value = 1 +
-	  mapping_level_imp<
-	  typename Cntnr::given_data_type>::value
-	};
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef MAPPING_LEVEL_IMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ms_category_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ms_category_imp.hpp
deleted file mode 100644
index 7afd168fd7df..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ms_category_imp.hpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ms_category_imp.hpp
- * Contains mapping-semantics category implementation.
- */
-
-#ifndef MS_CATEGORY_IMP_HPP
-#define MS_CATEGORY_IMP_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<typename Key, class Data>
-    struct ms_category_imp
-    {
-      typedef data_enabled_ms_tag type;
-    };
-
-    template<typename Key>
-    struct ms_category_imp<
-      Key,
-      null_data_type>
-    {
-      typedef basic_ms_tag type;
-    };
-
-    template<typename Key, class Cntnr>
-    struct ms_category_imp<
-      Key,
-      compound_data_type<
-      Cntnr> >
-    {
-      typedef compound_data_enabled_ms_tag type;
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef MS_CATEGORY_IMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ms_trait_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ms_trait_imp.hpp
deleted file mode 100644
index 2d22075089a4..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ms_trait_imp.hpp
+++ /dev/null
@@ -1,136 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ms_category_imp.hpp
- * Contains mapping-semantics category implementation.
- */
-
-#ifndef MS_TRAIT_IMP_HPP
-#define MS_TRAIT_IMP_HPP
-
-namespace detail
-{
-
-  template<class Cntnr, class Mapping_Semantics_Category>
-  struct mapping_semantics_traits;
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	mapping_semantics_traits< \
-		Cntnr, \
-		basic_ms_tag>
-
-  template<class Cntnr>
-  struct mapping_semantics_traits<
-    Cntnr,
-    basic_ms_tag>
-  {
-
-  public:
-    enum
-      {
-	has_data = false,
-	has_compound_data = false,
-	mapping_level = 1
-      };
-  };
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	mapping_semantics_traits< \
-		Cntnr, \
-		data_enabled_ms_tag>
-
-  template<class Cntnr>
-  struct mapping_semantics_traits<
-    Cntnr,
-    data_enabled_ms_tag>
-  {
-  public:
-    enum
-      {
-	has_data = true,
-	has_compound_data = false,
-	mapping_level = 1
-      };
-  };
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	mapping_semantics_traits< \
-		Cntnr, \
-		compound_data_enabled_ms_tag>
-
-  template<class Cntnr>
-  struct mapping_semantics_traits<
-    Cntnr,
-    compound_data_enabled_ms_tag>
-  {
-  public:
-    enum
-      {
-	has_data = true,
-	has_compound_data = true,
-	mapping_level = mapping_level_imp<
-	typename Cntnr::given_data_type>::value
-      };
-  };
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-} // namespace detail
-
-#endif // #ifndef MS_TRAIT_IMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/order_statistics_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/order_statistics_imp.hpp
deleted file mode 100644
index 7e3550188d60..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/order_statistics_imp.hpp
+++ /dev/null
@@ -1,436 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file order_statistics_imp.hpp
- * Contains forward declarations for order_statistics_key
- */
-
-#ifndef ORDER_STATISTICS_IMP_HPP
-#define ORDER_STATISTICS_IMP_HPP
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Key, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_key< \
-		Key, \
-		Allocator>
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-order_statistics_key(const_key_reference r_key) :
-  m_key(r_key),
-  m_rank(1)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-operator typename PB_ASSOC_CLASS_C_DEC::key_reference()
-{
-  return (m_key);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-operator typename PB_ASSOC_CLASS_C_DEC::key_type() const
-{
-  return (m_key);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cmp_Fn, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_key_cmp< \
-		Cmp_Fn, \
-		Allocator>
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-order_statistics_key_cmp()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-order_statistics_key_cmp(const Cmp_Fn& r_cmp_fn) :
-  Cmp_Fn(r_cmp_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-operator()(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const
-{
-  return Cmp_Fn::operator()((key_type)r_lhs_key, (key_type)r_rhs_key);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::cmp_fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_cmp_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline const typename PB_ASSOC_CLASS_C_DEC::cmp_fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_cmp_fn() const
-{
-  return (*this);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Key, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_node_updator< \
-		Key, \
-		Allocator>
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-operator()(const_key_pointer p_key, const_key_pointer p_l_child_key, const_key_pointer p_r_child_key)
-{
-  /*
-   * The left rank is 0 if there is no left child,
-   *	or the rank of the left child, otherwise.
-   */
-  const size_type l_rank =(p_l_child_key == NULL)? 0 : p_l_child_key->m_rank;
-
-  /*
-   * The right rank is 0 if there is no right child,
-   *	or the rank of the right child, otherwise.
-   */
-  const size_type r_rank =(p_r_child_key == NULL)? 0 : p_r_child_key->m_rank;
-
-  /*
-   * The rand of the entry is the sumb of the ranks of its
-   *	children + 1 (for itself).
-   */
-  p_key->m_rank = 1 + l_rank + r_rank;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& /*r_other*/)
-{ }
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	find_by_order< \
-		Cntnr>
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-operator()(Cntnr& r_c, size_type order) const
-{
-  return find(r_c, order);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-operator()(const Cntnr& r_c, size_type order) const
-{
-  return find(r_c, order);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const Cntnr& r_c, size_type order)
-{
-  if (order > r_c.size())
-    return (r_c.end());
-
-  /*
-   * Start at the top of the tree.
-   */
-  typename Cntnr::const_node_iterator it = r_c.node_begin();
-
-  /*
-   * Loop up to a leaf.
-   */
-  while (it != r_c.node_end())
-    {
-      typename Cntnr::const_node_iterator l_it = it.l_child();
-
-      /*
-       * The order of the element, o, is the rank of the left
-       *	child (for the entry itself).
-       */
-      const size_type o = (l_it == r_c.node_end())?
-	0 :(*l_it)->m_rank;
-
-      /*
-       * If the current order, o, is the order requested,
-       *	the key has been found.
-       */
-      if (order == o)
-	return (*it);
-      /*
-       * If the current order, o, is larger than the order requested,
-       *	we should move to the left subtree.
-       */
-      else if (order < o)
-	it = l_it;
-      /*
-       * Otherwise adujst the requested order and move to the right subtree.
-       */
-      else
-	{
-	  order -= o + 1;
-
-	  it = it.r_child();
-	}
-    }
-
-  return (r_c.end());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-find(Cntnr& r_c, size_type order)
-{
-  if (order > r_c.size())
-    return (r_c.end());
-
-  /*
-   * Start at the top of the tree.
-   */
-  typename Cntnr::node_iterator it = r_c.node_begin();
-
-  /*
-   * Loop up to a leaf.
-   */
-  while (it != r_c.node_end())
-    {
-      typename Cntnr::node_iterator l_it = it.l_child();
-
-      /*
-       * The order of the element, o, is the rank of the left
-       *	child (for the entry itself).
-       */
-      const size_type o = (l_it == r_c.node_end())?
-	0 :
-	r_c.extract_key(*(*l_it)).m_rank;
-
-      /*
-       * If the current order, o, is the order requested,
-       *	the key has been found.
-       */
-      if (order == o)
-	return (*it);
-      /*
-       * If the current order, o, is larger than the order requested,
-       *	we should move to the left subtree.
-       */
-      else if (order < o)
-	it = l_it;
-      /*
-       * Otherwise adujst the requested order and move to the right subtree.
-       */
-      else
-	{
-	  order -= o + 1;
-
-	  it = it.r_child();
-	}
-    }
-
-  return (r_c.end());
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_by_key< \
-		Cntnr>
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-operator()(const Cntnr& r_c, const underlying_key_type& r_key) const
-{
-  /*
-   * The logic here is similar to that in order_by_key.
-   */
-
-  typename Cntnr::const_node_iterator it = r_c.node_begin();
-
-  size_type ord = 0;
-
-  while (it != r_c.node_end())
-    {
-      typename Cntnr::const_node_iterator l_it = it.l_child();
-
-      if (r_c.get_cmp_fn().get_cmp_fn()(
-					r_key,
-					r_c.extract_key(*(*it)).m_key))
-	it = l_it;
-      else if (r_c.get_cmp_fn().get_cmp_fn()(
-					     r_c.extract_key(*(*it)).m_key,
-					     r_key))
-	{
-
-	  ord += (l_it == r_c.node_end())?
-	    1 :
-	    1 + r_c.extract_key(*(*l_it)).m_rank;
-
-	  it = it.r_child();
-	}
-      else
-	{
-	  ord += (l_it == r_c.node_end())?
-	    0 :
-	    r_c.extract_key(*(*l_it)).m_rank;
-
-	  it = r_c.node_end();
-	}
-    }
-
-  return (ord);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_key_verifier< \
-		Cntnr, \
-		Allocator>
-
-template<class Cntnr, class Allocator = std::allocator<char> >
-class order_statistics_key_verifier
-{
-public:
-  typedef Cntnr map;
-
-  typedef Allocator allocator;
-
-  typedef typename allocator::size_type size_type;
-
-  typedef
-  typename allocator::template rebind<map>::other::const_reference
-  const_map_reference;
-
-public:
-  bool
-  operator()(const Cntnr& r_c) const;
-
-private:
-  typedef typename Cntnr::const_node_iterator const_node_iterator;
-
-  typedef typename Cntnr::const_iterator cntnr_const_it;
-
-  typedef std::pair<bool, size_type> stat;
-
-private:
-  static stat
-  verify_imp(const_node_iterator it, const_node_iterator end_it)
-  {
-    if (it == end_it)
-      return (std::make_pair(true, 0));
-
-    const stat l_ret =
-      verify_imp(it.l_child(), end_it);
-
-    const stat r_ret =
-      verify_imp(it.r_child(), end_it);
-
-    if (!l_ret.first || !r_ret.first)
-      return (std::make_pair(false, 0));
-
-    if ((*it)->m_rank != 1 + l_ret.second + r_ret.second)
-      return (std::make_pair(false, 0));
-
-    return (std::make_pair(true, (*it)->m_rank));
-  }
-};
-
-PB_ASSOC_CLASS_T_DEC
-bool
-PB_ASSOC_CLASS_C_DEC::
-operator()(const Cntnr& r_c) const
-{
-  const stat top_stat =
-    verify_imp(r_c.node_begin(), r_c.node_end());
-
-  return (top_stat.first);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#endif // #ifndef ORDER_STATISTICS_IMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
deleted file mode 100644
index aa3e65ded936..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
+++ /dev/null
@@ -1,88 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file cond_dtor.hpp
- * Contains a conditional destructor
- */
-
-class cond_dtor
-{
-public:
-  cond_dtor(pointer a_vec, iterator& r_last_it, size_type total_size) : m_a_vec(a_vec),
-									m_r_last_it(r_last_it),
-									m_max_size(total_size),
-									m_no_action(false)
-  { }
-
-  ~cond_dtor()
-  {
-    if (m_no_action)
-      return;
-
-    iterator it = m_a_vec;
-
-    while (it != m_r_last_it)
-      {
-	it->~value_type();
-
-	++it;
-      }
-
-    if (m_max_size > 0)
-      value_allocator().deallocate(
-				   const_cast<typename value_allocator::pointer>(m_a_vec),
-				   m_max_size);
-  }
-
-  inline void
-  set_no_action()
-  {
-    m_no_action = true;
-  }
-
-protected:
-  pointer m_a_vec;
-
-  iterator& m_r_last_it;
-
-  const size_type m_max_size;
-
-  bool m_no_action;
-};
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index 3285cfbbd570..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,278 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructors_destructor_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::value_allocator
-PB_ASSOC_CLASS_C_DEC::s_alloc;
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_OV_TREE_CLASS_NAME() :
-  m_a_values(NULL),
-  m_end_it(NULL),
-  m_size(0)
-{
-  update(node_begin(), (Node_Updator* )this);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
-  my_cmp_fn_base(r_cmp_fn),
-  m_a_values(NULL),
-  m_end_it(NULL),
-  m_size(0)
-{
-  update(node_begin(), (Node_Updator* )this);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator) :
-  my_cmp_fn_base(r_cmp_fn),
-  Node_Updator(r_node_updator),
-  m_a_values(NULL),
-  m_end_it(NULL),
-  m_size(0)
-{
-  update(node_begin(), (Node_Updator* )this);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_OV_TREE_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  my_cmp_fn_base(r_other),
-  m_a_values(NULL),
-  m_end_it(NULL),
-  m_size(0)
-{
-  copy_from_ordered_range(r_other.begin(), r_other.end());
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-inline void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_range(It first_it, It last_it)
-{
-  enum
-    {
-      is_set_type = is_same_type<Data, null_data_type>::value
-    };
-
-  typedef
-    typename cond_type<
-    is_set_type,
-    std::set<
-    Key,
-    Cmp_Fn,
-    typename Allocator::template rebind<
-    Key>::other>,
-    std::map<
-    Key,
-    Data,
-    Cmp_Fn,
-    typename Allocator::template rebind<
-    std::pair<const Key, Data> >::other> >::type
-    map_type;
-
-  map_type m(first_it, last_it);
-
-  copy_from_ordered_range(m.begin(), m.end());
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_ordered_range(It first_it, It last_it)
-{
-  clear();
-
-  const size_type size = std::distance(first_it, last_it);
-
-  pointer a_values = s_alloc.allocate(size);
-
-  iterator target_it = a_values;
-  It source_it = first_it;
-  It source_end_it = last_it;
-
-  cond_dtor cd(a_values, target_it, size);
-
-  while (source_it != source_end_it)
-    {
-      new (const_cast<void* >(
-			      static_cast<const void* >(target_it)))
-	value_type(*source_it++);
-
-      ++target_it;
-    }
-
-  cd.set_no_action();
-
-  m_a_values = a_values;
-
-  m_size = size;
-
-  m_end_it = m_a_values + m_size;
-
-  update(node_begin(), (Node_Updator* )this);
-
-#ifdef PB_ASSOC_OV_TREE_DEBUG_
-  const_iterator dbg_it = m_a_values;
-
-  while (dbg_it != m_end_it)
-    {
-      my_map_debug_base::insert_new(PB_ASSOC_V2F(*dbg_it));
-
-      dbg_it++;
-    }
-
-  PB_ASSOC_CLASS_C_DEC::assert_valid();
-#endif // #ifdef PB_ASSOC_OV_TREE_DEBUG_
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_ordered_range(It first_it, It last_it, It other_first_it, It other_last_it)
-{
-  clear();
-
-  const size_type size =
-    std::distance(first_it, last_it) +
-    std::distance(other_first_it, other_last_it);
-
-  pointer a_values = s_alloc.allocate(size);
-
-  iterator target_it = a_values;
-  It source_it = first_it;
-  It source_end_it = last_it;
-
-  cond_dtor cd(a_values, target_it, size);
-
-  while (source_it != source_end_it)
-    {
-      new (const_cast<void* >(
-			      static_cast<const void* >(target_it)))
-	value_type(*source_it++);
-
-      ++target_it;
-    }
-
-  source_it = other_first_it;
-  source_end_it = other_last_it;
-
-  while (source_it != source_end_it)
-    {
-      new (const_cast<void* >(
-			      static_cast<const void* >(target_it)))
-	value_type(*source_it++);
-
-      ++target_it;
-    }
-
-  cd.set_no_action();
-
-  m_a_values = a_values;
-
-  m_size = size;
-
-  m_end_it = m_a_values + m_size;
-
-  update(node_begin(), (Node_Updator* )this);
-
-#ifdef PB_ASSOC_OV_TREE_DEBUG_
-  const_iterator dbg_it = m_a_values;
-
-  while (dbg_it != m_end_it)
-    {
-      my_map_debug_base::insert_new(PB_ASSOC_V2F(*dbg_it));
-
-      dbg_it++;
-    }
-
-  PB_ASSOC_CLASS_C_DEC::assert_valid();
-#endif // #ifdef PB_ASSOC_OV_TREE_DEBUG_
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    std::swap(m_a_values, r_other.m_a_values);
-
-  std::swap(m_size, r_other.m_size);
-
-  std::swap(m_end_it, r_other.m_end_it);
-
-  std::swap((Cmp_Fn& )(*this), (Cmp_Fn& )r_other);
-
-  Node_Updator::swap(r_other);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::swap(r_other);)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~PB_ASSOC_OV_TREE_CLASS_NAME()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    cond_dtor cd(m_a_values, m_end_it, m_size);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
deleted file mode 100644
index 156c540540c0..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
+++ /dev/null
@@ -1,101 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
-#ifdef PB_ASSOC_OV_TREE_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid() const
-{
-  if (m_a_mapped_values == NULL || m_end_it == NULL || m_size == 0)
-    PB_ASSOC_DBG_ASSERT(m_a_mapped_values == NULL&&  m_end_it == NULL&& 
-			m_size == 0);
-
-  assert_iterators();
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_iterators() const
-{
-  my_map_debug_base::check_size(m_size);
-
-  size_type iterated_num = 0;
-
-  const_iterator prev_it = end();
-
-  PB_ASSOC_DBG_ASSERT( m_end_it == m_a_mapped_values + m_size);
-
-  for (const_iterator it = begin(); it != end(); ++it)
-    {
-      ++iterated_num;
-
-      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(
-							    PB_ASSOC_V2F(*it)));
-
-      PB_ASSOC_DBG_ASSERT(lower_bound(
-				      PB_ASSOC_V2F(*it)) == it);
-
-      const_iterator upper_bound_it = upper_bound(
-						  PB_ASSOC_V2F(*it));
-
-      --upper_bound_it;
-
-      PB_ASSOC_DBG_ASSERT(upper_bound_it == it);
-
-      if (prev_it != end())
-	PB_ASSOC_DBG_ASSERT(Cmp_Fn::operator()(
-					       PB_ASSOC_V2F(*prev_it),
-					       PB_ASSOC_V2F(*it)));
-
-      prev_it = it;
-    }
-
-  PB_ASSOC_DBG_ASSERT(iterated_num == m_size);
-}
-
-#endif // #ifdef PB_ASSOC_OV_TREE_DEBUG_
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
deleted file mode 100644
index d1bbe6cc197f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
+++ /dev/null
@@ -1,234 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key)
-{
-  iterator it = find(r_key);
-
-  if (it == find_end())
-    return (0);
-
-  erase(it);
-
-  return (1);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-clear()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    if (m_size == 0)
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	  return;
-      }
-    else
-      {
-	cond_dtor cd(m_a_values, m_end_it, m_size);
-      }
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::clear();)
-
-    m_a_values = NULL;
-
-  m_size = 0;
-
-  m_end_it = m_a_values;
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-template<class Pred>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_if(Pred pred)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-#ifdef PB_ASSOC_BASIC_REGRESSION
-    throw_prob_adjustor adjust(m_size);
-#endif // #ifdef PB_ASSOC_BASIC_REGRESSION
-
-  size_type new_size = 0;
-
-  size_type num_val_ersd = 0;
-
-  iterator source_it = m_a_values;
-
-  for (source_it = begin(); source_it != m_end_it; ++source_it)
-    {
-      if (pred(*source_it))
-	++num_val_ersd;
-      else
-	++new_size;
-    }
-
-  if (new_size == 0)
-    {
-      clear();
-
-      return (num_val_ersd);
-    }
-
-  pointer a_new_values = s_alloc.allocate(new_size);
-
-  iterator target_it = a_new_values;
-
-  cond_dtor cd(a_new_values, target_it, new_size);
-
-  PB_ASSOC_DBG_ONLY(my_map_debug_base::clear());
-
-  for (source_it = begin(); source_it != m_end_it; ++source_it)
-    {
-      if (!pred(*source_it))
-	{
-	  new (const_cast<void* >(
-				  static_cast<const void* >(target_it)))
-	    value_type(*source_it);
-
-	  PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(
-							  PB_ASSOC_V2F(*source_it)));
-
-	  ++target_it;
-	}
-    }
-
-  cd.set_no_action();
-
-  {
-    cond_dtor cd1(m_a_values, m_end_it, m_size);
-  }
-
-  m_a_values = a_new_values;
-
-  m_size = new_size;
-
-  m_end_it = target_it;
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (num_val_ersd);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-It
-PB_ASSOC_CLASS_C_DEC::
-erase(It it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    if (it == end())
-      return end();
-
-  PB_ASSOC_DBG_ONLY(
-		    PB_ASSOC_CLASS_C_DEC::check_key_exists(PB_ASSOC_V2F(*it));)
-
-#ifdef PB_ASSOC_BASIC_REGRESSION
-    throw_prob_adjustor adjust(m_size);
-#endif // #ifdef PB_ASSOC_BASIC_REGRESSION
-
-  PB_ASSOC_DBG_ASSERT(m_size > 0);
-
-  pointer a_values = s_alloc.allocate(m_size - 1);
-
-  iterator source_it = begin();
-  iterator source_end_it = end();
-  iterator target_it = a_values;
-  iterator ret_it = end();
-
-  cond_dtor cd(a_values, target_it, m_size - 1);
-
-  PB_ASSOC_DBG_ONLY(size_type cnt = 0;)
-
-    while (source_it != source_end_it)
-      {
-	if (source_it != it)
-	  {
-	    PB_ASSOC_DBG_ONLY(++cnt;)
-	      PB_ASSOC_DBG_ASSERT(cnt != m_size);
-
-	    new (const_cast<void* >(
-				    static_cast<const void* >(target_it)))
-	      value_type(*source_it);
-
-	    ++target_it;
-	  }
-	else
-	  ret_it = target_it;
-
-	++source_it;
-      }
-
-  cd.set_no_action();
-
-  PB_ASSOC_DBG_ONLY(
-		    PB_ASSOC_CLASS_C_DEC::erase_existing(PB_ASSOC_V2F(*it));)
-    {
-      cond_dtor cd1(m_a_values, m_end_it, m_size);
-    }
-
-  m_a_values = a_values;
-
-  --m_size;
-
-  m_end_it = m_a_values + m_size;
-
-  update(node_begin(), (Node_Updator* )this);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (It(ret_it));
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
deleted file mode 100644
index 1615546a4120..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
deleted file mode 100644
index 11ccd3e80e1f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
+++ /dev/null
@@ -1,95 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-bool
-PB_ASSOC_CLASS_C_DEC::
-cmp_with_other(const PB_ASSOC_CLASS_C_DEC& r_other) const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    if (size() != r_other.size())
-      return (false);
-
-  const_iterator other_it = r_other.begin();
-  const_iterator it = begin();
-
-  while (it != end())
-    {
-      if (*it !=* other_it)
-	return (false);
-
-      ++it;
-
-      ++other_it;
-    }
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (m_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (s_alloc.max_size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (size() == 0);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
deleted file mode 100644
index 072eb0fa6b36..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
deleted file mode 100644
index 8705b09744a6..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterators_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
deleted file mode 100644
index 9ec3cd9d7d10..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
+++ /dev/null
@@ -1,178 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file node_iterators.hpp
- * Contains an implementation class for ov_tree_.
- */
-
-class const_node_iterator
-{
-
-public:
-
-  typedef trivial_iterator_tag iterator_category;
-
-  typedef trivial_iterator_difference_type difference_type;
-
-  typedef const_iterator value_type;
-
-  typedef const_iterator*  pointer;
-
-  typedef const_iterator*  const_pointer;
-
-  typedef const_iterator&  reference;
-
-  typedef const iterator&  const_reference;
-
-public:
-  inline
-  const_node_iterator(value_pointer p_nd = NULL, value_pointer p_begin_nd = NULL, value_pointer p_end_nd = NULL) : m_p_value(p_nd),
-														   m_p_begin_value(p_begin_nd),
-														   m_p_end_value(p_end_nd)
-  { }
-
-  inline const_iterator
-  operator*() const
-  {
-    return (m_p_value);
-  }
-
-  inline const_node_iterator
-  l_child() const
-  {
-    if (m_p_begin_value == m_p_value)
-      return (const_node_iterator(m_p_begin_value, m_p_begin_value, m_p_begin_value));
-
-    return (const_node_iterator(
-				mid_pointer(m_p_begin_value, m_p_value),
-				m_p_begin_value,
-				m_p_value));
-  }
-
-  inline const_node_iterator
-  r_child() const
-  {
-    if (m_p_value == m_p_end_value)
-      return (const_node_iterator(m_p_end_value, m_p_end_value, m_p_end_value));
-
-    return (const_node_iterator(
-				mid_pointer(m_p_value + 1, m_p_end_value),
-				m_p_value + 1,
-				m_p_end_value));
-  }
-
-  inline bool
-  operator==(const const_node_iterator& r_other) const
-  {
-    const bool is_end = m_p_begin_value == m_p_end_value;
-    const bool is_other_end = r_other.m_p_begin_value == r_other.m_p_end_value;
-
-    if (is_end)
-      return (is_other_end);
-
-    if (is_other_end)
-      return (is_end);
-
-    if (r_other.m_p_begin_value == r_other.m_p_end_value)
-      return (m_p_begin_value == m_p_end_value);
-
-    return (m_p_value == r_other.m_p_value);
-  }
-
-  inline bool
-  operator!=(const const_node_iterator& r_other) const
-  {
-    return (!operator==(r_other));
-  }
-
-private:
-  friend class PB_ASSOC_CLASS_C_DEC;
-
-public:
-  value_pointer m_p_value;
-  value_pointer m_p_begin_value;
-  value_pointer m_p_end_value;
-};
-
-class node_iterator : 
-  public const_node_iterator
-
-{
-
-public:
-  inline
-  node_iterator(value_pointer p_nd = NULL, value_pointer p_begin_nd = NULL, value_pointer p_end_nd = NULL) : const_node_iterator(p_nd, p_begin_nd, p_end_nd)
-  { }
-
-  inline iterator
-  operator*() const
-  {
-    return (iterator(const_node_iterator::m_p_value));
-  }
-
-  inline node_iterator
-  l_child() const
-  {
-    if (const_node_iterator::m_p_begin_value == const_node_iterator::m_p_value)
-      return (node_iterator(const_node_iterator::m_p_begin_value, const_node_iterator::m_p_begin_value, const_node_iterator::m_p_begin_value));
-
-    return (node_iterator(
-			  mid_pointer(const_node_iterator::m_p_begin_value, const_node_iterator::m_p_value),
-			  const_node_iterator::m_p_begin_value,
-			  const_node_iterator::m_p_value));
-  }
-
-  inline node_iterator
-  r_child() const
-  {
-    if (const_node_iterator::m_p_value == const_node_iterator::m_p_end_value)
-      return (node_iterator(const_node_iterator::m_p_end_value, const_node_iterator::m_p_end_value, const_node_iterator::m_p_end_value));
-
-    return (node_iterator(
-			  mid_pointer(const_node_iterator::m_p_value + 1, const_node_iterator::m_p_end_value),
-			  const_node_iterator::m_p_value + 1,
-			  const_node_iterator::m_p_end_value));
-  }
-
-private:
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
deleted file mode 100644
index 94ff223a734e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
+++ /dev/null
@@ -1,628 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ov_tree_map_.hpp
- * Contains an implementation class for ov_tree_.
- */
-
-#include <map>
-#include <set>
-#include <ext/pb_assoc/trivial_iterator_def.hpp>
-#include <ext/pb_assoc/tree_policy.hpp>
-#include <ext/pb_assoc/detail/eq_fn/eq_by_less.hpp>
-#include <ext/pb_assoc/detail/types_traits.hpp>
-#include <ext/pb_assoc/detail/map_debug_base.hpp>
-#include <ext/pb_assoc/detail/type_utils.hpp>
-#include <ext/pb_assoc/exception.hpp>
-#include <utility>
-#include <functional>
-#include <algorithm>
-#include <vector>
-#include <cassert>
-#ifdef PB_ASSOC_BASIC_REGRESSION
-#include <pb_assoc/testsuite/regression/basic_test/throw_prob_adjustor.hpp>
-#endif // #ifdef PB_ASSOC_BASIC_REGRESSION
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_OV_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) assert(X);
-#define PB_ASSOC_DBG_VERIFY(X) PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_OV_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) ((void)0)
-#define PB_ASSOC_DBG_VERIFY(X) X
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_OV_TREE_DEBUG_
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Cmp_Fn, \
-		class Allocator, \
-		class Node_Updator>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_OV_TREE_CLASS_NAME \
-	ov_tree_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_OV_TREE_CLASS_NAME \
-	ov_tree_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_OV_TREE_CLASS_NAME< \
-		Key, \
-		Data, \
-		Cmp_Fn, \
-		Allocator, \
-		Node_Updator>
-
-#define PB_ASSOC_TYPES_TRAITS_C_DEC \
-	types_traits< \
-		Key, \
-		Data, \
-		Allocator>
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-#define PB_ASSOC_MAP_DEBUG_BASE_C_DEC \
-	pb_assoc::detail::map_debug_base< \
-		Key, \
-		eq_by_less<Key, Cmp_Fn> >
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_V2F(X) (X).first
-#define PB_ASSOC_V2S(X) (X).second
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value)
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_V2F(X) (X)
-#define PB_ASSOC_V2S(X) Mapped_Data()
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value.first)
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-    template<typename Key,
-	     typename Data,
-	     class Cmp_Fn,
-	     class Allocator,
-	     class Node_Updator>
-    class PB_ASSOC_OV_TREE_CLASS_NAME :
-#ifdef PB_ASSOC_OV_TREE_DEBUG_
-      protected PB_ASSOC_MAP_DEBUG_BASE_C_DEC,
-#endif // #ifdef PB_ASSOC_OV_TREE_DEBUG_
-      public Cmp_Fn,
-      public PB_ASSOC_TYPES_TRAITS_C_DEC,
-      public Node_Updator
-    {
-
-    protected:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef typename Allocator::difference_type difference_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_key_reference
-      const_key_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_type data_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_reference
-      data_reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_data_reference
-      const_data_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type value_type;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::pointer pointer;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_pointer
-      const_pointer;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::reference reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_reference
-      const_reference;
-
-      typedef const_pointer const_find_iterator;
-
-      typedef pointer find_iterator;
-
-      typedef const_find_iterator const_iterator;
-
-      typedef find_iterator iterator;
-
-      typedef pointer value_pointer;
-
-#include <ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp>
-
-#include <ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp>
-
-      typedef Cmp_Fn cmp_fn;
-
-      typedef Allocator allocator;
-
-      typedef PB_ASSOC_TYPES_TRAITS_C_DEC my_traits_base;
-
-      typedef cmp_fn my_cmp_fn_base;
-
-#ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-      typedef PB_ASSOC_MAP_DEBUG_BASE_C_DEC my_map_debug_base;
-#endif // #ifdef PB_ASSOC_USE_MAP_DEBUG_BASE
-
-    protected:
-
-      PB_ASSOC_OV_TREE_CLASS_NAME();
-
-      PB_ASSOC_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
-
-      PB_ASSOC_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator);
-
-      PB_ASSOC_OV_TREE_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      ~PB_ASSOC_OV_TREE_CLASS_NAME();
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      template<class It>
-      void
-      copy_from_range(It first_it, It last_it);
-
-      template<class Node_Updator_>
-      void
-      update(node_iterator it, Node_Updator_* p_updator)
-      {
-	if (it == node_end())
-	  return;
-
-	update(it.l_child(), p_updator);
-	update(it.r_child(), p_updator);
-
-	p_updator->operator()(it.m_p_value,(it.l_child() == node_end())? NULL : it.l_child().m_p_value,(it.r_child() == node_end())? NULL : it.r_child().m_p_value);
-      }
-
-      inline void
-      update(node_iterator /*it*/, pb_assoc::null_node_updator* )
-      { }
-
-      bool
-      cmp_with_other(const PB_ASSOC_CLASS_C_DEC& r_other) const;
-
-      inline size_type
-      max_size() const;
-
-      inline bool
-      empty() const;
-
-      inline size_type
-      size() const;
-
-      Cmp_Fn& 
-      get_cmp_fn();
-
-      const Cmp_Fn& 
-      get_cmp_fn() const;
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline data_reference
-      subscript_imp(const_key_reference r_key)
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	  find_iterator it = lower_bound(r_key);
-
-	if (it != find_end()&&  !Cmp_Fn::operator()(
-						    r_key,
-						    PB_ASSOC_V2F(*it)))
-	  {
-	    PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key));
-
-	    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	      return (it->second);
-	  }
-
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	  return (insert_new_val(it,
-				 std::make_pair(r_key, data_type()))->second);
-      }
-
-      inline const_data_reference
-      subscript_imp(const_key_reference r_key) const
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	  PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key));
-
-	find_iterator it =	 lower_bound(r_key);
-
-	PB_ASSOC_DBG_ASSERT(it != find_end());
-
-	return (it->second);
-      }
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      inline std::pair<find_iterator, bool>
-      insert(const_reference r_value)
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	  const_key_reference r_key = PB_ASSOC_V2F(r_value);
-
-	find_iterator it = lower_bound(r_key);
-
-	if (it != find_end()&&  !Cmp_Fn::operator()(
-						    r_key,
-						    PB_ASSOC_V2F(*it)))
-	  {
-	    PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	      PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key));
-
-	    return (std::make_pair(it, false));
-	  }
-
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	  return (std::make_pair(insert_new_val(it, r_value), true));
-      }
-
-      inline static pointer
-      mid_pointer(pointer p_begin, pointer p_end)
-      {
-	PB_ASSOC_DBG_ASSERT(p_end >= p_begin);
-
-	return (p_begin + (p_end - p_begin) / 2);
-      }
-
-      inline find_iterator
-      lower_bound(const_key_reference r_key)
-      {
-	pointer it = m_a_values;
-
-	difference_type dist = m_size;
-
-	while (dist > 0)
-	  {
-	    const difference_type mid_dist  = dist >> 1;
-
-	    pointer mid_it = it + mid_dist;
-
-	    if (my_cmp_fn_base::operator()(
-					   PB_ASSOC_V2F(*(it + mid_dist)),
-					   r_key))
-	      {
-		it = ++mid_it;
-
-		dist -= mid_dist + 1;
-	      }
-	    else
-	      dist = mid_dist;
-	  }
-
-	return (it);
-      }
-
-      inline const_find_iterator
-      lower_bound(const_key_reference r_key) const
-      {
-	return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).lower_bound(r_key));
-      }
-
-      inline find_iterator
-      upper_bound(const_key_reference r_key)
-      {
-	iterator pot_it = lower_bound(r_key);
-
-	if (pot_it != find_end()&&  !Cmp_Fn::operator()(
-							r_key,
-							PB_ASSOC_V2F(*pot_it)))
-	  {
-	    PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key));
-
-	    return (++pot_it);
-	  }
-
-	PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key));
-
-	return (pot_it);
-      }
-
-      inline const_find_iterator
-      upper_bound(const_key_reference r_key) const
-      {
-	return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).upper_bound(r_key));
-      }
-
-      inline find_iterator
-      find(const_key_reference r_key)
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	  iterator pot_it = lower_bound(r_key);
-
-	if (pot_it != find_end()&&  !Cmp_Fn::operator()(
-							r_key,
-							PB_ASSOC_V2F(*pot_it)))
-	  {
-	    PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_exists(r_key));
-
-	    return (pot_it);
-	  }
-
-	PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(r_key));
-
-	return (find_end());
-      }
-
-      inline const_find_iterator
-      find(const_key_reference r_key) const
-      {
-	return (const_cast<PB_ASSOC_CLASS_C_DEC& >(*this).find(r_key));
-      }
-
-      inline size_type
-      erase(const_key_reference r_key);
-
-      template<class Pred>
-      inline size_type
-      erase_if(Pred pred);
-
-      template<class It>
-      inline It
-      erase(It it);
-
-      void
-      clear();
-
-      void
-      join(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other);
-
-      inline iterator
-      begin()
-      {
-	return (m_a_values);
-      }
-
-      inline const_iterator
-      begin() const
-      {
-	return (m_a_values);
-      }
-
-      inline iterator
-      find_end()
-      {
-	return (end());
-      }
-
-      inline const_iterator
-      find_end() const
-      {
-	return (end());
-      }
-
-      inline iterator
-      end()
-      {
-	return (m_end_it);
-      }
-
-      inline const_iterator
-      end() const
-      {
-	return (m_end_it);
-      }
-
-      inline const_node_iterator
-      node_begin() const
-      {
-	return (const_node_iterator(mid_pointer(begin(), end()), begin(), end()));
-      }
-
-      inline node_iterator
-      node_begin()
-      {
-	return (node_iterator(mid_pointer(begin(), end()), begin(), end()));
-      }
-
-      inline const_node_iterator
-      node_end() const
-      {
-	return (const_node_iterator(end(), end(), end()));
-      }
-
-      inline node_iterator
-      node_end()
-      {
-	return (node_iterator(end(), end(), end()));
-      }
-
-    private:
-
-      inline pointer
-      insert_new_val(iterator it, const_reference r_value)
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-
-#ifdef PB_ASSOC_BASIC_REGRESSION
-	  throw_prob_adjustor adjust(m_size);
-#endif // #ifdef PB_ASSOC_BASIC_REGRESSION
-
-	PB_ASSOC_DBG_ONLY(my_map_debug_base::check_key_does_not_exist(
-								      PB_ASSOC_V2F(r_value)));
-
-	pointer a_values = s_alloc.allocate(m_size + 1);
-
-	iterator source_it = begin();
-	iterator source_end_it = end();
-	iterator target_it = a_values;
-	iterator ret_it;
-
-	cond_dtor cd(a_values, target_it, m_size + 1);
-
-	while (source_it != it)
-	  {
-	    new (const_cast<void* >(
-				    static_cast<const void* >(target_it)))
-	      value_type(*source_it++);
-
-	    ++target_it;
-	  }
-
-	new (const_cast<void* >(
-				static_cast<const void* >(ret_it = target_it)))
-	  value_type(r_value);
-
-	++target_it;
-
-	while (source_it != source_end_it)
-	  {
-	    new (const_cast<void* >(
-				    static_cast<const void* >(target_it)))
-	      value_type(*source_it++);
-
-	    ++target_it;
-	  }
-
-	cd.set_no_action();
-
-	if (m_size != 0)
-	  {
-	    cond_dtor cd1(m_a_values, m_end_it, m_size);
-	  }
-
-	++m_size;
-
-	m_a_values = a_values;
-
-	m_end_it = m_a_values + m_size;
-
-	PB_ASSOC_DBG_ONLY(my_map_debug_base::insert_new(
-							PB_ASSOC_V2F(r_value)));
-
-	update(node_begin(), (Node_Updator* )this);
-
-	PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-	  return (ret_it);
-      }
-
-#ifdef PB_ASSOC_OV_TREE_DEBUG_
-
-      virtual void
-      assert_valid() const;
-
-      void
-      assert_iterators() const;
-
-#endif // #ifdef PB_ASSOC_OV_TREE_DEBUG_
-
-      template<class It>
-      void
-      copy_from_ordered_range(It first_it, It last_it);
-
-      template<class It>
-      void
-      copy_from_ordered_range(It first_it, It last_it, It other_first_it, It other_last_it);
-
-    private:
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type_allocator
-      value_allocator;
-
-      pointer m_a_values;
-
-      static value_allocator s_alloc;
-
-      pointer m_end_it;
-
-      size_type m_size;
-    };
-
-#include <ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp>
-#include <ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp>
-#include <ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_OV_TREE_CLASS_NAME
-
-#undef PB_ASSOC_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_MAP_DEBUG_BASE_C_DEC
-
-#undef PB_ASSOC_V2F
-#undef PB_ASSOC_EP2VP
-#undef PB_ASSOC_V2S
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
deleted file mode 100644
index b93084bf386d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file split_join_fn_imps.hpp
- * Contains an implementation class for ov_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-    if (m_size == 0)
-      {
-	r_other.clear();
-
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-	  PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-	  return;
-      }
-
-  if (Cmp_Fn::operator()(r_key, PB_ASSOC_V2F(*begin())))
-    {
-      swap(r_other);
-
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-	return;
-    }
-
-  if (!Cmp_Fn::operator()(
-			  r_key,
-			  PB_ASSOC_V2F(*(end() - 1))))
-    {
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-	return;
-    }
-
-  if (m_size == 1)
-    {
-      swap(r_other);
-
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-	return;
-    }
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-  for (const_iterator it = begin(); it != end(); ++it)
-    if (Cmp_Fn::operator()(
-			   r_key,
-			   PB_ASSOC_V2F(*it)))
-      {
-	my_map_debug_base::erase_existing(PB_ASSOC_V2F(*it));
-	r_other.my_map_debug_base::insert_new(PB_ASSOC_V2F(*it));
-      }
-#endif // PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-  iterator it = upper_bound(r_key);
-
-  PB_ASSOC_CLASS_C_DEC new_other(r_other, r_other);
-
-  new_other.copy_from_ordered_range(it, end());
-
-  PB_ASSOC_CLASS_C_DEC new_this(*this, * this);
-
-  new_this.copy_from_ordered_range(begin(), it);
-
-  // No exceptions from this point.
-
-  r_other.update(r_other.node_begin(), (Node_Updator* )(&r_other));
-
-  update(node_begin(), (Node_Updator* )this);
-
-  r_other.swap(new_other);
-
-  swap(new_this);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-join(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-    if (r_other.m_size == 0)
-      return;
-
-  if (m_size == 0)
-    {
-      swap(r_other);
-
-      return;
-    }
-
-  const bool greater = Cmp_Fn::operator()(
-					  PB_ASSOC_V2F(*(end() - 1)),
-					  PB_ASSOC_V2F(*r_other.begin()));
-
-  const bool lesser = Cmp_Fn::operator()(
-					 PB_ASSOC_V2F(*(r_other.end() - 1)),
-					 PB_ASSOC_V2F(*begin()));
-
-  if (!greater&&  !lesser)
-    throw cannot_join();
-
-#ifdef PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-  for (const_iterator other_it = r_other.begin(); other_it != r_other.end();
-       ++other_it)
-    {
-      my_map_debug_base::insert_new(PB_ASSOC_V2F(*other_it));
-      r_other.my_map_debug_base::erase_existing(PB_ASSOC_V2F(*other_it));
-    }
-#endif // PB_ASSOC_BIN_SEARCH_TREE_DEBUG_
-
-  PB_ASSOC_CLASS_C_DEC new_this(*this, * this);
-
-  if (greater)
-    new_this.copy_from_ordered_range(
-				     begin(),
-				     end(),
-				     r_other.begin(),
-				     r_other.end());
-  else
-    new_this.copy_from_ordered_range(
-				     r_other.begin(),
-				     r_other.end(),
-				     begin(),
-				     end());
-
-  // No exceptions from this point.
-
-  swap(new_this);
-
-  r_other.clear();
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-    }
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index eacdffd027c5..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,116 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructors_destructor_fn_imps.hpp
- * Contains an implementation for rb_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_range(It first_it, It last_it)
-{
-  while (first_it != last_it)
-    insert(*(first_it++));
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME()
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
-  PB_ASSOC_BASE_C_DEC(r_cmp_fn)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator) :
-  PB_ASSOC_BASE_C_DEC(r_cmp_fn, r_node_updator)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  PB_ASSOC_BASE_C_DEC(r_other)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    PB_ASSOC_BASE_C_DEC::swap(r_other);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-initialize()
-{
-  PB_ASSOC_BASE_C_DEC::m_p_head->m_red = true;
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
deleted file mode 100644
index e3ae668850fa..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_fn_imps.hpp
- * Contains an implementation for rb_tree_.
- */
-
-#ifdef PB_ASSOC_RB_TREE_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-assert_node_consistent(const node_pointer p_nd) const
-{
-  if (p_nd == NULL)
-    return (1);
-
-  const size_type l_height = assert_node_consistent(p_nd->m_p_left);
-  const size_type r_height = assert_node_consistent(p_nd->m_p_right);
-
-  if (p_nd->m_red)
-    {
-      PB_ASSOC_DBG_ASSERT(is_effectively_black(p_nd->m_p_left));
-
-      PB_ASSOC_DBG_ASSERT(is_effectively_black(p_nd->m_p_right));
-    }
-
-  PB_ASSOC_DBG_ASSERT(l_height == r_height);
-
-  return ((p_nd->m_red? 0 : 1) + l_height);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid() const
-{
-  PB_ASSOC_DBG_ASSERT(PB_ASSOC_BASE_C_DEC::m_p_head->m_red);
-
-  if (PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent != NULL)
-    {
-      PB_ASSOC_DBG_ASSERT(PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent->m_red
-			  == false);
-
-      assert_node_consistent(PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent);
-    }
-}
-
-#endif // #ifdef PB_ASSOC_RB_TREE_DEBUG_
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
deleted file mode 100644
index e137fb7cad20..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
+++ /dev/null
@@ -1,403 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains an implementation for rb_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key)
-{
-  iterator it = find(r_key);
-
-  if (it == PB_ASSOC_BASE_C_DEC::find_end())
-    return (0);
-
-  erase(it);
-
-  return (1);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(const_iterator it)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-    if (it == PB_ASSOC_BASE_C_DEC::find_end())
-      return (it);
-
-  const_iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-    return (ret_it);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(iterator it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_iterators();)
-
-    if (it == PB_ASSOC_BASE_C_DEC::find_end())
-      return (it);
-
-  iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_iterators();)
-
-    return (ret_it);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(const_reverse_iterator it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_iterators();)
-
-    if (it == PB_ASSOC_BASE_C_DEC::find_rend())
-      return (it);
-
-  const_reverse_iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_iterators();)
-
-    return (ret_it);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(reverse_iterator it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  if (it == PB_ASSOC_BASE_C_DEC::find_rend())
-    return (it);
-
-  reverse_iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  return (ret_it);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-PB_ASSOC_CLASS_T_DEC
-template<class Pred>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_if(Pred pred)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    size_type num_ersd = 0;
-
-  iterator it = PB_ASSOC_BASE_C_DEC::begin();
-
-  while (it != PB_ASSOC_BASE_C_DEC::end())
-    if (pred(*it))
-      {
-	++num_ersd;
-
-	it = erase(it);
-      }
-    else
-      ++it;
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (num_ersd);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-erase_node(node_pointer p_nd)
-{
-  remove_node(p_nd);
-
-  PB_ASSOC_BASE_C_DEC::actual_erase_node(p_nd);
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-remove_node(node_pointer p_z)
-{
-  update_min_max_for_erased_node(p_z);
-
-  node_pointer p_y = p_z;
-
-  node_pointer p_x = NULL;
-
-  node_pointer p_new_x_parent = NULL;
-
-  if (p_y->m_p_left == NULL)
-    p_x = p_y->m_p_right;
-  else if (p_y->m_p_right == NULL)
-    p_x = p_y->m_p_left;
-  else
-    {
-      p_y = p_y->m_p_right;
-
-      while (p_y->m_p_left != NULL)
-	p_y = p_y->m_p_left;
-
-      p_x = p_y->m_p_right;
-    }
-
-  if (p_y == p_z)
-    {
-      p_new_x_parent = p_y->m_p_parent;
-
-      if (p_x != NULL)
-	p_x->m_p_parent = p_y->m_p_parent;
-
-      if (PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent == p_z)
-	PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_x;
-      else if (p_z->m_p_parent->m_p_left == p_z)
-	{
-	  p_y->m_p_left = p_z->m_p_parent;
-
-	  p_z->m_p_parent->m_p_left = p_x;
-	}
-      else
-	{
-	  p_y->m_p_left = NULL;
-
-	  p_z->m_p_parent->m_p_right = p_x;
-	}
-    }
-  else
-    {
-      p_z->m_p_left->m_p_parent = p_y;
-
-      p_y->m_p_left = p_z->m_p_left;
-
-      if (p_y != p_z->m_p_right)
-	{
-	  p_new_x_parent = p_y->m_p_parent;
-
-	  if (p_x != NULL)
-	    p_x->m_p_parent = p_y->m_p_parent;
-
-	  p_y->m_p_parent->m_p_left = p_x;
-
-	  p_y->m_p_right = p_z->m_p_right;
-
-	  p_z->m_p_right->m_p_parent = p_y;
-	}
-      else
-	p_new_x_parent = p_y;
-
-      if (PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent == p_z)
-	PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_y;
-      else if (p_z->m_p_parent->m_p_left == p_z)
-	p_z->m_p_parent->m_p_left = p_y;
-      else
-	p_z->m_p_parent->m_p_right = p_y;
-
-      p_y->m_p_parent = p_z->m_p_parent;
-
-      std::swap(p_y->m_red, p_z->m_red);
-
-      p_y = p_z;
-    }
-
-  update_to_top(p_new_x_parent, (Node_Updator* )this);
-
-  if (p_y->m_red)
-    return;
-
-  remove_fixup(p_x, p_new_x_parent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-remove_fixup(node_pointer p_x, node_pointer p_new_x_parent)
-{
-  PB_ASSOC_DBG_ASSERT(p_x == NULL || p_x->m_p_parent == p_new_x_parent);
-
-  while (p_x != PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent&& 
-	 is_effectively_black(p_x))
-    if (p_x == p_new_x_parent->m_p_left)
-      {
-	node_pointer p_w = p_new_x_parent->m_p_right;
-
-	if (p_w->m_red)
-	  {
-	    p_w->m_red = false;
-
-	    p_new_x_parent->m_red = true;
-
-	    PB_ASSOC_BASE_C_DEC::rotate_left(p_new_x_parent);
-
-	    p_w = p_new_x_parent->m_p_right;
-	  }
-
-	if (is_effectively_black(p_w->m_p_left)&& 
-	    is_effectively_black(p_w->m_p_right))
-	  {
-	    p_w->m_red = true;
-
-	    p_x = p_new_x_parent;
-
-	    p_new_x_parent = p_new_x_parent->m_p_parent;
-	  }
-	else
-	  {
-	    if (is_effectively_black(p_w->m_p_right))
-	      {
-		if (p_w->m_p_left != NULL)
-		  p_w->m_p_left->m_red = false;
-
-		p_w->m_red = true;
-
-		PB_ASSOC_BASE_C_DEC::rotate_right(p_w);
-
-		p_w = p_new_x_parent->m_p_right;
-	      }
-
-	    p_w->m_red = p_new_x_parent->m_red;
-
-	    p_new_x_parent->m_red = false;
-
-	    if (p_w->m_p_right != NULL)
-	      p_w->m_p_right->m_red = false;
-
-	    PB_ASSOC_BASE_C_DEC::rotate_left(p_new_x_parent);
-
-	    update_to_top(p_new_x_parent, (Node_Updator* )this);
-
-	    break;
-	  }
-      }
-    else
-      {
-	node_pointer p_w = p_new_x_parent->m_p_left;
-
-	if (p_w->m_red == true)
-	  {
-	    p_w->m_red = false;
-
-	    p_new_x_parent->m_red = true;
-
-	    PB_ASSOC_BASE_C_DEC::rotate_right(p_new_x_parent);
-
-	    p_w = p_new_x_parent->m_p_left;
-	  }
-
-	if (is_effectively_black(p_w->m_p_right)&& 
-	    is_effectively_black(p_w->m_p_left))
-	  {
-	    p_w->m_red = true;
-
-	    p_x = p_new_x_parent;
-
-	    p_new_x_parent = p_new_x_parent->m_p_parent;
-	  }
-	else
-	  {
-	    if (is_effectively_black(p_w->m_p_left))
-	      {
-		if (p_w->m_p_right != NULL)
-		  p_w->m_p_right->m_red = false;
-
-		p_w->m_red = true;
-
-		PB_ASSOC_BASE_C_DEC::rotate_left(p_w);
-
-		p_w = p_new_x_parent->m_p_left;
-	      }
-
-	    p_w->m_red = p_new_x_parent->m_red;
-
-	    p_new_x_parent->m_red = false;
-
-	    if (p_w->m_p_left != NULL)
-	      p_w->m_p_left->m_red = false;
-
-	    PB_ASSOC_BASE_C_DEC::rotate_right(p_new_x_parent);
-
-	    update_to_top(p_new_x_parent, (Node_Updator* )this);
-
-	    break;
-	  }
-      }
-
-  if (p_x != NULL)
-    p_x->m_red = false;
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
deleted file mode 100644
index 1ab6be5c6962..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains an implementation for rb_tree_.
- */
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
deleted file mode 100644
index 288017d7a2e7..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
+++ /dev/null
@@ -1,52 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains an implementation for rb_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_effectively_black(const node_pointer p_nd)
-{
-  return (p_nd == NULL || !p_nd->m_red);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
deleted file mode 100644
index 0ed22bfccd41..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
+++ /dev/null
@@ -1,176 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file insert_fn_imps.hpp
- * Contains an implementation for rb_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert(const_reference r_value)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    std::pair<find_iterator, bool> ins_pair =
-    PB_ASSOC_BASE_C_DEC::insert_leaf(r_value);
-
-  if (ins_pair.second == true)
-    {
-      ins_pair.first.m_p_nd->m_red = true;
-
-      PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(false, true);)
-
-	insert_fixup(ins_pair.first.m_p_nd);
-    }
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-    PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  return (ins_pair);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    std::pair<find_iterator, bool> ins_pair =
-    PB_ASSOC_BASE_C_DEC::insert_leaf(
-				     value_type(r_key, data_type()));
-
-  if (ins_pair.second == true)
-    {
-      ins_pair.first.m_p_nd->m_red = true;
-
-      PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid());
-
-      insert_fixup(ins_pair.first.m_p_nd);
-    }
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_iterators();)
-
-    return (ins_pair.first.m_p_nd->m_value.second);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-insert_fixup(node_pointer p_nd)
-{
-  PB_ASSOC_DBG_ASSERT(p_nd->m_red == true);
-
-  while (p_nd != PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent&& 
-	 p_nd->m_p_parent->m_red)
-    {
-      if (p_nd->m_p_parent == p_nd->m_p_parent->m_p_parent->m_p_left)
-	{
-	  node_pointer p_y = p_nd->m_p_parent->m_p_parent->m_p_right;
-
-	  if (p_y != NULL&&  p_y->m_red)
-	    {
-	      p_nd->m_p_parent->m_red = false;
-
-	      p_y->m_red = false;
-
-	      p_nd->m_p_parent->m_p_parent->m_red = true;
-
-	      p_nd = p_nd->m_p_parent->m_p_parent;
-	    }
-	  else
-	    {
-	      if (p_nd == p_nd->m_p_parent->m_p_right)
-		{
-		  p_nd = p_nd->m_p_parent;
-
-		  PB_ASSOC_BASE_C_DEC::rotate_left(p_nd);
-		}
-
-	      p_nd->m_p_parent->m_red = false;
-
-	      p_nd->m_p_parent->m_p_parent->m_red = true;
-
-	      PB_ASSOC_BASE_C_DEC::rotate_right(
-						p_nd->m_p_parent->m_p_parent);
-	    }
-	}
-      else
-	{
-	  node_pointer p_y = p_nd->m_p_parent->m_p_parent->m_p_left;
-
-	  if (p_y != NULL&&  p_y->m_red)
-	    {
-	      p_nd->m_p_parent->m_red = false;
-
-	      p_y->m_red = false;
-
-	      p_nd->m_p_parent->m_p_parent->m_red = true;
-
-	      p_nd = p_nd->m_p_parent->m_p_parent;
-	    }
-	  else
-	    {
-	      if (p_nd == p_nd->m_p_parent->m_p_left)
-		{
-		  p_nd = p_nd->m_p_parent;
-
-		  PB_ASSOC_BASE_C_DEC::rotate_right(p_nd);
-		}
-
-	      p_nd->m_p_parent->m_red = false;
-
-	      p_nd->m_p_parent->m_p_parent->m_red = true;
-
-	      PB_ASSOC_BASE_C_DEC::rotate_left(
-					       p_nd->m_p_parent->m_p_parent);
-	    }
-	}
-    }
-
-  PB_ASSOC_BASE_C_DEC::update_to_top(p_nd, (Node_Updator* )this);
-
-  PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent->m_red = false;
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/node.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/node.hpp
deleted file mode 100644
index 801137267b7b..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/node.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file node.hpp
- * Contains an implementation for rb_tree_.
- */
-
-#ifndef RB_TREE_NODE_HPP
-#define RB_TREE_NODE_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<class Value_Type, class Allocator>
-    struct rb_tree_node_
-    {
-    public:
-      typedef
-      typename Allocator::template rebind<
-	rb_tree_node_<
-	Value_Type,
-	Allocator> >::other::pointer
-      node_pointer;
-
-    public:
-      inline bool
-      special_dec_check() const
-      {
-	return (m_red);
-      }
-
-    public:
-      node_pointer m_p_left;
-      node_pointer m_p_right;
-
-      node_pointer m_p_parent;
-
-      typedef Value_Type value_type;
-
-      value_type m_value;
-
-      bool m_red;
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef RB_TREE_NODE_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
deleted file mode 100644
index e91d8eaa7366..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
+++ /dev/null
@@ -1,360 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file rb_tree_.hpp
- * Contains an implementation for rb_tree_.
- */
-
-/*
- * This implementation uses an idea from the SGI STL (using a "header" node
- *	which is needed for efficient iteration).
- */
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#ifndef BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
-#define BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp>
-#endif // #ifndef BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#ifndef BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
-#define BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp>
-#endif // #ifndef BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#include <ext/pb_assoc/tree_policy.hpp>
-#include <ext/pb_assoc/detail/standard_policies.hpp>
-#include <ext/pb_assoc/detail/rb_tree_map_/node.hpp>
-#include <utility>
-#include <vector>
-#include <assert.h>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_RB_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_RB_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_RB_TREE_DEBUG_
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Cmp_Fn, \
-		class Allocator, \
-		class Node_Updator>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	rb_tree_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	rb_tree_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_BASE_CLASS_NAME \
-	bin_search_tree_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_BASE_CLASS_NAME \
-	bin_search_tree_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_CLASS_NAME< \
-		Key, \
-		Data, \
-		Cmp_Fn, \
-		Allocator, \
-		Node_Updator>
-
-#define PB_ASSOC_TYPES_TRAITS_C_DEC \
-	types_traits< \
-		Key, \
-		Data, \
-		Allocator>
-
-#define PB_ASSOC_NODE_C_DEC \
-	rb_tree_node_< \
-		typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	PB_ASSOC_BASE_CLASS_NAME< \
-		Key, \
-		Data, \
-		PB_ASSOC_NODE_C_DEC, \
-		Cmp_Fn, \
-		Allocator, \
-		Node_Updator>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_V2F(X) (X).first
-#define PB_ASSOC_V2S(X) (X).second
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value)
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_V2F(X) (X)
-#define PB_ASSOC_V2S(X) Mapped_Data()
-#define PB_ASSOC_EP2VP(X)& ((X)->m_value.first)
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-    template<typename Key,
-	     typename Data,
-	     class Cmp_Fn,
-	     class Allocator,
-	     class Node_Updator>
-    struct PB_ASSOC_CLASS_NAME : public PB_ASSOC_BASE_C_DEC
-    {
-
-    public:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_key_reference
-      const_key_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_type data_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_reference
-      data_reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_data_reference
-      const_data_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type value_type;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::pointer pointer;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_pointer
-      const_pointer;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::reference reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_reference
-      const_reference;
-
-      typedef typename PB_ASSOC_BASE_C_DEC::find_iterator find_iterator;
-
-      typedef
-      typename PB_ASSOC_BASE_C_DEC::const_iterator
-      const_find_iterator;
-
-      typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator;
-
-      typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator;
-
-      typedef
-      typename PB_ASSOC_BASE_C_DEC::reverse_iterator
-      reverse_iterator;
-
-      typedef
-      typename PB_ASSOC_BASE_C_DEC::const_reverse_iterator
-      const_reverse_iterator;
-
-    private:
-
-      typedef typename PB_ASSOC_BASE_C_DEC::node_pointer node_pointer;
-
-    protected:
-
-      PB_ASSOC_CLASS_NAME();
-
-      PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
-
-      PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator);
-
-      PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      template<class It>
-      void
-      copy_from_range(It first_it, It last_it);
-
-      inline std::pair<find_iterator, bool>
-      insert(const_reference r_value);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline data_reference
-      subscript_imp(const_key_reference r_key);
-#endif // #ifdef PB_ASSOC_DATA_TRUE
-
-      inline static bool
-      is_effectively_black(const node_pointer p_nd);
-
-      inline size_type
-      erase(const_key_reference r_key);
-
-      inline const_iterator
-      erase(const_iterator it);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline iterator
-      erase(iterator it);
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      inline const_reverse_iterator
-      erase(const_reverse_iterator it);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline reverse_iterator
-      erase(reverse_iterator it);
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      template<class Pred>
-      inline size_type
-      erase_if(Pred pred);
-
-      void
-      join(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other);
-
-#ifdef PB_ASSOC_RB_TREE_DEBUG_
-
-      virtual void
-      assert_valid() const;
-
-      size_type
-      assert_node_consistent(const node_pointer p_nd) const;
-
-#endif // #ifdef PB_ASSOC_RB_TREE_DEBUG_
-
-    private:
-
-      void
-      initialize();
-
-      void
-      insert_fixup(node_pointer p_nd);
-
-      void
-      erase_node(node_pointer p_nd);
-
-      void
-      remove_node(node_pointer p_nd);
-
-      void
-      remove_fixup(node_pointer p_x, node_pointer p_new_x_parent);
-
-      void
-      split_imp(node_pointer p_nd, PB_ASSOC_CLASS_C_DEC& r_other);
-
-      inline node_pointer
-      split_min();
-
-      std::pair<node_pointer, node_pointer>
-      split_min_imp();
-
-      void
-      join_imp(node_pointer p_x, node_pointer p_r);
-
-      std::pair<node_pointer, node_pointer>
-      find_join_pos_right(node_pointer p_l, size_type h_l, size_type h_r);
-
-      std::pair<node_pointer, node_pointer>
-      find_join_pos_left(node_pointer p_r, size_type h_l, size_type h_r);
-
-      inline size_type
-      black_height(node_pointer p_nd);
-
-      void
-      split_at_node(node_pointer p_nd, PB_ASSOC_CLASS_C_DEC& r_other);
-
-    };
-
-#include <ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp>
-#include <ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp>
-#include <ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_BASE_CLASS_NAME
-
-#undef PB_ASSOC_NODE_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-#undef PB_ASSOC_V2F
-#undef PB_ASSOC_EP2VP
-#undef PB_ASSOC_V2S
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
deleted file mode 100644
index 6bc8c17472bf..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
+++ /dev/null
@@ -1,381 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file split_join_fn_imps.hpp
- * Contains an implementation for rb_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-join(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-
-    if (PB_ASSOC_BASE_C_DEC::join_prep(r_other) == false)
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid();)
-	  PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-	  return;
-      }
-
-  const node_pointer p_x = r_other.split_min();
-
-  join_imp(p_x, r_other.m_p_head->m_p_parent);
-
-  PB_ASSOC_BASE_C_DEC::join_finish(r_other);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-join_imp(node_pointer p_x, node_pointer p_r)
-{
-  PB_ASSOC_DBG_ASSERT(p_x != NULL);
-
-  if (p_r != NULL)
-    p_r->m_red = false;
-
-  const size_type h =
-    black_height(PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent);
-  const size_type other_h = black_height(p_r);
-
-  node_pointer p_x_l;
-  node_pointer p_x_r;
-
-  std::pair<node_pointer, node_pointer> join_pos;
-
-  const bool right_join = h >= other_h;
-
-  if (right_join)
-    {
-      join_pos = find_join_pos_right(PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent, h, other_h);
-
-      p_x_l = join_pos.first;
-      p_x_r = p_r;
-    }
-  else
-    {
-      p_x_l = PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent;
-
-      PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_r;
-      if (p_r != NULL)
-	p_r->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-      join_pos = find_join_pos_left(PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent, h, other_h);
-
-      p_x_r = join_pos.first;
-    }
-
-  node_pointer p_parent = join_pos.second;
-
-  if (p_parent == PB_ASSOC_BASE_C_DEC::m_p_head)
-    {
-      PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_x;
-
-      p_x->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-    }
-  else
-    {
-      p_x->m_p_parent = p_parent;
-
-      if (right_join)
-	p_x->m_p_parent->m_p_right = p_x;
-      else
-	p_x->m_p_parent->m_p_left = p_x;
-    }
-
-  p_x->m_p_left = p_x_l;
-  if (p_x_l != NULL)
-    p_x_l->m_p_parent = p_x;
-
-  p_x->m_p_right = p_x_r;
-  if (p_x_r != NULL)
-    p_x_r->m_p_parent = p_x;
-
-  p_x->m_red = true;
-
-  PB_ASSOC_BASE_C_DEC::initialize_min_max();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-    PB_ASSOC_BASE_C_DEC::update_to_top(p_x, (Node_Updator* )this);
-
-  insert_fixup(p_x);
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::node_pointer
-PB_ASSOC_CLASS_C_DEC::
-split_min()
-{
-  PB_ASSOC_DBG_ASSERT(PB_ASSOC_BASE_C_DEC::m_p_head->m_p_left !=
-		      PB_ASSOC_BASE_C_DEC::m_p_head);
-
-  node_pointer p_min = PB_ASSOC_BASE_C_DEC::m_p_head->m_p_left;
-
-  remove_node(p_min);
-
-  return (p_min);
-}
-
-PB_ASSOC_CLASS_T_DEC
-std::pair<
-  typename PB_ASSOC_CLASS_C_DEC::node_pointer,
-  typename PB_ASSOC_CLASS_C_DEC::node_pointer>
-PB_ASSOC_CLASS_C_DEC::
-find_join_pos_right(node_pointer p_l, size_type h_l, size_type h_r)
-{
-  PB_ASSOC_DBG_ASSERT(h_l >= h_r);
-
-  if (PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent == NULL)
-    return (std::make_pair((node_pointer)NULL,
-			   PB_ASSOC_BASE_C_DEC::m_p_head));
-
-  node_pointer p_l_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-  while (h_l > h_r)
-    {
-      if (p_l->m_red == false)
-	{
-	  PB_ASSOC_DBG_ASSERT(h_l > 0);
-
-	  --h_l;
-	}
-
-      p_l_parent = p_l;
-
-      p_l = p_l->m_p_right;
-    }
-
-  if (!is_effectively_black(p_l))
-    {
-      p_l_parent = p_l;
-
-      p_l = p_l->m_p_right;
-    }
-
-  PB_ASSOC_DBG_ASSERT(is_effectively_black(p_l));
-  PB_ASSOC_DBG_ASSERT(black_height(p_l) == h_r);
-  PB_ASSOC_DBG_ASSERT(p_l == NULL || p_l->m_p_parent == p_l_parent);
-
-  return (std::make_pair(p_l, p_l_parent));
-}
-
-PB_ASSOC_CLASS_T_DEC
-std::pair<
-  typename PB_ASSOC_CLASS_C_DEC::node_pointer,
-  typename PB_ASSOC_CLASS_C_DEC::node_pointer>
-PB_ASSOC_CLASS_C_DEC::
-find_join_pos_left(node_pointer p_r, size_type h_l, size_type h_r)
-{
-  PB_ASSOC_DBG_ASSERT(h_r > h_l);
-
-  if (PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent == NULL)
-    return (std::make_pair((node_pointer)NULL,
-			   PB_ASSOC_BASE_C_DEC::m_p_head));
-
-  node_pointer p_r_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-  while (h_r > h_l)
-    {
-      if (p_r->m_red == false)
-	{
-	  PB_ASSOC_DBG_ASSERT(h_r > 0);
-
-	  --h_r;
-	}
-
-      p_r_parent = p_r;
-
-      p_r = p_r->m_p_left;
-    }
-
-  if (!is_effectively_black(p_r))
-    {
-      p_r_parent = p_r;
-
-      p_r = p_r->m_p_left;
-    }
-
-  PB_ASSOC_DBG_ASSERT(is_effectively_black(p_r));
-  PB_ASSOC_DBG_ASSERT(black_height(p_r) == h_l);
-  PB_ASSOC_DBG_ASSERT(p_r == NULL || p_r->m_p_parent == p_r_parent);
-
-  return (std::make_pair(p_r, p_r_parent));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-black_height(node_pointer p_nd)
-{
-  size_type h = 1;
-
-  while (p_nd != NULL)
-    {
-      if (p_nd->m_red == false)
-	++h;
-
-      p_nd = p_nd->m_p_left;
-    }
-
-  return (h);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-
-    if (PB_ASSOC_BASE_C_DEC::split_prep(r_key, r_other) == false)
-      {
-	PB_ASSOC_DBG_ONLY(assert_valid());
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-
-	return;
-      }
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-    node_pointer p_nd = upper_bound(r_key).m_p_nd;
-
-  do
-    {
-      node_pointer p_next_nd = p_nd->m_p_parent;
-
-      if (Cmp_Fn::operator()(
-			     r_key,
-			     PB_ASSOC_V2F(p_nd->m_value)))
-	split_at_node(p_nd, r_other);
-
-      PB_ASSOC_DBG_ONLY(assert_valid());
-      PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-	PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-      PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-	p_nd = p_next_nd;
-    }
-  while (p_nd != PB_ASSOC_BASE_C_DEC::m_p_head);
-
-  PB_ASSOC_BASE_C_DEC::split_finish(r_other);
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_BASE_C_DEC::assert_valid(true, true);)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-split_at_node(node_pointer p_nd, PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ASSERT(p_nd != NULL);
-
-  node_pointer p_l = p_nd->m_p_left;
-  node_pointer p_r = p_nd->m_p_right;
-
-  node_pointer p_parent = p_nd->m_p_parent;
-
-  if (p_parent == PB_ASSOC_BASE_C_DEC::m_p_head)
-    {
-      PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_l;
-
-      if (p_l != NULL)
-	{
-	  p_l->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-	  p_l->m_red = false;
-	}
-    }
-  else
-    {
-      if (p_parent->m_p_left == p_nd)
-	p_parent->m_p_left = p_l;
-      else
-	p_parent->m_p_right = p_l;
-
-      if (p_l != NULL)
-	p_l->m_p_parent = p_parent;
-
-      update_to_top(p_parent, (Node_Updator* )this);
-
-      if (!p_nd->m_red)
-	remove_fixup(p_l, p_parent);
-    }
-
-  PB_ASSOC_BASE_C_DEC::initialize_min_max();
-
-  PB_ASSOC_DBG_ONLY(assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_BASE_C_DEC::assert_valid(true, false);)
-
-    r_other.join_imp(p_nd, p_r);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
deleted file mode 100644
index 2220195f77d0..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file cc_hash_max_collision_check_resize_trigger_imp.hpp
- * Contains an implementation of cc_hash_max_collision_check_resize_trigger.
- */
-
-PB_ASSOC_CLASS_T_DEC
-pb_assoc::detail::int_to_type<External_Load_Access>
-PB_ASSOC_CLASS_C_DEC::s_external_load_access_ind;
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-cc_hash_max_collision_check_resize_trigger(float load) :
-  m_load(load),
-  m_size(0),
-  m_num_col(0),
-  m_max_col(0),
-  m_resize_needed(false)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_start()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_collision()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_end()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_start()
-{
-  m_num_col = 0;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_collision()
-{
-  ++m_num_col;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_end()
-{
-  PB_ASSOC_DBG_ASSERT(NOTHING_HT_RESIZE_ACTION == 0);
-
-  m_resize_needed =
-    m_resize_needed || (m_num_col >= m_max_col);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_start()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_collision()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_end()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_inserted(size_type num_e)
-{
-  PB_ASSOC_DBG_ASSERT(num_e <= m_size);
-
-  if (num_e == m_size)
-    m_resize_needed = true;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erased(size_type num_e)
-{
-  PB_ASSOC_DBG_ASSERT(num_e <= m_size);
-
-  m_resize_needed = false;
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_cleared()
-{
-  m_resize_needed = false;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_resize_needed() const
-{
-  return (m_resize_needed);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_grow_needed(size_type /*size*/, size_type /*num_used_e*/) const
-{
-  PB_ASSOC_DBG_ASSERT(m_resize_needed);
-
-  return (true);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_shrink_needed(size_type size, size_type num_used_e) const
-{
-  PB_ASSOC_DBG_ASSERT(m_resize_needed);
-
-  return (false);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_resized(size_type new_size)
-{
-  m_size = new_size;
-
-  // max_col <-- \sqrt{2 load \ln( 2 m \ln( m ) ) }
-
-  const double ln_arg = 2*  m_size*  ::log( (double)m_size);
-
-  m_max_col = (size_type)::ceil(  ::sqrt(2*   m_load*  ::log(ln_arg) ) );
-
-  m_num_col = 0;
-
-  m_resize_needed = false;
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_externally_resized(size_type new_size)
-{
-  notify_resized(new_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  std::swap(m_load, r_other.m_load);
-
-  std::swap(m_size, r_other.m_size);
-
-  std::swap(m_num_col, r_other.m_num_col);
-
-  std::swap(m_max_col, r_other.m_max_col);
-
-  std::swap(m_resize_needed, r_other.m_resize_needed);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline float
-PB_ASSOC_CLASS_C_DEC::
-get_load_imp(pb_assoc::detail::int_to_type<true>) const
-{
-  return (m_load);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
deleted file mode 100644
index 05e7a97661e3..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+++ /dev/null
@@ -1,123 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file hash_exponential_size_policy_imp.hpp
- * Contains an implementation of hash_exponential_size_policy.
- */
-
-#ifdef PB_ASSOC_HT_EXPONENTIAL_SIZE_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_HT_EXPONENTIAL_SIZE_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_HT_EXPONENTIAL_SIZE_POLICY_DEBUG
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-hash_exponential_size_policy(size_type start_size, size_type grow_factor) :
-  m_start_size(start_size),
-  m_grow_factor(grow_factor)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  std::swap(m_start_size, r_other.m_start_size);
-
-  std::swap(m_grow_factor, r_other.m_grow_factor);
-}
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_init_size(size_type suggested_size) const
-{
-  size_type ret = m_start_size;
-
-  while (ret < suggested_size)
-    ret *=  m_grow_factor;
-
-  return (ret);
-}
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_nearest_larger_size(size_type cur_size) const
-{
-  PB_ASSOC_DBG_ONLY(assert_is_one_of_my_sizes(size);)
-
-    const size_type pot_ret = cur_size*  m_grow_factor;
-
-  return ((pot_ret > cur_size)? pot_ret : cur_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_nearest_smaller_size(size_type cur_size) const
-{
-  PB_ASSOC_DBG_ONLY(assert_is_one_of_my_sizes(size);)
-
-    const size_type pot_ret = cur_size / m_grow_factor;
-
-  return ((pot_ret > 0)? pot_ret : m_start_size);
-}
-
-#ifdef PB_ASSOC_HT_EXPONENTIAL_SIZE_POLICY_DEBUG
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_is_one_of_my_sizes(size_type size)
-{
-  PB_ASSOC_DBG_ASSERT(size >= m_start_size);
-
-  while (size >m_start_size)
-    size /= m_grow_factor;
-
-  PB_ASSOC_DBG_ASSERT(size == m_start_size);
-}
-#endif // #ifdef PB_ASSOC_HT_EXPONENTIAL_SIZE_POLICY_DEBUG
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
deleted file mode 100644
index e17f9c2f588a..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+++ /dev/null
@@ -1,352 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file hash_load_check_resize_trigger_imp.hpp.hpp
- * Contains an implementation of hash_load_check_resize_trigger..
- */
-
-PB_ASSOC_CLASS_T_DEC
-pb_assoc::detail::int_to_type<External_Load_Access>
-PB_ASSOC_CLASS_C_DEC::s_external_load_access_ind;
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-hash_load_check_resize_trigger(float load_min, float load_max) :
-  m_load_min(load_min),
-  m_load_max(load_max),
-  m_next_shrink_size(0),
-  m_next_grow_size(0),
-  m_resize_needed(false)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_start()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_collision()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_end()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_start()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_collision()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_end()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_start()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_collision()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_end()
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_inserted(size_type num_entries)
-{
-  PB_ASSOC_DBG_ASSERT(num_entries <= m_next_grow_size);
-
-  my_size_base::set_size(num_entries);
-
-  m_resize_needed = (num_entries == m_next_grow_size);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erased(size_type num_entries)
-{
-  PB_ASSOC_DBG_ASSERT(num_entries >= m_next_shrink_size);
-
-  my_size_base::set_size(num_entries);
-
-  m_resize_needed = (num_entries == m_next_shrink_size);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_resize_needed() const
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    return (m_resize_needed);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_grow_needed(size_type /*size*/, size_type num_entries) const
-{
-  PB_ASSOC_DBG_ASSERT(m_resize_needed);
-
-  return (num_entries >= m_next_grow_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_shrink_needed(size_type /*size*/, size_type num_entries) const
-{
-  PB_ASSOC_DBG_ASSERT(m_resize_needed);
-
-  return (num_entries <= m_next_shrink_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~hash_load_check_resize_trigger()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_resized(size_type new_size)
-{
-  m_resize_needed = false;
-
-  m_next_grow_size =
-    size_type(m_load_max*  new_size - 1);
-
-  m_next_shrink_size =
-    size_type(m_load_min*  new_size );
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_externally_resized(size_type new_size)
-{
-  m_resize_needed = false;
-
-  size_type new_grow_size =
-    size_type(m_load_max*  new_size - 1);
-
-  size_type new_shrink_size =
-    size_type(m_load_min*  new_size );
-
-  if (new_grow_size >= m_next_grow_size)
-    {
-      PB_ASSOC_DBG_ASSERT(new_shrink_size > m_next_shrink_size);
-
-      m_next_grow_size = new_grow_size;
-
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return;
-    }
-
-  PB_ASSOC_DBG_ASSERT(new_shrink_size <= m_next_shrink_size);
-
-  m_next_shrink_size = new_shrink_size;
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_cleared()
-{
-  my_size_base::set_size(0);
-
-  m_resize_needed = (0 < m_next_shrink_size);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-
-    my_size_base::swap(r_other);
-
-  std::swap(m_load_min, r_other.m_load_min);
-  std::swap(m_load_max, r_other.m_load_max);
-
-  std::swap(m_resize_needed, r_other.m_resize_needed);
-
-  std::swap(m_next_grow_size, r_other.m_next_grow_size);
-  std::swap(m_next_shrink_size, r_other.m_next_shrink_size);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<float, float>
-PB_ASSOC_CLASS_C_DEC::
-get_loads() const
-{
-  return (get_loads_imp(s_external_load_access_ind));
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-set_loads(std::pair<float, float> load_pair)
-{
-  set_loads_imp(load_pair, s_external_load_access_ind);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<float, float>
-PB_ASSOC_CLASS_C_DEC::
-get_loads_imp(pb_assoc::detail::int_to_type<true>) const
-{
-  return (std::make_pair(m_load_min, m_load_max));
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-set_loads_imp(std::pair<float, float> load_pair, pb_assoc::detail::int_to_type<true>)
-{
-  const float old_load_min = m_load_min;
-  const float old_load_max = m_load_max;
-  const size_type old_next_shrink_size = m_next_shrink_size;
-  const size_type old_next_grow_size = m_next_grow_size;
-  const bool old_resize_needed = m_resize_needed;
-
-  try
-    {
-      m_load_min = load_pair.first;
-      m_load_max = load_pair.second;
-
-      do_resize(static_cast<size_type>(
-				       my_size_base::get_size() / ((m_load_min + m_load_max) / 2)));
-    }
-  catch(...)
-    {
-      m_load_min = old_load_min;
-      m_load_max = old_load_max;
-      m_next_shrink_size = old_next_shrink_size;
-      m_next_grow_size = old_next_grow_size;
-      m_resize_needed = old_resize_needed;
-
-      throw;
-    }
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-do_resize(size_type /*new_size*/)
-{
-  std::abort();
-}
-
-#ifdef PB_ASSOC_HT_LOAD_CHECK_RESIZE_TRIGGER_DEBUG
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid() const
-{
-  PB_ASSOC_DBG_ASSERT(m_load_max > m_load_min);
-
-  PB_ASSOC_DBG_ASSERT(m_next_grow_size >= m_next_shrink_size);
-}
-#endif // #ifdef PB_ASSOC_HT_LOAD_CHECK_RESIZE_TRIGGER_DEBUG
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
deleted file mode 100644
index a2e985486947..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
+++ /dev/null
@@ -1,150 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file hash_prime_size_policy_imp.hpp
- * Contains an implementation of hash_prime_size_policy.
- */
-
-namespace detail
-{
-
-  enum
-    {
-      num_distinct_sizes = 28
-    };
-
-  static const size_t s_a_sizes[num_distinct_sizes] =
-    {
-      /* Dealing cards... */
-      /* 0	*/ 53ul,
-      /* 1	*/ 97ul,
-      /* 2	*/ 193ul,
-      /* 3	*/ 389ul,
-      /* 4	*/ 769ul,
-      /* 5	*/ 1543ul,
-      /* 6	*/ 3079ul,
-      /* 7	*/ 6151ul,
-      /* 8	*/ 12289ul,
-      /* 9	*/ 24593ul,
-      /* 10	*/ 49157ul,
-      /* 11	*/ 98317ul,
-      /* 12	*/ 196613ul,
-      /* 13	*/ 393241ul,
-      /* 14	*/ 786433ul,
-      /* 15	*/ 1572869ul,
-      /* 16	*/ 3145739ul,
-      /* 17	*/ 6291469ul,
-      /* 18	*/ 12582917ul,
-      /* 19	*/ 25165843ul,
-      /* 20	*/ 50331653ul,
-      /* 21	*/ 100663319ul,
-      /* 22	*/ 201326611ul,
-      /* 23	*/ 402653189ul,
-      /* 24	*/ 805306457ul,
-      /* 25	*/ 1610612741,
-      /* 26	*/ 3221225473ul,
-      /* 27	*/ 4294967291ul
-      /* Pot's good, let's play */
-    };
-
-} // namespace detail
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& /*r_other*/)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_init_size(size_type suggested_size) const
-{
-  return (get_nearest_larger_size_imp(suggested_size));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_nearest_larger_size(size_type cur_size) const
-{
-  PB_ASSOC_DBG_ONLY(assert_is_one_of_my_sizes(cur_size);)
-
-    return (get_nearest_larger_size_imp(cur_size));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_nearest_smaller_size(size_type cur_size) const
-{
-  PB_ASSOC_DBG_ONLY(assert_is_one_of_my_sizes(cur_size);)
-
-    return (*std::lower_bound(detail::s_a_sizes, detail::s_a_sizes + detail::num_distinct_sizes, cur_size - 1));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_nearest_larger_size_imp(size_type size) const
-{
-  const size_t* const p_upper =
-    std::upper_bound(detail::s_a_sizes, detail::s_a_sizes + detail::num_distinct_sizes, size);
-
-  return ((p_upper == detail::s_a_sizes + detail::num_distinct_sizes)?
-	  size :
-	  *p_upper);
-}
-
-#ifdef PB_ASSOC_HT_PRIME_SIZE_POLICY_DEBUG
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_is_one_of_my_sizes(size_type size)
-{
-  const size_t* const p_end =
-    detail::s_a_sizes + detail::num_distinct_sizes;
-
-  const size_t* const p_found =
-    std::find(detail::s_a_sizes, p_end, size)
-
-    PB_ASSOC_DBG_ASSERT(p_found != p_end);
-}
-#endif // #ifdef PB_ASSOC_HT_PRIME_SIZE_POLICY_DEBUG
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
deleted file mode 100644
index c1df321071be..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+++ /dev/null
@@ -1,342 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file hash_standard_resize_policy_imp.hpp
- * Contains an implementation of hash_standard_resize_policy.
- */
-
-#ifdef PB_ASSOC_HT_STANDARD_RESIZE_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_HT_STANDARD_RESIZE_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_HT_STANDARD_RESIZE_POLICY_DEBUG
-
-PB_ASSOC_CLASS_T_DEC
-pb_assoc::detail::int_to_type<External_Size_Access>
-PB_ASSOC_CLASS_C_DEC::s_external_size_access_indicator;
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-hash_standard_resize_policy(size_type suggested_size /*= 8*/) :
-  m_size(Size_Policy::get_init_size(suggested_size))
-{
-  my_trigger_policy_base::notify_externally_resized(
-						    Size_Policy::get_init_size(suggested_size));
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-hash_standard_resize_policy(const Size_Policy& r_size_policy, size_type suggested_size /*= 8*/) :
-  Size_Policy(r_size_policy),
-  m_size(Size_Policy::get_init_size(suggested_size))
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-hash_standard_resize_policy(const Size_Policy& r_size_policy, const Trigger_Policy& r_trigger_policy, size_type suggested_size /*= 8*/) :
-  Size_Policy(r_size_policy),
-  Trigger_Policy(r_trigger_policy),
-  m_size(Size_Policy::get_init_size(suggested_size))
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~hash_standard_resize_policy()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  my_trigger_policy_base::swap(r_other);
-
-  my_size_policy_base::swap(r_other);
-
-  std::swap(m_size, r_other.m_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_start()
-{
-  my_trigger_policy_base::notify_find_search_start();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_collision()
-{
-  my_trigger_policy_base::notify_find_search_collision();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_find_search_end()
-{
-  my_trigger_policy_base::notify_find_search_end();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_start()
-{
-  my_trigger_policy_base::notify_insert_search_start();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_collision()
-{
-  my_trigger_policy_base::notify_insert_search_collision();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_insert_search_end()
-{
-  my_trigger_policy_base::notify_insert_search_end();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_start()
-{
-  my_trigger_policy_base::notify_erase_search_start();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_collision()
-{
-  my_trigger_policy_base::notify_erase_search_collision();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erase_search_end()
-{
-  my_trigger_policy_base::notify_erase_search_end();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_inserted(size_type num_e)
-{
-  my_trigger_policy_base::notify_inserted(num_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-notify_erased(size_type num_e)
-{
-  my_trigger_policy_base::notify_inserted(num_e);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_cleared()
-{
-  my_trigger_policy_base::notify_cleared();
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-is_resize_needed() const
-{
-  return (my_trigger_policy_base::is_resize_needed());
-}
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_new_size(size_type size, size_type num_used_e) const
-{
-  PB_ASSOC_DBG_ASSERT(m_size == size);
-
-  if (my_trigger_policy_base::
-      is_grow_needed(size, num_used_e))
-    return (my_size_policy_base::get_nearest_larger_size(m_size));
-
-  PB_ASSOC_DBG_ASSERT(my_trigger_policy_base::
-		      is_shrink_needed(size, num_used_e));
-
-  return (my_size_policy_base::get_nearest_smaller_size(m_size));
-}
-
-PB_ASSOC_CLASS_T_DEC
-typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_init_size() const
-{
-  PB_ASSOC_DBG_ASSERT(m_size ==
-		      my_trigger_policy_base::get_init_size());
-
-  return (m_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-notify_resized(size_type new_size)
-{
-  my_trigger_policy_base::notify_resized(new_size);
-
-  m_size = new_size;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_actual_size() const
-{
-  return (get_actual_size(s_external_size_access_indicator));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-get_actual_size(external_resize_true_indicator) const
-{
-  return (m_size);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-resize(size_type new_size)
-{
-  resize(new_size, s_external_size_access_indicator);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-resize(size_type new_size, external_resize_true_indicator)
-{
-  size_type actual_new_size = my_size_policy_base::get_init_size(1);
-  while (actual_new_size < new_size)
-    {
-      const size_type pot =
-	my_size_policy_base::get_nearest_larger_size(actual_new_size);
-
-      if (pot == actual_new_size&&  pot < new_size)
-	throw cannot_resize();
-
-      actual_new_size = pot;
-    }
-
-  const size_type old_size = m_size;
-
-  try
-    {
-      do_resize(actual_new_size);
-    }
-  catch(cannot_insert& )
-    {
-      m_size = old_size;
-
-      throw cannot_resize();
-    }
-  catch(...)
-    {
-      m_size = old_size;
-
-      throw;
-    }
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-do_resize(size_type /*new_size*/)
-{
-  // Tmp Ami
-  std::abort();
-}
-
-PB_ASSOC_CLASS_T_DEC
-Trigger_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_trigger_policy()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Trigger_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_trigger_policy() const
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-Size_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_size_policy()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-const Size_Policy& 
-PB_ASSOC_CLASS_C_DEC::
-get_size_policy() const
-{
-  return (*this);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
deleted file mode 100644
index b4dfb4e0fb5b..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ht_prime_size_policy_imp.hpp
- * Contains implementation details for ht_prime_size_policy.
- */
-
-#ifndef HT_PRIME_SIZE_POLICY_IMP_HPP
-#define HT_PRIME_SIZE_POLICY_IMP_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    enum
-      {
-	num_distinct_sizes = 28
-      };
-
-    static const size_t s_a_sizes[num_distinct_sizes] =
-      {
-	/* Dealing cards... */
-	/* 0	*/ 53ul,
-	/* 1	*/ 97ul,
-	/* 2	*/ 193ul,
-	/* 3	*/ 389ul,
-	/* 4	*/ 769ul,
-	/* 5	*/ 1543ul,
-	/* 6	*/ 3079ul,
-	/* 7	*/ 6151ul,
-	/* 8	*/ 12289ul,
-	/* 9	*/ 24593ul,
-	/* 10	*/ 49157ul,
-	/* 11	*/ 98317ul,
-	/* 12	*/ 196613ul,
-	/* 13	*/ 393241ul,
-	/* 14	*/ 786433ul,
-	/* 15	*/ 1572869ul,
-	/* 16	*/ 3145739ul,
-	/* 17	*/ 6291469ul,
-	/* 18	*/ 12582917ul,
-	/* 19	*/ 25165843ul,
-	/* 20	*/ 50331653ul,
-	/* 21	*/ 100663319ul,
-	/* 22	*/ 201326611ul,
-	/* 23	*/ 402653189ul,
-	/* 24	*/ 805306457ul,
-	/* 25	*/ 1610612741,
-	/* 26	*/ 3221225473ul,
-	/* 27	*/ 4294967291ul
-	/* Pot's good, let's play */
-      };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef HT_PRIME_SIZE_POLICY_IMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/size_base.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/size_base.hpp
deleted file mode 100644
index d9fb53a585cb..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/resize_policy/size_base.hpp
+++ /dev/null
@@ -1,170 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file size_base.hpp
- * Contains an base holding size for some resize policies.
- */
-
-#ifndef SIZE_BASE_HPP
-#define SIZE_BASE_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<typename Size_Type, bool Hold_Size>
-    class size_base;
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	size_base< \
-		Size_Type, \
-		true>
-
-    template<typename Size_Type>
-    class size_base<
-      Size_Type,
-      true>
-    {
-    protected:
-      typedef Size_Type size_type;
-
-    protected:
-      inline
-      size_base();
-
-      inline void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      inline void
-      set_size(size_type size);
-
-      inline size_type
-      get_size() const;
-
-    private:
-      size_type m_size;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
-    size_base() :
-      m_size(0)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    set_size(size_type size)
-    {
-      m_size = size;
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
-    get_size() const
-    {
-      return (m_size);
-    }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
-    {
-      std::swap(m_size, r_other.m_size);
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	size_base< \
-		Size_Type, \
-		false>
-
-    template<typename Size_Type>
-    class size_base<
-      Size_Type,
-      false>
-    {
-    protected:
-      typedef Size_Type size_type;
-
-    protected:
-      inline void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      inline void
-      set_size(size_type size);
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& /*r_other*/)
-    { }
-
-    PB_ASSOC_CLASS_T_DEC
-    inline void
-    PB_ASSOC_CLASS_C_DEC::
-    set_size(size_type /*size*/)
-    {
-      // Do nothing
-    }
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef SIZE_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
deleted file mode 100644
index 3d2b53721d07..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,112 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructors_destructor_fn_imps.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-void
-PB_ASSOC_CLASS_C_DEC::
-copy_from_range(It first_it, It last_it)
-{
-  while (first_it != last_it)
-    insert(*(first_it++));
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME()
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
-  PB_ASSOC_BASE_C_DEC(r_cmp_fn)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator) :
-  PB_ASSOC_BASE_C_DEC(r_cmp_fn, r_node_updator)
-{
-  initialize();
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  PB_ASSOC_BASE_C_DEC(r_other)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    PB_ASSOC_BASE_C_DEC::swap(r_other);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-initialize()
-{
-  PB_ASSOC_BASE_C_DEC::m_p_head->m_special = true;
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
deleted file mode 100644
index 73230ad568e8..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file debug_fn_imps.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-#ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_valid() const
-{
-  PB_ASSOC_BASE_C_DEC::assert_valid(true, true);
-
-  assert_special_imp(m_p_head->m_p_parent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-assert_special_imp(const node_pointer p_nd) const
-{
-  if (p_nd == NULL)
-    return;
-
-  PB_ASSOC_DBG_ASSERT(!p_nd->m_special);
-
-  assert_special_imp(p_nd->m_p_left);
-
-  assert_special_imp(p_nd->m_p_right);
-}
-
-#endif // #ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
deleted file mode 100644
index 06806275ecf1..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
+++ /dev/null
@@ -1,245 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase(const_key_reference r_key)
-{
-  iterator it = find(r_key);
-
-  if (it == PB_ASSOC_BASE_C_DEC::find_end())
-    return (0);
-
-  erase(it);
-
-  return (1);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(const_iterator it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  if (it == PB_ASSOC_BASE_C_DEC::find_end())
-    return (it);
-
-  const_iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  return (ret_it);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(iterator it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_iterators();)
-
-    if (it == PB_ASSOC_BASE_C_DEC::find_end())
-      return (it);
-
-  iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_iterators();)
-
-    return (ret_it);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(const_reverse_iterator it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  if (it == PB_ASSOC_BASE_C_DEC::find_rend())
-    return (it);
-
-  const_reverse_iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  return (ret_it);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::reverse_iterator
-PB_ASSOC_CLASS_C_DEC::
-erase(reverse_iterator it)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  if (it == PB_ASSOC_BASE_C_DEC::find_rend())
-    return (it);
-
-  reverse_iterator ret_it = it;
-
-  ++ret_it;
-
-  erase_node(it.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  return (ret_it);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-PB_ASSOC_CLASS_T_DEC
-template<class Pred>
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-erase_if(Pred pred)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    size_type num_ersd = 0;
-
-  iterator it = PB_ASSOC_BASE_C_DEC::begin();
-
-  while (it != PB_ASSOC_BASE_C_DEC::end())
-    if (pred(*it))
-      {
-	++num_ersd;
-
-	it = erase(it);
-      }
-    else
-      ++it;
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (num_ersd);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-erase_node(node_pointer p_nd)
-{
-  PB_ASSOC_DBG_ASSERT(p_nd != NULL);
-
-  splay(p_nd);
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-    PB_ASSOC_DBG_ASSERT(p_nd == PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent);
-
-  node_pointer p_l = p_nd->m_p_left;
-  node_pointer p_r = p_nd->m_p_right;
-
-  PB_ASSOC_BASE_C_DEC::update_min_max_for_erased_node(p_nd);
-
-  PB_ASSOC_BASE_C_DEC::actual_erase_node(p_nd);
-
-  if (p_r == NULL)
-    {
-      PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_l;
-
-      if (p_l != NULL)
-	p_l->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-      PB_ASSOC_DBG_ONLY(assert_valid();)
-
-	return;
-    }
-
-  node_pointer p_target_r = leftmost(p_r);
-
-  PB_ASSOC_DBG_ASSERT(p_target_r != NULL);
-
-  p_r->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-  PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_r;
-
-  splay(p_target_r);
-
-  PB_ASSOC_DBG_ONLY(p_target_r->m_p_left = NULL);
-
-  PB_ASSOC_DBG_ASSERT(p_target_r->m_p_parent ==
-		      PB_ASSOC_BASE_C_DEC::m_p_head);
-
-  PB_ASSOC_DBG_ASSERT(PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent ==
-		      p_target_r);
-
-  p_target_r->m_p_left = p_l;
-
-  if (p_l != NULL)
-    p_l->m_p_parent = p_target_r;
-
-  PB_ASSOC_DBG_ONLY(assert_valid();)
-
-    apply_update(p_target_r, (Node_Updator* )this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::node_pointer
-PB_ASSOC_CLASS_C_DEC::
-leftmost(node_pointer p_nd)
-{
-  PB_ASSOC_DBG_ASSERT(p_nd != NULL);
-
-  while (p_nd->m_p_left != NULL)
-    p_nd = p_nd->m_p_left;
-
-  return (p_nd);
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
deleted file mode 100644
index 137712711aaf..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-lower_bound(const_key_reference r_key)
-{
-  find_iterator it = PB_ASSOC_BASE_C_DEC::find(r_key);
-
-  if (it != PB_ASSOC_BASE_C_DEC::end())
-    splay(it.m_p_nd);
-
-  return (it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-lower_bound(const_key_reference r_key) const
-{
-  find_iterator it = PB_ASSOC_BASE_C_DEC::lower_bound(r_key);
-
-  if (it != PB_ASSOC_BASE_C_DEC::end())
-    splay(it.m_p_nd);
-
-  return (it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-upper_bound(const_key_reference r_key)
-{
-  find_iterator it = PB_ASSOC_BASE_C_DEC::upper_bound(r_key);
-
-  if (it != PB_ASSOC_BASE_C_DEC::end())
-    splay(it.m_p_nd);
-
-  return (it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-upper_bound(const_key_reference r_key) const
-{
-  find_iterator it = PB_ASSOC_BASE_C_DEC::upper_bound(r_key);
-
-  if (it != PB_ASSOC_BASE_C_DEC::end())
-    splay(it.m_p_nd);
-
-  return (it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key)
-{
-  find_iterator it = PB_ASSOC_BASE_C_DEC::find(r_key);
-
-  if (it != PB_ASSOC_BASE_C_DEC::end())
-    splay(it.m_p_nd);
-
-  return (it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_find_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const_key_reference r_key) const
-{
-  const_find_iterator it = PB_ASSOC_BASE_C_DEC::find(r_key);
-
-  if (it != PB_ASSOC_BASE_C_DEC::end())
-    const_cast<PB_ASSOC_CLASS_C_DEC* >(this)->splay(it.m_p_nd);
-
-  return (it);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
deleted file mode 100644
index cb01109cf165..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains an implementation.
- */
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
deleted file mode 100644
index 917284f20ed0..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_fn_imps.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline std::pair<typename PB_ASSOC_CLASS_C_DEC::find_iterator, bool>
-PB_ASSOC_CLASS_C_DEC::
-insert(const_reference r_value)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    std::pair<find_iterator, bool> ins_pair =
-    PB_ASSOC_BASE_C_DEC::insert_leaf(r_value);
-
-  ins_pair.first.m_p_nd->m_special = false;
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true));
-
-  splay(ins_pair.first.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid(true, true));
-
-  return (ins_pair);
-}
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::data_reference
-PB_ASSOC_CLASS_C_DEC::
-subscript_imp(const_key_reference r_key)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    std::pair<find_iterator, bool> ins_pair =
-    PB_ASSOC_BASE_C_DEC::insert_leaf(
-				     value_type(r_key, Data()));
-
-  ins_pair.first.m_p_nd->m_special = false;
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_valid());
-
-  splay(ins_pair.first.m_p_nd);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    return (ins_pair.first.m_p_nd->m_value.second);
-}
-#endif // #ifdef PB_ASSOC_DATA_TRUE
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/node.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/node.hpp
deleted file mode 100644
index c9a54602f1f3..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/node.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file node.hpp
- * Contains an implementation struct for splay_tree_'s node.
- */
-
-#ifndef SPLAY_TREE_NODE_HPP
-#define SPLAY_TREE_NODE_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<class Value_Type, class Allocator>
-    struct splay_tree_node_
-    {
-    public:
-      typedef
-      typename Allocator::template rebind<
-	splay_tree_node_<
-	Value_Type,
-	Allocator> >::other::pointer
-      node_pointer;
-
-    public:
-      inline bool
-      special_dec_check() const
-      {
-	return (m_special);
-      }
-
-    public:
-      typedef Value_Type value_type;
-
-      value_type m_value;
-
-      bool m_special;
-
-      node_pointer m_p_left;
-      node_pointer m_p_right;
-
-      node_pointer m_p_parent;
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef SPLAY_TREE_NODE_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
deleted file mode 100644
index 24ed4a0078da..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
+++ /dev/null
@@ -1,289 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file splay_fn_imps.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-splay(node_pointer p_nd)
-{
-  while (p_nd->m_p_parent != PB_ASSOC_BASE_C_DEC::m_p_head)
-    {
-      PB_ASSOC_DBG_ONLY(PB_ASSOC_BASE_C_DEC::assert_node_consistent(p_nd);)
-
-	if (p_nd->m_p_parent->m_p_parent ==
-	    PB_ASSOC_BASE_C_DEC::m_p_head)
-	  {
-	    PB_ASSOC_BASE_C_DEC::rotate_parent(p_nd);
-
-	    PB_ASSOC_DBG_ASSERT(p_nd ==
-				PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent);
-	  }
-	else
-	  {
-	    const node_pointer p_parent = p_nd->m_p_parent;
-	    const node_pointer p_grandparent = p_parent->m_p_parent;
-
-#ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-	    const size_type total =
-	      PB_ASSOC_BASE_C_DEC::recursive_count(p_grandparent);
-
-	    PB_ASSOC_DBG_ASSERT(total >= 3);
-#endif // #ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-
-	    if (p_parent->m_p_left == p_nd&& 
-		p_grandparent->m_p_right == p_parent)
-	      splay_zig_zag_left(p_nd, p_parent, p_grandparent);
-	    else if (p_parent->m_p_right == p_nd&& 
-		     p_grandparent->m_p_left == p_parent)
-	      splay_zig_zag_right(p_nd, p_parent, p_grandparent);
-	    else if (p_parent->m_p_left == p_nd&& 
-		     p_grandparent->m_p_left == p_parent)
-	      splay_zig_zig_left(p_nd, p_parent, p_grandparent);
-	    else
-	      splay_zig_zig_right(p_nd, p_parent, p_grandparent);
-
-	    PB_ASSOC_DBG_ASSERT(total ==
-				PB_ASSOC_BASE_C_DEC::recursive_count(p_nd));
-	  }
-
-      PB_ASSOC_DBG_ONLY(assert_node_consistent(p_nd);)
-	}
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-splay_zig_zag_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
-{
-  PB_ASSOC_DBG_ASSERT(p_parent == p_nd->m_p_parent);
-  PB_ASSOC_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_grandparent);)
-
-    PB_ASSOC_DBG_ASSERT(p_parent->m_p_left == p_nd&& 
-			p_grandparent->m_p_right == p_parent);
-
-  splay_zz_start(p_nd, p_parent, p_grandparent);
-
-  node_pointer p_b = p_nd->m_p_right;
-  node_pointer p_c = p_nd->m_p_left;
-
-  p_nd->m_p_right = p_parent;
-  p_parent->m_p_parent = p_nd;
-
-  p_nd->m_p_left = p_grandparent;
-  p_grandparent->m_p_parent = p_nd;
-
-  p_parent->m_p_left = p_b;
-  if (p_b != NULL)
-    p_b->m_p_parent = p_parent;
-
-  p_grandparent->m_p_right = p_c;
-  if (p_c != NULL)
-    p_c->m_p_parent = p_grandparent;
-
-  splay_zz_end(p_nd, p_parent, p_grandparent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-splay_zig_zag_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
-{
-  PB_ASSOC_DBG_ASSERT(p_parent == p_nd->m_p_parent);
-  PB_ASSOC_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_grandparent);)
-
-    PB_ASSOC_DBG_ASSERT(p_parent->m_p_right == p_nd&& 
-			p_grandparent->m_p_left == p_parent);
-
-  splay_zz_start(p_nd, p_parent, p_grandparent);
-
-  node_pointer p_b = p_nd->m_p_left;
-  node_pointer p_c = p_nd->m_p_right;
-
-  p_nd->m_p_left = p_parent;
-  p_parent->m_p_parent = p_nd;
-
-  p_nd->m_p_right = p_grandparent;
-  p_grandparent->m_p_parent = p_nd;
-
-  p_parent->m_p_right = p_b;
-  if (p_b != NULL)
-    p_b->m_p_parent = p_parent;
-
-  p_grandparent->m_p_left = p_c;
-  if (p_c != NULL)
-    p_c->m_p_parent = p_grandparent;
-
-  splay_zz_end(p_nd, p_parent, p_grandparent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-splay_zig_zig_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
-{
-  PB_ASSOC_DBG_ASSERT(p_parent == p_nd->m_p_parent);
-  PB_ASSOC_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_grandparent);)
-
-    PB_ASSOC_DBG_ASSERT(p_parent->m_p_left == p_nd&& 
-			p_nd->m_p_parent->m_p_parent->m_p_left == p_nd->m_p_parent);
-
-  splay_zz_start(p_nd, p_parent, p_grandparent);
-
-  node_pointer p_b = p_nd->m_p_right;
-  node_pointer p_c = p_parent->m_p_right;
-
-  p_nd->m_p_right = p_parent;
-  p_parent->m_p_parent = p_nd;
-
-  p_parent->m_p_right = p_grandparent;
-  p_grandparent->m_p_parent = p_parent;
-
-  p_parent->m_p_left = p_b;
-  if (p_b != NULL)
-    p_b->m_p_parent = p_parent;
-
-  p_grandparent->m_p_left = p_c;
-  if (p_c != NULL)
-    p_c->m_p_parent = p_grandparent;
-
-  splay_zz_end(p_nd, p_parent, p_grandparent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-splay_zig_zig_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
-{
-  PB_ASSOC_DBG_ASSERT(p_parent == p_nd->m_p_parent);
-  PB_ASSOC_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_grandparent);)
-
-    PB_ASSOC_DBG_ASSERT(p_parent->m_p_right == p_nd&& 
-			p_nd->m_p_parent->m_p_parent->m_p_right == p_nd->m_p_parent);
-
-  splay_zz_start(p_nd, p_parent, p_grandparent);
-
-  node_pointer p_b = p_nd->m_p_left;
-  node_pointer p_c = p_parent->m_p_left;
-
-  p_nd->m_p_left = p_parent;
-  p_parent->m_p_parent = p_nd;
-
-  p_parent->m_p_left = p_grandparent;
-  p_grandparent->m_p_parent = p_parent;
-
-  p_parent->m_p_right = p_b;
-  if (p_b != NULL)
-    p_b->m_p_parent = p_parent;
-
-  p_grandparent->m_p_right = p_c;
-  if (p_c != NULL)
-    p_c->m_p_parent = p_grandparent;
-
-  PB_ASSOC_BASE_C_DEC::update_to_top(
-				     p_grandparent, (Node_Updator* )this);
-
-  splay_zz_end(p_nd, p_parent, p_grandparent);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-splay_zz_start(node_pointer p_nd,
-#ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-	       node_pointer p_parent,
-#else // #ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-	       node_pointer /*p_parent*/,
-#endif // #ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-	       node_pointer p_grandparent)
-{
-  PB_ASSOC_DBG_ASSERT(p_nd != NULL);
-  PB_ASSOC_DBG_ASSERT(p_parent != NULL);
-  PB_ASSOC_DBG_ASSERT(p_grandparent != NULL);
-
-  const bool grandparent_head =
-    p_grandparent->m_p_parent == PB_ASSOC_BASE_C_DEC::m_p_head;
-
-  if (grandparent_head)
-    {
-      PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent =
-	PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent;
-
-      p_nd->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-      return;
-    }
-
-  node_pointer p_greatgrandparent = p_grandparent->m_p_parent;
-
-  p_nd->m_p_parent = p_greatgrandparent;
-
-  if (p_grandparent == p_greatgrandparent->m_p_left)
-    p_greatgrandparent->m_p_left = p_nd;
-  else
-    p_greatgrandparent->m_p_right = p_nd;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-splay_zz_end(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
-{
-  if (p_nd->m_p_parent == PB_ASSOC_BASE_C_DEC::m_p_head)
-    PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_nd;
-
-  apply_update(p_grandparent, (Node_Updator* )this);
-  apply_update(p_parent, (Node_Updator* )this);
-  apply_update(p_nd, (Node_Updator* )this);
-
-  PB_ASSOC_DBG_ONLY(assert_node_consistent(p_nd);)
-    }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
deleted file mode 100644
index 001cc3ff5e92..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
+++ /dev/null
@@ -1,342 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file splay_tree_.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#ifndef BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
-#define BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
-#include <ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp>
-#endif // #ifndef BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#ifndef BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
-#define BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
-#include <ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp>
-#endif // #ifndef BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#include <ext/pb_assoc/detail/splay_tree_/node.hpp>
-#include <utility>
-#include <vector>
-#include <assert.h>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class Cmp_Fn, \
-		class Allocator, \
-		class Node_Updator>
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	splay_tree_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_CLASS_NAME \
-	splay_tree_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-#define PB_ASSOC_BASE_CLASS_NAME \
-	bin_search_tree_data_
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-#ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-#define PB_ASSOC_BASE_CLASS_NAME \
-	bin_search_tree_no_data_
-#endif // #ifdef PB_ASSOC_DATA_FALSE_INDICATOR
-
-#define PB_ASSOC_CLASS_C_DEC \
-	PB_ASSOC_CLASS_NAME< \
-		Key, \
-		Data, \
-		Cmp_Fn, \
-		Allocator, \
-		Node_Updator>
-
-#define PB_ASSOC_TYPES_TRAITS_C_DEC \
-	types_traits< \
-		Key, \
-		Data, \
-		Allocator>
-
-#define PB_ASSOC_NODE_C_DEC \
-	splay_tree_node_< \
-		typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type, \
-		Allocator>
-
-#define PB_ASSOC_BASE_C_DEC \
-	PB_ASSOC_BASE_CLASS_NAME< \
-		Key, \
-		Data, \
-		PB_ASSOC_NODE_C_DEC, \
-		Cmp_Fn, \
-		Allocator, \
-		Node_Updator>
-
-    template<typename Key,
-	     typename Data,
-	     class Cmp_Fn,
-	     class Allocator,
-	     class Node_Updator>
-    struct PB_ASSOC_CLASS_NAME : public PB_ASSOC_BASE_C_DEC
-    {
-
-    protected:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_key_reference
-      const_key_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_type data_type;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::data_reference
-      data_reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_data_reference
-      const_data_reference;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::value_type value_type;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::pointer pointer;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_pointer
-      const_pointer;
-
-      typedef typename PB_ASSOC_TYPES_TRAITS_C_DEC::reference reference;
-
-      typedef
-      typename PB_ASSOC_TYPES_TRAITS_C_DEC::const_reference
-      const_reference;
-
-      typedef typename PB_ASSOC_BASE_C_DEC::node_pointer node_pointer;
-
-      typedef typename PB_ASSOC_BASE_C_DEC::find_iterator find_iterator;
-
-      typedef
-      typename PB_ASSOC_BASE_C_DEC::const_iterator
-      const_find_iterator;
-
-      typedef typename PB_ASSOC_BASE_C_DEC::iterator iterator;
-
-      typedef typename PB_ASSOC_BASE_C_DEC::const_iterator const_iterator;
-
-      typedef
-      typename PB_ASSOC_BASE_C_DEC::reverse_iterator
-      reverse_iterator;
-
-      typedef
-      typename PB_ASSOC_BASE_C_DEC::const_reverse_iterator
-      const_reverse_iterator;
-
-    protected:
-
-      PB_ASSOC_CLASS_NAME();
-
-      PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
-
-      PB_ASSOC_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator);
-
-      PB_ASSOC_CLASS_NAME(const PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      template<class It>
-      void
-      copy_from_range(It first_it, It last_it);
-
-      void
-      initialize();
-
-      inline std::pair<find_iterator, bool>
-      insert(const_reference r_value);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline data_reference
-      subscript_imp(const_key_reference r_key);
-#endif // #ifdef PB_ASSOC_DATA_TRUE
-
-      inline find_iterator
-      lower_bound(const_key_reference r_key);
-
-      inline const_find_iterator
-      lower_bound(const_key_reference r_key) const;
-
-      inline find_iterator
-      upper_bound(const_key_reference r_key);
-
-      inline const_find_iterator
-      upper_bound(const_key_reference r_key) const;
-
-      inline find_iterator
-      find(const_key_reference r_key);
-
-      inline const_find_iterator
-      find(const_key_reference r_key) const;
-
-      inline size_type
-      erase(const_key_reference r_key);
-
-      inline const_iterator
-      erase(const_iterator it);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline iterator
-      erase(iterator it);
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      inline const_reverse_iterator
-      erase(const_reverse_iterator it);
-
-#ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-      inline reverse_iterator
-      erase(reverse_iterator it);
-#endif // #ifdef PB_ASSOC_DATA_TRUE_INDICATOR
-
-      template<class Pred>
-      inline size_type
-      erase_if(Pred pred);
-
-      inline node_pointer
-      leftmost(node_pointer p_nd);
-
-      void
-      join(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      void
-      split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other);
-
-#ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-
-      virtual void
-      assert_valid() const;
-
-      void
-      assert_special_imp(const node_pointer p_nd) const;
-
-#endif // #ifdef PB_ASSOC_SPLAY_TREE_DEBUG_
-
-    private:
-
-      void
-      splay(node_pointer p_nd);
-
-      inline void
-      splay_zig_zag_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
-
-      inline void
-      splay_zig_zag_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
-
-      inline void
-      splay_zig_zig_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
-
-      inline void
-      splay_zig_zig_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
-
-      inline void
-      splay_zz_start(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
-
-      inline void
-      splay_zz_end(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
-
-      void
-      erase_node(node_pointer p_nd);
-
-    };
-
-#include <ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp>
-#include <ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp>
-#include <ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp>
-#include <ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp>
-#include <ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp>
-#include <ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp>
-#include <ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp>
-#include <ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_TYPES_TRAITS_C_DEC
-
-#undef PB_ASSOC_BASE_CLASS_NAME
-
-#undef PB_ASSOC_NODE_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
deleted file mode 100644
index 4d3d3e6e8c39..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
+++ /dev/null
@@ -1,125 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file split_join_fn_imps.hpp
- * Contains an implementation class for splay_tree_.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-join(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-    if (PB_ASSOC_BASE_C_DEC::join_prep(r_other) == false)
-      {
-	PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-	  PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid();)
-
-	  return;
-      }
-
-  node_pointer p_target_r = r_other.leftmost(r_other.m_p_head);
-
-  PB_ASSOC_DBG_ASSERT(p_target_r != NULL);
-
-  r_other.splay(p_target_r);
-
-  PB_ASSOC_DBG_ASSERT(p_target_r == r_other.m_p_head->m_p_parent);
-  PB_ASSOC_DBG_ASSERT(p_target_r->m_p_left == NULL);
-
-  p_target_r->m_p_left = PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent;
-
-  PB_ASSOC_DBG_ASSERT(p_target_r->m_p_left != NULL);
-  p_target_r->m_p_left->m_p_parent = p_target_r;
-
-  PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_target_r;
-  p_target_r->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-  apply_update(p_target_r, (Node_Updator* )this);
-
-  PB_ASSOC_BASE_C_DEC::join_finish(r_other);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid();)
-    }
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-split(const_key_reference r_key, PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-  if (PB_ASSOC_BASE_C_DEC::split_prep(r_key, r_other) == false)
-    {
-      PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-      PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid());
-
-      return;
-    }
-
-  node_pointer p_upper_bound = upper_bound(r_key).m_p_nd;
-  PB_ASSOC_DBG_ASSERT(p_upper_bound != NULL);
-
-  PB_ASSOC_DBG_ASSERT(p_upper_bound->m_p_parent ==
-		      PB_ASSOC_BASE_C_DEC::m_p_head);
-
-  node_pointer p_new_root = p_upper_bound->m_p_left;
-  PB_ASSOC_DBG_ASSERT(p_new_root != NULL);
-
-  PB_ASSOC_BASE_C_DEC::m_p_head->m_p_parent = p_new_root;
-  p_new_root->m_p_parent = PB_ASSOC_BASE_C_DEC::m_p_head;
-
-  r_other.m_p_head->m_p_parent = p_upper_bound;
-  p_upper_bound->m_p_parent = r_other.m_p_head;
-  p_upper_bound->m_p_left = NULL;
-
-  apply_update(p_upper_bound, (Node_Updator* )this);
-
-  PB_ASSOC_BASE_C_DEC::split_finish(r_other);
-
-  PB_ASSOC_DBG_ONLY(PB_ASSOC_CLASS_C_DEC::assert_valid());
-  PB_ASSOC_DBG_ONLY(r_other.PB_ASSOC_CLASS_C_DEC::assert_valid());
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/standard_policies.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/standard_policies.hpp
deleted file mode 100644
index 7597b52a3ce1..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/standard_policies.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file standard_policies.hpp
- * Contains standard policies for containers.
- */
-
-#ifndef STANDARD_POLICIES_HPP
-#define STANDARD_POLICIES_HPP
-
-#include <memory>
-#include <ext/pb_assoc/hash_policy.hpp>
-#include <ext/pb_assoc/lu_policy.hpp>
-#include <ext/pb_assoc/tree_policy.hpp>
-#if defined(__GNUC__)
-#include <ext/hash_map>
-#elif defined(_MSC_VER)
-#include <hash_map>
-#else
-#error "Unable to determine the namespaces for your compiler. Please" \
-	"Contact pbassoc@gmail.com"
-#endif // #if defined(__GNUC__)
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#ifdef __GNUC__
-
-    template<typename Key>
-    struct def_hash_fn
-    {
-      typedef __gnu_cxx::hash<Key> type;
-    };
-
-    template<typename Key>
-    struct def_eq_fn
-    {
-      typedef std::equal_to<Key> type;
-    };
-
-#elif defined(_MSC_VER)
-
-    template<typename Key>
-    struct hash_value_class_adapter
-    {
-      inline size_t
-      operator()(const Key& r_key) const
-      {
-	return (stdext::hash_value(r_key));
-      }
-    };
-
-    template<typename Key>
-    struct def_hash_fn
-    {
-      typedef hash_value_class_adapter<Key> type;
-    };
-
-    template<typename Key>
-    struct def_eq_fn
-    {
-      typedef std::equal_to<Key> type;
-    };
-
-#else // #elif defined(_MSC_VER)
-
-#error Sorry, cannot determine headers, namespaces, etc. for your compiler.
-#error If you encounter this error, pls write to pbassoc@gmail.com
-
-#endif // #elif defined(_MSC_VER)
-
-    enum
-      {
-	def_store_hash = false
-      };
-
-    struct def_comb_hash_fn
-    {
-      typedef pb_assoc::direct_mask_range_hashing<> type;
-    };
-
-    template<class Comb_Hash_Fn>
-    struct def_resize_policy
-    {
-    private:
-      typedef typename Comb_Hash_Fn::size_type size_type;
-
-      typedef
-      typename pb_assoc::detail::cond_type<
-	pb_assoc::detail::is_same_type<
-	pb_assoc::direct_mask_range_hashing<size_type>,
-	Comb_Hash_Fn>::value,
-	pb_assoc::hash_exponential_size_policy<
-	size_type>,
-	pb_assoc::hash_prime_size_policy>::type
-      size_policy_type;
-
-    public:
-      typedef
-      pb_assoc::hash_standard_resize_policy<
-	size_policy_type,
-	pb_assoc::hash_load_check_resize_trigger<
-	false,
-	size_type>,
-	false,
-	size_type>
-      type;
-    };
-
-    struct def_update_policy
-    {
-      typedef pb_assoc::move_to_front_lu_policy<> type;
-    };
-
-    template<class Comb_Probe_Fn>
-    struct def_probe_fn
-    {
-    private:
-      typedef typename Comb_Probe_Fn::size_type size_type;
-
-    public:
-      typedef
-      typename pb_assoc::detail::cond_type<
-	pb_assoc::detail::is_same_type<
-	pb_assoc::direct_mask_range_hashing<size_t>,
-	Comb_Probe_Fn>::value,
-	pb_assoc::linear_probe_fn<
-	size_type>,
-	pb_assoc::quadratic_probe_fn<
-	size_type> >::type
-      type;
-    };
-
-    typedef pb_assoc::null_node_updator def_node_updator;
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef STANDARD_POLICIES_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/standard_sizes.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/standard_sizes.hpp
deleted file mode 100644
index cc667b91d3a5..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/standard_sizes.hpp
+++ /dev/null
@@ -1,65 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file standard_sizes.hpp
- * Contains standard sizes for containers.
- */
-
-#ifndef STANDARD_SIZES_HPP
-#define STANDARD_SIZES_HPP
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    enum
-      {
-	def_init_size = 8,
-	def_grow_factor = 2
-      };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef STANDARD_SIZES_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
deleted file mode 100644
index cc8495fe428f..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
+++ /dev/null
@@ -1,130 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file constructor_destructor_fn_imps.hpp
- * Contains implementation of rb trees
- */
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-tree_assoc_cntnr()
-{
-  //Do nothing
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-tree_assoc_cntnr(const Cmp_Fn& r_cmp_fn) :
-  PB_ASSOC_CLASS_C_DEC::my_base(r_cmp_fn)
-{
-  //Do nothing
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-tree_assoc_cntnr(const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator) :
-  PB_ASSOC_CLASS_C_DEC::my_base(r_cmp_fn, r_node_updator)
-{
-  //Do nothing
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-tree_assoc_cntnr(It first_it, It last_it)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-tree_assoc_cntnr(It first_it, It last_it, const Cmp_Fn& r_cmp_fn) :
-  PB_ASSOC_CLASS_C_DEC::my_base(r_cmp_fn)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-template<class It>
-PB_ASSOC_CLASS_C_DEC::
-tree_assoc_cntnr(It first_it, It last_it, const Cmp_Fn& r_cmp_fn, const Node_Updator& r_node_updator) :
-  PB_ASSOC_CLASS_C_DEC::my_base(r_cmp_fn, r_node_updator)
-{
-  my_base::copy_from_range(first_it, last_it);
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-tree_assoc_cntnr(const PB_ASSOC_CLASS_C_DEC& r_other) :
-  my_base((const PB_ASSOC_BASE_C_DEC& )r_other)
-{
-  //Do nothing
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~tree_assoc_cntnr()
-{
-  //Do nothing
-}
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC& 
-PB_ASSOC_CLASS_C_DEC::
-operator=(const PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  if (this !=& r_other)
-    {
-      PB_ASSOC_CLASS_C_DEC tmp(r_other);
-
-      swap(tmp);
-    }
-
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& r_other)
-{
-  return (my_base::swap(r_other));
-}
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
deleted file mode 100644
index 8cd0013ceddd..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
+++ /dev/null
@@ -1,49 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file null_node_updator_imp.hpp
- * Contains an implementation of null_node_updator.
- */
-
-inline void
-null_node_updator::
-swap(null_node_updator& /*r_other*/)
-{ }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
deleted file mode 100644
index 7e3550188d60..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
+++ /dev/null
@@ -1,436 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file order_statistics_imp.hpp
- * Contains forward declarations for order_statistics_key
- */
-
-#ifndef ORDER_STATISTICS_IMP_HPP
-#define ORDER_STATISTICS_IMP_HPP
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Key, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_key< \
-		Key, \
-		Allocator>
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-order_statistics_key(const_key_reference r_key) :
-  m_key(r_key),
-  m_rank(1)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-operator typename PB_ASSOC_CLASS_C_DEC::key_reference()
-{
-  return (m_key);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-operator typename PB_ASSOC_CLASS_C_DEC::key_type() const
-{
-  return (m_key);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cmp_Fn, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_key_cmp< \
-		Cmp_Fn, \
-		Allocator>
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-order_statistics_key_cmp()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-order_statistics_key_cmp(const Cmp_Fn& r_cmp_fn) :
-  Cmp_Fn(r_cmp_fn)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-operator()(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const
-{
-  return Cmp_Fn::operator()((key_type)r_lhs_key, (key_type)r_rhs_key);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::cmp_fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_cmp_fn()
-{
-  return (*this);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline const typename PB_ASSOC_CLASS_C_DEC::cmp_fn& 
-PB_ASSOC_CLASS_C_DEC::
-get_cmp_fn() const
-{
-  return (*this);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Key, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_node_updator< \
-		Key, \
-		Allocator>
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-operator()(const_key_pointer p_key, const_key_pointer p_l_child_key, const_key_pointer p_r_child_key)
-{
-  /*
-   * The left rank is 0 if there is no left child,
-   *	or the rank of the left child, otherwise.
-   */
-  const size_type l_rank =(p_l_child_key == NULL)? 0 : p_l_child_key->m_rank;
-
-  /*
-   * The right rank is 0 if there is no right child,
-   *	or the rank of the right child, otherwise.
-   */
-  const size_type r_rank =(p_r_child_key == NULL)? 0 : p_r_child_key->m_rank;
-
-  /*
-   * The rand of the entry is the sumb of the ranks of its
-   *	children + 1 (for itself).
-   */
-  p_key->m_rank = 1 + l_rank + r_rank;
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline void
-PB_ASSOC_CLASS_C_DEC::
-swap(PB_ASSOC_CLASS_C_DEC& /*r_other*/)
-{ }
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	find_by_order< \
-		Cntnr>
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-operator()(Cntnr& r_c, size_type order) const
-{
-  return find(r_c, order);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-operator()(const Cntnr& r_c, size_type order) const
-{
-  return find(r_c, order);
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::const_iterator
-PB_ASSOC_CLASS_C_DEC::
-find(const Cntnr& r_c, size_type order)
-{
-  if (order > r_c.size())
-    return (r_c.end());
-
-  /*
-   * Start at the top of the tree.
-   */
-  typename Cntnr::const_node_iterator it = r_c.node_begin();
-
-  /*
-   * Loop up to a leaf.
-   */
-  while (it != r_c.node_end())
-    {
-      typename Cntnr::const_node_iterator l_it = it.l_child();
-
-      /*
-       * The order of the element, o, is the rank of the left
-       *	child (for the entry itself).
-       */
-      const size_type o = (l_it == r_c.node_end())?
-	0 :(*l_it)->m_rank;
-
-      /*
-       * If the current order, o, is the order requested,
-       *	the key has been found.
-       */
-      if (order == o)
-	return (*it);
-      /*
-       * If the current order, o, is larger than the order requested,
-       *	we should move to the left subtree.
-       */
-      else if (order < o)
-	it = l_it;
-      /*
-       * Otherwise adujst the requested order and move to the right subtree.
-       */
-      else
-	{
-	  order -= o + 1;
-
-	  it = it.r_child();
-	}
-    }
-
-  return (r_c.end());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::iterator
-PB_ASSOC_CLASS_C_DEC::
-find(Cntnr& r_c, size_type order)
-{
-  if (order > r_c.size())
-    return (r_c.end());
-
-  /*
-   * Start at the top of the tree.
-   */
-  typename Cntnr::node_iterator it = r_c.node_begin();
-
-  /*
-   * Loop up to a leaf.
-   */
-  while (it != r_c.node_end())
-    {
-      typename Cntnr::node_iterator l_it = it.l_child();
-
-      /*
-       * The order of the element, o, is the rank of the left
-       *	child (for the entry itself).
-       */
-      const size_type o = (l_it == r_c.node_end())?
-	0 :
-	r_c.extract_key(*(*l_it)).m_rank;
-
-      /*
-       * If the current order, o, is the order requested,
-       *	the key has been found.
-       */
-      if (order == o)
-	return (*it);
-      /*
-       * If the current order, o, is larger than the order requested,
-       *	we should move to the left subtree.
-       */
-      else if (order < o)
-	it = l_it;
-      /*
-       * Otherwise adujst the requested order and move to the right subtree.
-       */
-      else
-	{
-	  order -= o + 1;
-
-	  it = it.r_child();
-	}
-    }
-
-  return (r_c.end());
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_by_key< \
-		Cntnr>
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-operator()(const Cntnr& r_c, const underlying_key_type& r_key) const
-{
-  /*
-   * The logic here is similar to that in order_by_key.
-   */
-
-  typename Cntnr::const_node_iterator it = r_c.node_begin();
-
-  size_type ord = 0;
-
-  while (it != r_c.node_end())
-    {
-      typename Cntnr::const_node_iterator l_it = it.l_child();
-
-      if (r_c.get_cmp_fn().get_cmp_fn()(
-					r_key,
-					r_c.extract_key(*(*it)).m_key))
-	it = l_it;
-      else if (r_c.get_cmp_fn().get_cmp_fn()(
-					     r_c.extract_key(*(*it)).m_key,
-					     r_key))
-	{
-
-	  ord += (l_it == r_c.node_end())?
-	    1 :
-	    1 + r_c.extract_key(*(*l_it)).m_rank;
-
-	  it = it.r_child();
-	}
-      else
-	{
-	  ord += (l_it == r_c.node_end())?
-	    0 :
-	    r_c.extract_key(*(*l_it)).m_rank;
-
-	  it = r_c.node_end();
-	}
-    }
-
-  return (ord);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Cntnr, class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_key_verifier< \
-		Cntnr, \
-		Allocator>
-
-template<class Cntnr, class Allocator = std::allocator<char> >
-class order_statistics_key_verifier
-{
-public:
-  typedef Cntnr map;
-
-  typedef Allocator allocator;
-
-  typedef typename allocator::size_type size_type;
-
-  typedef
-  typename allocator::template rebind<map>::other::const_reference
-  const_map_reference;
-
-public:
-  bool
-  operator()(const Cntnr& r_c) const;
-
-private:
-  typedef typename Cntnr::const_node_iterator const_node_iterator;
-
-  typedef typename Cntnr::const_iterator cntnr_const_it;
-
-  typedef std::pair<bool, size_type> stat;
-
-private:
-  static stat
-  verify_imp(const_node_iterator it, const_node_iterator end_it)
-  {
-    if (it == end_it)
-      return (std::make_pair(true, 0));
-
-    const stat l_ret =
-      verify_imp(it.l_child(), end_it);
-
-    const stat r_ret =
-      verify_imp(it.r_child(), end_it);
-
-    if (!l_ret.first || !r_ret.first)
-      return (std::make_pair(false, 0));
-
-    if ((*it)->m_rank != 1 + l_ret.second + r_ret.second)
-      return (std::make_pair(false, 0));
-
-    return (std::make_pair(true, (*it)->m_rank));
-  }
-};
-
-PB_ASSOC_CLASS_T_DEC
-bool
-PB_ASSOC_CLASS_C_DEC::
-operator()(const Cntnr& r_c) const
-{
-  const stat top_stat =
-    verify_imp(r_c.node_begin(), r_c.node_end());
-
-  return (top_stat.first);
-}
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#endif // #ifndef ORDER_STATISTICS_IMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/type_utils.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/type_utils.hpp
deleted file mode 100644
index 6c6a4e5c72b6..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/type_utils.hpp
+++ /dev/null
@@ -1,449 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file type_utils.hpp
- * Contains utilities for handnling types. All of these classes are based on
- *	"Modern C++" by Andrei Alxandrescu.
- */
-
-#ifndef TYPE_UTILS_HPP
-#define TYPE_UTILS_HPP
-
-#include <cstddef>
-#include <utility>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<bool>
-    struct static_assert;
-
-    template<>
-    struct static_assert<true>
-    { };
-
-    template<int>
-    struct static_assert_dummy_class
-    {
-      enum
-	{
-	  v = 1
-	};
-    };
-
-    template<class T, class U>
-    class is_same_type
-    {
-    public:
-      enum
-	{
-	  value = false
-	};
-    };
-
-    template<class T>
-    class is_same_type<
-      T,
-      T>
-    {
-    public:
-      enum
-	{
-	  value = true
-	};
-    };
-
-    template<int n>
-    struct int_to_type
-    {
-      enum
-	{
-	  value = n
-	};
-    };
-
-    template<typename Type>
-    struct type_to_type
-    {
-      typedef Type type;
-    };
-
-    template<typename T>
-    class unconst
-    {
-    private:
-      template<class U>
-      struct unconst_imp
-      {
-	typedef U type;
-      };
-
-      template<class U>
-      struct unconst_imp<
-	const U>
-      {
-	typedef U type;
-      };
-    public:
-      typedef typename unconst_imp<T>::type type;
-    };
-
-    template<typename T>
-    class unreference
-    {
-    private:
-      template<class U>
-      struct unreference_imp
-      {
-	typedef U type;
-      };
-
-      template<class U>
-      struct unreference_imp<U&>
-      {
-	typedef U type;
-      };
-    public:
-      typedef typename unreference_imp<T>::type type;
-    };
-
-    /* is_const_type
-     * Idea by Andrei Alecsandrescu
-     *	(Modern C++ Design: Generic Programming and Design Patterns Applied)
-     **/
-    template<typename T>
-    class is_const_type
-    {
-    private:
-      template<class U>
-      struct is_const_type_imp
-      {
-	enum
-	  {
-	    value = 0
-	  };
-      };
-
-      template<class U>
-      struct is_const_type_imp<const U>
-      {
-	enum
-	  {
-	    value = 1
-	  };
-      };
-
-    public:
-      enum
-	{
-	  value = is_const_type_imp<T>::value
-	};
-    };
-
-    /* is_pointer_type
-    **/
-    template<typename T>
-    class is_pointer_type
-    {
-    private:
-      template<class U>
-      struct is_pointer_type_imp
-      {
-	enum
-	  {
-	    value = 0
-	  };
-      };
-
-      template<class U>
-      struct is_pointer_type_imp
-      <U* >
-      {
-	enum
-	  {
-	    value = 1
-	  };
-      };
-
-    public:
-      enum
-	{
-	  value = is_pointer_type_imp<T>::value
-	};
-    };
-
-    /* is_pointer_type
-    **/
-    template<typename T>
-    class is_const_pointer_type
-    {
-    private:
-      template<class U>
-      struct is_const_pointer_type_imp
-      {
-	enum
-	  {
-	    value = 0
-	  };
-      };
-
-      template<class U>
-      struct is_const_pointer_type_imp
-      <const U* >
-      {
-	enum
-	  {
-	    value = 1
-	  };
-      };
-
-    public:
-      enum
-	{
-	  value = is_const_pointer_type_imp<T>::value
-	};
-    };
-
-    template<typename T>
-    class is_reference_type
-    {
-    private:
-      template<class U>
-      struct is_reference_type_imp
-      {
-	enum
-	  {
-	    value = 0
-	  };
-      };
-
-      template<class U>
-      struct is_reference_type_imp<U& >
-      {
-	enum
-	  {
-	    value = 1
-	  };
-      };
-
-    public:
-      enum
-	{
-	  value = is_reference_type_imp<T>::value
-	};
-    };
-
-    template<typename T>
-    class is_const_reference_type
-    {
-    private:
-      template<class U>
-      struct is_const_reference_type_imp
-      {
-	enum
-	  {
-	    value = 0
-	  };
-      };
-
-      template<class U>
-      struct is_const_reference_type_imp<U& >
-      {
-	enum
-	  {
-	    value = 1
-	  };
-      };
-
-    public:
-      enum
-	{
-	  value = is_const_reference_type_imp<T>::value
-	};
-    };
-
-    template<typename T>
-    class is_member_pointer_type
-    {
-    private:
-      template<typename U>
-      struct is_member_pointer_type_imp
-      {
-	enum
-	  {
-	    value = 0
-	  };
-      };
-
-      template<typename U, typename V>
-      struct is_member_pointer_type_imp<
-	U V::*>
-      {
-	enum
-	  {
-	    value = 1
-	  };
-      };
-
-    public:
-      enum
-	{
-	  value = is_member_pointer_type_imp<T>::value
-	};
-    };
-
-#define PB_ASSOC_IS_SAME_TYPE(TYPE) is_same_type<T, TYPE>::value
-
-    template<class T>
-    class is_simple_type
-    {
-      template<class U>
-      struct is_simple_type_imp
-      {
-	enum
-	  {
-	    value = 0
-	  };
-      };
-
-      template<class U, size_t M>
-      struct is_simple_type_imp<
-	U[M]>
-      {
-	enum
-	  {
-	    value = is_simple_type<U>::value
-	  };
-      };
-
-      template<class U>
-      struct is_simple_type_imp<
-	U[]>
-      {
-	enum
-	  {
-	    value = is_simple_type<U>::value
-	  };
-      };
-
-      template<typename T0, typename T1>
-      struct is_simple_type_imp<
-	std::pair<
-	T0,
-	T1> >
-      {
-	enum
-	  {
-	    value = is_simple_type<T0>::value&& 
-	    is_simple_type<T1>::value
-	  };
-      };
-
-    public:
-      enum
-	{
-	  value =
-	  PB_ASSOC_IS_SAME_TYPE(void) ||
-	  PB_ASSOC_IS_SAME_TYPE(size_t) ||
-	  PB_ASSOC_IS_SAME_TYPE(const void)	||
-	  PB_ASSOC_IS_SAME_TYPE(unsigned char) ||
-	  PB_ASSOC_IS_SAME_TYPE(unsigned short int) ||
-	  PB_ASSOC_IS_SAME_TYPE(unsigned int) ||
-	  PB_ASSOC_IS_SAME_TYPE(unsigned long int) ||
-	  PB_ASSOC_IS_SAME_TYPE(signed char) ||
-	  PB_ASSOC_IS_SAME_TYPE(signed short int) ||
-	  PB_ASSOC_IS_SAME_TYPE(int) ||
-	  PB_ASSOC_IS_SAME_TYPE(long int) ||
-	  PB_ASSOC_IS_SAME_TYPE(bool) ||
-	  PB_ASSOC_IS_SAME_TYPE(char) ||
-	  PB_ASSOC_IS_SAME_TYPE(float) ||
-	  PB_ASSOC_IS_SAME_TYPE(double) ||
-	  PB_ASSOC_IS_SAME_TYPE(long double) ||
-	  PB_ASSOC_IS_SAME_TYPE(const unsigned char) ||
-	  PB_ASSOC_IS_SAME_TYPE(const unsigned short int) ||
-	  PB_ASSOC_IS_SAME_TYPE(const unsigned int) ||
-	  PB_ASSOC_IS_SAME_TYPE(const unsigned long int) ||
-	  PB_ASSOC_IS_SAME_TYPE(const signed char) ||
-	  PB_ASSOC_IS_SAME_TYPE(const signed short int) ||
-	  PB_ASSOC_IS_SAME_TYPE(const int) ||
-	  PB_ASSOC_IS_SAME_TYPE(const long int) ||
-	  PB_ASSOC_IS_SAME_TYPE(const bool) ||
-	  PB_ASSOC_IS_SAME_TYPE(const char) ||
-	  PB_ASSOC_IS_SAME_TYPE(const float) ||
-	  PB_ASSOC_IS_SAME_TYPE(const double) ||
-	  PB_ASSOC_IS_SAME_TYPE(const long double) ||
-	  is_pointer_type<T>::value ||
-	  is_const_pointer_type<T>::value ||
-	  is_member_pointer_type<T>::value ||
-	  is_simple_type_imp<T>::value
-	};
-    };
-
-#undef PB_ASSOC_IS_SAME_TYPE
-
-    template<bool Cond, class A, class B>
-    struct cond_type;
-
-    template<class A, class B>
-    struct cond_type<
-      true,
-      A,
-      B>
-    {
-      typedef A type;
-    };
-
-    template<class A, class B>
-    struct cond_type<
-      false,
-      A,
-      B>
-    {
-      typedef B type;
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef TYPE_UTILS_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist.hpp
deleted file mode 100644
index 08f50c81848e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist.hpp
+++ /dev/null
@@ -1,220 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist.hpp
- * Contains typelist_chain definitions.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_HPP
-#define TYPELIST_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    struct null_type
-    { };
-
-    template<typename Hd, typename Tl>
-    struct typelist_chain
-    {
-      typedef Hd head;
-
-      typedef Tl tail;
-    };
-
-    template<class Root>
-    struct typelist
-    {
-      typedef Root root;
-    };
-
-#define PB_ASSOC_TYPELIST_CHAIN1(X0) pb_assoc::detail::typelist_chain<X0, pb_assoc::detail::null_type>
-#define PB_ASSOC_TYPELIST_CHAIN2(X0, X1) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN1(X1) >
-#define PB_ASSOC_TYPELIST_CHAIN3(X0, X1, X2) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN2(X1, X2) >
-#define PB_ASSOC_TYPELIST_CHAIN4(X0, X1, X2, X3) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN3(X1, X2, X3) >
-#define PB_ASSOC_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN4(X1, X2, X3, X4) >
-#define PB_ASSOC_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN5(X1, X2, X3, X4, X5) >
-#define PB_ASSOC_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN6(X1, X2, X3, X4, X5, X6) >
-#define PB_ASSOC_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN7(X1, X2, X3, X4, X5, X6, X7) >
-#define PB_ASSOC_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN8(X1, X2, X3, X4, X5, X6, X7, X8) >
-#define PB_ASSOC_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN9(X1, X2, X3, X4, X5, X6, X7, X8, X9) >
-#define PB_ASSOC_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN10(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) >
-#define PB_ASSOC_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN11(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) >
-#define PB_ASSOC_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN12(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) >
-#define PB_ASSOC_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN13(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) >
-#define PB_ASSOC_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) pb_assoc::detail::typelist_chain<X0, PB_ASSOC_TYPELIST_CHAIN14(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) >
-
-#include <ext/pb_assoc/detail/typelist/typelist_apply.hpp>
-
-    template<class Fn, class Typelist>
-    void
-    typelist_apply(Fn& r_fn, Typelist /*tl*/)
-    {
-      detail::apply_<
-	Fn,
-	typename Typelist::root>
-	a;
-
-      a(r_fn);
-    }
-
-#include <ext/pb_assoc/detail/typelist/typelist_append.hpp>
-
-    template<class Typelist0, class Typelist1>
-    struct typelist_append
-    {
-    private:
-      typedef
-      typename detail::typelist_append_<
-	typename Typelist0::root,
-	typename Typelist1::root>::type
-      res_hd;
-
-    public:
-      typedef typelist< res_hd> type;
-    };
-
-#include <ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp>
-
-    template<class Typelist_Typelist>
-    struct typelist_typelist_append
-    {
-    private:
-      typedef
-      typename detail::typelist_typelist_append_<
-	typename Typelist_Typelist::root>::type
-      res_hd;
-
-    public:
-      typedef typelist< res_hd> type;
-    };
-
-#include <ext/pb_assoc/detail/typelist/typelist_contains.hpp>
-
-    template<class Typelist, class T>
-    struct typelist_contains
-    {
-      enum
-	{
-	  value =
-	  detail::typelist_contains_<
-	  typename Typelist::root,
-	  T>::value
-	};
-    };
-
-#include <ext/pb_assoc/detail/typelist/typelist_filter.hpp>
-
-    template<class Typelist, template<typename T>
-    class Pred>
-    struct typelist_filter
-    {
-    private:
-      typedef
-      typename detail::typelist_chain_filter_<
-	typename Typelist::root,
-	Pred>::type
-      root_type;
-
-    public:
-      typedef typelist< root_type> type;
-    };
-
-#include <ext/pb_assoc/detail/typelist/typelist_at_index.hpp>
-
-    template<class Typelist, int i>
-    struct typelist_at_index
-    {
-      typedef
-      typename detail::typelist_chain_at_index_<
-	typename Typelist::root,
-	i>::type
-      type;
-    };
-
-#include <ext/pb_assoc/detail/typelist/typelist_transform.hpp>
-
-    template<class Typelist, template<class T>
-    class Transform>
-    struct typelist_transform
-    {
-    private:
-      typedef
-      typename detail::typelist_chain_transform_<
-	typename Typelist::root,
-	Transform>::type
-      root_type;
-
-    public:
-      typedef typelist< root_type> type;
-    };
-
-#undef PB_ASSOC_TYPELIST_CHAIN1
-#undef PB_ASSOC_TYPELIST_CHAIN2
-#undef PB_ASSOC_TYPELIST_CHAIN3
-#undef PB_ASSOC_TYPELIST_CHAIN4
-#undef PB_ASSOC_TYPELIST_CHAIN5
-#undef PB_ASSOC_TYPELIST_CHAIN6
-#undef PB_ASSOC_TYPELIST_CHAIN7
-#undef PB_ASSOC_TYPELIST_CHAIN8
-#undef PB_ASSOC_TYPELIST_CHAIN9
-#undef PB_ASSOC_TYPELIST_CHAIN10
-#undef PB_ASSOC_TYPELIST_CHAIN11
-#undef PB_ASSOC_TYPELIST_CHAIN12
-#undef PB_ASSOC_TYPELIST_CHAIN13
-#undef PB_ASSOC_TYPELIST_CHAIN14
-#undef PB_ASSOC_TYPELIST_CHAIN15
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef TYPELIST_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_append.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_append.hpp
deleted file mode 100644
index 8b98392845a5..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_append.hpp
+++ /dev/null
@@ -1,84 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist_append.hpp
- * Contains typelist_chain utilities.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_APPEND_HPP
-#define TYPELIST_APPEND_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace detail
-{
-
-  template<class Typelist_Chain0, class Typelist_Chain1>
-  struct typelist_append_;
-
-  template<typename Hd, typename Tl, class Typelist_Chain1>
-  struct typelist_append_<
-    typelist_chain<Hd, Tl>,
-    Typelist_Chain1>
-  {
-    typedef
-    typelist_chain<
-      Hd,
-      typename typelist_append_<Tl, Typelist_Chain1>::type>
-    type;
-  };
-
-  template<class Typelist_Chain1>
-  struct typelist_append_<
-    null_type,
-    Typelist_Chain1>
-  {
-    typedef Typelist_Chain1 type;
-  };
-
-} // namespace detail
-
-#endif // #ifndef TYPELIST_APPEND_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_apply.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_apply.hpp
deleted file mode 100644
index 29f969212ab0..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_apply.hpp
+++ /dev/null
@@ -1,90 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist_apply.hpp
- * Contains typelist utilities.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_APPLY_HPP
-#define TYPELIST_APPLY_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace detail
-{
-
-  template<class Fn, class Typelist_Chain>
-  struct apply_;
-
-  template<class Fn, class Hd, class Tl>
-  struct apply_<
-    Fn,
-    typelist_chain<Hd, Tl> >
-  {
-    void
-    operator()(Fn& r_fn)
-    {
-      r_fn(Hd());
-
-      apply_<Fn, Tl> next;
-
-      next(r_fn);
-    }
-  };
-
-  template<class Fn>
-  struct apply_<
-    Fn,
-    null_type>
-  {
-    void
-    operator()(Fn& /*r_fn*/)
-    { }
-  };
-
-} // namespace detail
-
-#endif // #ifndef TYPELIST_APPLY_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_at_index.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
deleted file mode 100644
index 2f1bbd5fd5ce..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
+++ /dev/null
@@ -1,80 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist_at_index.hpp
- * Contains typelist utilities.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_AT_INDEX_HPP
-#define TYPELIST_AT_INDEX_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace detail
-{
-
-  template<class Typelist_Chain, int i>
-  struct typelist_chain_at_index_;
-
-  template<class Hd, class Tl>
-  struct typelist_chain_at_index_<
-    typelist_chain<Hd, Tl>,
-    0>
-  {
-    typedef Hd type;
-  };
-
-  template<class Hd, class Tl, int i>
-  struct typelist_chain_at_index_<
-    typelist_chain<Hd, Tl>,
-    i>
-  {
-    typedef typename typelist_chain_at_index_< Tl, i - 1>::type type;
-  };
-
-} // namespace detail
-
-#endif // #ifndef TYPELIST_AT_INDEX_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_contains.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_contains.hpp
deleted file mode 100644
index 470ce02d0e11..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_contains.hpp
+++ /dev/null
@@ -1,99 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist_contains.hpp
- * Contains typelist utilities.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_CONTAINS_HPP
-#define TYPELIST_CONTAINS_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace detail
-{
-
-  template<class Typelist_Chain, class T>
-  struct typelist_contains_;
-
-  template<class T>
-  struct typelist_contains_<
-    null_type,
-    T>
-  {
-    enum
-      {
-	value = false
-      };
-  };
-
-  template<class Hd, class Tl, class T>
-  struct typelist_contains_<
-    typelist_chain<Hd, Tl>,
-    T>
-  {
-    enum
-      {
-	value =
-	typelist_contains_<
-	Tl, T>::value
-      };
-  };
-
-  template<class Tl, class T>
-  struct typelist_contains_<
-    typelist_chain<T, Tl>,
-    T>
-  {
-    enum
-      {
-	value = true
-      };
-  };
-
-} // namespace detail
-
-#endif // #ifndef TYPELIST_CONTAINS_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_filter.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_filter.hpp
deleted file mode 100644
index 7e3d8479ce4e..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_filter.hpp
+++ /dev/null
@@ -1,97 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist_filter.hpp
- * Contains typelist utilities.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_FILTER_HPP
-#define TYPELIST_FILTER_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace detail
-{
-
-  template<class Typelist_Chain, template<typename T>
-  class Pred>
-  struct typelist_chain_filter_;
-
-  template<template<typename T>
-  class Pred>
-  struct typelist_chain_filter_<
-    null_type,
-    Pred>
-  {
-    typedef null_type type;
-  };
-
-  template<class Hd, class Tl, template<typename T>
-  class Pred>
-  struct typelist_chain_filter_<
-    typelist_chain<Hd, Tl>,
-    Pred>
-  {
-    typedef typename typelist_chain_filter_< Tl, Pred>::type rest;
-
-    enum
-      {
-	include_hd = Pred<Hd>::value
-      };
-
-    typedef
-    typename cond_type<
-      include_hd,
-      typelist_chain<
-      Hd,
-      rest>,
-      rest>::type
-    type;
-  };
-
-} // namespace detail
-
-#endif // #ifndef TYPELIST_FILTER_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_transform.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_transform.hpp
deleted file mode 100644
index 60a5ce7e3496..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_transform.hpp
+++ /dev/null
@@ -1,87 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist_transform.hpp
- * Contains typelist utilities.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_TRANSFORM_HPP
-#define TYPELIST_TRANSFORM_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace detail
-{
-
-  template<class Typelist_Chain, template<typename T>
-  class Transform>
-  struct typelist_chain_transform_;
-
-  template<template<typename T>
-  class Transform>
-  struct typelist_chain_transform_<
-    null_type,
-    Transform>
-  {
-    typedef null_type type;
-  };
-
-  template<class Hd, class Tl, template<typename T>
-  class Transform>
-  struct typelist_chain_transform_<
-    typelist_chain<Hd, Tl>,
-    Transform>
-  {
-    typedef typename typelist_chain_transform_< Tl, Transform>::type rest;
-
-    typedef typename Transform<Hd>::type my_type;
-
-    typedef typelist_chain< my_type, rest> type;
-  };
-
-} // namespace detail
-
-#endif // #ifndef TYPELIST_TRANSFORM_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
deleted file mode 100644
index fd2fba6c8679..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file typelist_typelist_append.hpp
- * Contains typelist_chain utilities.
- * Typelists are an idea by Andrei Alexandrescu.
- */
-
-#ifndef TYPELIST_TYPELIST_APPEND_HPP
-#define TYPELIST_TYPELIST_APPEND_HPP
-
-#ifdef _MSC_VER
-#pragma warning(disable: 4503)
-#endif // #ifdef _MSC_VER
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace detail
-{
-
-  template<class Typelist_Typelist_Chain>
-  struct typelist_typelist_append_;
-
-  template<typename Hd>
-  struct typelist_typelist_append_<
-    typelist_chain<Hd, null_type> >
-  {
-    typedef typelist_chain< Hd, null_type> type;
-  };
-
-  template<class Hd, class Tl>
-  struct typelist_typelist_append_<
-    typelist_chain<
-    Hd,
-    Tl> >
-  {
-  private:
-    typedef typename typelist_typelist_append_< Tl>::type rest;
-
-  public:
-    typedef
-    typename typelist_append<
-      Hd,
-      typelist<
-      rest> >::type::root
-    type;
-  };
-
-} // namespace detail
-
-#endif // #ifndef TYPELIST_TYPELIST_APPEND_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/types_traits.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/types_traits.hpp
deleted file mode 100644
index 130242c10767..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/types_traits.hpp
+++ /dev/null
@@ -1,295 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file types_traits.hpp
- * Contains a traits class of types used by containers.
- */
-
-#ifndef TYPES_TRAITS_HPP
-#define TYPES_TRAITS_HPP
-
-#include <ext/pb_assoc/data_type.hpp>
-#include <ext/pb_assoc/detail/type_utils.hpp>
-#include <utility>
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<typename Data, class Allocator>
-    struct basic_data_types_traits
-    {
-
-    public:
-
-      typedef
-      typename Allocator::template rebind<
-	Data>::other::value_type
-      data_type;
-
-      typedef
-      typename Allocator::template rebind<
-	Data>::other::pointer
-      data_pointer;
-
-      typedef
-      typename Allocator::template rebind<
-	Data>::other::const_pointer
-      const_data_pointer;
-
-      typedef
-      typename Allocator::template rebind<
-	Data>::other::reference
-      data_reference;
-
-      typedef
-      typename Allocator::template rebind<
-	Data>::other::const_reference
-      const_data_reference;
-
-    };
-
-    template<typename Data, class Allocator>
-    struct data_types_traits : public basic_data_types_traits<
-      Data,
-      Allocator>
-    {
-
-    public:
-
-      typedef Data given_data_type;
-
-    };
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Allocator>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	data_types_traits< \
-			null_data_type, \
-			Allocator>
-
-    template<class Allocator>
-    struct data_types_traits<
-      null_data_type,
-      Allocator> : public basic_data_types_traits<
-      null_data_type,
-      Allocator>
-    {
-
-    public:
-
-      typedef null_data_type given_data_type;
-
-    };
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-    template<class Cntnr, class Allocator>
-    struct data_types_traits<
-      compound_data_type<
-      Cntnr>,
-      Allocator> : public basic_data_types_traits<
-      Cntnr,
-      Allocator>
-    {
-
-    public:
-
-      typedef compound_data_type< Cntnr> given_data_type;
-
-    };
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, typename Data>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	exception_throw_types_traits< \
-		Key, \
-		Data>
-
-    template<typename Key, typename Data>
-    struct exception_throw_types_traits
-    {
-
-    public:
-
-      typedef int_to_type<false> no_throw_copies_false_indicator;
-
-      typedef int_to_type<true> no_throw_copies_true_indicator;
-
-    private:
-      enum
-	{
-	  key_no_throw = is_simple_type<Key>::value,
-	  data_no_throw = is_same_type<Data, null_data_type>::value ||
-	  is_simple_type<Data>::value,
-	  no_throw_copies = key_no_throw&&  data_no_throw
-	};
-
-      typedef int_to_type<no_throw_copies> no_throw_copies_t;
-
-    public:
-      static no_throw_copies_t s_no_throw_copies_indicator;
-    };
-
-    PB_ASSOC_CLASS_T_DEC
-    typename PB_ASSOC_CLASS_C_DEC::no_throw_copies_t
-    PB_ASSOC_CLASS_C_DEC::s_no_throw_copies_indicator;
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-    template<typename Key, typename Data, class Allocator>
-    struct value_types_traits
-    {
-
-    public:
-
-      typedef
-      typename Allocator::template rebind<
-	std::pair<const Key, Data> >::other
-      value_type_allocator;
-
-      typedef typename value_type_allocator::value_type value_type;
-
-      typedef typename value_type_allocator::pointer pointer;
-
-      typedef typename value_type_allocator::const_pointer const_pointer;
-
-      typedef typename value_type_allocator::reference reference;
-
-      typedef typename value_type_allocator::const_reference const_reference;
-
-    };
-
-    template<typename Key, class Allocator>
-    struct value_types_traits<
-      Key,
-      null_data_type,
-      Allocator>
-    {
-
-    public:
-
-      typedef
-      typename Allocator::template rebind<
-	Key>::other
-      value_type_allocator;
-
-      typedef typename value_type_allocator::value_type value_type;
-
-      typedef typename value_type_allocator::const_pointer pointer;
-
-      typedef typename value_type_allocator::const_pointer const_pointer;
-
-      typedef typename value_type_allocator::const_reference reference;
-
-      typedef typename value_type_allocator::const_reference const_reference;
-
-    };
-
-    template<typename Key, class Cntnr, class Allocator>
-    struct value_types_traits<
-      Key,
-      compound_data_type<
-      Cntnr>,
-      Allocator>
-    {
-    private:
-
-      typedef
-      typename Allocator::template rebind<
-	std::pair<const Key, Cntnr> >::other
-      value_type_allocator;
-
-    public:
-
-      typedef typename value_type_allocator::value_type value_type;
-
-      typedef typename value_type_allocator::pointer pointer;
-
-      typedef typename value_type_allocator::const_pointer const_pointer;
-
-      typedef typename value_type_allocator::reference reference;
-
-      typedef typename value_type_allocator::const_reference const_reference;
-
-    };
-
-    template<typename Key, typename Data, class Allocator>
-    struct types_traits : public data_types_traits<
-      Data,
-      Allocator>,
-public value_types_traits<
-      Key,
-      Data,
-      Allocator>,
-public exception_throw_types_traits<
-      Key,
-      Data>
-    {
-
-    public:
-
-      typedef typename Allocator::template rebind<Key>::other key_allocator;
-
-      typedef typename key_allocator::value_type key_type;
-
-      typedef typename key_allocator::pointer key_pointer;
-
-      typedef typename key_allocator::const_pointer const_key_pointer;
-
-      typedef typename key_allocator::reference key_reference;
-
-      typedef typename key_allocator::const_reference const_key_reference;
-
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef TYPES_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
deleted file mode 100644
index a854e8a2aea6..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
+++ /dev/null
@@ -1,138 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file const_find_iterator.hpp
- * Contains an iterator class returned by the tables' const find and insert
- *   methods.
- */
-
-class find_iterator_;
-
-class const_find_iterator_
-{
-
-public:
-
-  typedef trivial_iterator_tag iterator_category;
-
-  typedef trivial_iterator_difference_type difference_type;
-
-  typedef mapped_value_type value_type;
-
-  typedef mapped_pointer pointer;
-
-  typedef const_mapped_pointer const_pointer;
-
-  typedef mapped_reference reference;
-
-  typedef const_mapped_reference const_reference;
-
-public:
-
-  inline
-  const_find_iterator_(const_pointer p_value) : m_p_value(p_value)
-  { }
-
-  inline
-  const_find_iterator_()
-
-    : m_p_value(NULL)
-  { }
-
-  inline
-  const_find_iterator_(const const_find_iterator_& r_other)
-
-    : m_p_value(r_other.m_p_value)
-  { }
-
-  inline
-  const_find_iterator_(const find_iterator_& r_other)
-
-    : m_p_value(r_other.m_p_value)
-  { }
-
-  inline const_pointer
-  operator->() const
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_value != NULL);
-
-    return (m_p_value);
-  }
-
-  inline const_reference
-  operator*() const
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_value != NULL);
-
-    return (*m_p_value);
-  }
-
-  inline bool
-  operator==(const find_iterator_& r_other) const
-  {
-    return (m_p_value == r_other.m_p_value);
-  }
-
-  inline bool
-  operator==(const const_find_iterator_& r_other) const
-  {
-    return (m_p_value == r_other.m_p_value);
-  }
-
-  inline bool
-  operator!=(const find_iterator_& r_other) const
-  {
-    return (m_p_value != r_other.m_p_value);
-  }
-
-  inline bool
-  operator!=(const const_find_iterator_& r_other) const
-  {
-    return (m_p_value != r_other.m_p_value);
-  }
-
-protected:
-  const_pointer m_p_value;
-
-  friend class find_iterator_;
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
deleted file mode 100644
index cff9abdb01f7..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file const_iterator.hpp
- * Contains an iterator class used for const ranging over the elements of the
- *   table.
- */
-
-class const_iterator_ : 
-  public const_find_iterator_
-
-{
-
-public:
-
-  typedef std::forward_iterator_tag iterator_category;
-
-  typedef typename Allocator::difference_type difference_type;
-
-  typedef mapped_value_type value_type;
-
-  typedef mapped_pointer pointer;
-
-  typedef const_mapped_pointer const_pointer;
-
-  typedef mapped_reference reference;
-
-  typedef const_mapped_reference const_reference;
-
-public:
-
-  inline
-  const_iterator_()
-
-    : m_p_tbl(NULL)
-  { }
-
-  inline const_iterator_& 
-  operator++()
-  {
-    m_p_tbl->inc_it_state(my_base::m_p_value, m_pos);
-
-    return (*this);
-  }
-
-  inline const_iterator_
-  operator++(int)
-  {
-    const_iterator_ ret =* this;
-
-    m_p_tbl->inc_it_state(my_base::m_p_value, m_pos);
-
-    return (ret);
-  }
-
-protected:
-
-  typedef const_find_iterator_ my_base;
-
-protected:
-
-  /**
-   * Constructor used by the table to initiate the generalized
-   *   pointer and position (e.g., this is called from within a find()
-   *   of a table.
-   **/
-  inline
-  const_iterator_(const_mapped_pointer p_value, PB_ASSOC_GEN_POS pos, const PB_ASSOC_CLASS_C_DEC* p_tbl) : const_find_iterator_(p_value),
-													   m_p_tbl(p_tbl),
-													   m_pos(pos)
-  { }
-
-protected:
-
-  /**
-   * Pointer to the table object which created the iterator (used for
-   *   incrementing its position.
-   **/
-  const PB_ASSOC_CLASS_C_DEC* m_p_tbl;
-
-  PB_ASSOC_GEN_POS m_pos;
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
deleted file mode 100644
index f91b6a7e2dbf..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
+++ /dev/null
@@ -1,147 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_iterator.hpp
- * Contains an iterator class returned by the tables' find and insert
- *   methods.
- */
-
-class find_iterator_
-{
-
-public:
-
-  typedef trivial_iterator_tag iterator_category;
-
-  typedef trivial_iterator_difference_type difference_type;
-
-  typedef mapped_value_type value_type;
-
-  typedef mapped_pointer pointer;
-
-  typedef const_mapped_pointer const_pointer;
-
-  typedef mapped_reference reference;
-
-  typedef const_mapped_reference const_reference;
-
-public:
-
-  inline
-  find_iterator_()
-
-    : m_p_value(NULL)
-  { }
-
-  inline
-  find_iterator_(const find_iterator_& r_other)
-
-    : m_p_value(r_other.m_p_value)
-  { }
-
-  inline pointer
-  operator->()
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_value != NULL);
-
-    return (m_p_value);
-  }
-
-  inline const_pointer
-  operator->() const
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_value != NULL);
-
-    return (m_p_value);
-  }
-
-  inline reference
-  operator*()
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_value != NULL);
-
-    return (*m_p_value);
-  }
-
-  inline const_reference
-  operator*() const
-  {
-    PB_ASSOC_DBG_ASSERT(m_p_value != NULL);
-
-    return (*m_p_value);
-  }
-
-  inline bool
-  operator==(const find_iterator_& r_other) const
-  {
-    return (m_p_value == r_other.m_p_value);
-  }
-
-  inline bool
-  operator==(const const_find_iterator_& r_other) const
-  {
-    return (m_p_value == r_other.m_p_value);
-  }
-
-  inline bool
-  operator!=(const find_iterator_& r_other) const
-  {
-    return (m_p_value != r_other.m_p_value);
-  }
-
-  inline bool
-  operator!=(const const_find_iterator_& r_other) const
-  {
-    return (m_p_value != r_other.m_p_value);
-  }
-
-  inline
-  find_iterator_(pointer p_value) : m_p_value(p_value)
-  { }
-
-protected:
-  friend class const_find_iterator_;
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-
-protected:
-  pointer m_p_value;
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/iterator.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
deleted file mode 100644
index f15d8189ce6a..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
+++ /dev/null
@@ -1,139 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterator.hpp
- * Contains an iterator_ class used for ranging over the elements of the
- *	table.
- */
-
-class iterator_ : 
-  public const_iterator_
-
-{
-
-public:
-
-  typedef std::forward_iterator_tag iterator_category;
-
-  typedef typename Allocator::difference_type difference_type;
-
-  typedef mapped_value_type value_type;
-
-  typedef mapped_pointer pointer;
-
-  typedef const_mapped_pointer const_pointer;
-
-  typedef mapped_reference reference;
-
-  typedef const_mapped_reference const_reference;
-
-public:
-
-  inline
-  iterator_()
-
-    : const_iterator_(NULL, PB_ASSOC_GEN_POS(), NULL)
-  { }
-
-  inline
-  operator find_iterator_()
-  {
-    return (find_iterator_(
-			   const_cast<pointer>(const_iterator_::m_p_value)));
-  }
-
-  inline
-  operator const find_iterator_() const
-  {
-    return (find_iterator_(
-			   const_cast<pointer>(const_iterator_::m_p_value)));
-  }
-
-  inline pointer
-  operator->()
-  {
-    PB_ASSOC_DBG_ASSERT(my_base::m_p_value != NULL);
-
-    return (const_cast<pointer>(my_base::m_p_value));
-  }
-
-  inline reference
-  operator*()
-  {
-    PB_ASSOC_DBG_ASSERT(my_base::m_p_value != NULL);
-
-    return (*(operator->()));
-  }
-
-  inline iterator_& 
-  operator++()
-  {
-    my_base::m_p_tbl->inc_it_state(my_base::m_p_value, my_base::m_pos);
-
-    return (*this);
-  }
-
-  inline iterator_
-  operator++(int)
-  {
-    iterator_ ret =* this;
-
-    my_base::m_p_tbl->inc_it_state(my_base::m_p_value, my_base::m_pos);
-
-    return (ret);
-  }
-
-protected:
-  typedef const_iterator_ my_base;
-
-protected:
-
-  /**
-   * Constructor used by the table to initiate the generalized
-   *   pointer and position (e.g., this is called from within a find()
-   *   of a table.
-   **/
-  inline
-  iterator_(pointer p_value, PB_ASSOC_GEN_POS pos, PB_ASSOC_CLASS_C_DEC* p_tbl) : const_iterator_(p_value, pos, p_tbl)
-  { }
-
-  friend class PB_ASSOC_CLASS_C_DEC;
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
deleted file mode 100644
index 185e4b6be598..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
+++ /dev/null
@@ -1,183 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file constructor_destructor_and_related.hpp
- * Contains an adapter of mapping levels.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter()
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0) :
-  my_base(t0)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0, typename T1>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1)  :
-  my_base(t0, t1)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0, typename T1, typename T2>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1, T2 t2) :
-  my_base(t0, t1, t2)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0, typename T1, typename T2, typename T3>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1, T2 t2, T3 t3) :
-  my_base(t0, t1, t2, t3)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) :
-  my_base(t0, t1, t2, t3, t4)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)  :
-  my_base(t0,
-	  t1,
-	  t2,
-	  t3,
-	  t4,
-	  t5)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)   :
-  my_base(t0,
-	  t1,
-	  t2,
-	  t3,
-	  t4,
-	  t5,
-	  t6)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6,
-	 typename T7>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7) :
-  my_base(t0,
-	  t1,
-	  t2,
-	  t3,
-	  t4,
-	  t5,
-	  t6,
-	  t7)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-template<typename T0,
-	 typename T1,
-	 typename T2,
-	 typename T3,
-	 typename T4,
-	 typename T5,
-	 typename T6,
-	 typename T7,
-	 typename T8>
-inline
-PB_ASSOC_CLASS_C_DEC::
-value_type_adapter(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8)  :
-  my_base(t0,
-	  t1,
-	  t2,
-	  t3,
-	  t4,
-	  t5,
-	  t6,
-	  t7,
-	  t8)
-{ }
-
-PB_ASSOC_CLASS_T_DEC
-PB_ASSOC_CLASS_C_DEC::
-~value_type_adapter()
-{ }
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
deleted file mode 100644
index 05a2dde131e8..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_fn_imps.hpp
- * Contains an adapter of mapping levels.
- */
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
deleted file mode 100644
index b3a7bbbc92a3..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
+++ /dev/null
@@ -1,72 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_if_pred.hpp
- * Contains a bridge erase_if predicate
- */
-
-template<class Pred>
-class erase_if_pred
-{
-public:
-  // Tmp Ami all erase-ifs should take a reference to a predicate?
-  erase_if_pred(Pred& r_pred, typename my_base::iterator base_it) : m_r_pred(r_pred),
-								    m_base_it(base_it)
-  { }
-
-  inline bool
-  operator()(typename my_base_data_type::iterator::reference r_val)
-  {
-    it_value_type_traits_t::make_valid(m_value_type_holder, m_base_it->first, r_val);
-
-    typename it_value_type_traits_t::pointer p_exp_val =
-      it_value_type_traits_t::recast(m_value_type_holder);
-
-    return (m_r_pred(*p_exp_val));
-  }
-
-private:
-  Pred& m_r_pred;
-
-  typename my_base::iterator m_base_it;
-
-  typename it_value_type_traits_t::value_type_holder m_value_type_holder;
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
deleted file mode 100644
index 8bf8df441b6d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
+++ /dev/null
@@ -1,43 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file find_fn_imps.hpp
- * Contains an adapter of mapping levels.
- */
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
deleted file mode 100644
index 2e33a3c25d2a..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file info_fn_imps.hpp
- * Contains an adapter of mapping levels.
- */
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-size() const
-{
-  return (std::distance(begin(), end()));
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline typename PB_ASSOC_CLASS_C_DEC::size_type
-PB_ASSOC_CLASS_C_DEC::
-max_size() const
-{
-  return (my_base::max_size());
-}
-
-PB_ASSOC_CLASS_T_DEC
-inline bool
-PB_ASSOC_CLASS_C_DEC::
-empty() const
-{
-  return (size() == 0);
-}
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
deleted file mode 100644
index 8501c1305754..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file insert_fn_imps.hpp
- * Contains an adapter of mapping levels.
- */
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
deleted file mode 100644
index 68dd4bd306b6..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file invalidation_guarantee_selector.hpp
- * Contains an adapter of mapping levels.
- */
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<class IG0, class IG1>
-    struct ig_sel;
-
-    template<>
-    struct ig_sel<
-      basic_invalidation_guarantee,
-      basic_invalidation_guarantee>
-    {
-      typedef basic_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      basic_invalidation_guarantee,
-      find_invalidation_guarantee>
-    {
-      typedef basic_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      basic_invalidation_guarantee,
-      range_invalidation_guarantee>
-    {
-      typedef basic_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      find_invalidation_guarantee,
-      basic_invalidation_guarantee>
-    {
-      typedef basic_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      find_invalidation_guarantee,
-      find_invalidation_guarantee>
-    {
-      typedef find_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      find_invalidation_guarantee,
-      range_invalidation_guarantee>
-    {
-      typedef find_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      range_invalidation_guarantee,
-      basic_invalidation_guarantee>
-    {
-      typedef basic_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      range_invalidation_guarantee,
-      find_invalidation_guarantee>
-    {
-      typedef find_invalidation_guarantee type;
-    };
-
-    template<>
-    struct ig_sel<
-      range_invalidation_guarantee,
-      range_invalidation_guarantee>
-    {
-      typedef range_invalidation_guarantee type;
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
deleted file mode 100644
index 4be113d8ecd6..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
+++ /dev/null
@@ -1,218 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file it_value_type_traits.hpp
- * Contains an adapter of mapping levels.
- */
-
-template<class Base, bool Lowest>
-struct base_it_key_type
-{
-  typedef typename Base::it_key_type type;
-};
-
-template<class Base>
-struct base_it_key_type<
-  Base,
-  true>
-{
-  typedef typename Base::const_key_reference type;
-};
-
-template<typename Base_Key_,
-	 typename Key_,
-	 typename Data_,
-	 typename Value_,
-	 class Allocator_ >
-struct it_value_type_traits_
-{
-  typedef ref_pair< Base_Key_, Key_> key_ref_pair;
-
-  typedef
-  typename Allocator_::template rebind<
-    key_ref_pair>::other::const_reference
-  key_ref_pair_val;
-
-  typedef key_ref_pair_val key_type;
-
-  typedef ref_pair< key_ref_pair_val, Data_> value_type;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::reference
-  reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_reference
-  const_reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::pointer
-  pointer;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_pointer
-  const_pointer;
-
-  struct value_type_holder
-  {
-    typename std::tr1::aligned_storage<sizeof(key_ref_pair),
-      std::tr1::alignment_of<key_ref_pair>::value>::type  m_a_key_buf;
-
-    typename std::tr1::aligned_storage<sizeof(value_type),
-      std::tr1::alignment_of<value_type>::value>::type  m_a_value_buf;
-  };
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type_holder>::other::reference
-  value_type_hoder_valerence;
-
-  inline static pointer
-  recast(value_type_hoder_valerence r_holder)
-  {
-    return reinterpret_cast<pointer>(&r_holder.m_a_value_buf);
-  }
-
-  inline static void
-  make_valid(value_type_hoder_valerence r_holder, Base_Key_ r_bk, Value_ r_val)
-  {
-    typedef
-      typename Allocator_::template rebind<
-      void* >::other::value_type
-      void_pointer;
-
-    void_pointer p_target = &r_holder.m_a_key_buf;
-
-    new (p_target) key_ref_pair(r_bk, r_val.first);
-
-    typedef
-      typename Allocator_::template rebind<
-      key_ref_pair>::other::pointer
-      key_ref_pair_pointer;
-
-    key_ref_pair_pointer p_key =
-      reinterpret_cast<key_ref_pair_pointer>(&r_holder.m_a_key_buf);
-
-    p_target = &r_holder.m_a_value_buf;
-
-    new (p_target) value_type(*p_key, r_val.second);
-  }
-};
-
-template<typename Base_Key_,
-	 typename Key_,
-	 typename Value_,
-	 class Allocator_>
-struct it_value_type_traits_<
-  Base_Key_,
-  Key_,
-  null_data_type,
-  Value_,
-  Allocator_>
-{
-  typedef ref_pair< Base_Key_, Key_> key_ref_pair;
-
-  typedef
-  typename Allocator_::template rebind<
-    key_ref_pair>::other::const_reference
-  key_ref_pair_val;
-
-  typedef key_ref_pair_val key_type;
-
-  typedef key_ref_pair value_type;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_reference
-  reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_reference
-  const_reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_pointer
-  pointer;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_pointer
-  const_pointer;
-
-  struct value_type_holder
-  {
-    typename std::tr1::aligned_storage<sizeof(key_ref_pair),
-      std::tr1::alignment_of<key_ref_pair>::value>::type  m_a_key_buf;
-
-    typename std::tr1::aligned_storage<sizeof(value_type),
-      std::tr1::alignment_of<value_type>::value>::type  m_a_value_buf;
-  };
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type_holder>::other::reference
-  value_type_hoder_valerence;
-
-  inline static pointer
-  recast(value_type_hoder_valerence r_holder)
-  {
-    return reinterpret_cast<pointer>(&r_holder.m_a_value_buf);
-  }
-
-  inline static void
-  make_valid(value_type_hoder_valerence r_holder, Base_Key_ r_bk, Value_ r_val)
-  {
-    typedef
-      typename Allocator_::template rebind<
-      void* >::other::value_type
-      void_pointer;
-
-    void_pointer p_target = &r_holder.m_a_value_buf;
-
-    new (p_target) key_ref_pair(r_bk, r_val.first);
-  }
-};
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
deleted file mode 100644
index a03ce358a0c5..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
+++ /dev/null
@@ -1,196 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file it_.hpp
- * Contains an it_ for an adapter of mapping levels.
- */
-
-#define PB_ASSOC_IT_C_DEC \
-	it_< \
-		It0, \
-		It1, \
-		Has_Data, \
-		Const>
-
-#define PB_ASSOC_OIT_T_DEC \
-	template<class OIt0, class OIt1, bool OHas_Data, bool OConst>
-
-#define PB_ASSOC_OIT_C_DEC \
-	it_< \
-		OIt0, \
-		OIt1, \
-		OHas_Data, \
-		OConst>
-
-template<class It0, class It1, bool Has_Data, bool Const>
-class it_
-{
-public:
-
-  typedef typename it_value_type_traits_t::value_type value_type;
-
-  typedef typename it_value_type_traits_t::reference reference;
-
-  typedef
-  typename it_value_type_traits_t::const_reference
-  const_reference;
-
-  typedef typename it_value_type_traits_t::pointer pointer;
-
-  typedef typename it_value_type_traits_t::const_pointer const_pointer;
-
-public:
-  inline
-  it_(It0 it0 = It0(),
-      It0 end_it0 = It0(),
-      It1 it1 = It1()) : m_it0(it0),
-			 m_end_it0(end_it0),
-			 m_it1(it1)
-  { }
-
-  inline
-  it_(const PB_ASSOC_IT_C_DEC& r_other) : m_it0(r_other.m_it0),
-					  m_end_it0(r_other.m_end_it0),
-					  m_it1(r_other.m_it1)
-  { }
-
-  PB_ASSOC_OIT_T_DEC
-  inline
-  it_(const PB_ASSOC_OIT_C_DEC& r_other) : m_it0(r_other.m_it0),
-					   m_end_it0(r_other.m_end_it0),
-					   m_it1(r_other.m_it1)
-  { }
-
-  inline bool
-  operator==(const PB_ASSOC_IT_C_DEC& r_other) const
-  {
-    if (m_it0 != r_other.m_it0)
-      return (false);
-
-    if (m_it0 == m_end_it0)
-      return (true);
-
-    return (m_it1 == r_other.m_it1);
-  }
-
-  inline bool
-  operator!=(const PB_ASSOC_IT_C_DEC& r_other) const
-  {
-    return (!operator==(r_other));
-  }
-
-  inline PB_ASSOC_IT_C_DEC& 
-  operator++()
-  {
-    ++m_it1;
-
-    if (m_it1 == m_it0->second.end())
-      do
-	{
-	  ++m_it0;
-	}
-      while (m_it0 != m_end_it0&&  m_it0->second.empty());
-
-    if (m_it0 != m_end_it0&&  !m_it0->second.empty())
-      m_it1 = m_it0->second.begin();
-
-    return (*this);
-  }
-
-  inline PB_ASSOC_IT_C_DEC
-  operator++(int)
-  {
-    PB_ASSOC_IT_C_DEC ret =* this;
-
-    operator++();
-
-    return (ret);
-  }
-
-  inline const_pointer
-  operator->() const
-  {
-    it_value_type_traits_t::make_valid(m_value_type_holder, m_it0->first, * m_it1);
-
-    return (it_value_type_traits_t::recast(m_value_type_holder));
-  }
-
-  inline pointer
-  operator->()
-  {
-    // Tmp Ami PB_ASSOC_STATIC_ASSERT(non_const, !Const);
-
-    it_value_type_traits_t::make_valid(m_value_type_holder, m_it0->first, * m_it1);
-
-    return (it_value_type_traits_t::recast(m_value_type_holder));
-  }
-
-  inline const_reference
-  operator*() const
-  {
-    return (*operator->());
-  }
-
-  inline reference
-  operator*()
-  {
-    PB_ASSOC_STATIC_ASSERT(non_const, !Const);
-
-    return (*operator->());
-  }
-
-public:
-  mutable It0 m_it0;
-  It0 m_end_it0;
-
-  mutable It1 m_it1;
-
-  int_to_type<Has_Data> m_has_data;
-
-private:
-  mutable typename it_value_type_traits_t::value_type_holder m_value_type_holder;
-};
-
-#undef PB_ASSOC_IT_C_DEC
-
-#undef PB_ASSOC_OIT_T_DEC
-
-#undef PB_ASSOC_OIT_C_DEC
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
deleted file mode 100644
index 754faf720e02..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
+++ /dev/null
@@ -1,44 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file iterator_fn_imps.hpp
- * Contains an adapter of mapping levels.
- */
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
deleted file mode 100644
index 8e8fda0702c6..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
+++ /dev/null
@@ -1,73 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ref_pair.hpp
- * Contains an adapter of mapping levels.
- */
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-    template<typename T0, typename T1>
-    struct ref_pair
-    {
-    public:
-      typedef T0 first_type;
-
-      typedef T1 second_type;
-
-    public:
-      inline
-      ref_pair(T0 t0, T1 t1) : first(t0),
-			       second(t1)
-      { }
-
-    public:
-      T0 first;
-
-      T1 second;
-    };
-
-  } // namespace detail
-
-} // namespace pb_assoc
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
deleted file mode 100644
index 9f2dfb2fb6ae..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
+++ /dev/null
@@ -1,601 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file value_type_adapter.hpp
- * Contains an adapter of mapping levels.
- */
-
-#ifndef VALUE_TYPE_ADAPTER_HPP
-#define VALUE_TYPE_ADAPTER_HPP
-
-#include <ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp>
-#include <ext/pb_assoc/detail/assoc_cntnr_base.hpp>
-#include <ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp>
-#include <ext/pb_assoc/detail/type_utils.hpp>
-#include <utility>
-#include <algorithm>
-#include <tr1/type_traits>  // for aligned_storage/alignment_of
-
-namespace pb_assoc
-{
-
-  namespace detail
-  {
-
-#define PB_ASSOC_STATIC_ASSERT(UNIQUE, E) \
-	typedef \
-		pb_assoc::detail::static_assert_dummy_class< \
-			sizeof(pb_assoc::detail::static_assert<(bool)(E)>)> \
-			UNIQUE##static_assert_type
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		typename Data, \
-		class DS_Tag, \
-		class Policy_Tl, \
-		class Allocator, \
-		int Mapping_Level>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	value_type_adapter< \
-		Key, \
-		Data, \
-		DS_Tag, \
-		Policy_Tl, \
-		Allocator, \
-		Mapping_Level>
-
-#define PB_ASSOC_BASE_C_DEC \
-	cond_type< \
-		Mapping_Level != 1, \
-		value_type_adapter< \
-			Key, \
-			Data, \
-			DS_Tag, \
-			Policy_Tl, \
-			Allocator, \
-			Mapping_Level - 1>, \
-		typename assoc_cntnr_base< \
-			Key, \
-			Data, \
-			DS_Tag, \
-			Policy_Tl, \
-			Allocator>::type>::type
-
-    template<typename Key,
-	     typename Data,
-	     class DS_Tag,
-	     class Policy_Tl,
-	     class Allocator,
-	     int Mapping_Level>
-    struct value_type_adapter : public PB_ASSOC_BASE_C_DEC
-    {
-
-    private:
-      typedef typename PB_ASSOC_BASE_C_DEC my_base;
-
-      typedef typename my_base::data_type my_base_data_type;
-
-      enum
-	{
-	  same_alloc_type =
-	  is_same_type<
-	  typename my_base::allocator::template rebind<
-	  char>::other,
-	  typename my_base_data_type::allocator::template rebind<
-	  char>::other>::value
-	};
-
-      PB_ASSOC_STATIC_ASSERT(wrong_level, Mapping_Level > 0);
-
-      PB_ASSOC_STATIC_ASSERT(must_be_same_alloc, same_alloc_type);
-
-#include <ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp>
-#include <ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp>
-
-      typedef
-      it_value_type_traits_<
-	typename base_it_key_type<
-	my_base,
-	Mapping_Level == 1>::type,
-	typename my_base_data_type::const_key_reference,
-	typename cond_type<
-	is_same_type<
-	typename my_base_data_type::data_type,
-	null_data_type>::value,
-	null_data_type,
-	typename my_base_data_type::data_reference>::type,
-	typename my_base_data_type::reference,
-	typename my_base::allocator>
-      it_value_type_traits_t;
-
-#include <ext/pb_assoc/detail/value_type_adapter/iterator.hpp>
-
-      typedef
-      value_type_traits_<
-	typename my_base::key_type,
-	typename my_base_data_type::key_type,
-	typename my_base_data_type::data_type,
-	typename my_base::allocator>
-      value_type_traits_t;
-
-      enum
-	{
-	  has_data =
-	  !is_same_type<
-	  typename my_base_data_type::data_type,
-	  null_data_type>::value
-	};
-
-    public:
-
-      typedef typename Allocator::size_type size_type;
-
-      typedef typename Allocator::difference_type difference_type;
-
-      typedef typename my_base::allocator allocator;
-
-      typedef typename it_value_type_traits_t::key_type it_key_type;
-
-      typedef
-      std::pair<
-	typename my_base::key_type,
-	typename my_base_data_type::key_type>
-      key_type;
-
-      typedef
-      typename allocator::template rebind<
-	key_type>::other::reference
-      key_reference;
-
-      typedef
-      typename allocator::template rebind<
-	key_type>::other::const_reference
-      const_key_reference;
-
-      typedef
-      typename allocator::template rebind<
-	key_type>::other::pointer
-      key_pointer;
-
-      typedef
-      typename allocator::template rebind<
-	key_type>::other::const_pointer
-      const_key_pointer;
-
-      typedef typename my_base_data_type::data_type data_type;
-
-      typedef
-      typename allocator::template rebind<
-	data_type>::other::reference
-      data_reference;
-
-      typedef
-      typename allocator::template rebind<
-	data_type>::other::const_reference
-      const_data_reference;
-
-      typedef
-      typename allocator::template rebind<
-	data_type>::other::pointer
-      data_pointer;
-
-      typedef
-      typename allocator::template rebind<
-	data_type>::other::const_pointer
-      const_data_pointer;
-
-      typedef typename value_type_traits_t::value_type value_type;
-
-      typedef typename value_type_traits_t::reference reference;
-
-      typedef typename value_type_traits_t::const_reference const_reference;
-
-      typedef typename value_type_traits_t::pointer pointer;
-
-      typedef typename value_type_traits_t::const_pointer const_pointer;
-
-      typedef
-      it_<
-	typename my_base::const_find_iterator,
-	typename my_base_data_type::const_find_iterator,
-	has_data,
-	true>
-      const_find_iterator;
-
-      typedef
-      it_<
-	typename my_base::find_iterator,
-	typename my_base_data_type::find_iterator,
-	has_data,
-	false>
-      find_iterator;
-
-      typedef
-      it_<
-	typename my_base::const_iterator,
-	typename my_base_data_type::const_iterator,
-	has_data,
-	true>
-      const_iterator;
-
-      typedef
-      it_<
-	typename my_base::iterator,
-	typename my_base_data_type::iterator,
-	has_data,
-	false>
-      iterator;
-
-      enum
-	{
-	  mapping_level = mapping_level_imp<
-	  typename my_base::given_data_type>::value -1
-	};
-
-      // Tmp Ami rebind
-
-      typedef compound_ds_tag ds_category;
-
-      typedef
-      typename cond_type<
-	mapping_level == 1,
-	typename cond_type<
-	has_data,
-	data_enabled_ms_tag,
-	basic_ms_tag>::type,
-	compound_data_enabled_ms_tag>::type
-      ms_category;
-
-      typedef
-      typename cond_type<
-	Mapping_Level == 1,
-	DS_Tag,
-	compound_ds_tag>::type
-      effective_base_ds_tag;
-
-      typedef ds_traits< my_base_data_type> base_data_ds_traits;
-
-      enum
-	{
-	  erase_can_throw =
-	  base_data_ds_traits::erase_can_throw
-	};
-
-      enum
-	{
-	  order_preserving =
-	  order_preserving_imp<
-	  my_base,
-	  effective_base_ds_tag>::value&& 
-	  base_data_ds_traits::order_preserving
-	};
-
-      enum
-	{
-	  erase_iterators =
-	  base_data_ds_traits::erase_iterators
-	};
-
-      typedef
-      typename ig_sel<
-	typename invalidation_guarantee_imp<
-	my_base,
-	effective_base_ds_tag>::type,
-	typename ds_traits<
-	my_base_data_type>::invalidation_guarantee>::type
-      invalidation_guarantee;
-
-      enum
-	{
-	  reverse_iteration =
-	  reverse_iteration_imp<
-	  my_base,
-	  effective_base_ds_tag>::value&& 
-	  base_data_ds_traits::reverse_iteration
-	};
-
-      enum
-	{
-	  split_join = false
-	};
-
-    protected:
-      typedef typename my_base_data_type::data_pointer erase_imp_ret_t;
-
-    private:
-      inline const_key_reference
-      extract_key_imp(const_reference r_val, int_to_type<true>)
-      {
-	return (r_val.first);
-      }
-
-      inline const_key_reference
-      extract_key_imp(const_reference r_val, int_to_type<false>)
-      {
-	return (r_val);
-      }
-
-      inline it_key_type
-      extract_key_imp(typename iterator::const_reference r_val, int_to_type<true>)
-      {
-	return (r_val.first);
-      }
-
-      inline it_key_type
-      extract_key_imp(typename iterator::const_reference r_val, int_to_type<false>)
-      {
-	return (r_val);
-      }
-
-    public:
-
-      inline size_type
-      size() const
-      {
-	return (std::distance(begin(), end()));
-      }
-
-      inline size_type
-      max_size() const
-      {
-	return (my_base::max_size());
-      }
-
-      inline bool
-      empty() const
-      {
-	return (size() == 0);
-      }
-
-      inline static const_key_reference
-      extract_key(const_reference r_val)
-      {
-	return (extract_key_imp(
-				r_val,
-				int_to_type<has_data>()));
-      }
-
-      inline it_key_type
-      extract_key(typename iterator::const_reference r_val)
-      {
-	return (extract_key_imp(
-				r_val,
-				int_to_type<has_data>()));
-      }
-
-      inline std::pair<
-	find_iterator,
-	bool>
-      insert(const_reference r_val)
-      {
-	typedef std::pair< typename my_base::find_iterator, bool> base_ins_ret;
-
-	// Tmp Ami
-      }
-
-      inline data_reference
-      operator[](const_key_reference r_key)
-      {
-	return (subscript_imp(r_key));
-      }
-
-      inline const_find_iterator
-      find(const_key_reference r_key) const
-      {
-	typename my_base::const_find_iterator it = my_base::find(r_key.first);
-
-	if (it == my_base::end())
-	  return (end());
-
-	typename my_base_data_type::const_find_iterator sec_it =
-	  it->second.find(r_key.second);
-
-	if (sec_it == it->second.end())
-	  return (end());
-
-	return (const_find_iterator(it, sec_it));
-      }
-
-      inline find_iterator
-      find(const_key_reference r_key)
-      {
-	typename my_base::find_iterator it = my_base::find(r_key.first);
-
-	if (it == my_base::end())
-	  return (end());
-
-	typename my_base_data_type::find_iterator sec_it =
-	  it->second.find(r_key.second);
-
-	if (sec_it == it->second.end())
-	  return (end());
-
-	return (find_iterator(it, my_base::end(), sec_it));
-      }
-
-      inline const_data_reference
-      operator[](const_key_reference r_key) const
-      {
-	return (my_base::operator[](r_key.first).operator[](r_key.second));
-      }
-
-      inline size_type
-      erase(const_key_reference r_key)
-      {
-	typename my_base::find_iterator it =
-	  my_base::find(r_key.first);
-
-	if (it == my_base::end())
-	  return (0);
-
-	if (it->second.find(r_key.second) == it->second.end())
-	  return (0);
-
-	it->second.erase(r_key.second);
-
-	return (1);
-      }
-
-#include <ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp>
-
-      template<class Pred>
-      inline size_type
-      erase_if(Pred prd)
-      {
-	typename my_base::iterator it = my_base::begin();
-
-	typename my_base::iterator end_it = my_base::end();
-
-	size_type ersd = 0;
-
-	// Tmp Ami check erase can throw
-
-	while (it != end_it)
-	  {
-	    if (it->second.empty() == false)
-	      {
-		erase_if_pred<Pred> p(prd, it);
-
-		ersd += it->second.erase_if(p);
-	      }
-
-	    ++it;
-	  }
-
-	return (ersd);
-      }
-
-      void
-      clear()
-      {
-	typename my_base::iterator it = my_base::begin();
-
-	typename my_base::iterator end_it = my_base::end();
-
-	while (it != end_it)
-	  it->second.clear();
-      }
-
-      inline const_iterator
-      begin() const
-      {
-	typename my_base::const_iterator it = my_base::begin();
-
-	while (it != my_base::end()&&  it->second.size() == 0)
-	  ++it;
-
-	if (it == my_base::end())
-	  return (end());
-
-	return (const_iterator(it, my_base::end(), it->second.begin()));
-      }
-
-      inline iterator
-      begin()
-      {
-	typename my_base::iterator it = my_base::begin();
-
-	while (it != my_base::end()&&  it->second.size() == 0)
-	  ++it;
-
-	if (it == my_base::end())
-	  return (end());
-
-	return (iterator(it, my_base::end(), it->second.begin()));
-      }
-
-      inline const_iterator
-      end() const
-      {
-	return (const_iterator(my_base::end(), my_base::end()));
-      }
-
-      inline iterator
-      end()
-      {
-	return (iterator(my_base::end(), my_base::end()));
-      }
-
-    protected:
-
-      virtual
-      ~value_type_adapter()
-      { }
-
-#define PB_ASSOC_CLASS_NAME value_type_adapter
-
-#define PB_ASSOC_DIRECT_BASE_C_DEC PB_ASSOC_BASE_C_DEC
-
-#define PB_ASSOC_DIRECT_BASE_CAST_C_DEC \
-	typename PB_ASSOC_DIRECT_BASE_C_DEC
-
-#include <ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp>
-
-#undef PB_ASSOC_CLASS_NAME
-
-#undef PB_ASSOC_DIRECT_BASE_C_DEC
-
-#undef PB_ASSOC_DIRECT_BASE_CAST_C_DEC
-
-      data_reference
-      subscript_imp(const_key_reference r_key)
-      {
-	return (my_base::subscript_imp(r_key.first)[r_key.second]);
-      }
-
-    private:
-      value_type_adapter& 
-      operator=(const value_type_adapter& r_other);
-    };
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_BASE_C_DEC
-
-  } // namespace detail
-
-} // namespace pb_assoc
-
-#endif // #ifndef VALUE_TYPE_ADAPTER_HPP
-
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp b/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
deleted file mode 100644
index 8fbd3e74aa54..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
+++ /dev/null
@@ -1,102 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file value_type_traits.hpp
- * Contains an adapter of mapping levels.
- */
-
-template<typename Base_Key_,
-	 typename Key_,
-	 typename Data_,
-	 class Allocator_ >
-struct value_type_traits_
-{
-  typedef std::pair< std::pair< Base_Key_, Key_>, Data_> value_type;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::reference
-  reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_reference
-  const_reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::pointer
-  pointer;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_pointer
-  const_pointer;
-};
-
-template<typename Base_Key_, typename Key_, class Allocator_>
-struct value_type_traits_<
-  Base_Key_,
-  Key_,
-  null_data_type,
-  Allocator_>
-{
-  typedef std::pair< Base_Key_, Key_> value_type;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_reference
-  reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_reference
-  const_reference;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_pointer
-  pointer;
-
-  typedef
-  typename Allocator_::template rebind<
-    value_type>::other::const_pointer
-  const_pointer;
-};
diff --git a/libstdc++-v3/include/ext/pb_assoc/ds_trait.hpp b/libstdc++-v3/include/ext/pb_assoc/ds_trait.hpp
deleted file mode 100644
index bf391afca865..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/ds_trait.hpp
+++ /dev/null
@@ -1,125 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ds_trait.hpp
- * Contains data-structure traits.
- */
-
-#ifndef DS_TRAIT_HPP
-#define DS_TRAIT_HPP
-
-#include <ext/pb_assoc/detail/type_utils.hpp>
-
-namespace pb_assoc
-{
-  struct basic_invalidation_guarantee
-  { };
-
-  struct find_invalidation_guarantee : public basic_invalidation_guarantee
-  { };
-
-  struct range_invalidation_guarantee : public find_invalidation_guarantee
-  { };
-
-  struct basic_ds_tag
-  { };
-
-  struct basic_hash_ds_tag : public basic_ds_tag
-  { };
-
-  struct cc_hash_ds_tag : public basic_hash_ds_tag
-  { };
-
-  struct gp_hash_ds_tag : public basic_hash_ds_tag
-  { };
-
-  struct basic_tree_ds_tag : public basic_ds_tag
-  { };
-
-  struct rb_tree_ds_tag : public basic_tree_ds_tag
-  { };
-
-  struct splay_tree_ds_tag : public basic_tree_ds_tag
-  { };
-
-  struct ov_tree_ds_tag : public basic_tree_ds_tag
-  { };
-
-  struct lu_ds_tag : public basic_ds_tag
-  { };
-
-  struct compound_ds_tag : public basic_ds_tag
-  { };
-
-#include <ext/pb_assoc/detail/ds_trait_imp.hpp>
-
-#define PB_ASSOC_BASE_C_DEC \
-	detail::data_structure_traits<Cntnr, typename Cntnr::ds_category>
-
-  template<typename Cntnr>
-    struct ds_traits 
-    : private detail::data_structure_traits<Cntnr, typename Cntnr::ds_category>
-    {
-    public:
-      enum
-	{
-	  erase_can_throw = PB_ASSOC_BASE_C_DEC::erase_can_throw,
-	  order_preserving = PB_ASSOC_BASE_C_DEC::order_preserving,
-	  erase_iterators = PB_ASSOC_BASE_C_DEC::erase_iterators,
-	  reverse_iteration = PB_ASSOC_BASE_C_DEC::reverse_iteration,
-	  split_join = PB_ASSOC_BASE_C_DEC::split_join
-	};
-      
-      typedef typename PB_ASSOC_BASE_C_DEC::invalidation_guarantee 
-      invalidation_guarantee;
-
-    /*
-      enum
-      {
-      split_join_can_throw = PB_ASSOC_BASE_C_DEC::split_join_can_throw
-      };
-    */
-  };
-
-#undef PB_ASSOC_BASE_C_DEC
-
-} // namespace pb_assoc
-
-#endif // #ifndef DS_TRAIT_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/exception.hpp b/libstdc++-v3/include/ext/pb_assoc/exception.hpp
deleted file mode 100644
index 7e38c28b6807..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/exception.hpp
+++ /dev/null
@@ -1,69 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file pb_assoc_ex.hpp
- * Contains exception classes for pb_assoc.
- */
-
-#ifndef EXCEPTION_HPP
-#define EXCEPTION_HPP
-
-#include <stdexcept>
-
-namespace pb_assoc
-{
-  struct pb_assoc_ex : public std::logic_error
-  {
-    pb_assoc_ex() : std::logic_error("pb_assoc exception") { }
-  };
-
-  struct cannot_insert : public pb_assoc_ex
-  { };
-
-   // An join cannot be performed for logical reasons (i.e., the ranges of
-   // the two container objects being joined overlaps.)
-  struct cannot_join : public cannot_insert
-  { };
-
-  struct cannot_resize : public cannot_insert
-  { };
-} // namespace pb_assoc
-
-#endif // #ifndef EXCEPTION_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/hash_policy.hpp b/libstdc++-v3/include/ext/pb_assoc/hash_policy.hpp
deleted file mode 100644
index d4118c0664d9..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/hash_policy.hpp
+++ /dev/null
@@ -1,717 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file hash_policy.hpp
- * Contains hash-related policies.
- */
-
-#ifndef HASH_POLICY_HPP
-#define HASH_POLICY_HPP
-
-#include <algorithm>
-#include <vector>
-#include <cmath>
-#include <ext/pb_assoc/exception.hpp>
-#include <ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp>
-#include <ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp>
-#include <ext/pb_assoc/detail/resize_policy/size_base.hpp>
-
-namespace pb_assoc
-{
-  struct null_hash_fn
-  { };
-
-  struct null_probe_fn
-  { };
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Const_Key_Ref, typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	linear_probe_fn< \
-		Const_Key_Ref, \
-		Size_Type>
-
-  template<typename Const_Key_Ref, typename Size_Type = size_t>
-    class linear_probe_fn
-    {
-    public:
-      typedef Size_Type size_type;
-      
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-    protected:
-      inline size_type
-      operator()(Const_Key_Ref r_key, size_type i) const;
-    };
-
-#include <ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<class Const_Key_Ref, typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	quadratic_probe_fn<Const_Key_Ref, Size_Type>
-
-  template<typename Const_Key_Ref, typename Size_Type = size_t>
-    class quadratic_probe_fn
-    {
-    public:
-      typedef Size_Type size_type;
-      
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-    protected:
-      inline size_type
-      operator()(Const_Key_Ref r_key, size_type i) const;
-    };
-
-#include <ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	direct_mask_range_hashing<Size_Type>
-
-  template<typename Size_Type =	size_t>
-    class direct_mask_range_hashing 
-    : public pb_assoc::detail::mask_based_range_hashing<Size_Type>
-    {
-    public:
-      typedef Size_Type size_type;
-      
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-    protected:
-      void
-      notify_resized(size_type size);
-      
-      inline size_type
-      operator()(size_type hash) const;
-      
-    private:
-      typedef pb_assoc::detail::mask_based_range_hashing<Size_Type>
-      my_mask_based_base;
-    };
-
-#define PB_ASSOC_MASK_BASED_C_DEC \
-	pb_assoc::detail::mask_based_range_hashing< \
-		Size_Type>
-
-#include <ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_MASK_BASED_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	direct_mod_range_hashing<Size_Type>
-
-#define PB_ASSOC_MOD_BASED_C_DEC \
-	pb_assoc::detail::mod_based_range_hashing<Size_Type>
-
-  template<typename Size_Type =	size_t>
-    class direct_mod_range_hashing : public PB_ASSOC_MOD_BASED_C_DEC
-    {
-    public:
-      typedef Size_Type size_type;
-      
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-    protected:
-      /*
-       *   description = "Notifies the policy object that the container's
-       *	  __size has changed to size.">
-       **/
-      void
-      notify_resized(size_type size);
-      
-      inline size_type
-    operator()(size_type hash) const;
-      
-    private:
-      typedef PB_ASSOC_MOD_BASED_C_DEC my_mod_based_base;
-    };
-
-#include <ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_MOD_BASED_C_DEC
-
-#ifdef PB_ASSOC_HT_LOAD_CHECK_RESIZE_TRIGGER_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_HT_LOAD_CHECK_RESIZE_TRIGGER_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_HT_LOAD_CHECK_RESIZE_TRIGGER_DEBUG
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<bool External_Load_Access, typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	hash_load_check_resize_trigger<External_Load_Access, Size_Type>
-
-#define PB_ASSOC_SIZE_BASE_C_DEC \
-	pb_assoc::detail::size_base<Size_Type, External_Load_Access>
-
-  template<bool External_Load_Access = false, typename Size_Type = size_t>
-    class hash_load_check_resize_trigger : private PB_ASSOC_SIZE_BASE_C_DEC
-    {
-    public:
-      typedef Size_Type size_type;
-      
-      enum
-	{
-	  external_load_access = External_Load_Access
-	};
-            
-      hash_load_check_resize_trigger(float load_min = 0.125, 
-				     float load_max = 0.5);
-
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-      virtual
-      ~hash_load_check_resize_trigger();
-      
-      inline std::pair<float, float>
-      get_loads() const;
-      
-      void
-      set_loads(std::pair<float, float> load_pair);
-
-    protected:
-      inline void
-      notify_insert_search_start();
-      
-      inline void
-      notify_insert_search_collision();
-
-      inline void
-      notify_insert_search_end();
-      
-      inline void
-      notify_find_search_start();
-      
-      inline void
-      notify_find_search_collision();
-      
-      inline void
-      notify_find_search_end();
-      
-      inline void
-      notify_erase_search_start();
-      
-      inline void
-      notify_erase_search_collision();
-      
-      inline void
-      notify_erase_search_end();
-      
-      inline void
-      notify_inserted(size_type num_entries);
-      
-      inline void
-      notify_erased(size_type num_entries);
-      
-      void
-      notify_cleared();
-      
-      void
-      notify_resized(size_type new_size);
-      
-      void
-      notify_externally_resized(size_type new_size);
-      
-      inline bool
-      is_resize_needed() const;
-      
-      inline bool
-      is_grow_needed(size_type size, size_type num_entries) const;
-      
-      inline bool
-      is_shrink_needed(size_type size, size_type num_entries) const;
-      
-      typedef PB_ASSOC_SIZE_BASE_C_DEC my_size_base;
-      
-    private:
-      inline std::pair<float, float>
-      get_loads_imp(pb_assoc::detail::int_to_type<true>) const;
-      
-      void
-      set_loads_imp(std::pair<float, float>, 
-		    pb_assoc::detail::int_to_type<true>);
-
-      virtual void
-      do_resize(size_type new_size);
-      
-#ifdef PB_ASSOC_HT_LOAD_CHECK_RESIZE_TRIGGER_DEBUG
-      void
-      assert_valid() const;
-#endif // #ifdef PB_ASSOC_HT_LOAD_CHECK_RESIZE_TRIGGER_DEBUG
-
-      float m_load_min, m_load_max;
-      
-      size_type m_next_shrink_size;
-      
-      size_type m_next_grow_size;
-      
-      bool m_resize_needed;
-      
-      static pb_assoc::detail::int_to_type<External_Load_Access>
-      s_external_load_access_ind;
-    };
-
-#include <ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_SIZE_BASE_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-#ifdef PB_ASSOC_HT_MAX_COLLISION_CHECK_RESIZE_TRIGGER_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_HT_MAX_COLLISION_CHECK_RESIZE_TRIGGER_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_HT_MAX_COLLISION_CHECK_RESIZE_TRIGGER_POLICY_DEBUG
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<bool External_Load_Access, typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	cc_hash_max_collision_check_resize_trigger< \
-		External_Load_Access, \
-		Size_Type>
-
-  template<bool External_Load_Access = false, typename Size_Type = size_t>
-    class cc_hash_max_collision_check_resize_trigger
-    {
-    public:
-      typedef Size_Type size_type;
-      
-      enum
-	{
-	  external_load_access = External_Load_Access
-	};
-      
-      cc_hash_max_collision_check_resize_trigger(float load = 0.5);
-      
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-      inline float
-      get_load() const;
-      
-    protected:
-      inline void
-      notify_insert_search_start();
-
-      inline void
-      notify_insert_search_collision();
-
-      inline void
-      notify_insert_search_end();
-
-      inline void
-      notify_find_search_start();
-
-      inline void
-      notify_find_search_collision();
-
-      inline void
-      notify_find_search_end();
-
-      inline void
-      notify_erase_search_start();
-
-      inline void
-      notify_erase_search_collision();
-
-      inline void
-      notify_erase_search_end();
-
-      inline void
-      notify_inserted(size_type num_entries);
-
-      inline void
-      notify_erased(size_type num_entries);
-
-      void
-      notify_cleared();
-
-      void
-      notify_resized(size_type new_size);
-
-      void
-      notify_externally_resized(size_type new_size);
-
-      inline bool
-      is_resize_needed() const;
-
-      inline bool
-      is_grow_needed(size_type size, size_type num_entries) const;
-
-      inline bool
-      is_shrink_needed(size_type size, size_type num_entries) const;
-
-    private:
-      template<typename Key>
-      class max_col_checker
-      {
-      public:
-	max_col_checker(size_type size, size_type* p_max_col) 
-	: m_p_max_col(p_max_col), m_a_col(size, 0)
-	{ }
-
-	void
-	operator()(const std::pair<const Key, size_type>& r_key_pos_pair)
-	{ ++m_a_col[r_key_pos_pair.second]; }
-
-      private:
-	std::vector<size_type> m_a_col;
-	
-	size_type* const m_p_max_col;
-      };
-      
-    private:
-      inline float
-      get_load_imp(pb_assoc::detail::int_to_type<true>) const;
-      
-      float m_load;
-      
-      size_type m_size;
-      
-      size_type m_num_col;
-      
-      size_type m_max_col;
-      
-      bool m_resize_needed;
-      
-      static pb_assoc::detail::int_to_type<External_Load_Access>
-      s_external_load_access_ind;
-    };
-
-#include <ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	hash_exponential_size_policy< \
-		Size_Type>
-
-  template<typename Size_Type =	size_t>
-  class hash_exponential_size_policy
-  {
-  public:
-    typedef Size_Type size_type;
-
-    hash_exponential_size_policy(size_type start_size = 8, 
-				 size_type grow_factor = 2);
-
-    void
-    swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-  protected:
-    size_type
-    get_init_size(size_type suggested_size) const;
-
-    size_type
-    get_nearest_larger_size(size_type cur_size) const;
-
-    size_type
-    get_nearest_smaller_size(size_type cur_size) const;
-
-#ifdef PB_ASSOC_HT_EXPONENTIAL_SIZE_POLICY_DEBUG
-    void
-    assert_is_one_of_my_sizes(size_type size) const;
-#endif // #ifdef PB_ASSOC_HT_EXPONENTIAL_SIZE_POLICY_DEBUG
-
-  private:
-    size_type m_start_size;
-    size_type m_grow_factor;
-  };
-
-#include <ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-#define PB_ASSOC_CLASS_T_DEC
-
-#define PB_ASSOC_CLASS_C_DEC \
-	hash_prime_size_policy
-
-#ifdef PB_ASSOC_HT_PRIME_SIZE_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_HT_PRIME_SIZE_POLICY_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_HT_PRIME_SIZE_POLICY_DEBUG
-
-  struct hash_prime_size_policy
-  {
-    typedef size_t size_type;
-
-    inline void
-    swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-  protected:
-    inline size_type
-    get_init_size(size_type suggested_size) const;
-    
-    inline size_type
-    get_nearest_larger_size(size_type cur_size) const;
-    
-    inline size_type
-    get_nearest_smaller_size(size_type cur_size) const;
-    
-    inline size_type
-    get_nearest_larger_size_imp(size_type size) const;
-    
-#ifdef PB_ASSOC_HT_PRIME_SIZE_POLICY_DEBUG
-    void
-    assert_is_one_of_my_sizes(size_type size) const;
-#endif // #ifdef PB_ASSOC_HT_PRIME_SIZE_POLICY_DEBUG
-  };
-
-#include <ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		class Size_Policy, \
-		class Trigger_Policy, \
-		bool External_Size_Access, \
-		typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	hash_standard_resize_policy< \
-		Size_Policy, \
-		Trigger_Policy, \
-		External_Size_Access, \
-		Size_Type>
-
-  template<class Size_Policy =	pb_assoc::hash_exponential_size_policy<>,
-	   class Trigger_Policy = pb_assoc::hash_load_check_resize_trigger<>,
-	   bool External_Size_Access = false,
-	   typename Size_Type = size_t>
-  class hash_standard_resize_policy : public Size_Policy, public Trigger_Policy
-  {
-  public:
-    typedef Size_Type 		size_type;
-    typedef Trigger_Policy 	trigger_policy;
-    typedef Size_Policy 	size_policy;
-
-    enum
-      {
-	external_size_access = External_Size_Access
-      };
-
-    hash_standard_resize_policy(size_type suggested_size = 8);
-    
-    hash_standard_resize_policy(const Size_Policy&, 
-				size_type suggested_size = 8);
-
-    hash_standard_resize_policy(const Size_Policy&, const Trigger_Policy&, 
-				size_type suggested_size = 8);
-
-    virtual
-    ~hash_standard_resize_policy();
-
-    inline void
-    swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-    Size_Policy& 
-    get_size_policy();
-
-    const Size_Policy& 
-    get_size_policy() const;
-
-    Trigger_Policy& 
-    get_trigger_policy();
-
-    const Trigger_Policy& 
-    get_trigger_policy() const;
-
-    inline size_type
-    get_actual_size() const;
-
-    void
-    resize(size_type suggested_new_size);
-
-  protected:
-
-    inline void
-    notify_insert_search_start();
-
-    inline void
-    notify_insert_search_collision();
-
-    inline void
-    notify_insert_search_end();
-
-    inline void
-    notify_find_search_start();
-
-    inline void
-    notify_find_search_collision();
-
-    inline void
-    notify_find_search_end();
-
-    inline void
-    notify_erase_search_start();
-
-    inline void
-    notify_erase_search_collision();
-
-    inline void
-    notify_erase_search_end();
-
-    inline void
-    notify_inserted(size_type num_e);
-
-    inline void
-    notify_erased(size_type num_e);
-
-    void
-    notify_cleared();
-
-    void
-    notify_resized(size_type new_size);
-
-    size_type
-    get_init_size() const;
-
-    inline bool
-    is_resize_needed() const;
-
-    size_type
-    get_new_size(size_type size, size_type num_used_e) const;
-
-  private:
-    typedef Trigger_Policy my_trigger_policy_base;
-
-    typedef Size_Policy my_size_policy_base;
-
-    typedef
-    pb_assoc::detail::int_to_type<false>
-    external_resize_false_indicator;
-
-    typedef
-    pb_assoc::detail::int_to_type<true>
-    external_resize_true_indicator;
-
-    inline size_type
-    get_actual_size(external_resize_true_indicator) const;
-
-    void
-    resize(size_type new_size, external_resize_true_indicator);
-
-    virtual void
-    do_resize(size_type new_size);
-
-    static pb_assoc::detail::int_to_type<External_Size_Access>
-    s_external_size_access_indicator;
-
-    size_type m_size;
-  };
-
-#include <ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
-
-} // namespace pb_assoc
-
-#endif // #ifndef HASH_POLICY_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/lu_policy.hpp b/libstdc++-v3/include/ext/pb_assoc/lu_policy.hpp
deleted file mode 100644
index dcdb0e5ac05b..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/lu_policy.hpp
+++ /dev/null
@@ -1,181 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file lu_policy.hpp
- * Contains policies for list update containers.
- */
-
-#ifndef LU_POLICY_HPP
-#define LU_POLICY_HPP
-
-namespace pb_assoc
-{
-  struct move_to_front_lu_metadata
-  { };
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Metadata_Reference>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	move_to_front_lu_policy<Metadata_Reference>
-
-  template<typename Metadata_Reference = 
-           std::allocator<move_to_front_lu_metadata>::reference>
-    class move_to_front_lu_policy
-    {
-    public:
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-    protected:
-      typedef move_to_front_lu_metadata metadata_type;
-      
-      typedef Metadata_Reference metadata_reference;
-      
-      metadata_type
-      operator()() const;
-      
-      inline bool
-      operator()(metadata_reference r_data) const;
-    };
-
-#include <ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-  template<typename Size_Type>
-    class counter_lu_policy_base;
-
-  template<typename Size_Type =	size_t>
-    class counter_lu_metadata
-    {
-    public:
-      typedef Size_Type size_type;
-
-  private:
-      counter_lu_metadata(size_type init_count) : m_count(init_count)
-      { }
-      
-      mutable size_type m_count;
-      
-      friend class counter_lu_policy_base<Size_Type>;
-    };
-
-  template<typename Size_Type>
-    class counter_lu_policy_base;
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	counter_lu_policy_base<Size_Type>
-
-  template<typename Size_Type>
-    class counter_lu_policy_base
-    {
-    protected:
-      typedef Size_Type size_type;
-      
-    counter_lu_metadata<Size_Type>
-    operator()(size_type max_size) const;
-
-    template<typename Metadata_Reference>
-      bool
-      operator()(Metadata_Reference r_data, size_type m_max_count) const;
-    };
-
-#include <ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Size_Type, typename Metadata_Reference>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	counter_lu_policy<Size_Type, Metadata_Reference>
-
-  template<typename Size_Type = size_t,
-	   typename Metadata_Reference =
-	   typename std::allocator<counter_lu_metadata<Size_Type> >::reference>
-    class counter_lu_policy : private counter_lu_policy_base<Size_Type>
-    {
-    public:
-      typedef Size_Type size_type;
-      
-      counter_lu_policy(size_type max_count = 5);
-      
-      void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-      
-      inline
-      size_type
-      get_max_count() const;
-      
-    protected:
-      
-      typedef counter_lu_metadata< Size_Type> metadata_type;
-      
-      typedef Metadata_Reference metadata_reference;
-      
-      metadata_type
-      operator()() const;
-      
-      bool
-      operator()(metadata_reference r_data) const;
-      
-    private:
-      typedef counter_lu_policy_base< Size_Type> my_base;
-      
-      size_type m_max_count;
-    };
-
-#include <ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp>
-
-#undef PB_ASSOC_CLASS_T_DEC
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-} // namespace pb_assoc
-
-#endif // #ifndef LU_POLICY_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/ms_trait.hpp b/libstdc++-v3/include/ext/pb_assoc/ms_trait.hpp
deleted file mode 100644
index 1aaddc7b903d..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/ms_trait.hpp
+++ /dev/null
@@ -1,82 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ms_trait.hpp
- * Contains mapping-semantic traits.
- */
-
-#ifndef MS_TRAIT_HPP
-#define MS_TRAIT_HPP
-
-#include <ext/pb_assoc/data_type.hpp>
-#include <ext/pb_assoc/detail/mapping_level_imp.hpp>
-
-namespace pb_assoc
-{
-  struct basic_ms_tag
-  { };
-
-  struct data_enabled_ms_tag : public basic_ms_tag
-  { };
-
-  struct compound_data_enabled_ms_tag : public data_enabled_ms_tag
-  { };
-
-#include <ext/pb_assoc/detail/ms_trait_imp.hpp>
-
-#define PB_ASSOC_BASE_C_DEC \
-	detail::mapping_semantics_traits<Cntnr, typename Cntnr::ms_category>
-
-  template<typename Cntnr>
-    struct ms_traits : private PB_ASSOC_BASE_C_DEC
-    {
-      enum
-	{
-	  has_data = PB_ASSOC_BASE_C_DEC::has_data,
-	  has_compound_data = PB_ASSOC_BASE_C_DEC::has_compound_data,
-	  mapping_level = PB_ASSOC_BASE_C_DEC::mapping_level
-      };
-  };
-
-#undef PB_ASSOC_BASE_C_DEC
-
-} // namespace pb_assoc
-
-#endif // #ifndef MS_TRAIT_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/tree_policy.hpp b/libstdc++-v3/include/ext/pb_assoc/tree_policy.hpp
deleted file mode 100644
index f13b76e2d2fc..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/tree_policy.hpp
+++ /dev/null
@@ -1,215 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file tree_policy.hpp
- * Contains tree-related policies.
- */
-
-#ifndef TREE_POLICY_HPP
-#define TREE_POLICY_HPP
-
-#include <functional>
-#include <ext/pb_assoc/ms_trait.hpp>
-
-namespace pb_assoc
-{
-  struct null_node_updator
-  {
-    inline void
-    swap(null_node_updator& r_other);
-  };
-
-#include <ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp>
-
-  template<typename Key, typename Allocator = std::allocator<char> >
-    class order_statistics_key
-    {
-    public:
-      typedef Allocator 			allocator;
-      typedef Key 				key_type;
-      typedef typename allocator::template rebind<Key>::other::const_reference
-      						const_key_reference;
-      typedef typename allocator::template rebind<Key>::other::reference
-      						key_reference;
-      typedef typename allocator::size_type 	size_type;
-      
-      inline explicit
-      order_statistics_key(const_key_reference r_key = Key());
-      
-      inline
-      operator key_reference();
-      
-      inline
-      operator key_type() const;
-      
-    private:
-      // The logical key of the entry.
-      key_type m_key;
-      
-      // The number of entries in the subtree rooted at the node of
-      // this element.
-      mutable size_type m_rank;
-
-      template<typename Cntnr>
-        friend class order_by_key;
-      
-      template<typename Some_Cmp_Fn, typename Some_Allocator>
-        friend class order_statistics_key_cmp;
-      
-      template<typename Some_Key, typename Some_Allocator>
-        friend class order_statistics_node_updator;
-      
-      template<typename Cntnr>
-        friend class find_by_order;
-      
-      template<typename Cntnr, typename Some_Allocator>
-        friend class order_statistics_key_verifier;
-  };
-
-  template<typename Cmp_Fn, typename Allocator = std::allocator<char> >
-    class order_statistics_key_cmp 
-    : public std::binary_function<
-      order_statistics_key<typename Cmp_Fn::first_argument_type, Allocator>,
-      order_statistics_key<typename Cmp_Fn::second_argument_type, Allocator>, bool>, 
-    private Cmp_Fn
-    {
-    public:
-      typedef Allocator allocator;
-      typedef Cmp_Fn cmp_fn;
-      
-      typedef 
-      order_statistics_key<typename Cmp_Fn::first_argument_type, Allocator>
-      key_type;
-      
-      typedef
-      typename allocator::template rebind<key_type>::other::const_reference
-      const_key_reference;
-      
-      inline
-      order_statistics_key_cmp();
-      
-      inline
-      order_statistics_key_cmp(const Cmp_Fn& r_cmp_fn);
-      
-      inline bool
-      operator()(const_key_reference, const_key_reference) const;
-      
-      inline cmp_fn& 
-      get_cmp_fn();
-      
-      inline const cmp_fn& 
-      get_cmp_fn() const;
-    };
-  
-#define PB_ASSOC_CLASS_C_DEC \
-	order_statistics_node_updator<Key, Allocator>
-
-  template<typename Key, typename Allocator = std::allocator<char> >
-    class order_statistics_node_updator
-    {
-    public:
-      typedef Allocator allocator;
-      typedef order_statistics_key< Key, Allocator> key_type;
-
-      typedef
-      typename Allocator::template rebind<key_type>::other::const_pointer
-      const_key_pointer;
-      
-      inline void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
-
-      inline void
-      operator()(const_key_pointer, const_key_pointer, const_key_pointer);
-
-    private:
-      typedef typename Allocator::size_type size_type;
-    };
-
-#undef PB_ASSOC_CLASS_C_DEC
-
-  template<class Cntnr>
-    class find_by_order
-    {
-    public:
-      typedef Cntnr 				cntnr;
-      typedef typename cntnr::iterator 		iterator;
-      typedef typename cntnr::const_iterator	const_iterator;
-      typedef typename cntnr::size_type 	size_type;
-      
-      inline iterator
-      operator()(Cntnr& r_c, size_type order) const;
-      
-      inline const_iterator
-      operator()(const Cntnr& r_c, size_type order) const;
-      
-    private:
-      typedef typename Cntnr::node_iterator 	node_iterator;
-      typedef typename Cntnr::const_iterator 	cntnr_const_it;
-      typedef typename Cntnr::iterator 		cntnr_it;
-      
-      inline static iterator
-      find(Cntnr& r_c, size_type order);
-      
-      inline static const_iterator
-      find(const Cntnr& r_c, size_type order);
-    };
-
-  template<class Cntnr>
-    class order_by_key
-    {
-    public:
-      typedef Cntnr 				cntnr;
-      typedef typename Cntnr::key_type 		order_statistics_key_type;
-      typedef typename order_statistics_key_type::key_type
-      						underlying_key_type;
-      typedef typename cntnr::size_type 	size_type;
-      
-      inline size_type
-      operator()(const Cntnr& r_c, const underlying_key_type& r_key) const;
-      
-    private:
-      typedef typename cntnr::const_iterator cntnr_const_it;
-      typedef typename cntnr::iterator cntnr_it;
-    };
-  
-#include <ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp>
-} // namespace pb_assoc
-
-#endif // #ifndef TREE_POLICY_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/trivial_iterator_def.hpp b/libstdc++-v3/include/ext/pb_assoc/trivial_iterator_def.hpp
deleted file mode 100644
index e8a65b75f1c8..000000000000
--- a/libstdc++-v3/include/ext/pb_assoc/trivial_iterator_def.hpp
+++ /dev/null
@@ -1,58 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file trivial_iterator_def.hpp
- * Contains definitions for "trivial"-type iterators.
- */
-
-#ifndef TRIVIAL_ITERATOR_DEF_HPP
-#define TRIVIAL_ITERATOR_DEF_HPP
-
-namespace pb_assoc
-{
-  struct trivial_iterator_tag
-  { };
-
-  // Prohibit moving trivial iterators.
-  typedef void trivial_iterator_difference_type;
-
-} // namespace pb_assoc
-
-#endif // #ifndef TRIVIAL_ITERATOR_DEF_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp b/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
new file mode 100644
index 000000000000..bfc88b480d65
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/assoc_container.hpp
@@ -0,0 +1,690 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file assoc_container.hpp
+ * Contains associative containers.
+ */
+
+#ifndef PB_DS_ASSOC_CNTNR_HPP
+#define PB_DS_ASSOC_CNTNR_HPP
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <ext/pb_ds/detail/container_base_dispatch.hpp>
+#include <ext/pb_ds/detail/basic_tree_policy/traits.hpp>
+
+namespace pb_ds
+{
+#define PB_DS_BASE_C_DEC						\
+  detail::container_base_dispatch<Key, Mapped, Tag, Policy_Tl, Allocator>::type
+
+  // An abstract basic associative container.
+  template<typename Key, 
+	   typename Mapped, 
+	   typename Tag, 
+	   typename Policy_Tl, 
+	   typename Allocator>
+  class container_base : public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef typename PB_DS_BASE_C_DEC 			base_type;
+
+  public:
+    typedef Tag 					container_category;
+    typedef Allocator 					allocator;
+    typedef typename allocator::size_type 		size_type;
+    typedef typename allocator::difference_type 	difference_type;
+
+    // key_type
+    typedef typename allocator::template rebind<Key>::other::value_type key_type;
+    typedef typename allocator::template rebind<key_type>::other key_rebind;
+    typedef typename key_rebind::reference 		key_reference;
+    typedef typename key_rebind::const_reference 	const_key_reference;
+    typedef typename key_rebind::pointer 		key_pointer;
+    typedef typename key_rebind::const_pointer 		const_key_pointer;
+
+    // mapped_type
+    typedef Mapped 					mapped_type;
+    typedef typename allocator::template rebind<mapped_type>::other mapped_rebind;
+    typedef typename mapped_rebind::reference 		mapped_reference;
+    typedef typename mapped_rebind::const_reference	const_mapped_reference;
+    typedef typename mapped_rebind::pointer 		mapped_pointer;
+    typedef typename mapped_rebind::const_pointer 	const_mapped_pointer;
+
+    // value_type
+    typedef typename base_type::value_type 		value_type;
+    typedef typename allocator::template rebind<value_type>::other value_rebind;
+    typedef typename value_rebind::reference		reference;
+    typedef typename value_rebind::const_reference 	const_reference;
+    typedef typename value_rebind::pointer 		pointer;
+    typedef typename value_rebind::const_pointer 	const_pointer;
+
+    // iterators
+    typedef typename base_type::iterator 		iterator;
+    typedef typename base_type::const_iterator 		const_iterator;
+    typedef typename base_type::point_iterator 		point_iterator;
+    typedef typename base_type::const_point_iterator 	const_point_iterator;
+
+    virtual
+    ~container_base() { }
+
+  protected:
+#define PB_DS_CLASS_NAME 		container_base
+#include <ext/pb_ds/detail/constructors_destructor_fn_imps.hpp>
+#undef PB_DS_CLASS_NAME
+  };
+
+#undef PB_DS_BASE_C_DEC
+
+
+#define PB_DS_BASE_C_DEC						\
+  container_base<Key, Mapped, Tag, typename detail::typelist_append< \
+										   typename detail::typelist4<Hash_Fn, Eq_Fn, Resize_Policy, detail::integral_constant<int,Store_Hash> >::type, \
+										   Policy_TL>::type, Allocator>
+
+  // An abstract basic hash-based associative container.
+  template<typename Key,
+	   typename Mapped,
+	   typename Hash_Fn,
+	   typename Eq_Fn,
+	   typename Resize_Policy,
+	   bool Store_Hash,
+	   typename Tag,
+	   typename Policy_TL,
+	   typename Allocator>
+  class basic_hash_table : public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC base_type;
+
+  public:
+    virtual
+    ~basic_hash_table() { }
+
+  protected:
+#define PB_DS_CLASS_NAME basic_hash_table
+#include <ext/pb_ds/detail/constructors_destructor_fn_imps.hpp>
+#undef PB_DS_CLASS_NAME
+
+  private:
+    basic_hash_table& 
+    operator=(const base_type&);
+  };
+
+#undef PB_DS_BASE_C_DEC
+
+
+#define PB_DS_BASE_C_DEC						\
+  basic_hash_table<Key, Mapped,	Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, \
+		   cc_hash_tag,						\
+		   typename detail::typelist1<Comb_Hash_Fn>::type, Allocator>
+
+  // A concrete collision-chaining hash-based associative container.
+  template<typename Key,
+	   typename Mapped,
+	   typename Hash_Fn = typename detail::default_hash_fn<Key>::type,
+	   typename Eq_Fn = typename detail::default_eq_fn<Key>::type,
+	   typename Comb_Hash_Fn = detail::default_comb_hash_fn::type,
+	   typename Resize_Policy = typename detail::default_resize_policy<Comb_Hash_Fn>::type,
+	   bool Store_Hash = detail::default_store_hash,
+	   typename Allocator = std::allocator<char> >
+  class cc_hash_table :  public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC 	base_type;
+
+  public:
+    typedef Hash_Fn 		hash_fn;
+    typedef Eq_Fn 		eq_fn;
+    typedef Resize_Policy 	resize_policy;
+    typedef Comb_Hash_Fn 	comb_hash_fn;
+
+    // Default constructor.
+    cc_hash_table() { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the Hash_Fn object of the container object.
+    cc_hash_table(const hash_fn& h) 
+      : base_type(h) { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object, and
+    // r_eq_fn will be copied by the eq_fn object of the container
+    // object.
+    cc_hash_table(const hash_fn& h, const eq_fn& e)
+      : base_type(h, e) { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object, r_eq_fn
+    // will be copied by the eq_fn object of the container object, and
+    // r_comb_hash_fn will be copied by the comb_hash_fn object of the
+    // container object.
+    cc_hash_table(const hash_fn& h, const eq_fn& e, const comb_hash_fn& ch)
+      : base_type(h, e, ch) { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object, r_eq_fn
+    // will be copied by the eq_fn object of the container object,
+    // r_comb_hash_fn will be copied by the comb_hash_fn object of the
+    // container object, and r_resize_policy will be copied by the
+    // resize_policy object of the container object.
+    cc_hash_table(const hash_fn& h, const eq_fn& e, const comb_hash_fn& ch, 
+		  const resize_policy& rp)    
+      : base_type(h, e, ch, rp) { }
+
+    // Constructor taking __iterators to a range of value_types. The
+    // value_types between first_it and last_it will be inserted into
+    // the container object.
+    template<typename It>
+    cc_hash_table(It first, It last)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects. The value_types between first_it and
+    // last_it will be inserted into the container object.
+    template<typename It>
+    cc_hash_table(It first, It last, const hash_fn& h)
+      : base_type(h)
+    { copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object,
+    // and r_eq_fn will be copied by the eq_fn object of the container
+    // object.
+    template<typename It>
+    cc_hash_table(It first, It last, const hash_fn& h, const eq_fn& e)
+      : base_type(h, e)
+    { copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object,
+    // r_eq_fn will be copied by the eq_fn object of the container
+    // object, and r_comb_hash_fn will be copied by the comb_hash_fn
+    // object of the container object.
+    template<typename It>
+    cc_hash_table(It first, It last, const hash_fn& h, const eq_fn& e,
+		  const comb_hash_fn& ch)
+      : base_type(h, e, ch)
+    { copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object,
+    // r_eq_fn will be copied by the eq_fn object of the container
+    // object, r_comb_hash_fn will be copied by the comb_hash_fn
+    // object of the container object, and r_resize_policy will be
+    // copied by the resize_policy object of the container object.
+    template<typename It>
+    cc_hash_table(It first, It last, const hash_fn& h, const eq_fn& e, 
+		  const comb_hash_fn& ch, const resize_policy& rp)
+      : base_type(h, e, ch, rp)
+    { copy_from_range(first, last); }
+
+    cc_hash_table(const cc_hash_table& other)
+      : base_type((const base_type&)other)
+    { }
+
+    virtual
+    ~cc_hash_table() { }
+
+    cc_hash_table& 
+    operator=(const cc_hash_table& other)
+    {
+      if (this !=& other)
+	{
+	  cc_hash_table tmp(other);
+	  swap(tmp);
+	}
+      return *this;
+    }
+
+    void
+    swap(cc_hash_table& other)
+    { base_type::swap(other); }
+  };
+
+#undef PB_DS_BASE_C_DEC
+
+
+#define PB_DS_BASE_C_DEC						\
+  basic_hash_table<Key, Mapped,	Hash_Fn, Eq_Fn, Resize_Policy, Store_Hash, \
+		   gp_hash_tag,						\
+		   typename detail::typelist2<Comb_Probe_Fn, Probe_Fn>::type, Allocator>
+
+  // A concrete general-probing hash-based associative container.
+  template<typename Key,
+	   typename Mapped,
+	   typename Hash_Fn = typename detail::default_hash_fn<Key>::type,
+	   typename Eq_Fn = typename detail::default_eq_fn<Key>::type,
+	   typename Comb_Probe_Fn = detail::default_comb_hash_fn::type,
+	   typename Probe_Fn = typename detail::default_probe_fn<Comb_Probe_Fn>::type,
+	   typename Resize_Policy = typename detail::default_resize_policy<Comb_Probe_Fn>::type,
+	   bool Store_Hash = detail::default_store_hash,
+	   typename Allocator = std::allocator<char> >
+  class gp_hash_table : public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC 	base_type;
+
+  public:
+    typedef Hash_Fn 		hash_fn;
+    typedef Eq_Fn 		eq_fn;
+    typedef Comb_Probe_Fn	comb_probe_fn;
+    typedef Probe_Fn 		probe_fn;
+    typedef Resize_Policy 	resize_policy;
+
+    // Default constructor.
+    gp_hash_table() { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object.
+    gp_hash_table(const hash_fn& h)
+      : base_type(h) { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object, and
+    // r_eq_fn will be copied by the eq_fn object of the container
+    // object.
+    gp_hash_table(const hash_fn& h, const eq_fn& e)
+      : base_type(h, e) { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object, r_eq_fn
+    // will be copied by the eq_fn object of the container object, and
+    // r_comb_probe_fn will be copied by the comb_probe_fn object of
+    // the container object.
+    gp_hash_table(const hash_fn& h, const eq_fn& e, const comb_probe_fn& cp)
+      : base_type(h, e, cp) { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object, r_eq_fn
+    // will be copied by the eq_fn object of the container object,
+    // r_comb_probe_fn will be copied by the comb_probe_fn object of
+    // the container object, and r_probe_fn will be copied by the
+    // probe_fn object of the container object.
+    gp_hash_table(const hash_fn& h, const eq_fn& e, const comb_probe_fn& cp, 
+		  const probe_fn& p)
+      : base_type(h, e, cp, p) { }
+
+    // Constructor taking some policy objects. r_hash_fn will be
+    // copied by the hash_fn object of the container object, r_eq_fn
+    // will be copied by the eq_fn object of the container object,
+    // r_comb_probe_fn will be copied by the comb_probe_fn object of
+    // the container object, r_probe_fn will be copied by the probe_fn
+    // object of the container object, and r_resize_policy will be
+    // copied by the Resize_Policy object of the container object.
+    gp_hash_table(const hash_fn& h, const eq_fn& e, const comb_probe_fn& cp, 
+		  const probe_fn& p, const resize_policy& rp)
+      : base_type(h, e, cp, p, rp) { }
+
+    // Constructor taking __iterators to a range of value_types. The
+    // value_types between first_it and last_it will be inserted into
+    // the container object.
+    template<typename It>
+    gp_hash_table(It first, It last)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects. The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object.
+    template<typename It>
+    gp_hash_table(It first, It last, const hash_fn& h)
+      : base_type(h)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects. The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object,
+    // and r_eq_fn will be copied by the eq_fn object of the container
+    // object.
+    template<typename It>
+    gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e)
+      : base_type(h, e)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects. The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object,
+    // r_eq_fn will be copied by the eq_fn object of the container
+    // object, and r_comb_probe_fn will be copied by the comb_probe_fn
+    // object of the container object.
+    template<typename It>
+    gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e, 
+		  const comb_probe_fn& cp)
+      : base_type(h, e, cp)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects. The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object,
+    // r_eq_fn will be copied by the eq_fn object of the container
+    // object, r_comb_probe_fn will be copied by the comb_probe_fn
+    // object of the container object, and r_probe_fn will be copied
+    // by the probe_fn object of the container object.
+    template<typename It>
+    gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e, 
+		  const comb_probe_fn& cp, const probe_fn& p)
+      : base_type(h, e, cp, p)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects. The value_types between first_it and
+    // last_it will be inserted into the container object. r_hash_fn
+    // will be copied by the hash_fn object of the container object,
+    // r_eq_fn will be copied by the eq_fn object of the container
+    // object, r_comb_probe_fn will be copied by the comb_probe_fn
+    // object of the container object, r_probe_fn will be copied by
+    // the probe_fn object of the container object, and
+    // r_resize_policy will be copied by the resize_policy object of
+    // the container object.
+    template<typename It>
+    gp_hash_table(It first, It last, const hash_fn& h, const eq_fn& e, 
+		  const comb_probe_fn& cp, const probe_fn& p, 
+		  const resize_policy& rp)
+      : base_type(h, e, cp, p, rp)
+    { base_type::copy_from_range(first, last); }
+
+    gp_hash_table(const gp_hash_table& other)
+      : base_type((const base_type&)other)
+    { }
+
+    virtual
+    ~gp_hash_table() { }
+
+    gp_hash_table& 
+    operator=(const gp_hash_table& other)
+    {
+      if (this !=& other)
+	{
+	  gp_hash_table tmp(other);
+	  swap(tmp);
+	}
+      return *this;
+    }
+
+    void
+    swap(gp_hash_table& other)
+    { base_type::swap(other); }
+  };
+
+#undef PB_DS_BASE_C_DEC
+
+
+#define PB_DS_BASE_C_DEC					\
+  container_base<Key, Mapped, Tag, Policy_Tl, Allocator>
+
+  // An abstract basic tree-like (tree, trie) associative container.
+  template<typename Key, typename Mapped, typename Tag, 
+	   typename Node_Update, typename Policy_Tl, typename Allocator>
+  class basic_tree : public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC 	base_type;
+
+  public:
+    typedef Node_Update 	node_update;
+
+    virtual
+    ~basic_tree() { }
+
+  protected:
+#define PB_DS_CLASS_NAME 		basic_tree
+#include <ext/pb_ds/detail/constructors_destructor_fn_imps.hpp>
+#undef PB_DS_CLASS_NAME
+  };
+
+#undef PB_DS_BASE_C_DEC
+
+
+#define PB_DS_TREE_NODE_AND_IT_TRAITS_C_DEC				\
+  detail::tree_traits<Key, Mapped,Cmp_Fn,Node_Update,Tag, Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+  basic_tree<Key,Mapped,Tag,typename PB_DS_TREE_NODE_AND_IT_TRAITS_C_DEC::node_update, \
+	     typename detail::typelist2<Cmp_Fn, PB_DS_TREE_NODE_AND_IT_TRAITS_C_DEC >::type, Allocator>
+
+  // A concrete basic tree-based associative container.
+  template<typename Key, typename Mapped, typename Cmp_Fn = std::less<Key>,
+	   typename Tag = rb_tree_tag,
+	   template<typename Const_Node_Iterator, typename Node_Iterator, typename Cmp_Fn_, typename Allocator_>
+  class Node_Update = pb_ds::null_tree_node_update,
+	   typename Allocator = std::allocator<char> >
+  class tree : public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC 	base_type;
+
+  public:
+    // Comparison functor type.
+    typedef Cmp_Fn 		cmp_fn;
+
+    tree() { }
+
+    // Constructor taking some policy objects. r_cmp_fn will be copied
+    // by the Cmp_Fn object of the container object.
+    tree(const cmp_fn& c)
+      : base_type(c) { }
+
+    // Constructor taking __iterators to a range of value_types. The
+    // value_types between first_it and last_it will be inserted into
+    // the container object.
+    template<typename It>
+    tree(It first, It last)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects The value_types between first_it and
+    // last_it will be inserted into the container object. r_cmp_fn
+    // will be copied by the cmp_fn object of the container object.
+    template<typename It>
+    tree(It first, It last, const cmp_fn& c)
+      : base_type(c)
+    { base_type::copy_from_range(first, last); }
+
+    tree(const tree& other)
+      : base_type((const base_type&)other) { }
+
+    virtual
+    ~tree() { }
+
+    tree& 
+    operator=(const tree& other)
+    {
+      if (this !=& other)
+	{
+	  tree tmp(other);
+	  swap(tmp);
+	}
+      return *this;
+    }
+
+    void
+    swap(tree& other)
+    { base_type::swap(other); }
+  };
+
+#undef PB_DS_BASE_C_DEC
+#undef PB_DS_TREE_NODE_AND_IT_TRAITS_C_DEC
+
+
+#define PB_DS_TRIE_NODE_AND_ITS_TRAITS					\
+  detail::trie_traits<Key,Mapped,E_Access_Traits,Node_Update,Tag,Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+  basic_tree<Key,Mapped,Tag, typename PB_DS_TRIE_NODE_AND_ITS_TRAITS::node_update, \
+	     typename detail::typelist2<E_Access_Traits, PB_DS_TRIE_NODE_AND_ITS_TRAITS >::type, Allocator>
+
+  // A concrete basic trie-based associative container.
+  template<typename Key,
+	   typename Mapped,
+	   typename E_Access_Traits = typename detail::default_trie_e_access_traits<Key>::type,
+	   typename Tag = pat_trie_tag,
+	   template<typename Const_Node_Iterator,
+		    typename Node_Iterator,
+		    typename E_Access_Traits_,
+		    typename Allocator_>
+  class Node_Update = null_trie_node_update,
+	   typename Allocator = std::allocator<char> >
+  class trie : public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC base_type;
+
+  public:
+    // Element access traits type.
+    typedef E_Access_Traits e_access_traits;
+
+    trie() { }
+
+    // Constructor taking some policy objects. r_e_access_traits will
+    // be copied by the E_Access_Traits object of the container
+    // object.
+    trie(const e_access_traits& t)
+      : base_type(t) { }
+
+    // Constructor taking __iterators to a range of value_types. The
+    // value_types between first_it and last_it will be inserted into
+    // the container object.
+    template<typename It>
+    trie(It first, It last)
+    { base_type::copy_from_range(first, last); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects. The value_types between first_it and
+    // last_it will be inserted into the container object.
+    template<typename It>
+    trie(It first, It last, const e_access_traits& t)
+      : base_type(t)
+    { base_type::copy_from_range(first, last); }
+
+    trie(const trie& other)
+      : base_type((const base_type&)other) { }
+
+    virtual
+    ~trie() { }
+
+    trie& 
+    operator=(const trie& other)
+    {
+      if (this !=& other)
+	{
+	  trie tmp(other);
+	  swap(tmp);
+	}
+      return *this;
+    }
+
+    void
+    swap(trie& other)
+    { base_type::swap(other); }
+  };
+
+#undef PB_DS_BASE_C_DEC
+#undef PB_DS_TRIE_NODE_AND_ITS_TRAITS
+
+
+#define PB_DS_BASE_C_DEC						\
+  container_base<Key, Mapped, list_update_tag,			\
+			typename detail::typelist2<Eq_Fn, Update_Policy>::type, Allocator>
+
+  // A list-update based associative container.
+  template<typename Key,
+	   typename Mapped,
+	   class Eq_Fn = typename detail::default_eq_fn<Key>::type,
+	   class Update_Policy = detail::default_update_policy::type,
+	   class Allocator = std::allocator<char> >
+  class list_update : public PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC 	base_type;
+
+  public:
+    typedef Eq_Fn 		eq_fn;
+    typedef Update_Policy 	update_policy;
+    typedef Allocator 		allocator;
+
+    list_update() { }
+
+    // Constructor taking __iterators to a range of value_types. The
+    // value_types between first_it and last_it will be inserted into
+    // the container object.
+    template<typename It>
+    list_update(It first, It last)
+    { base_type::copy_from_range(first, last); }
+
+    list_update(const list_update& other)
+      : base_type((const base_type&)other) { }
+
+    virtual
+    ~list_update() { }
+
+    list_update& 
+    operator=(const list_update& other)
+    {
+      if (this !=& other)
+	{
+	  list_update tmp(other);
+	  swap(tmp);
+	}
+      return *this;
+    }
+
+    void
+    swap(list_update& other)
+    { base_type::swap(other); }
+  };
+
+#undef PB_DS_BASE_C_DEC
+
+} // namespace pb_ds
+
+#endif 
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp
new file mode 100644
index 000000000000..d396d7d5da50
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp
@@ -0,0 +1,179 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_tree_policy_base.hpp
+ * Contains a base class for tree_like policies.
+ */
+
+#ifndef PB_DS_TREE_LIKE_POLICY_BASE_HPP
+#define PB_DS_TREE_LIKE_POLICY_BASE_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CLASS_C_DEC						\
+    basic_tree_policy_base<						\
+							Const_Node_Iterator, \
+							Node_Iterator,	\
+							Allocator>
+
+    template<typename Const_Node_Iterator,
+	     typename Node_Iterator,
+	     typename Allocator>
+    struct basic_tree_policy_base
+    {
+    protected:
+      typedef typename Node_Iterator::value_type it_type;
+
+      typedef typename std::iterator_traits< it_type>::value_type value_type;
+
+      typedef typename value_type::first_type key_type;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	key_type>::type>::other::const_reference
+      const_key_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	value_type>::type>::other::const_reference
+      const_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	value_type>::type>::other::reference
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	value_type>::type>::other::const_pointer
+      const_pointer;
+
+      static inline const_key_reference
+      extract_key(const_reference r_val)
+      {
+	return (r_val.first);
+      }
+
+      virtual it_type
+      end() = 0;
+
+      it_type
+      end_iterator() const
+      {
+	return (const_cast<PB_DS_CLASS_C_DEC* >(this)->end());
+      }
+
+      virtual
+      ~basic_tree_policy_base()
+      { }
+    };
+
+    template<typename Const_Node_Iterator, typename Allocator>
+    struct basic_tree_policy_base<
+      Const_Node_Iterator,
+      Const_Node_Iterator,
+      Allocator>
+    {
+    protected:
+      typedef typename Const_Node_Iterator::value_type it_type;
+
+      typedef typename std::iterator_traits< it_type>::value_type value_type;
+
+      typedef value_type key_type;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	key_type>::type>::other::const_reference
+      const_key_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	value_type>::type>::other::const_reference
+      const_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	value_type>::type>::other::reference
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	value_type>::type>::other::const_pointer
+      const_pointer;
+
+      static inline const_key_reference
+      extract_key(const_reference r_val)
+      {
+	return (r_val);
+      }
+
+      virtual it_type
+      end() const = 0;
+
+      it_type
+      end_iterator() const
+      {
+	return (end());
+      }
+
+      virtual
+      ~basic_tree_policy_base()
+      { }
+    };
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TREE_LIKE_POLICY_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp b/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp
new file mode 100644
index 000000000000..1e050f807ac2
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file null_node_metadata.hpp
+ * Contains an implementation class for tree-like classes.
+ */
+
+#ifndef PB_DS_NULL_NODE_METADATA_HPP
+#define PB_DS_NULL_NODE_METADATA_HPP
+
+#include <ext/pb_ds/detail/types_traits.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key, class Data, class Allocator>
+    struct dumconst_node_iterator
+    {
+    private:
+      typedef
+      typename types_traits<
+      Key,
+      Data,
+      Allocator,
+      false>::pointer
+      const_iterator;
+
+    public:
+      typedef const_iterator value_type;
+
+      typedef const_iterator const_reference;
+
+      typedef const_reference reference;
+    };
+
+    struct null_node_metadata
+    { };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NULL_NODE_METADATA_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/traits.hpp
new file mode 100644
index 000000000000..c574bc09aa42
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/basic_tree_policy/traits.hpp
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file traits.hpp
+ * Contains an implementation class for tree-like classes.
+ */
+
+#ifndef PB_DS_NODE_AND_IT_TRAITS_HPP
+#define PB_DS_NODE_AND_IT_TRAITS_HPP
+
+#include <ext/pb_ds/detail/types_traits.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/traits.hpp>
+#include <ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp>
+#include <ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {    
+    template<typename Key,
+	     typename Data,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator>
+    class Node_Update,
+	     class Tag,
+	     class Allocator>
+    struct tree_traits;
+
+    template<typename Key,
+	     typename Data,
+	     class E_Access_Traits,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class E_Access_Traits_,
+		      class Allocator>
+    class Node_Update,
+	     class Tag,
+	     class Allocator>
+    struct trie_traits;
+
+  } // namespace detail
+} // namespace pb_ds
+
+#include <ext/pb_ds/detail/rb_tree_map_/traits.hpp>
+#include <ext/pb_ds/detail/splay_tree_/traits.hpp>
+#include <ext/pb_ds/detail/ov_tree_map_/traits.hpp>
+#include <ext/pb_ds/detail/pat_trie_/traits.hpp>
+
+#endif // #ifndef PB_DS_NODE_AND_IT_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp b/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp
new file mode 100644
index 000000000000..4bad6c04a7fe
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/basic_types.hpp
@@ -0,0 +1,377 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_types.hpp
+ * Contains basic types used by containers.
+ */
+
+#ifndef PB_DS_BASIC_TYPES_HPP
+#define PB_DS_BASIC_TYPES_HPP
+
+#include <algorithm>
+#include <utility>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key, class Mapped, class Allocator, bool Store_Hash>
+    struct value_type_base;
+
+#define PB_DS_CLASS_T_DEC					\
+    template<typename Key, class Mapped, class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    value_type_base<						\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						false>
+
+    /**
+     * Specialization of value_type_base for the case where the hash value
+     *    is not stored alongside each value.
+     **/
+    template<typename Key, class Mapped, class Allocator>
+    struct value_type_base<
+      Key,
+      Mapped,
+      Allocator,
+      false>
+    {
+
+      typedef
+      typename Allocator::template rebind<
+	Mapped>::other
+      mapped_type_allocator;
+
+      typedef typename mapped_type_allocator::value_type mapped_type;
+
+      typedef typename mapped_type_allocator::pointer mapped_pointer;
+
+      typedef
+      typename mapped_type_allocator::const_pointer
+      const_mapped_pointer;
+
+      typedef typename mapped_type_allocator::reference mapped_reference;
+
+      typedef
+      typename mapped_type_allocator::const_reference
+      const_mapped_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	std::pair<const Key, Mapped> >::other
+      value_type_allocator;
+
+      typedef typename value_type_allocator::value_type value_type;
+
+      typedef typename value_type_allocator::pointer pointer;
+
+      typedef typename value_type_allocator::const_pointer const_pointer;
+
+      typedef typename value_type_allocator::reference reference;
+
+      typedef typename value_type_allocator::const_reference const_reference;
+
+      struct stored_value_type
+      {
+	value_type m_value;
+      };
+    };
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC					\
+    template<typename Key, class Mapped, class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    value_type_base<						\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						true>
+
+    /**
+     * Specialization of value_type_base for the case where the hash value
+     *    is stored alongside each value.
+     **/
+    template<typename Key, class Mapped, class Allocator>
+    struct value_type_base<
+      Key,
+      Mapped,
+      Allocator,
+      true>
+    {
+
+      typedef
+      typename Allocator::template rebind<
+	Mapped>::other
+      mapped_type_allocator;
+
+      typedef typename mapped_type_allocator::value_type mapped_type;
+
+      typedef typename mapped_type_allocator::pointer mapped_pointer;
+
+      typedef
+      typename mapped_type_allocator::const_pointer
+      const_mapped_pointer;
+
+      typedef typename mapped_type_allocator::reference mapped_reference;
+
+      typedef
+      typename mapped_type_allocator::const_reference
+      const_mapped_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	std::pair<const Key, Mapped> >::other
+      value_type_allocator;
+
+      typedef typename value_type_allocator::value_type value_type;
+
+      typedef typename value_type_allocator::pointer pointer;
+
+      typedef typename value_type_allocator::const_pointer const_pointer;
+
+      typedef typename value_type_allocator::reference reference;
+
+      typedef typename value_type_allocator::const_reference const_reference;
+
+      struct stored_value_type
+      {
+	value_type m_value;
+
+	typename Allocator::size_type m_hash;
+      };
+    };
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Key, class Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    value_type_base<							\
+						Key,			\
+						null_mapped_type,	\
+						Allocator,		\
+						false>
+
+    /**
+     * Specialization of value_type_base for the case where the hash value
+     *    is not stored alongside each value.
+     **/
+    template<typename Key, class Allocator>
+    struct value_type_base<
+      Key,
+      null_mapped_type,
+      Allocator,
+      false>
+    {
+
+      typedef
+      typename Allocator::template rebind<
+	null_mapped_type>::other
+      mapped_type_allocator;
+
+      typedef typename mapped_type_allocator::value_type mapped_type;
+
+      typedef typename mapped_type_allocator::pointer mapped_pointer;
+
+      typedef
+      typename mapped_type_allocator::const_pointer
+      const_mapped_pointer;
+
+      typedef typename mapped_type_allocator::reference mapped_reference;
+
+      typedef
+      typename mapped_type_allocator::const_reference
+      const_mapped_reference;
+
+      typedef Key value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other
+      value_type_allocator;
+
+      typedef typename value_type_allocator::pointer pointer;
+
+      typedef typename value_type_allocator::const_pointer const_pointer;
+
+      typedef typename value_type_allocator::reference reference;
+
+      typedef typename value_type_allocator::const_reference const_reference;
+
+      struct stored_value_type
+      {
+	Key m_value;
+      };
+
+    public:
+      static null_mapped_type s_null_mapped;
+    };
+
+    PB_DS_CLASS_T_DEC
+    null_mapped_type PB_DS_CLASS_C_DEC::s_null_mapped;
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Key, class Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    value_type_base<							\
+						Key,			\
+						null_mapped_type,	\
+						Allocator,		\
+						true>
+
+    /**
+     * Specialization of value_type_base for the case where the hash value
+     *    is stored alongside each value.
+     **/
+    template<typename Key, class Allocator>
+    struct value_type_base<
+      Key,
+      null_mapped_type,
+      Allocator,
+      true>
+    {
+
+      typedef
+      typename Allocator::template rebind<
+	null_mapped_type>::other
+      mapped_type_allocator;
+
+      typedef typename mapped_type_allocator::value_type mapped_type;
+
+      typedef typename mapped_type_allocator::pointer mapped_pointer;
+
+      typedef
+      typename mapped_type_allocator::const_pointer
+      const_mapped_pointer;
+
+      typedef typename mapped_type_allocator::reference mapped_reference;
+
+      typedef
+      typename mapped_type_allocator::const_reference
+      const_mapped_reference;
+
+      typedef Key value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	Key>::other
+      value_type_allocator;
+
+      typedef typename value_type_allocator::pointer pointer;
+
+      typedef typename value_type_allocator::const_pointer const_pointer;
+
+      typedef typename value_type_allocator::reference reference;
+
+      typedef typename value_type_allocator::const_reference const_reference;
+
+      struct stored_value_type
+      {
+	Key m_value;
+
+	typename Allocator::size_type m_hash;
+      };
+
+    public:
+      static null_mapped_type s_null_mapped;
+    };
+
+    PB_DS_CLASS_T_DEC
+    null_mapped_type PB_DS_CLASS_C_DEC::s_null_mapped;
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+    template<typename Key, class Mapped>
+    struct no_throw_copies;
+
+    template<typename Key, class Mapped>
+    struct no_throw_copies
+    {
+      typedef
+      integral_constant<int,
+				       is_simple<Key>::value&& 
+      is_simple<Mapped>::value>
+      indicator;
+    };
+
+    template<typename Key>
+    struct no_throw_copies<
+      Key,
+      null_mapped_type>
+    {
+      typedef
+      integral_constant<int,
+				       is_simple<Key>::value>
+      indicator;
+    };
+
+    template<typename Size_Type>
+    struct comp_hash_
+    {
+      typedef std::pair< Size_Type, Size_Type> comp_hash;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BASIC_TYPES_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
new file mode 100644
index 000000000000..8f325538f292
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
@@ -0,0 +1,530 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file bin_search_tree_.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+/*
+ * This implementation uses an idea from the SGI STL (using a "header" node
+ *    which is needed for efficient iteration).
+ */
+
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/detail/eq_fn/eq_by_less.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+#include <ext/pb_ds/detail/map_debug_base.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/tree_trace_base.hpp>
+#include <utility>
+#include <functional>
+#include <assert.h>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Cmp_Fn,		\
+						class Node_And_It_Traits, \
+						class Allocator>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    bin_search_tree_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    bin_search_tree_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC						\
+    PB_DS_CLASS_NAME<							\
+						Key,			\
+						Mapped,			\
+						Cmp_Fn,			\
+						Node_And_It_Traits,	\
+						Allocator>
+
+#define PB_DS_TYPES_TRAITS_C_DEC				\
+    types_traits<				\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						false>
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#define PB_DS_MAP_DEBUG_BASE_C_DEC					\
+    map_debug_base<					\
+								Key,	\
+								eq_by_less<Key, Cmp_Fn>, \
+								typename Allocator::template rebind< \
+												     Key>::other::const_reference>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#define PB_DS_EP2VP(X)& ((X)->m_value)
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped_Data()
+#define PB_DS_EP2VP(X)& ((X)->m_value.first)
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#ifdef PB_DS_TREE_TRACE
+#define PB_DS_TREE_TRACE_BASE_C_DEC					\
+    tree_trace_base<							\
+									typename Node_And_It_Traits::const_node_iterator, \
+									typename Node_And_It_Traits::node_iterator, \
+									Cmp_Fn,	\
+									true, \
+									Allocator>
+#endif // #ifdef PB_DS_TREE_TRACE
+
+    /**
+     * class description = "8i|\|4ree $34rc|-| 7r33 74813.">
+     **/
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     class Node_And_It_Traits,
+	     class Allocator>
+    class PB_DS_CLASS_NAME :
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+      public PB_DS_MAP_DEBUG_BASE_C_DEC,
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#ifdef PB_DS_TREE_TRACE
+      public PB_DS_TREE_TRACE_BASE_C_DEC,
+#endif // #ifdef PB_DS_TREE_TRACE
+      public Cmp_Fn,
+      public PB_DS_TYPES_TRAITS_C_DEC,
+      public Node_And_It_Traits::node_update
+    {
+
+    protected:
+      typedef
+      typename Allocator::template rebind<
+      typename Node_And_It_Traits::node>::other
+      node_allocator;
+
+      typedef typename node_allocator::value_type node;
+
+      typedef typename node_allocator::pointer node_pointer;
+
+      typedef PB_DS_TYPES_TRAITS_C_DEC traits_base;
+
+      typedef
+      typename Node_And_It_Traits::null_node_update_pointer
+      null_node_update_pointer;
+
+    private:
+      typedef cond_dealtor< node, Allocator> cond_dealtor_t;
+
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+      typedef PB_DS_MAP_DEBUG_BASE_C_DEC map_debug_base;
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_pointer key_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_pointer
+      const_key_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_reference
+      const_key_reference;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::mapped_type mapped_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_pointer
+      mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_reference
+      mapped_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference;
+
+      typedef
+      typename Node_And_It_Traits::const_point_iterator
+      const_point_iterator;
+
+      typedef const_point_iterator const_iterator;
+
+      typedef typename Node_And_It_Traits::point_iterator point_iterator;
+
+      typedef point_iterator iterator;
+
+      typedef
+      typename Node_And_It_Traits::const_reverse_iterator
+      const_reverse_iterator;
+
+      typedef typename Node_And_It_Traits::reverse_iterator reverse_iterator;
+
+      typedef
+      typename Node_And_It_Traits::const_node_iterator
+      const_node_iterator;
+
+      typedef typename Node_And_It_Traits::node_iterator node_iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+      typedef typename Node_And_It_Traits::node_update node_update;
+
+    public:
+
+      PB_DS_CLASS_NAME();
+
+      PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
+
+      PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_update);
+
+      PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      ~PB_DS_CLASS_NAME();
+
+      inline bool
+      empty() const;
+
+      inline size_type
+      size() const;
+
+      inline size_type
+      max_size() const;
+
+      Cmp_Fn& 
+      get_cmp_fn();
+
+      const Cmp_Fn& 
+      get_cmp_fn() const;
+
+      inline point_iterator
+      lower_bound(const_key_reference r_key);
+
+      inline const_point_iterator
+      lower_bound(const_key_reference r_key) const;
+
+      inline point_iterator
+      upper_bound(const_key_reference r_key);
+
+      inline const_point_iterator
+      upper_bound(const_key_reference r_key) const;
+
+      inline point_iterator
+      find(const_key_reference r_key);
+
+      inline const_point_iterator
+      find(const_key_reference r_key) const;
+
+      inline iterator
+      begin();
+
+      inline const_iterator
+      begin() const;
+
+      inline iterator
+      end();
+
+      inline const_iterator
+      end() const;
+
+      inline reverse_iterator
+      rbegin();
+
+      inline const_reverse_iterator
+      rbegin() const;
+
+      inline reverse_iterator
+      rend();
+
+      inline const_reverse_iterator
+      rend() const;
+
+      inline const_node_iterator
+      node_begin() const;
+
+      inline node_iterator
+      node_begin();
+
+      inline const_node_iterator
+      node_end() const;
+
+      inline node_iterator
+      node_end();
+
+      void
+      clear();
+
+    protected:
+
+      void
+      value_swap(PB_DS_CLASS_C_DEC& other);
+
+      void
+      initialize_min_max();
+
+      inline iterator
+      insert_imp_empty(const_reference r_value);
+
+      inline iterator
+      insert_leaf_new(const_reference r_value, node_pointer p_nd, bool left_nd);
+
+      inline node_pointer
+      get_new_node_for_leaf_insert(const_reference r_val, false_type);
+
+      inline node_pointer
+      get_new_node_for_leaf_insert(const_reference r_val, true_type);
+
+      inline void
+      actual_erase_node(node_pointer p_nd);
+
+      inline std::pair<node_pointer, bool>
+      erase(node_pointer p_nd);
+
+      inline void
+      update_min_max_for_erased_node(node_pointer p_nd);
+
+      static void
+      clear_imp(node_pointer p_nd);
+
+      inline std::pair<
+	point_iterator,
+	bool>
+      insert_leaf(const_reference r_value);
+
+      inline void
+      rotate_left(node_pointer p_x);
+
+      inline void
+      rotate_right(node_pointer p_y);
+
+      inline void
+      rotate_parent(node_pointer p_nd);
+
+      inline void
+      apply_update(node_pointer p_nd, null_node_update_pointer);
+
+      template<typename Node_Update_>
+      inline void
+      apply_update(node_pointer p_nd, Node_Update_* p_update);
+
+      inline void
+      update_to_top(node_pointer p_nd, null_node_update_pointer);
+
+      template<typename Node_Update_>
+      inline void
+      update_to_top(node_pointer p_nd, Node_Update_* p_update);
+
+      bool
+      join_prep(PB_DS_CLASS_C_DEC& other);
+
+      void
+      join_finish(PB_DS_CLASS_C_DEC& other);
+
+      bool
+      split_prep(const_key_reference r_key, PB_DS_CLASS_C_DEC& other);
+
+      void
+      split_finish(PB_DS_CLASS_C_DEC& other);
+
+      size_type
+      recursive_count(node_pointer p_nd) const;
+
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+      void
+      assert_valid() const;
+
+      void
+      structure_only_assert_valid() const;
+
+      void
+      assert_node_consistent(const node_pointer p_nd) const;
+
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+    private:
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+      void
+      assert_iterators() const;
+
+      void
+      assert_consistent_with_debug_base() const;
+
+      void
+      assert_node_consistent_with_left(const node_pointer p_nd) const;
+
+      void
+      assert_node_consistent_with_right(const node_pointer p_nd) const;
+
+      void
+      assert_consistent_with_debug_base(const node_pointer p_nd) const;
+
+      void
+      assert_min() const;
+
+      void
+      assert_min_imp(const node_pointer p_nd) const;
+
+      void
+      assert_max() const;
+
+      void
+      assert_max_imp(const node_pointer p_nd) const;
+
+      void
+      assert_size() const;
+
+      typedef std::pair< const_pointer, const_pointer> node_consistent_t;
+
+      node_consistent_t
+      assert_node_consistent_(const node_pointer p_nd) const;
+
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+      void
+      initialize();
+
+      node_pointer
+      recursive_copy_node(const node_pointer p_nd);
+
+    protected:
+      node_pointer m_p_head;
+
+      size_type m_size;
+
+      static node_allocator s_node_allocator;
+    };
+
+#include <ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_NAME
+
+#undef PB_DS_TYPES_TRAITS_C_DEC
+
+#undef PB_DS_MAP_DEBUG_BASE_C_DEC
+
+#ifdef PB_DS_TREE_TRACE
+#undef PB_DS_TREE_TRACE_BASE_C_DEC
+#endif // #ifdef PB_DS_TREE_TRACE
+
+#undef PB_DS_V2F
+#undef PB_DS_EP2VP
+#undef PB_DS_V2S
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
similarity index 50%
rename from libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
rename to libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
index 37048874f5a7..d14d7bfaaa4b 100644
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
@@ -1,41 +1,43 @@
 // -*- C++ -*-
 
-// Copyright (C) 2005 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library 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.
+// 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 library 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.
+// This library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
 
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
 
 // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
 
 // Permission to use, copy, modify, sell, and distribute this software
 // is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
 // representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
+// purpose. It is provided "as is" without express or implied
+// warranty.
 
 /**
  * @file cond_dtor_entry_dealtor.hpp
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
similarity index 51%
rename from libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
rename to libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
index 022404fb66df..5373e548d3bd 100644
--- a/libstdc++-v3/include/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
@@ -1,41 +1,43 @@
 // -*- C++ -*-
 
-// Copyright (C) 2005 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
+// 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
 
 // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
 
 // Permission to use, copy, modify, sell, and distribute this software
 // is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
 // representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
+// purpose. It is provided "as is" without express or implied
+// warranty.
 
 /**
  * @file cond_key_dtor_entry_dealtor.hpp
@@ -72,7 +74,7 @@ public:
     if (m_key_destruct)
       m_p_nd->m_value.first.~Key();
 
-    my_bin_tree_base::s_alloc.deallocate(m_p_nd, 1);
+    bin_tree_base::s_alloc.deallocate(m_p_nd, 1);
   }
 
 protected:
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..aa758a01da7c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,257 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_allocator
+PB_DS_CLASS_C_DEC::s_node_allocator;
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME() :
+  m_p_head(s_node_allocator.allocate(1)),
+  m_size(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
+  Cmp_Fn(r_cmp_fn),
+  m_p_head(s_node_allocator.allocate(1)),
+  m_size(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update) :
+  Cmp_Fn(r_cmp_fn),
+  node_update(r_node_update),
+  m_p_head(s_node_allocator.allocate(1)),
+  m_size(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+  map_debug_base(other),
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#ifdef PB_DS_TREE_TRACE
+  PB_DS_TREE_TRACE_BASE_C_DEC(other),
+#endif // #ifdef PB_DS_TREE_TRACE
+  Cmp_Fn(other),
+  node_update(other),
+  m_p_head(s_node_allocator.allocate(1)),
+  m_size(0)
+{
+  initialize();
+
+  m_size = other.m_size;
+
+  PB_DS_DBG_ONLY(other.structure_only_assert_valid();)
+
+    try
+      {
+        m_p_head->m_p_parent =
+	  recursive_copy_node(other.m_p_head->m_p_parent);
+
+        if (m_p_head->m_p_parent != NULL)
+	  m_p_head->m_p_parent->m_p_parent = m_p_head;
+
+        m_size = other.m_size;
+
+        initialize_min_max();
+      }
+    catch(...)
+      {
+        PB_DS_DBG_ONLY(map_debug_base::clear();)
+
+	  s_node_allocator.deallocate(m_p_head, 1);
+
+        throw;
+      }
+
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    PB_DS_DBG_ONLY(other.structure_only_assert_valid();)
+
+    value_swap(other);
+
+  std::swap((Cmp_Fn& )(*this), (Cmp_Fn& )other);
+
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    PB_DS_DBG_ONLY(other.structure_only_assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+value_swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(map_debug_base::swap(other);)
+
+    std::swap(m_p_head, other.m_p_head);
+
+  std::swap(m_size, other.m_size);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~PB_DS_CLASS_NAME()
+{
+  clear();
+
+  s_node_allocator.deallocate(m_p_head, 1);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize()
+{
+  m_p_head->m_p_parent = NULL;
+  m_p_head->m_p_left = m_p_head;
+  m_p_head->m_p_right = m_p_head;
+
+  m_size = 0;
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+recursive_copy_node(const node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return (NULL);
+
+  node_pointer p_ret = s_node_allocator.allocate(1);
+
+  try
+    {
+      new (p_ret) node(*p_nd);
+    }
+  catch(...)
+    {
+      s_node_allocator.deallocate(p_ret, 1);
+
+      throw;
+    }
+
+  p_ret->m_p_left = p_ret->m_p_right = NULL;
+
+  try
+    {
+      p_ret->m_p_left = recursive_copy_node(p_nd->m_p_left);
+
+      p_ret->m_p_right = recursive_copy_node(p_nd->m_p_right);
+    }
+  catch(...)
+    {
+      clear_imp(p_ret);
+
+      throw;
+    }
+
+  if (p_ret->m_p_left != NULL)
+    p_ret->m_p_left->m_p_parent = p_ret;
+
+  if (p_ret->m_p_right != NULL)
+    p_ret->m_p_right->m_p_parent = p_ret;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_ret);)
+
+    return (p_ret);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize_min_max()
+{
+  if (m_p_head->m_p_parent == NULL)
+    {
+      m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
+
+      return;
+    }
+
+  {
+    node_pointer p_min = m_p_head->m_p_parent;
+
+    while (p_min->m_p_left != NULL)
+      p_min = p_min->m_p_left;
+
+    m_p_head->m_p_left = p_min;
+  }
+
+  {
+    node_pointer p_max = m_p_head->m_p_parent;
+
+    while (p_max->m_p_right != NULL)
+      p_max = p_max->m_p_right;
+
+    m_p_head->m_p_right = p_max;
+  }
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..e6a7d2b33d55
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
@@ -0,0 +1,325 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  structure_only_assert_valid();
+
+  assert_consistent_with_debug_base();
+
+  assert_size();
+
+  assert_iterators();
+
+  if (m_p_head->m_p_parent == NULL)
+    {
+      PB_DS_DBG_ASSERT(m_size == 0);
+    }
+  else
+    {
+      PB_DS_DBG_ASSERT(m_size > 0);
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+structure_only_assert_valid() const
+{
+  PB_DS_DBG_ASSERT(m_p_head != NULL);
+
+  if (m_p_head->m_p_parent == NULL)
+    {
+      PB_DS_DBG_ASSERT(m_p_head->m_p_left == m_p_head);
+      PB_DS_DBG_ASSERT(m_p_head->m_p_right == m_p_head);
+    }
+  else
+    {
+      PB_DS_DBG_ASSERT(m_p_head->m_p_parent->m_p_parent == m_p_head);
+
+      PB_DS_DBG_ASSERT(m_p_head->m_p_left != m_p_head);
+      PB_DS_DBG_ASSERT(m_p_head->m_p_right != m_p_head);
+    }
+
+  if (m_p_head->m_p_parent != NULL)
+    assert_node_consistent(m_p_head->m_p_parent);
+
+  assert_min();
+  assert_max();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_node_consistent(const node_pointer p_nd) const
+{
+  assert_node_consistent_(p_nd);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_consistent_t
+PB_DS_CLASS_C_DEC::
+assert_node_consistent_(const node_pointer p_nd) const
+{
+  if (p_nd == NULL)
+    return (std::make_pair((const_pointer)NULL,(const_pointer)NULL));
+
+  assert_node_consistent_with_left(p_nd);
+  assert_node_consistent_with_right(p_nd);
+
+  const std::pair<const_pointer, const_pointer>
+    l_range =
+    assert_node_consistent_(p_nd->m_p_left);
+
+  if (l_range.second != NULL)
+    PB_DS_DBG_ASSERT(Cmp_Fn::operator()(
+					PB_DS_V2F(*l_range.second),
+					PB_DS_V2F(p_nd->m_value)));
+
+  const std::pair<const_pointer, const_pointer>
+    r_range =
+    assert_node_consistent_(p_nd->m_p_right);
+
+  if (r_range.first != NULL)
+    PB_DS_DBG_ASSERT(Cmp_Fn::operator()(
+					PB_DS_V2F(p_nd->m_value),
+					PB_DS_V2F(*r_range.first)));
+
+  return (std::make_pair((l_range.first != NULL)? l_range.first :& p_nd->m_value,(r_range.second != NULL)? r_range.second :& p_nd->m_value));
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_node_consistent_with_left(const node_pointer p_nd) const
+{
+  if (p_nd->m_p_left == NULL)
+    return;
+
+  PB_DS_DBG_ASSERT(p_nd->m_p_left->m_p_parent == p_nd);
+
+  PB_DS_DBG_ASSERT(!Cmp_Fn::operator()(
+				       PB_DS_V2F(p_nd->m_value),
+				       PB_DS_V2F(p_nd->m_p_left->m_value)));
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_node_consistent_with_right(const node_pointer p_nd) const
+{
+  if (p_nd->m_p_right == NULL)
+    return;
+
+  PB_DS_DBG_ASSERT(p_nd->m_p_right->m_p_parent == p_nd);
+
+  PB_DS_DBG_ASSERT(!Cmp_Fn::operator()(
+				       PB_DS_V2F(p_nd->m_p_right->m_value),
+				       PB_DS_V2F(p_nd->m_value)));
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_min() const
+{
+  assert_min_imp(m_p_head->m_p_parent);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_min_imp(const node_pointer p_nd) const
+{
+  if (p_nd == NULL)
+    {
+      PB_DS_DBG_ASSERT(m_p_head->m_p_left == m_p_head);
+
+      return;
+    }
+
+  if (p_nd->m_p_left == NULL)
+    {
+      PB_DS_DBG_ASSERT(p_nd == m_p_head->m_p_left);
+
+      return;
+    }
+
+  assert_min_imp(p_nd->m_p_left);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_max() const
+{
+  assert_max_imp(m_p_head->m_p_parent);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_max_imp(const node_pointer p_nd) const
+{
+  if (p_nd == NULL)
+    {
+      PB_DS_DBG_ASSERT(m_p_head->m_p_right == m_p_head);
+
+      return;
+    }
+
+  if (p_nd->m_p_right == NULL)
+    {
+      PB_DS_DBG_ASSERT(p_nd == m_p_head->m_p_right);
+
+      return;
+    }
+
+  assert_max_imp(p_nd->m_p_right);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_iterators() const
+{
+  size_type iterated_num = 0;
+
+  const_iterator prev_it = end();
+
+  for (const_iterator it = begin(); it != end(); ++it)
+    {
+      ++iterated_num;
+
+      PB_DS_DBG_ASSERT(lower_bound(
+				   PB_DS_V2F(*it)).m_p_nd == it.m_p_nd);
+
+      const_iterator upper_bound_it = upper_bound(
+						  PB_DS_V2F(*it));
+
+      --upper_bound_it;
+
+      PB_DS_DBG_ASSERT(upper_bound_it.m_p_nd == it.m_p_nd);
+
+      if (prev_it != end())
+	PB_DS_DBG_ASSERT(Cmp_Fn::operator()(
+					    PB_DS_V2F(*prev_it),
+					    PB_DS_V2F(*it)));
+
+      prev_it = it;
+    }
+
+  PB_DS_DBG_ASSERT(iterated_num == m_size);
+
+  size_type reverse_iterated_num = 0;
+
+  const_reverse_iterator reverse_prev_it = rend();
+
+  for (const_reverse_iterator reverse_it = rbegin(); reverse_it != rend();
+       ++reverse_it)
+    {
+      ++reverse_iterated_num;
+
+      PB_DS_DBG_ASSERT(lower_bound(
+				   PB_DS_V2F(*reverse_it)).m_p_nd == reverse_it.m_p_nd);
+
+      const_iterator upper_bound_it = upper_bound(
+						  PB_DS_V2F(*reverse_it));
+
+      --upper_bound_it;
+
+      PB_DS_DBG_ASSERT(upper_bound_it.m_p_nd == reverse_it.m_p_nd);
+
+      if (reverse_prev_it != rend())
+	PB_DS_DBG_ASSERT(!Cmp_Fn::operator()(
+					     PB_DS_V2F(*reverse_prev_it),
+					     PB_DS_V2F(*reverse_it)));
+
+      reverse_prev_it = reverse_it;
+    }
+
+  PB_DS_DBG_ASSERT(reverse_iterated_num == m_size);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_consistent_with_debug_base() const
+{
+  map_debug_base::check_size(m_size);
+
+  assert_consistent_with_debug_base(m_p_head->m_p_parent);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_consistent_with_debug_base(const node_pointer p_nd) const
+{
+  if (p_nd == NULL)
+    return;
+
+  map_debug_base::check_key_exists(
+				   PB_DS_V2F(p_nd->m_value));
+
+  assert_consistent_with_debug_base(p_nd->m_p_left);
+  assert_consistent_with_debug_base(p_nd->m_p_right);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_size() const
+{
+  PB_DS_DBG_ASSERT(recursive_count(m_p_head->m_p_parent) == m_size);
+}
+
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..d34368bbb520
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+actual_erase_node(node_pointer p_z)
+{
+  PB_DS_DBG_ASSERT(m_size > 0);
+  --m_size;
+
+  PB_DS_DBG_ONLY(erase_existing(PB_DS_V2F(p_z->m_value)));
+
+  p_z->~node();
+
+  s_node_allocator.deallocate(p_z, 1);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+update_min_max_for_erased_node(node_pointer p_z)
+{
+  if (m_size == 1)
+    {
+      m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
+
+      return;
+    }
+
+  if (m_p_head->m_p_left == p_z)
+    {
+      iterator it(p_z);
+
+      ++it;
+
+      m_p_head->m_p_left = it.m_p_nd;
+    }
+  else if (m_p_head->m_p_right == p_z)
+    {
+      iterator it(p_z);
+
+      --it;
+
+      m_p_head->m_p_right = it.m_p_nd;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+
+    clear_imp(m_p_head->m_p_parent);
+
+  m_size = 0;
+
+  initialize();
+
+  PB_DS_DBG_ONLY(map_debug_base::clear();)
+
+    PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear_imp(node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return;
+
+  clear_imp(p_nd->m_p_left);
+
+  clear_imp(p_nd->m_p_right);
+
+  p_nd->~node();
+
+  s_node_allocator.deallocate(p_nd, 1);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
new file mode 100644
index 000000000000..0e79040280b1
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
@@ -0,0 +1,188 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+lower_bound(const_key_reference r_key) const
+{
+  node_pointer p_pot = m_p_head;
+  node_pointer p_nd = m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (Cmp_Fn::operator()(
+			   PB_DS_V2F(p_nd->m_value),
+			   r_key))
+      p_nd = p_nd->m_p_right;
+    else
+      {
+	p_pot = p_nd;
+
+	p_nd = p_nd->m_p_left;
+      }
+
+  return (iterator(p_pot));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+lower_bound(const_key_reference r_key)
+{
+  node_pointer p_pot = m_p_head;
+  node_pointer p_nd = m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (Cmp_Fn::operator()(
+			   PB_DS_V2F(p_nd->m_value),
+			   r_key))
+      p_nd = p_nd->m_p_right;
+    else
+      {
+	p_pot = p_nd;
+
+	p_nd = p_nd->m_p_left;
+      }
+
+  return (iterator(p_pot));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+upper_bound(const_key_reference r_key) const
+{
+  node_pointer p_pot = m_p_head;
+  node_pointer p_nd = m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (Cmp_Fn::operator()(r_key,
+			   PB_DS_V2F(p_nd->m_value)))
+      {
+	p_pot = p_nd,
+
+	  p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  return (const_iterator(p_pot));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+upper_bound(const_key_reference r_key)
+{
+  node_pointer p_pot = m_p_head;
+  node_pointer p_nd = m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (Cmp_Fn::operator()(r_key,
+			   PB_DS_V2F(p_nd->m_value)))
+      {
+	p_pot = p_nd,
+
+	  p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  return (point_iterator(p_pot));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key)
+{
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+
+    node_pointer p_pot = m_p_head;
+  node_pointer p_nd = m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
+      {
+	p_pot = p_nd;
+
+	p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  return point_iterator((p_pot != m_p_head&&  Cmp_Fn::operator()(
+								 r_key,
+								 PB_DS_V2F(p_pot->m_value)))?
+			m_p_head : p_pot);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key) const
+{
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+
+    node_pointer p_pot = m_p_head;
+  node_pointer p_nd = m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
+      {
+	p_pot = p_nd;
+
+	p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  return const_point_iterator((p_pot != m_p_head&&  Cmp_Fn::operator()(
+								       r_key,
+								       PB_DS_V2F(p_pot->m_value)))?
+			      m_p_head : p_pot);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
new file mode 100644
index 000000000000..4381efe3dc5d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (m_size == 0);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (m_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_node_allocator.max_size());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..2bad1d0ef91f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
@@ -0,0 +1,217 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool>
+PB_DS_CLASS_C_DEC::
+insert_leaf(const_reference r_value)
+{
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+
+    if (m_size == 0)
+      return (std::make_pair(
+			     insert_imp_empty(r_value),
+			     true));
+
+  node_pointer p_nd = m_p_head->m_p_parent;
+  node_pointer p_pot = m_p_head;
+
+  while (p_nd != NULL)
+    if (!Cmp_Fn::operator()(
+			    PB_DS_V2F(p_nd->m_value),
+			    PB_DS_V2F(r_value)))
+      {
+	p_pot = p_nd;
+
+	p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  if (p_pot == m_p_head)
+    return (std::make_pair(
+			   insert_leaf_new(r_value,  m_p_head->m_p_right, false),
+			   true));
+
+  if (!Cmp_Fn::operator()(
+			  PB_DS_V2F(r_value),
+			  PB_DS_V2F(p_pot->m_value)))
+    {
+      PB_DS_DBG_ONLY(structure_only_assert_valid();)
+
+        PB_DS_DBG_ONLY(map_debug_base::check_key_exists(
+							PB_DS_V2F(r_value)));
+
+      return (std::make_pair(p_pot, false));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+							  PB_DS_V2F(r_value)));
+
+  p_nd = p_pot->m_p_left;
+  if (p_nd == NULL)
+    return (std::make_pair(
+			   insert_leaf_new(r_value, p_pot, true),
+			   true));
+
+  while (p_nd->m_p_right != NULL)
+    p_nd = p_nd->m_p_right;
+
+  return (std::make_pair(
+			 insert_leaf_new(r_value, p_nd, false),
+			 true));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+insert_leaf_new(const_reference r_value, node_pointer p_nd, bool left_nd)
+{
+  node_pointer p_new_nd =
+    get_new_node_for_leaf_insert(            r_value, traits_base::m_no_throw_copies_indicator);
+
+  if (left_nd)
+    {
+      PB_DS_DBG_ASSERT(p_nd->m_p_left == NULL);
+      PB_DS_DBG_ASSERT(Cmp_Fn::operator()(
+					  PB_DS_V2F(r_value),
+					  PB_DS_V2F(p_nd->m_value)));
+
+      p_nd->m_p_left = p_new_nd;
+
+      if (m_p_head->m_p_left == p_nd)
+	m_p_head->m_p_left = p_new_nd;
+    }
+  else
+    {
+      PB_DS_DBG_ASSERT(p_nd->m_p_right == NULL);
+      PB_DS_DBG_ASSERT(Cmp_Fn::operator()(
+					  PB_DS_V2F(p_nd->m_value),
+					  PB_DS_V2F(r_value)));
+
+      p_nd->m_p_right = p_new_nd;
+
+      if (m_p_head->m_p_right == p_nd)
+	m_p_head->m_p_right = p_new_nd;
+    }
+
+  p_new_nd->m_p_parent = p_nd;
+
+  p_new_nd->m_p_left = p_new_nd->m_p_right = NULL;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_nd));
+
+  update_to_top(p_new_nd, (node_update* )this);
+
+  PB_DS_DBG_ONLY(map_debug_base::insert_new(
+					    PB_DS_V2F(r_value)));
+
+  return (iterator(p_new_nd));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+insert_imp_empty(const_reference r_value)
+{
+  node_pointer p_new_node =
+    get_new_node_for_leaf_insert(        r_value, traits_base::m_no_throw_copies_indicator);
+
+  m_p_head->m_p_left = m_p_head->m_p_right =
+    m_p_head->m_p_parent = p_new_node;
+
+  p_new_node->m_p_parent = m_p_head;
+
+  p_new_node->m_p_left = p_new_node->m_p_right = NULL;
+
+  PB_DS_DBG_ONLY(map_debug_base::insert_new(
+					    PB_DS_V2F(r_value)));
+
+  update_to_top(m_p_head->m_p_parent, (node_update* )this);
+
+  return (iterator(p_new_node));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+get_new_node_for_leaf_insert(const_reference r_val, false_type)
+{
+  node_pointer p_new_nd = s_node_allocator.allocate(1);
+
+  cond_dealtor_t cond(p_new_nd);
+
+  new (const_cast<void* >(
+			  static_cast<const void* >(&p_new_nd->m_value)))
+    typename node::value_type(r_val);
+
+  cond.set_no_action();
+
+  p_new_nd->m_p_left = p_new_nd->m_p_right = NULL;
+
+  ++m_size;
+
+  return (p_new_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+get_new_node_for_leaf_insert(const_reference r_val, true_type)
+{
+  node_pointer p_new_nd = s_node_allocator.allocate(1);
+
+  new (const_cast<void* >(
+			  static_cast<const void* >(&p_new_nd->m_value)))
+    typename node::value_type(r_val);
+
+  p_new_nd->m_p_left = p_new_nd->m_p_right = NULL;
+
+  ++m_size;
+
+  return (p_new_nd);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
new file mode 100644
index 000000000000..3132a4237214
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
@@ -0,0 +1,142 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterators_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+begin()
+{
+  return (iterator(m_p_head->m_p_left));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin() const
+{
+  return (const_iterator(m_p_head->m_p_left));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+end()
+{
+  return (iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end() const
+{
+  return (const_iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reverse_iterator
+PB_DS_CLASS_C_DEC::
+rbegin() const
+{
+  return (const_reverse_iterator(m_p_head->m_p_right));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::reverse_iterator
+PB_DS_CLASS_C_DEC::
+rbegin()
+{
+  return (reverse_iterator(m_p_head->m_p_right));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::reverse_iterator
+PB_DS_CLASS_C_DEC::
+rend()
+{
+  return (reverse_iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reverse_iterator
+PB_DS_CLASS_C_DEC::
+rend() const
+{
+  return (const_reverse_iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+node_begin() const
+{
+  return (const_node_iterator(m_p_head->m_p_parent));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+node_begin()
+{
+  return (node_iterator(m_p_head->m_p_parent));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+node_end() const
+{
+  return (const_node_iterator(NULL));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+node_end()
+{
+  return (node_iterator(NULL));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
new file mode 100644
index 000000000000..ce1cd22b0116
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
@@ -0,0 +1,243 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_iterators.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+#ifndef PB_DS_BIN_SEARCH_TREE_NODE_ITERATORS_HPP
+#define PB_DS_BIN_SEARCH_TREE_NODE_ITERATORS_HPP
+
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC			\
+    bin_search_tree_const_node_it_<					\
+							Node,		\
+							Const_Iterator,	\
+							Iterator,	\
+							Allocator>
+
+    // Const node iterator.
+    template<typename Node,
+	     class Const_Iterator,
+	     class Iterator,
+	     class Allocator>
+    class bin_search_tree_const_node_it_
+    {
+    private:
+
+    private:
+      typedef
+      typename Allocator::template rebind<
+      Node>::other::pointer
+      node_pointer;
+
+    public:
+
+      // Category.
+      typedef trivial_iterator_tag iterator_category;
+
+      // Difference type.
+      typedef trivial_iterator_difference_type difference_type;
+
+      // __Iterator's value type.
+      typedef Const_Iterator value_type;
+
+      // __Iterator's reference type.
+      typedef Const_Iterator reference;
+
+      // __Iterator's __const reference type.
+      typedef Const_Iterator const_reference;
+
+      // Metadata type.
+      typedef typename Node::metadata_type metadata_type;
+
+      // Const metadata reference type.
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::const_reference
+      const_metadata_reference;
+
+    public:
+
+      // Default constructor.
+      /*
+	inline
+	bin_search_tree_const_node_it_()
+      */
+
+      inline
+      bin_search_tree_const_node_it_(const node_pointer p_nd = NULL) : m_p_nd(const_cast<node_pointer>(p_nd))
+      { }
+
+      // Access.
+      inline const_reference
+      operator*() const
+      {
+	return (Const_Iterator(m_p_nd));
+      }
+
+      // Metadata access.
+      inline const_metadata_reference
+      get_metadata() const
+      {
+	return (m_p_nd->get_metadata());
+      }
+
+      // Returns the __const node iterator associated with the left node.
+      inline PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC
+      get_l_child() const
+      {
+	return (PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC(m_p_nd->m_p_left));
+      }
+
+      // Returns the __const node iterator associated with the right node.
+      inline PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC
+      get_r_child() const
+      {
+	return (PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC(m_p_nd->m_p_right));
+      }
+
+      // Compares to a different iterator object.
+      inline bool
+      operator==(const PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC& other) const
+      {
+	return (m_p_nd == other.m_p_nd);
+      }
+
+      // Compares (negatively) to a different iterator object.
+      inline bool
+      operator!=(const PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC& other) const
+      {
+	return (m_p_nd != other.m_p_nd);
+      }
+
+    public:
+      node_pointer m_p_nd;
+    };
+
+#define PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC			\
+    bin_search_tree_node_it_<					\
+						Node,		\
+						Const_Iterator, \
+						Iterator,	\
+						Allocator>
+
+    // Node iterator.
+    template<typename Node,
+	     class Const_Iterator,
+	     class Iterator,
+	     class Allocator>
+    class bin_search_tree_node_it_ : 
+      public PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC
+
+    {
+
+    private:
+      typedef
+      typename Allocator::template rebind<
+      Node>::other::pointer
+      node_pointer;
+
+    public:
+
+      // __Iterator's value type.
+      typedef Iterator value_type;
+
+      // __Iterator's reference type.
+      typedef Iterator reference;
+
+      // __Iterator's __const reference type.
+      typedef Iterator const_reference;
+
+    public:
+
+      // Default constructor.
+      /*
+	inline
+	bin_search_tree_node_it_();
+      */
+
+      inline
+      bin_search_tree_node_it_(const node_pointer p_nd = NULL) : PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC(
+													    const_cast<node_pointer>(p_nd))
+      { }
+
+      // Access.
+      inline Iterator
+      operator*() const
+      {
+	return (Iterator(PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC::m_p_nd));
+      }
+
+      // Returns the node iterator associated with the left node.
+      inline PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC
+      get_l_child() const
+      {
+	return (PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC(
+						     PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC::m_p_nd->m_p_left));
+      }
+
+      // Returns the node iterator associated with the right node.
+      inline PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC
+      get_r_child() const
+      {
+	return (PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC(
+						     PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC::m_p_nd->m_p_right));
+      }
+
+    };
+
+#undef PB_DS_TREE_CONST_NODE_ITERATOR_CLASS_C_DEC
+
+#undef PB_DS_TREE_NODE_ITERATOR_CLASS_C_DEC
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BIN_SEARCH_TREE_NODE_ITERATORS_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
new file mode 100644
index 000000000000..bf320241b1d0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
@@ -0,0 +1,461 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file point_iterators.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+#ifndef PB_DS_BIN_SEARCH_TREE_FIND_ITERATORS_HPP
+#define PB_DS_BIN_SEARCH_TREE_FIND_ITERATORS_HPP
+
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_TREE_CONST_IT_C_DEC					\
+    bin_search_tree_const_it_<						\
+						Node_Pointer,		\
+						Value_Type,		\
+						Pointer,		\
+						Const_Pointer,		\
+						Reference,		\
+						Const_Reference,	\
+						Is_Forward_Iterator,	\
+						Allocator>
+
+#define PB_DS_TREE_CONST_ODIR_IT_C_DEC					\
+    bin_search_tree_const_it_<						\
+						Node_Pointer,		\
+						Value_Type,		\
+						Pointer,		\
+						Const_Pointer,		\
+						Reference,		\
+						Const_Reference,	\
+						!Is_Forward_Iterator,	\
+						Allocator>
+
+#define PB_DS_TREE_IT_C_DEC						\
+    bin_search_tree_it_<						\
+						Node_Pointer,		\
+						Value_Type,		\
+						Pointer,		\
+						Const_Pointer,		\
+						Reference,		\
+						Const_Reference,	\
+						Is_Forward_Iterator,	\
+						Allocator>
+
+#define PB_DS_TREE_ODIR_IT_C_DEC					\
+    bin_search_tree_it_<						\
+							Node_Pointer,	\
+							Value_Type,	\
+							Pointer,	\
+							Const_Pointer,	\
+							Reference,	\
+							Const_Reference, \
+							!Is_Forward_Iterator, \
+							Allocator>
+
+#ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_DEBUG_
+
+    // Const iterator.
+    template<typename Node_Pointer,
+	     typename Value_Type,
+	     typename Pointer,
+	     typename Const_Pointer,
+	     typename Reference,
+	     typename Const_Reference,
+	     bool Is_Forward_Iterator,
+	     class Allocator>
+    class bin_search_tree_const_it_
+    {
+
+    public:
+
+      typedef std::bidirectional_iterator_tag iterator_category;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef Pointer pointer;
+
+      typedef Const_Pointer const_pointer;
+
+      typedef Reference reference;
+
+      typedef Const_Reference const_reference;
+
+    public:
+
+      inline
+      bin_search_tree_const_it_(const Node_Pointer p_nd = NULL) : m_p_nd(const_cast<Node_Pointer>(p_nd))
+      { }
+
+      inline
+      bin_search_tree_const_it_(const PB_DS_TREE_CONST_ODIR_IT_C_DEC& 
+				other) : m_p_nd(other.m_p_nd)
+      { }
+
+      inline
+      PB_DS_TREE_CONST_IT_C_DEC& 
+      operator=(const PB_DS_TREE_CONST_IT_C_DEC& 
+		other)
+      {
+	m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline
+      PB_DS_TREE_CONST_IT_C_DEC& 
+      operator=(const PB_DS_TREE_CONST_ODIR_IT_C_DEC& 
+		other)
+      {
+	m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline const_pointer
+      operator->() const
+      {
+	PB_DS_DBG_ASSERT(m_p_nd != NULL);
+
+	return (&m_p_nd->m_value);
+      }
+
+      inline const_reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(m_p_nd != NULL);
+
+	return (m_p_nd->m_value);
+      }
+
+      inline bool
+      operator==(const PB_DS_TREE_CONST_IT_C_DEC
+		 & other) const
+      {
+	return (m_p_nd == other.m_p_nd);
+      }
+
+      inline bool
+      operator==(const PB_DS_TREE_CONST_ODIR_IT_C_DEC
+		 & other) const
+      {
+	return (m_p_nd == other.m_p_nd);
+      }
+
+      inline bool
+      operator!=(const PB_DS_TREE_CONST_IT_C_DEC& 
+		 other) const
+      {
+	return (m_p_nd != other.m_p_nd);
+      }
+
+      inline bool
+      operator!=(const PB_DS_TREE_CONST_ODIR_IT_C_DEC& 
+		 other) const
+      {
+	return (m_p_nd != other.m_p_nd);
+      }
+
+      inline PB_DS_TREE_CONST_IT_C_DEC& 
+      operator++()
+      {
+	PB_DS_DBG_ASSERT(m_p_nd != NULL);
+
+	inc(integral_constant<int,Is_Forward_Iterator>());
+
+	return (*this);
+      }
+
+      inline PB_DS_TREE_CONST_IT_C_DEC
+      operator++(int)
+      {
+	PB_DS_TREE_CONST_IT_C_DEC
+	  ret_it(m_p_nd);
+
+	operator++();
+
+	return (ret_it);
+      }
+
+      inline PB_DS_TREE_CONST_IT_C_DEC& 
+      operator--()
+      {
+	dec(integral_constant<int,Is_Forward_Iterator>());
+
+	return (*this);
+      }
+
+      inline PB_DS_TREE_CONST_IT_C_DEC
+      operator--(int)
+      {
+	PB_DS_TREE_CONST_IT_C_DEC
+	  ret_it(m_p_nd);
+
+	operator--();
+
+	return (ret_it);
+      }
+
+    protected:
+      inline void
+      inc(false_type)
+      {
+	dec(true_type());
+      }
+
+      void
+      inc(true_type)
+      {
+	if (m_p_nd->special()&& 
+	    m_p_nd->m_p_parent->m_p_parent == m_p_nd)
+	  {
+	    m_p_nd = m_p_nd->m_p_left;
+
+	    return;
+	  }
+
+	if (m_p_nd->m_p_right != NULL)
+	  {
+	    m_p_nd = m_p_nd->m_p_right;
+
+	    while (m_p_nd->m_p_left != NULL)
+	      m_p_nd = m_p_nd->m_p_left;
+
+	    return;
+	  }
+
+	Node_Pointer p_y = m_p_nd->m_p_parent;
+
+	while (m_p_nd == p_y->m_p_right)
+	  {
+	    m_p_nd = p_y;
+
+	    p_y = p_y->m_p_parent;
+	  }
+
+	if (m_p_nd->m_p_right != p_y)
+	  m_p_nd = p_y;
+      }
+
+      inline void
+      dec(false_type)
+      {
+	inc(true_type());
+      }
+
+      void
+      dec(true_type)
+      {
+	if (m_p_nd->special()&& 
+	    m_p_nd->m_p_parent->m_p_parent == m_p_nd)
+	  {
+	    m_p_nd = m_p_nd->m_p_right;
+
+	    return;
+	  }
+
+	if (m_p_nd->m_p_left != NULL)
+	  {
+	    Node_Pointer p_y = m_p_nd->m_p_left;
+
+	    while (p_y->m_p_right != NULL)
+	      p_y = p_y->m_p_right;
+
+	    m_p_nd = p_y;
+
+	    return;
+	  }
+
+	Node_Pointer p_y = m_p_nd->m_p_parent;
+
+	while (m_p_nd == p_y->m_p_left)
+	  {
+	    m_p_nd = p_y;
+
+	    p_y = p_y->m_p_parent;
+	  }
+
+	if (m_p_nd->m_p_left != p_y)
+	  m_p_nd = p_y;
+      }
+
+    public:
+      Node_Pointer m_p_nd;
+    };
+
+    // Iterator.
+    template<typename Node_Pointer,
+	     typename Value_Type,
+	     typename Pointer,
+	     typename Const_Pointer,
+	     typename Reference,
+	     typename Const_Reference,
+	     bool Is_Forward_Iterator,
+	     class Allocator>
+    class bin_search_tree_it_ : 
+      public PB_DS_TREE_CONST_IT_C_DEC
+
+    {
+
+    public:
+
+      inline
+      bin_search_tree_it_(const Node_Pointer p_nd = NULL) : PB_DS_TREE_CONST_IT_C_DEC((Node_Pointer)p_nd)
+      { }
+
+      inline
+      bin_search_tree_it_(const PB_DS_TREE_ODIR_IT_C_DEC& other) : PB_DS_TREE_CONST_IT_C_DEC(other.m_p_nd)
+      { }
+
+      inline
+      PB_DS_TREE_IT_C_DEC& 
+      operator=(const PB_DS_TREE_IT_C_DEC& other)
+      {
+	base_it_type::m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline
+      PB_DS_TREE_IT_C_DEC& 
+      operator=(const PB_DS_TREE_ODIR_IT_C_DEC& other)
+      {
+	base_it_type::m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline typename PB_DS_TREE_CONST_IT_C_DEC::pointer
+      operator->() const
+      {
+	PB_DS_DBG_ASSERT(base_it_type::m_p_nd != NULL);
+
+	return (&base_it_type::m_p_nd->m_value);
+      }
+
+      inline typename PB_DS_TREE_CONST_IT_C_DEC::reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(base_it_type::m_p_nd != NULL);
+
+	return (base_it_type::m_p_nd->m_value);
+      }
+
+      inline PB_DS_TREE_IT_C_DEC& 
+      operator++()
+      {
+	PB_DS_TREE_CONST_IT_C_DEC::
+	  operator++();
+
+	return (*this);
+      }
+
+      inline PB_DS_TREE_IT_C_DEC
+      operator++(int)
+      {
+	PB_DS_TREE_IT_C_DEC
+	  ret_it(base_it_type::m_p_nd);
+
+	operator++();
+
+	return (ret_it);
+      }
+
+      inline PB_DS_TREE_IT_C_DEC& 
+      operator--()
+      {
+	PB_DS_TREE_CONST_IT_C_DEC::
+	  operator--();
+
+	return (*this);
+      }
+
+      inline PB_DS_TREE_IT_C_DEC
+      operator--(int)
+      {
+	PB_DS_TREE_IT_C_DEC
+	  ret_it(base_it_type::m_p_nd);
+
+	operator--();
+
+	return (ret_it);
+      }
+
+    protected:
+      typedef PB_DS_TREE_CONST_IT_C_DEC base_it_type;
+    };
+
+#undef PB_DS_TREE_CONST_IT_C_DEC
+
+#undef PB_DS_TREE_CONST_ODIR_IT_C_DEC
+
+#undef PB_DS_TREE_IT_C_DEC
+
+#undef PB_DS_TREE_ODIR_IT_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BIN_SEARCH_TREE_FIND_ITERATORS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..eadb47824777
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
@@ -0,0 +1,62 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn() const
+{
+  return (*this);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
new file mode 100644
index 000000000000..772255aba6a9
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file r_erase_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+actual_erase_node(node_pointer p_z)
+{
+  PB_DS_DBG_ASSERT(m_size > 0);
+  --m_size;
+
+  PB_DS_DBG_ONLY(erase_existing(PB_DS_V2F(p_z->m_value)));
+
+  p_z->~node();
+
+  s_node_allocator.deallocate(p_z, 1);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+update_min_max_for_erased_node(node_pointer p_z)
+{
+  if (m_size == 1)
+    {
+      m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
+
+      return;
+    }
+
+  if (m_p_head->m_p_left == p_z)
+    {
+      iterator it(p_z);
+
+      ++it;
+
+      m_p_head->m_p_left = it.m_p_nd;
+    }
+  else if (m_p_head->m_p_right == p_z)
+    {
+      iterator it(p_z);
+
+      --it;
+
+      m_p_head->m_p_right = it.m_p_nd;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  PB_DS_DBG_ONLY(structure_only_assert_valid();)
+
+    clear_imp(m_p_head->m_p_parent);
+
+  m_size = 0;
+
+  initialize();
+
+  PB_DS_DBG_ONLY(map_debug_base::clear();)
+
+    PB_DS_DBG_ONLY(structure_only_assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear_imp(node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return;
+
+  clear_imp(p_nd->m_p_left);
+
+  clear_imp(p_nd->m_p_right);
+
+  p_nd->~Node();
+
+  s_node_allocator.deallocate(p_nd, 1);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
new file mode 100644
index 000000000000..795aecfa5bb6
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
@@ -0,0 +1,162 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file rotate_fn_imps.hpp
+ * Contains imps for rotating nodes.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+rotate_left(node_pointer p_x)
+{
+  node_pointer p_y = p_x->m_p_right;
+
+  p_x->m_p_right = p_y->m_p_left;
+
+  if (p_y->m_p_left != NULL)
+    p_y->m_p_left->m_p_parent = p_x;
+
+  p_y->m_p_parent = p_x->m_p_parent;
+
+  if (p_x == m_p_head->m_p_parent)
+    m_p_head->m_p_parent = p_y;
+  else if (p_x == p_x->m_p_parent->m_p_left)
+    p_x->m_p_parent->m_p_left = p_y;
+  else
+    p_x->m_p_parent->m_p_right = p_y;
+
+  p_y->m_p_left = p_x;
+  p_x->m_p_parent = p_y;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_x);)
+    PB_DS_DBG_ONLY(assert_node_consistent(p_y);)
+
+    apply_update(p_x, (node_update* )this);
+  apply_update(p_x->m_p_parent, (node_update* )this);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+rotate_right(node_pointer p_x)
+{
+  node_pointer p_y = p_x->m_p_left;
+
+  p_x->m_p_left = p_y->m_p_right;
+
+  if (p_y->m_p_right != NULL)
+    p_y->m_p_right->m_p_parent = p_x;
+
+  p_y->m_p_parent = p_x->m_p_parent;
+
+  if (p_x == m_p_head->m_p_parent)
+    m_p_head->m_p_parent = p_y;
+  else if (p_x == p_x->m_p_parent->m_p_right)
+    p_x->m_p_parent->m_p_right = p_y;
+  else
+    p_x->m_p_parent->m_p_left = p_y;
+
+  p_y->m_p_right = p_x;
+  p_x->m_p_parent = p_y;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_x);)
+    PB_DS_DBG_ONLY(assert_node_consistent(p_y);)
+
+    apply_update(p_x, (node_update* )this);
+  apply_update(p_x->m_p_parent, (node_update* )this);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+rotate_parent(node_pointer p_nd)
+{
+  node_pointer p_parent = p_nd->m_p_parent;
+
+  if (p_nd == p_parent->m_p_left)
+    rotate_right(p_parent);
+  else
+    rotate_left(p_parent);
+
+  PB_DS_DBG_ASSERT(p_parent->m_p_parent = p_nd);
+  PB_DS_DBG_ASSERT(p_nd->m_p_left == p_parent ||
+		   p_nd->m_p_right == p_parent);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+apply_update(node_pointer /*p_nd*/, null_node_update_pointer /*p_update*/)
+{ }
+
+PB_DS_CLASS_T_DEC
+template<typename Node_Update_>
+inline void
+PB_DS_CLASS_C_DEC::
+apply_update(node_pointer p_nd, Node_Update_*  /*p_update*/)
+{
+  node_update::operator()(
+			   node_iterator(p_nd),
+			   const_node_iterator(static_cast<node_pointer>(NULL)));
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Node_Update_>
+inline void
+PB_DS_CLASS_C_DEC::
+update_to_top(node_pointer p_nd, Node_Update_* p_update)
+{
+  while (p_nd != m_p_head)
+    {
+      apply_update(p_nd, p_update);
+
+      p_nd = p_nd->m_p_parent;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+update_to_top(node_pointer /*p_nd*/, null_node_update_pointer /*p_update*/)
+{ }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..103f636d6a5d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
@@ -0,0 +1,181 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+join_prep(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    if (other.m_size == 0)
+      return (false);
+
+  if (m_size == 0)
+    {
+      value_swap(other);
+
+      return (false);
+    }
+
+  const bool greater = Cmp_Fn::operator()(
+					  PB_DS_V2F(m_p_head->m_p_right->m_value),
+					  PB_DS_V2F(other.m_p_head->m_p_left->m_value));
+
+  const bool lesser = Cmp_Fn::operator()(
+					 PB_DS_V2F(other.m_p_head->m_p_right->m_value),
+					 PB_DS_V2F(m_p_head->m_p_left->m_value));
+
+  if (!greater&&  !lesser)
+    throw join_error();
+
+  if (lesser)
+    value_swap(other);
+
+  m_size += other.m_size;
+
+  PB_DS_DBG_ONLY(map_debug_base::join(other);)
+
+    return (true);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+join_finish(PB_DS_CLASS_C_DEC& other)
+{
+  initialize_min_max();
+
+  other.initialize();
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+split_prep(const_key_reference r_key, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    other.clear();
+
+  if (m_size == 0)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return (false);
+    }
+
+  if (Cmp_Fn::operator()(r_key, PB_DS_V2F(m_p_head->m_p_left->m_value)))
+    {
+      value_swap(other);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return (false);
+    }
+
+  if (!Cmp_Fn::operator()(
+			  r_key,
+			  PB_DS_V2F(m_p_head->m_p_right->m_value)))
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return (false);
+    }
+
+  if (m_size == 1)
+    {
+      value_swap(other);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return (false);
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::split(
+				       r_key,(Cmp_Fn& )(*this),
+				       other);)
+
+    return (true);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+split_finish(PB_DS_CLASS_C_DEC& other)
+{
+  other.initialize_min_max();
+
+  other.m_size =
+    std::distance(other.begin(), other.end());
+
+  m_size -= other.m_size;
+
+  initialize_min_max();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+recursive_count(node_pointer p_nd) const
+{
+  if (p_nd == NULL)
+    return (0);
+
+  return (1 +
+	  recursive_count(p_nd->m_p_left) +
+	  recursive_count(p_nd->m_p_right));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
new file mode 100644
index 000000000000..4c57608cc56f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/bin_search_tree_/traits.hpp
@@ -0,0 +1,256 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file traits.hpp
+ * Contains an implementation for bin_search_tree_.
+ */
+
+#ifndef PB_DS_BIN_SEARCH_TREE_NODE_AND_IT_TRAITS_HPP
+#define PB_DS_BIN_SEARCH_TREE_NODE_AND_IT_TRAITS_HPP
+
+#include <ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn,
+		      class Allocator>
+    class Node_Update,
+	     class Node,
+	     class Allocator>
+    struct bin_search_tree_traits
+    {
+    private:
+      typedef
+      types_traits<
+      Key,
+      Mapped,
+      Allocator,
+      false>
+      type_traits;
+
+    public:
+      typedef Node node;
+
+      typedef
+      bin_search_tree_const_it_<
+	typename Allocator::template rebind<
+	node>::other::pointer,
+	typename type_traits::value_type,
+	typename type_traits::pointer,
+	typename type_traits::const_pointer,
+	typename type_traits::reference,
+	typename type_traits::const_reference,
+	true,
+	Allocator>
+      const_point_iterator;
+
+      typedef
+      bin_search_tree_it_<
+	typename Allocator::template rebind<
+	node>::other::pointer,
+	typename type_traits::value_type,
+	typename type_traits::pointer,
+	typename type_traits::const_pointer,
+	typename type_traits::reference,
+	typename type_traits::const_reference,
+	true,
+	Allocator>
+      point_iterator;
+
+      typedef
+      bin_search_tree_const_it_<
+	typename Allocator::template rebind<
+	node>::other::pointer,
+	typename type_traits::value_type,
+	typename type_traits::pointer,
+	typename type_traits::const_pointer,
+	typename type_traits::reference,
+	typename type_traits::const_reference,
+	false,
+	Allocator>
+      const_reverse_iterator;
+
+      typedef
+      bin_search_tree_it_<
+	typename Allocator::template rebind<
+	node>::other::pointer,
+	typename type_traits::value_type,
+	typename type_traits::pointer,
+	typename type_traits::const_pointer,
+	typename type_traits::reference,
+	typename type_traits::const_reference,
+	false,
+	Allocator>
+      reverse_iterator;
+
+      typedef
+      bin_search_tree_const_node_it_<
+	Node,
+	const_point_iterator,
+	point_iterator,
+	Allocator>
+      const_node_iterator;
+
+      typedef
+      bin_search_tree_node_it_<
+	Node,
+	const_point_iterator,
+	point_iterator,
+	Allocator>
+      node_iterator;
+
+      typedef
+      Node_Update<
+	const_node_iterator,
+	node_iterator,
+	Cmp_Fn,
+	Allocator>
+      node_update;
+
+      typedef
+      pb_ds::null_tree_node_update<
+	const_node_iterator,
+	node_iterator,
+	Cmp_Fn,
+	Allocator>* 
+      null_node_update_pointer;
+    };
+
+    template<typename Key,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn,
+		      class Allocator>
+    class Node_Update,
+	     class Node,
+	     class Allocator>
+    struct bin_search_tree_traits<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      Node,
+      Allocator>
+    {
+    private:
+      typedef
+      types_traits<
+      Key,
+      null_mapped_type,
+      Allocator,
+      false>
+      type_traits;
+
+    public:
+      typedef Node node;
+
+      typedef
+      bin_search_tree_const_it_<
+	typename Allocator::template rebind<
+	node>::other::pointer,
+	typename type_traits::value_type,
+	typename type_traits::pointer,
+	typename type_traits::const_pointer,
+	typename type_traits::reference,
+	typename type_traits::const_reference,
+	true,
+	Allocator>
+      const_point_iterator;
+
+      typedef const_point_iterator point_iterator;
+
+      typedef
+      bin_search_tree_const_it_<
+	typename Allocator::template rebind<
+	node>::other::pointer,
+	typename type_traits::value_type,
+	typename type_traits::pointer,
+	typename type_traits::const_pointer,
+	typename type_traits::reference,
+	typename type_traits::const_reference,
+	false,
+	Allocator>
+      const_reverse_iterator;
+
+      typedef const_reverse_iterator reverse_iterator;
+
+      typedef
+      bin_search_tree_const_node_it_<
+	Node,
+	const_point_iterator,
+	point_iterator,
+	Allocator>
+      const_node_iterator;
+
+      typedef const_node_iterator node_iterator;
+
+      typedef
+      Node_Update<
+	const_node_iterator,
+	node_iterator,
+	Cmp_Fn,
+	Allocator>
+      node_update;
+
+      typedef
+      pb_ds::null_tree_node_update<
+	const_node_iterator,
+	node_iterator,
+	Cmp_Fn,
+	Allocator>* 
+      null_node_update_pointer;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BIN_SEARCH_TREE_NODE_AND_IT_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
new file mode 100644
index 000000000000..bcc81deb770c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
@@ -0,0 +1,396 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file binary_heap_.hpp
+ * Contains an implementation class for a binary heap.
+ */
+
+#ifndef PB_DS_BINARY_HEAP_HPP
+#define PB_DS_BINARY_HEAP_HPP
+
+/*
+ * Based on CLRS.
+ */
+
+#include <queue>
+#include <algorithm>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/binary_heap_/entry_cmp.hpp>
+#include <ext/pb_ds/detail/binary_heap_/entry_pred.hpp>
+#include <ext/pb_ds/detail/binary_heap_/resize_policy.hpp>
+#include <ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp>
+#include <ext/pb_ds/detail/binary_heap_/const_iterator.hpp>
+#ifdef PB_DS_BINARY_HEAP_TRACE_
+#include <iostream>
+#endif // #ifdef PB_DS_BINARY_HEAP_TRACE_
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_BINARY_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    binary_heap_<						\
+						Value_Type,	\
+						Cmp_Fn,		\
+						Allocator>
+
+#define PB_DS_ENTRY_CMP_DEC						\
+    entry_cmp<								\
+								Value_Type, \
+								Cmp_Fn,	\
+								is_simple< \
+															Value_Type>::value, \
+								Allocator>::type
+
+#define PB_DS_RESIZE_POLICY_DEC						\
+    resize_policy<							\
+							typename Allocator::size_type>
+
+    /**
+     * class description = "Base class for some types of h3ap$">
+     **/
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+    class binary_heap_ : public PB_DS_ENTRY_CMP_DEC,
+			 public PB_DS_RESIZE_POLICY_DEC
+    {
+
+    private:
+      enum
+	{
+	  simple_value = is_simple<
+	  Value_Type>::value
+	};
+
+      typedef integral_constant<int, simple_value> no_throw_copies_t;
+
+      typedef
+      typename Allocator::template rebind<
+	Value_Type>::other
+      value_allocator;
+
+      typedef
+      typename conditional_type<
+	simple_value,
+	Value_Type,
+	typename value_allocator::pointer>::type
+      entry;
+
+      typedef
+      typename Allocator::template rebind<
+	entry>::other
+      entry_allocator;
+
+      typedef typename entry_allocator::pointer entry_pointer;
+
+      typedef typename PB_DS_ENTRY_CMP_DEC entry_cmp;
+
+      typedef PB_DS_RESIZE_POLICY_DEC resize_policy;
+
+      typedef
+      cond_dealtor<
+	Value_Type,
+	Allocator>
+      cond_dealtor_t;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::pointer
+      pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_pointer
+      const_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::reference
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+      typedef
+      binary_heap_const_point_iterator_<
+	value_type,
+	entry,
+	simple_value,
+	Allocator>
+      const_point_iterator;
+
+      typedef const_point_iterator point_iterator;
+
+      typedef
+      binary_heap_const_iterator_<
+	value_type,
+	entry,
+	simple_value,
+	Allocator>
+      const_iterator;
+
+      typedef const_iterator iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+    public:
+
+      binary_heap_();
+
+      binary_heap_(const Cmp_Fn& r_cmp_fn);
+
+      binary_heap_(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      ~binary_heap_();
+
+      inline bool
+      empty() const;
+
+      inline size_type
+      size() const;
+
+      inline size_type
+      max_size() const;
+
+      Cmp_Fn& 
+      get_cmp_fn();
+
+      const Cmp_Fn& 
+      get_cmp_fn() const;
+
+      inline point_iterator
+      push(const_reference r_val);
+
+      void
+      modify(point_iterator it, const_reference r_new_val);
+
+      inline const_reference
+      top() const;
+
+      inline void
+      pop();
+
+      inline void
+      erase(point_iterator it);
+
+      template<typename Pred>
+      typename PB_DS_CLASS_C_DEC::size_type
+      erase_if(Pred pred);
+
+      inline static void
+      erase_at(entry_pointer a_entries, size_type size, false_type);
+
+      inline static void
+      erase_at(entry_pointer a_entries, size_type size, true_type);
+
+      inline iterator
+      begin();
+
+      inline const_iterator
+      begin() const;
+
+      inline iterator
+      end();
+
+      inline const_iterator
+      end() const;
+
+      void
+      clear();
+
+      template<typename Pred>
+      void
+      split(Pred pred, PB_DS_CLASS_C_DEC& other);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+#ifdef PB_DS_BINARY_HEAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_BINARY_HEAP_TRACE_
+
+    protected:
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+    private:
+
+      void
+      value_swap(PB_DS_CLASS_C_DEC& other);
+
+      inline void
+      insert_value(const_reference r_val, false_type);
+
+      inline void
+      insert_value(value_type val, true_type);
+
+      inline void
+      insert_entry(entry e);
+
+      inline void
+      resize_for_insert_if_needed();
+
+      inline void
+      swap_value_imp(entry_pointer p_e, value_type new_val, true_type);
+
+      inline void
+      swap_value_imp(entry_pointer p_e, const_reference r_new_val, false_type);
+
+      void
+      fix(entry_pointer p_e);
+
+      inline const_reference
+      top_imp(true_type) const;
+
+      inline const_reference
+      top_imp(false_type) const;
+
+      inline static size_type
+      left_child(size_type i);
+
+      inline static size_type
+      right_child(size_type i);
+
+      inline static size_type
+      parent(size_type i);
+
+      inline void
+      resize_for_erase_if_needed();
+
+      template<typename Pred>
+      size_type
+      partition(Pred pred);
+
+#ifdef PB_DS_BINARY_HEAP_DEBUG_
+
+      void
+      assert_valid() const;
+
+#endif // #ifdef PB_DS_BINARY_HEAP_DEBUG_
+
+#ifdef PB_DS_BINARY_HEAP_TRACE_
+
+      void
+      trace_entry(const entry& r_e, false_type) const;
+
+      void
+      trace_entry(const entry& r_e, true_type) const;
+
+#endif // #ifdef PB_DS_BINARY_HEAP_TRACE_
+
+    private:
+      static entry_allocator s_entry_allocator;
+
+      static value_allocator s_value_allocator;
+
+      static no_throw_copies_t s_no_throw_copies_ind;
+
+      size_type m_size;
+
+      size_type m_actual_size;
+
+      entry_pointer m_a_entries;
+    };
+
+#include <ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp>
+#include <ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_ENTRY_CMP_DEC
+
+#undef PB_DS_RESIZE_POLICY_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BINARY_HEAP_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
new file mode 100644
index 000000000000..c739317e00a9
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
@@ -0,0 +1,187 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file const_iterator.hpp
+ * Contains an iterator class returned by the table's const find and insert
+ *     methods.
+ */
+
+#ifndef PB_DS_BINARY_HEAP_CONST_ITERATOR_HPP
+#define PB_DS_BINARY_HEAP_CONST_ITERATOR_HPP
+
+#include <ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef BINARY_HEAP_DEBUG_
+
+#define PB_DS_CLASS_C_DEC					\
+    binary_heap_const_iterator_<				\
+						Value_Type,	\
+						Entry,		\
+						Simple,		\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC					\
+    binary_heap_const_point_iterator_<				\
+						Value_Type,	\
+						Entry,		\
+						Simple,		\
+						Allocator>
+
+    // Const point-type iterator.
+    template<typename Value_Type,
+	     typename Entry,
+	     bool Simple,
+	     class Allocator>
+    class binary_heap_const_iterator_ : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef typename PB_DS_BASE_C_DEC::entry_pointer entry_pointer;
+
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+
+      // Category.
+      typedef std::forward_iterator_tag iterator_category;
+
+      // Difference type.
+      typedef typename Allocator::difference_type difference_type;
+
+      // Iterator's value type.
+      typedef typename base_type::value_type value_type;
+
+      // Iterator's pointer type.
+      typedef typename base_type::pointer pointer;
+
+      // Iterator's const pointer type.
+      typedef typename base_type::const_pointer const_pointer;
+
+      // Iterator's reference type.
+      typedef typename base_type::reference reference;
+
+      // Iterator's const reference type.
+      typedef typename base_type::const_reference const_reference;
+
+    public:
+
+      inline
+      binary_heap_const_iterator_(entry_pointer p_e) : base_type(p_e)
+      { }
+
+      // Default constructor.
+      inline
+      binary_heap_const_iterator_()
+      { }
+
+      // Copy constructor.
+      inline
+      binary_heap_const_iterator_(const PB_DS_CLASS_C_DEC& other) : base_type(other)
+      { }
+
+      // Compares content to a different iterator object.
+      inline bool
+      operator==(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (base_type::m_p_e == other.m_p_e);
+      }
+
+      // Compares content (negatively) to a different iterator object.
+      inline bool
+      operator!=(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (base_type::m_p_e != other.m_p_e);
+      }
+
+      inline PB_DS_CLASS_C_DEC& 
+      operator++()
+      {
+	PB_DS_DBG_ASSERT(base_type::m_p_e != NULL);
+
+	inc();
+
+	return (*this);
+      }
+
+      inline PB_DS_CLASS_C_DEC
+      operator++(int)
+      {
+	PB_DS_CLASS_C_DEC ret_it(base_type::m_p_e);
+
+	operator++();
+
+	return (ret_it);
+      }
+
+    private:
+      void
+      inc()
+      {
+	++base_type::m_p_e;
+      }
+    };
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BINARY_HEAP_CONST_ITERATOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp
new file mode 100644
index 000000000000..092a19a411a5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp
@@ -0,0 +1,210 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file const_point_iterator.hpp
+ * Contains an iterator class returned by the table's const find and insert
+ *     methods.
+ */
+
+#ifndef PB_DS_BINARY_HEAP_CONST_FIND_ITERATOR_HPP
+#define PB_DS_BINARY_HEAP_CONST_FIND_ITERATOR_HPP
+
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;m_p_prev_or_parent
+#endif // #ifdef BINARY_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Value_Type,	\
+						typename Entry,		\
+						bool Simple,		\
+						class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    binary_heap_const_point_iterator_<				\
+						Value_Type,	\
+						Entry,		\
+						Simple,		\
+						Allocator>
+
+    // Const point-type iterator.
+    template<typename Value_Type,
+	     typename Entry,
+	     bool Simple,
+	     class Allocator>
+    class binary_heap_const_point_iterator_
+    {
+
+    protected:
+      typedef
+      typename Allocator::template rebind<
+      Entry>::other::pointer
+      entry_pointer;
+
+    public:
+
+      // Category.
+      typedef trivial_iterator_tag iterator_category;
+
+      // Difference type.
+      typedef trivial_iterator_difference_type difference_type;
+
+      // Iterator's value type.
+      typedef Value_Type value_type;
+
+      // Iterator's pointer type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::pointer
+      pointer;
+
+      // Iterator's const pointer type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_pointer
+      const_pointer;
+
+      // Iterator's reference type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::reference
+      reference;
+
+      // Iterator's const reference type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+    public:
+
+      inline
+      binary_heap_const_point_iterator_(entry_pointer p_e) : m_p_e(p_e)
+      { }
+
+      // Default constructor.
+      inline
+      binary_heap_const_point_iterator_()
+
+	: m_p_e(NULL)
+      { }
+
+      // Copy constructor.
+      inline
+      binary_heap_const_point_iterator_(const PB_DS_CLASS_C_DEC& other)
+
+	: m_p_e(other.m_p_e)
+      { }
+
+      // Access.
+      inline const_pointer
+      operator->() const
+      {
+	PB_DS_DBG_ASSERT(m_p_e != NULL);
+
+	return (to_ptr(integral_constant<int,Simple>()));
+      }
+
+      // Access.
+      inline const_reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(m_p_e != NULL);
+
+	return (*to_ptr(integral_constant<int,Simple>()));
+      }
+
+      // Compares content to a different iterator object.
+      inline bool
+      operator==(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (m_p_e == other.m_p_e);
+      }
+
+      // Compares content (negatively) to a different iterator object.
+      inline bool
+      operator!=(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (m_p_e != other.m_p_e);
+      }
+
+    private:
+      inline const_pointer
+      to_ptr(true_type) const
+      {
+	return m_p_e;
+      }
+
+      inline const_pointer
+      to_ptr(false_type) const
+      {
+	return* m_p_e;
+      }
+
+    public:
+      entry_pointer m_p_e;
+    };
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BINARY_HEAP_CONST_FIND_ITERATOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..c568aaa3832a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,175 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for binary_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::entry_allocator
+PB_DS_CLASS_C_DEC::s_entry_allocator;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::value_allocator
+PB_DS_CLASS_C_DEC::s_value_allocator;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::no_throw_copies_t
+PB_DS_CLASS_C_DEC::s_no_throw_copies_ind;
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    {
+      insert_value(*first_it, s_no_throw_copies_ind);
+
+      ++first_it;
+    }
+
+  std::make_heap(m_a_entries, m_a_entries + m_size, static_cast<entry_cmp& >(*this));
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binary_heap_() :
+  m_size(0),
+  m_actual_size(resize_policy::min_size),
+  m_a_entries(s_entry_allocator.allocate(m_actual_size))
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binary_heap_(const Cmp_Fn& r_cmp_fn) :
+  entry_cmp(r_cmp_fn),
+  m_size(0),
+  m_actual_size(resize_policy::min_size),
+  m_a_entries(s_entry_allocator.allocate(m_actual_size))
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binary_heap_(const PB_DS_CLASS_C_DEC& other) :
+  entry_cmp(other),
+  resize_policy(other),
+  m_size(0),
+  m_actual_size(other.m_actual_size),
+  m_a_entries(s_entry_allocator.allocate(m_actual_size))
+{
+  PB_DS_DBG_ONLY(other.assert_valid();)
+    PB_DS_DBG_ASSERT(m_a_entries != other.m_a_entries);
+
+  const_iterator first_it = other.begin();
+  const_iterator last_it = other.end();
+
+  try
+    {
+      while (first_it != last_it)
+        {
+	  insert_value(*first_it, s_no_throw_copies_ind);
+
+	  ++first_it;
+        }
+    }
+  catch(...)
+    {
+      for (size_type i = 0; i < m_size; ++i)
+	erase_at(m_a_entries, i, s_no_throw_copies_ind);
+
+      s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+
+      throw;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    PB_DS_DBG_ASSERT(m_a_entries != other.m_a_entries);
+
+  value_swap(other);
+
+  std::swap((entry_cmp& )(*this), (entry_cmp& )other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+value_swap(PB_DS_CLASS_C_DEC& other)
+{
+  std::swap(m_a_entries, other.m_a_entries);
+
+  std::swap(m_size, other.m_size);
+
+  std::swap(m_actual_size, other.m_actual_size);
+
+  static_cast<resize_policy* >(this)->swap(other);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~binary_heap_()
+{
+  for (size_type i = 0; i < m_size; ++i)
+    erase_at(m_a_entries, i, s_no_throw_copies_ind);
+
+  s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..e24835cfe2fe
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
@@ -0,0 +1,80 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+#ifdef PB_DS_BINARY_HEAP_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+#ifdef PB_DS_REGRESSION
+  s_entry_allocator.check_allocated(m_a_entries, m_actual_size);
+#endif // #ifdef PB_DS_REGRESSION
+
+  resize_policy::assert_valid();
+
+  PB_DS_DBG_ASSERT(m_size <= m_actual_size);
+
+  for (size_type i = 0; i < m_size; ++i)
+    {
+#ifdef PB_DS_REGRESSION
+      s_value_allocator.check_allocated(m_a_entries[i], 1);
+#endif // #ifdef PB_DS_REGRESSION
+
+      if (left_child(i) < m_size)
+	PB_DS_DBG_ASSERT(!entry_cmp::operator()(m_a_entries[i], m_a_entries[left_child(i)]));
+
+      PB_DS_DBG_ASSERT(parent(left_child(i)) == i);
+
+      if (right_child(i) < m_size)
+	PB_DS_DBG_ASSERT(!entry_cmp::operator()(m_a_entries[i], m_a_entries[right_child(i)]));
+
+      PB_DS_DBG_ASSERT(parent(right_child(i)) == i);
+    }
+}
+
+#endif // #ifdef PB_DS_BINARY_HEAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
new file mode 100644
index 000000000000..c98dae75cab2
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
@@ -0,0 +1,99 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file entry_cmp.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+#ifndef PB_DS_BINARY_HEAP_ENTRY_CMP_HPP
+#define PB_DS_BINARY_HEAP_ENTRY_CMP_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Value_Type,
+	     class Cmp_Fn,
+	     bool No_Throw,
+	     class Allocator>
+    struct entry_cmp
+    {
+      typedef Cmp_Fn type;
+    };
+
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+    struct entry_cmp<
+      Value_Type,
+      Cmp_Fn,
+      false,
+      Allocator>
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<
+      Value_Type>::other::const_pointer
+      entry;
+
+      struct type : public Cmp_Fn
+      {
+      public:
+	inline
+	type()
+	{ }
+
+	inline
+	type(const Cmp_Fn& other) : Cmp_Fn(other)
+	{ }
+
+	inline bool
+	operator()(entry p_lhs,  entry p_rhs) const
+	{
+	  return Cmp_Fn::operator()(*p_lhs, * p_rhs);
+	}
+      };
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BINARY_HEAP_ENTRY_CMP_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
new file mode 100644
index 000000000000..25102f2c1ad6
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
@@ -0,0 +1,99 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file entry_pred.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+#ifndef PB_DS_BINARY_HEAP_ENTRY_PRED_HPP
+#define PB_DS_BINARY_HEAP_ENTRY_PRED_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Value_Type,
+	     class Pred,
+	     bool No_Throw,
+	     class Allocator>
+    struct entry_pred
+    {
+      typedef Pred type;
+    };
+
+    template<typename Value_Type, class Pred, class Allocator>
+    struct entry_pred<
+      Value_Type,
+      Pred,
+      false,
+      Allocator>
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<
+      Value_Type>::other::const_pointer
+      entry;
+
+      struct type : public Pred
+      {
+      public:
+	inline
+	type()
+	{ }
+
+	inline
+	type(const Pred& other) : Pred(other)
+	{ }
+
+	inline bool
+	operator()(entry p_v) const
+	{
+	  return Pred::operator()(*p_v);
+	}
+      };
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BINARY_HEAP_ENTRY_PRED_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..08a424676694
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
@@ -0,0 +1,252 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  for (size_type i = 0; i < m_size; ++i)
+    erase_at(m_a_entries, i, s_no_throw_copies_ind);
+
+  try
+    {
+      const size_type actual_size = resize_policy::get_new_size_for_arbitrary(0);
+
+      entry_pointer a_entries = s_entry_allocator.allocate(actual_size);
+
+      resize_policy::notify_arbitrary(actual_size);
+
+      s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+
+      m_actual_size = actual_size;
+
+      m_a_entries = a_entries;
+    }
+  catch(...)
+    { }
+
+  m_size = 0;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_at(entry_pointer a_entries, size_type i, false_type)
+{
+  a_entries[i]->~value_type();
+
+  s_value_allocator.deallocate(a_entries[i], 1);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_at(entry_pointer, size_type, true_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+pop()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!empty());
+
+  erase_at(m_a_entries, 0, s_no_throw_copies_ind);
+
+  std::pop_heap(m_a_entries, m_a_entries + m_size, static_cast<entry_cmp& >(*this));
+
+  resize_for_erase_if_needed();
+
+  PB_DS_DBG_ASSERT(m_size > 0);
+  --m_size;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    typedef
+    typename entry_pred<
+    value_type,
+    Pred,
+    simple_value,
+    Allocator>::type
+    pred_t;
+
+  const size_type left = partition(pred_t(pred));
+
+  PB_DS_DBG_ASSERT(m_size >= left);
+
+  const size_type ersd = m_size - left;
+
+  for (size_type i = left; i < m_size; ++i)
+    erase_at(m_a_entries, i, s_no_throw_copies_ind);
+
+  try
+    {
+      const size_type actual_size =
+	resize_policy::get_new_size_for_arbitrary(left);
+
+      entry_pointer a_entries = s_entry_allocator.allocate(actual_size);
+
+      std::copy(m_a_entries, m_a_entries + left, a_entries);
+
+      s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+
+      m_actual_size = actual_size;
+
+      resize_policy::notify_arbitrary(m_actual_size);
+    }
+  catch(...)
+    { };
+
+  m_size = left;
+
+  std::make_heap(m_a_entries, m_a_entries + m_size, static_cast<entry_cmp& >(*this));
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return ersd;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+erase(point_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!empty());
+
+  const size_type fix_pos = it.m_p_e - m_a_entries;
+
+  std::swap(*it.m_p_e, m_a_entries[m_size - 1]);
+
+  erase_at(m_a_entries, m_size - 1, s_no_throw_copies_ind);
+
+  resize_for_erase_if_needed();
+
+  PB_DS_DBG_ASSERT(m_size > 0);
+  --m_size;
+
+  PB_DS_DBG_ASSERT(fix_pos <= m_size);
+
+  if (fix_pos != m_size)
+    fix(m_a_entries + fix_pos);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+resize_for_erase_if_needed()
+{
+  if (!resize_policy::resize_needed_for_shrink(m_size))
+    return;
+
+  try
+    {
+      const size_type new_actual_size =
+	resize_policy::get_new_size_for_shrink();
+
+      entry_pointer a_new_entries = s_entry_allocator.allocate(new_actual_size);
+
+      resize_policy::notify_shrink_resize();
+
+      PB_DS_DBG_ASSERT(m_size > 0);
+      std::copy(m_a_entries, m_a_entries + m_size - 1, a_new_entries);
+
+      s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+
+      m_actual_size = new_actual_size;
+
+      m_a_entries = a_new_entries;
+    }
+  catch(...)
+    { }
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+partition(Pred pred)
+{
+  size_type left = 0;
+  size_type right = m_size - 1;
+
+  while (right + 1 != left)
+    {
+      PB_DS_DBG_ASSERT(left <= m_size);
+
+      if (!pred(m_a_entries[left]))
+	++left;
+      else if (pred(m_a_entries[right]))
+	--right;
+      else
+        {
+	  PB_DS_DBG_ASSERT(left < right);
+
+	  std::swap(m_a_entries[left], m_a_entries[right]);
+
+	  ++left;
+	  --right;
+        }
+    }
+
+  return left;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
new file mode 100644
index 000000000000..92fc949da2b9
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
@@ -0,0 +1,97 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reference
+PB_DS_CLASS_C_DEC::
+top() const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!empty());
+
+  return top_imp(s_no_throw_copies_ind);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reference
+PB_DS_CLASS_C_DEC::
+top_imp(true_type) const
+{
+  return* m_a_entries;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reference
+PB_DS_CLASS_C_DEC::
+top_imp(false_type) const
+{
+  return** m_a_entries;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+left_child(size_type i)
+{
+  return i*  2 + 1;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+right_child(size_type i)
+{
+  return i*  2 + 2;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+parent(size_type i)
+{
+  return (i - 1) / 2;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
new file mode 100644
index 000000000000..eb227d3beace
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (m_size == 0);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (m_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_entry_allocator.max_size());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..543285835b85
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
@@ -0,0 +1,220 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+push(const_reference r_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    insert_value(r_val, s_no_throw_copies_ind);
+
+  std::push_heap(m_a_entries, m_a_entries + m_size, static_cast<entry_cmp& >(*this));
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return point_iterator(m_a_entries);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+insert_value(value_type val, true_type)
+{
+  resize_for_insert_if_needed();
+
+  m_a_entries[m_size++] = val;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+insert_value(const_reference r_val, false_type)
+{
+  resize_for_insert_if_needed();
+
+  pointer p_new = s_value_allocator.allocate(1);
+
+  cond_dealtor_t cond(p_new);
+
+  new (p_new) value_type(r_val);
+
+  cond.set_no_action();
+
+  m_a_entries[m_size++] = p_new;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+insert_entry(entry e)
+{
+  resize_for_insert_if_needed();
+
+  m_a_entries[m_size++] = e;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+resize_for_insert_if_needed()
+{
+  if (!resize_policy::resize_needed_for_grow(m_size))
+    {
+      PB_DS_DBG_ASSERT(m_size < m_actual_size);
+
+      return;
+    }
+
+  const size_type new_actual_size =
+    resize_policy::get_new_size_for_grow();
+
+  entry_pointer a_new_entries = s_entry_allocator.allocate(new_actual_size);
+
+  resize_policy::notify_grow_resize();
+
+  std::copy(m_a_entries, m_a_entries + m_size, a_new_entries);
+
+  s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+
+  m_actual_size = new_actual_size;
+
+  m_a_entries = a_new_entries;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+modify(point_iterator it, const_reference r_new_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    swap_value_imp(it.m_p_e, r_new_val, s_no_throw_copies_ind);
+
+  fix(it.m_p_e);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+fix(entry_pointer p_e)
+{
+  size_type i = p_e - m_a_entries;
+
+  if (i > 0&&  entry_cmp::operator()(m_a_entries[parent(i)], m_a_entries[i]))
+    {
+      size_type parent_i = parent(i);
+
+      while (i > 0&&  entry_cmp::operator()(m_a_entries[parent_i], m_a_entries[i]))
+        {
+	  std::swap(m_a_entries[i], m_a_entries[parent_i]);
+
+	  i = parent_i;
+
+	  parent_i = parent(i);
+        }
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return;
+    }
+
+  while (i < m_size)
+    {
+      const size_type left_child_i = left_child(i);
+      const size_type right_child_i = right_child(i);
+
+      PB_DS_DBG_ASSERT(right_child_i > left_child_i);
+
+      const bool smaller_than_left_child =
+	left_child_i < m_size&& 
+	entry_cmp::operator()(m_a_entries[i], m_a_entries[left_child_i]);
+
+      const bool smaller_than_right_child =
+	right_child_i < m_size&& 
+	entry_cmp::operator()(m_a_entries[i], m_a_entries[right_child_i]);
+
+      const bool swap_with_r_child = smaller_than_right_child&& (!smaller_than_left_child ||
+								 entry_cmp::operator()(m_a_entries[left_child_i], m_a_entries[right_child_i]));
+
+      const bool swap_with_l_child = !swap_with_r_child&&  smaller_than_left_child;
+
+      if (swap_with_l_child)
+        {
+	  std::swap(m_a_entries[i], m_a_entries[left_child_i]);
+
+	  i = left_child_i;
+        }
+      else if (swap_with_r_child)
+        {
+	  std::swap(m_a_entries[i], m_a_entries[right_child_i]);
+
+	  i = right_child_i;
+        }
+      else
+	i = m_size;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+swap_value_imp(entry_pointer p_e, value_type new_val, true_type)
+{
+  * p_e = new_val;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+swap_value_imp(entry_pointer p_e, const_reference r_new_val, false_type)
+{
+  value_type tmp(r_new_val);
+  (*p_e)->swap(tmp);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
new file mode 100644
index 000000000000..7a647c33556e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterators_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+begin()
+{
+  return (iterator(m_a_entries));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin() const
+{
+  return (const_iterator(m_a_entries));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+end()
+{
+  return (iterator(m_a_entries + m_size));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end() const
+{
+  return (const_iterator(m_a_entries + m_size));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..6c019c085822
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
@@ -0,0 +1,62 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+PB_DS_CLASS_T_DEC
+Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn() const
+{
+  return (*this);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
new file mode 100644
index 000000000000..1982e07ae749
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
@@ -0,0 +1,295 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_policy.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+#ifndef PB_DS_BINARY_HEAP_RESIZE_POLICY_HPP
+#define PB_DS_BINARY_HEAP_RESIZE_POLICY_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_BINARY_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_BINARY_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Size_Type>
+
+#define PB_DS_CLASS_C_DEC					\
+    resize_policy<						\
+						Size_Type>
+
+    template<typename Size_Type>
+    class resize_policy
+    {
+    public:
+      typedef Size_Type size_type;
+
+      enum
+	{
+	  min_size = 16
+	};
+
+    public:
+      inline
+      resize_policy();
+
+      inline void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      inline bool
+      resize_needed_for_grow(size_type size) const;
+
+      inline bool
+      resize_needed_for_shrink(size_type size) const;
+
+      inline bool
+      grow_needed(size_type size) const;
+
+      inline bool
+      shrink_needed(size_type size) const;
+
+      inline size_type
+      get_new_size_for_grow() const;
+
+      inline size_type
+      get_new_size_for_shrink() const;
+
+      size_type
+      get_new_size_for_arbitrary(size_type size) const;
+
+      inline void
+      notify_grow_resize();
+
+      inline void
+      notify_shrink_resize();
+
+      void
+      notify_arbitrary(size_type actual_size);
+
+#ifdef PB_DS_BINARY_HEAP_DEBUG_
+      void
+      assert_valid() const;
+#endif // #ifdef PB_DS_BINARY_HEAP_DEBUG_
+
+#ifdef PB_DS_BINARY_HEAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_BINARY_HEAP_TRACE_
+
+    private:
+      enum
+	{
+	  ratio = 8,
+	  factor = 2
+	};
+
+    private:
+      size_type m_next_shrink_size;
+
+      size_type m_next_grow_size;
+    };
+
+    PB_DS_CLASS_T_DEC
+    inline
+    PB_DS_CLASS_C_DEC::
+    resize_policy() :
+      m_next_shrink_size(0),
+      m_next_grow_size(min_size)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      std::swap(m_next_shrink_size, other.m_next_shrink_size);
+      std::swap(m_next_grow_size, other.m_next_grow_size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline bool
+    PB_DS_CLASS_C_DEC::
+    resize_needed_for_grow(size_type size) const
+    {
+      PB_DS_DBG_ASSERT(size <= m_next_grow_size);
+
+      return size == m_next_grow_size;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline bool
+    PB_DS_CLASS_C_DEC::
+    resize_needed_for_shrink(size_type size) const
+    {
+      PB_DS_DBG_ASSERT(size <= m_next_grow_size);
+
+      return size == m_next_shrink_size;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    get_new_size_for_grow() const
+    {
+      return m_next_grow_size*  factor;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    get_new_size_for_shrink() const
+    {
+      const size_type half_size = m_next_grow_size / factor;
+
+      return std::max(static_cast<size_type>(min_size), half_size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    get_new_size_for_arbitrary(size_type size) const
+    {
+      size_type ret = min_size;
+
+      while (ret < size)
+	ret *= factor;
+
+      return ret;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    notify_grow_resize()
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	PB_DS_DBG_ASSERT(m_next_grow_size >= min_size);
+
+      m_next_grow_size *= factor;
+
+      m_next_shrink_size = m_next_grow_size / ratio;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    notify_shrink_resize()
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	m_next_shrink_size /= factor;
+      if (m_next_shrink_size == 1)
+	m_next_shrink_size = 0;
+
+      m_next_grow_size =
+	std::max(m_next_grow_size / factor, static_cast<size_type>(min_size));
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    notify_arbitrary(size_type actual_size)
+    {
+      m_next_grow_size = actual_size;
+
+      m_next_shrink_size = m_next_grow_size / ratio;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+#ifdef PB_DS_BINARY_HEAP_DEBUG_
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    assert_valid() const
+    {
+      PB_DS_DBG_ASSERT(m_next_shrink_size == 0 ||
+		       m_next_shrink_size*  ratio == m_next_grow_size);
+
+      PB_DS_DBG_ASSERT(m_next_grow_size >= min_size);
+    }
+#endif // #ifdef PB_DS_BINARY_HEAP_DEBUG_
+
+#ifdef PB_DS_BINARY_HEAP_TRACE_
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    trace() const
+    {
+      std::cerr << "shrink = " << m_next_shrink_size <<
+	" grow = " << m_next_grow_size << std::endl;
+    }
+#endif // #ifdef PB_DS_BINARY_HEAP_TRACE_
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BINARY_HEAP_RESIZE_POLICY_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..20913c47d590
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
@@ -0,0 +1,179 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+void
+PB_DS_CLASS_C_DEC::
+split(Pred pred, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    typedef
+    typename entry_pred<
+    value_type,
+    Pred,
+    simple_value,
+    Allocator>::type
+    pred_t;
+
+  const size_type left = partition(pred_t(pred));
+
+  PB_DS_DBG_ASSERT(m_size >= left);
+
+  const size_type ersd = m_size - left;
+
+  PB_DS_DBG_ASSERT(m_size >= ersd);
+
+  const size_type actual_size =
+    resize_policy::get_new_size_for_arbitrary(left);
+
+  const size_type other_actual_size =
+    other.get_new_size_for_arbitrary(ersd);
+
+  entry_pointer a_entries = NULL;
+  entry_pointer a_other_entries = NULL;
+
+  try
+    {
+      a_entries = s_entry_allocator.allocate(actual_size);
+
+      a_other_entries = s_entry_allocator.allocate(other_actual_size);
+    }
+  catch(...)
+    {
+      if (a_entries != NULL)
+	s_entry_allocator.deallocate(a_entries, actual_size);
+
+      if (a_other_entries != NULL)
+	s_entry_allocator.deallocate(a_other_entries, other_actual_size);
+
+      throw;
+    };
+
+  for (size_type i = 0; i < other.m_size; ++i)
+    erase_at(other.m_a_entries, i, s_no_throw_copies_ind);
+
+  PB_DS_DBG_ASSERT(actual_size >= left);
+  std::copy(m_a_entries, m_a_entries + left, a_entries);
+  std::copy(m_a_entries + left, m_a_entries + m_size, a_other_entries);
+
+  s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+  s_entry_allocator.deallocate(other.m_a_entries, other.m_actual_size);
+
+  m_actual_size = actual_size;
+  other.m_actual_size = other_actual_size;
+
+  m_size = left;
+  other.m_size = ersd;
+
+  m_a_entries = a_entries;
+  other.m_a_entries = a_other_entries;
+
+  std::make_heap(m_a_entries, m_a_entries + m_size, static_cast<entry_cmp& >(*this));
+  std::make_heap(other.m_a_entries, other.m_a_entries + other.m_size, static_cast<entry_cmp& >(other));
+
+  resize_policy::notify_arbitrary(m_actual_size);
+  other.notify_arbitrary(other.m_actual_size);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    const size_type size = m_size + other.m_size;
+  const size_type actual_size = resize_policy::get_new_size_for_arbitrary(size);
+
+  entry_pointer a_entries = NULL;
+  entry_pointer a_other_entries = NULL;
+
+  try
+    {
+      a_entries = s_entry_allocator.allocate(actual_size);
+
+      a_other_entries = s_entry_allocator.allocate(resize_policy::min_size);
+    }
+  catch(...)
+    {
+      if (a_entries != NULL)
+	s_entry_allocator.deallocate(a_entries, actual_size);
+
+      if (a_other_entries != NULL)
+	s_entry_allocator.deallocate(a_other_entries, resize_policy::min_size);
+
+      throw;
+    }
+
+  std::copy(m_a_entries, m_a_entries + m_size, a_entries);
+  std::copy(other.m_a_entries, other.m_a_entries + other.m_size, a_entries + m_size);
+
+  s_entry_allocator.deallocate(m_a_entries, m_actual_size);
+  m_a_entries = a_entries;
+  m_size = size;
+  m_actual_size = actual_size;
+
+  resize_policy::notify_arbitrary(actual_size);
+
+  std::make_heap(m_a_entries, m_a_entries + m_size, static_cast<entry_cmp& >(*this));
+
+  s_entry_allocator.deallocate(other.m_a_entries, other.m_actual_size);
+  other.m_a_entries = a_other_entries;
+  other.m_size = 0;
+  other.m_actual_size = resize_policy::min_size;
+
+  other.notify_arbitrary(resize_policy::min_size);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..bcc10656abba
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
@@ -0,0 +1,84 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains an implementation class for a binary_heap.
+ */
+
+#ifdef PB_DS_BINARY_HEAP_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  std::cerr << this << std::endl;
+
+  std::cerr << m_a_entries << std::endl;
+
+  for (size_type i = 0; i < m_size; ++i)
+    trace_entry(m_a_entries[i], s_no_throw_copies_ind);
+
+  std::cerr << std::endl;
+
+  std::cerr << "size = " << m_size << " " << "actual_size = " << m_actual_size << std::endl;
+
+  resize_policy::trace();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace_entry(const entry& r_e, false_type) const
+{
+  std::cout << r_e << " " <<* r_e << std::endl;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace_entry(const entry& r_e, true_type) const
+{
+  std::cout << r_e << std::endl;
+}
+
+#endif // #ifdef PB_DS_BINARY_HEAP_TRACE_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
new file mode 100644
index 000000000000..2689bdb91e6f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
@@ -0,0 +1,165 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file binomial_heap_.hpp
+ * Contains an implementation class for a binomial heap.
+ */
+
+/*
+ * Binomial heap.
+ * Vuillemin J is the mastah.
+ * Modified from CLRS.
+ */
+
+#ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    binomial_heap_<						\
+						Value_Type,	\
+						Cmp_Fn,		\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    binomial_heap_base_<					\
+							Value_Type,	\
+							Cmp_Fn,		\
+							Allocator>
+
+    /**
+     * class description = "8y|\|0|\/|i41 h34p 74813">
+     **/
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+    class binomial_heap_ : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+      typedef typename base_type::node_pointer node_pointer;
+
+      typedef typename base_type::const_node_pointer const_node_pointer;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef typename base_type::pointer pointer;
+
+      typedef typename base_type::const_pointer const_pointer;
+
+      typedef typename base_type::reference reference;
+
+      typedef typename base_type::const_reference const_reference;
+
+      typedef typename base_type::const_point_iterator const_point_iterator;
+
+      typedef typename base_type::point_iterator point_iterator;
+
+      typedef typename base_type::const_iterator const_iterator;
+
+      typedef typename base_type::iterator iterator;
+
+      typedef typename base_type::cmp_fn cmp_fn;
+
+      typedef typename base_type::allocator allocator;
+
+    public:
+
+      binomial_heap_();
+
+      binomial_heap_(const Cmp_Fn& r_cmp_fn);
+
+      binomial_heap_(const PB_DS_CLASS_C_DEC& other);
+
+      ~binomial_heap_();
+
+    protected:
+#ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+
+      void
+      assert_valid() const;
+
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+    };
+
+#include <ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..ab7bec6bf945
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,74 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation for binomial_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binomial_heap_()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binomial_heap_(const Cmp_Fn& r_cmp_fn) :
+  PB_DS_BASE_C_DEC(r_cmp_fn)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binomial_heap_(const PB_DS_CLASS_C_DEC& other) :
+  PB_DS_BASE_C_DEC(other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~binomial_heap_()
+{ }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..39208a8c6e8f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation for binomial_heap_.
+ */
+
+#ifdef PB_DS_BINOMIAL_HEAP_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  base_type::assert_valid(true);
+}
+
+#endif // #ifdef PB_DS_BINOMIAL_HEAP__DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
new file mode 100644
index 000000000000..5ad1ad5dea9b
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
@@ -0,0 +1,270 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file binomial_heap_base_.hpp
+ * Contains an implementation class for a base of binomial heaps.
+ */
+
+#ifndef PB_DS_BINOMIAL_HEAP_BASE_HPP
+#define PB_DS_BINOMIAL_HEAP_BASE_HPP
+
+/*
+ * Binomial heap base.
+ * Vuillemin J is the mastah.
+ * Modified from CLRS.
+ */
+
+#ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    binomial_heap_base_<					\
+						Value_Type,	\
+						Cmp_Fn,		\
+						Allocator>
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_BASE_C_DEC						\
+    left_child_next_sibling_heap_<			\
+									Value_Type, \
+									Cmp_Fn,	\
+									typename Allocator::size_type, \
+									Allocator, \
+									false>
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_BASE_C_DEC						\
+    left_child_next_sibling_heap_<			\
+									Value_Type, \
+									Cmp_Fn,	\
+									typename Allocator::size_type, \
+									Allocator>
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+    /**
+     * class description = "8y|\|0|\/|i41 h34p 74813">
+     **/
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+    class binomial_heap_base_ : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    protected:
+      typedef typename base_type::node node;
+
+      typedef typename base_type::node_pointer node_pointer;
+
+      typedef typename base_type::const_node_pointer const_node_pointer;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::pointer
+      pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_pointer
+      const_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::reference
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_point_iterator
+      const_point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::point_iterator point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::iterator iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+    public:
+
+      inline point_iterator
+      push(const_reference r_val);
+
+      void
+      modify(point_iterator it, const_reference r_new_val);
+
+      inline const_reference
+      top() const;
+
+      void
+      pop();
+
+      void
+      erase(point_iterator it);
+
+      inline void
+      clear();
+
+      template<typename Pred>
+      size_type
+      erase_if(Pred pred);
+
+      template<typename Pred>
+      void
+      split(Pred pred, PB_DS_CLASS_C_DEC& other);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+    protected:
+
+      binomial_heap_base_();
+
+      binomial_heap_base_(const Cmp_Fn& r_cmp_fn);
+
+      binomial_heap_base_(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      ~binomial_heap_base_();
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+      inline void
+      find_max();
+
+#ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+
+      void
+      assert_valid(bool strictly_binomial) const;
+
+      void
+      assert_max() const;
+
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+
+    private:
+
+      inline node_pointer
+      fix(node_pointer p_nd) const;
+
+      inline void
+      insert_node(node_pointer p_nd);
+
+      inline void
+      remove_parentless_node(node_pointer p_nd);
+
+      inline node_pointer
+      join(node_pointer p_lhs, node_pointer p_rhs) const;
+
+#ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+
+      void
+      assert_node_consistent(const_node_pointer p_nd, bool strictly_binomial, bool increasing) const;
+
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+
+    protected:
+      node_pointer m_p_max;
+    };
+
+#include <ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BINOMIAL_HEAP_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..dd3d090e60ea
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,103 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for a base of binomial heaps.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    push(*(first_it++));
+
+  PB_DS_DBG_ONLY(assert_valid(false);)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binomial_heap_base_() :
+  m_p_max(NULL)
+{
+  PB_DS_DBG_ONLY(assert_valid(false);)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binomial_heap_base_(const Cmp_Fn& r_cmp_fn) :
+  PB_DS_BASE_C_DEC(r_cmp_fn),
+  m_p_max(NULL)
+{
+  PB_DS_DBG_ONLY(assert_valid(false);)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+binomial_heap_base_(const PB_DS_CLASS_C_DEC& other) :
+  PB_DS_BASE_C_DEC(other),
+  m_p_max(NULL)
+{
+  PB_DS_DBG_ONLY(assert_valid(false);)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid(false);)
+
+    base_type::swap(other);
+
+  std::swap(m_p_max, other.m_p_max);
+
+  PB_DS_DBG_ONLY(assert_valid(false);)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~binomial_heap_base_()
+{ }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..f50524d9c2ca
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
@@ -0,0 +1,108 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for a base of binomial heaps.
+ */
+
+#ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid(bool strictly_binomial) const
+{
+  base_type::assert_valid();
+
+  assert_node_consistent(base_type::m_p_root, strictly_binomial, true);
+
+  assert_max();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_max() const
+{
+  if (m_p_max == NULL)
+    return;
+
+  PB_DS_DBG_ASSERT(base_type::parent(m_p_max) == NULL);
+
+  for (const_iterator it = base_type::begin(); it != base_type::end(); ++it)
+    PB_DS_DBG_ASSERT(!Cmp_Fn::operator()(m_p_max->m_value, it.m_p_nd->m_value));
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_node_consistent(const_node_pointer p_nd, bool strictly_binomial, bool increasing) const
+{
+  PB_DS_DBG_ASSERT(increasing || strictly_binomial);
+
+  base_type::assert_node_consistent(p_nd, false);
+
+  if (p_nd == NULL)
+    return;
+
+  PB_DS_DBG_ASSERT(p_nd->m_metadata == base_type::degree(p_nd));
+
+  PB_DS_DBG_ASSERT(base_type::size_under_node(p_nd) ==
+		   static_cast<size_type>(1 << p_nd->m_metadata));
+
+  assert_node_consistent(p_nd->m_p_next_sibling, strictly_binomial, increasing);
+
+  assert_node_consistent(p_nd->m_p_l_child, true, false);
+
+  if (p_nd->m_p_next_sibling != NULL)
+    if (increasing)
+      {
+	if (strictly_binomial)
+	  PB_DS_DBG_ASSERT(p_nd->m_metadata < p_nd->m_p_next_sibling->m_metadata);
+	else
+	  PB_DS_DBG_ASSERT(p_nd->m_metadata <= p_nd->m_p_next_sibling->m_metadata);
+      }
+    else
+      PB_DS_DBG_ASSERT(p_nd->m_metadata > p_nd->m_p_next_sibling->m_metadata);
+}
+
+#endif // #ifdef PB_DS_BINOMIAL_HEAP_BASE_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..bb373101a5f3
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
@@ -0,0 +1,198 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for a base of binomial heaps.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+pop()
+{
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  if (m_p_max == NULL)
+    find_max();
+
+  PB_DS_DBG_ASSERT(m_p_max != NULL);
+
+  node_pointer p_nd = m_p_max;
+
+  remove_parentless_node(m_p_max);
+
+  base_type::actual_erase_node(p_nd);
+
+  m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+remove_parentless_node(node_pointer p_nd)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+  PB_DS_DBG_ASSERT(base_type::parent(p_nd) == NULL);
+
+  node_pointer p_cur_root = p_nd == base_type::m_p_root?
+    p_nd->m_p_next_sibling :
+    base_type::m_p_root;
+
+  if (p_cur_root != NULL)
+    p_cur_root->m_p_prev_or_parent = NULL;
+
+  if (p_nd->m_p_prev_or_parent != NULL)
+    p_nd->m_p_prev_or_parent->m_p_next_sibling = p_nd->m_p_next_sibling;
+
+  if (p_nd->m_p_next_sibling != NULL)
+    p_nd->m_p_next_sibling->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+  node_pointer p_child = p_nd->m_p_l_child;
+
+  if (p_child != NULL)
+    {
+      p_child->m_p_prev_or_parent = NULL;
+
+      while (p_child->m_p_next_sibling != NULL)
+	p_child = p_child->m_p_next_sibling;
+    }
+
+  m_p_max = NULL;
+
+  base_type::m_p_root = join(p_cur_root, p_child);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  base_type::clear();
+
+  m_p_max = NULL;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase(point_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  base_type::bubble_to_top(it.m_p_nd);
+
+  remove_parentless_node(it.m_p_nd);
+
+  base_type::actual_erase_node(it.m_p_nd);
+
+  m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(assert_valid(true);)
+
+    if (base_type::empty())
+      {
+        PB_DS_DBG_ONLY(assert_valid(true);)
+
+	  return 0;
+      }
+
+  base_type::to_linked_list();
+
+  node_pointer p_out = base_type::prune(pred);
+
+  size_type ersd = 0;
+
+  while (p_out != NULL)
+    {
+      ++ersd;
+
+      node_pointer p_next = p_out->m_p_next_sibling;
+
+      base_type::actual_erase_node(p_out);
+
+      p_out = p_next;
+    }
+
+  node_pointer p_cur = base_type::m_p_root;
+
+  base_type::m_p_root = NULL;
+
+  while (p_cur != NULL)
+    {
+      node_pointer p_next = p_cur->m_p_next_sibling;
+
+      p_cur->m_p_l_child = p_cur->m_p_prev_or_parent = NULL;
+
+      p_cur->m_metadata = 0;
+
+      p_cur->m_p_next_sibling = base_type::m_p_root;
+
+      if (base_type::m_p_root != NULL)
+	base_type::m_p_root->m_p_prev_or_parent = p_cur;
+
+      base_type::m_p_root = p_cur;
+
+      base_type::m_p_root = fix(base_type::m_p_root);
+
+      p_cur = p_next;
+    }
+
+  m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid(true);)
+
+    return ersd;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
new file mode 100644
index 000000000000..7b26b352a082
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
@@ -0,0 +1,79 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation class for a base of binomial heaps.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reference
+PB_DS_CLASS_C_DEC::
+top() const
+{
+  PB_DS_DBG_ONLY(assert_valid(false);)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  if (m_p_max == NULL)
+    const_cast<PB_DS_CLASS_C_DEC* >(this)->find_max();
+
+  PB_DS_DBG_ASSERT(m_p_max != NULL);
+  return m_p_max->m_value;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+find_max()
+{
+  node_pointer p_cur = base_type::m_p_root;
+
+  m_p_max = p_cur;
+
+  while (p_cur != NULL)
+    {
+      if (Cmp_Fn::operator()(m_p_max->m_value, p_cur->m_value))
+	m_p_max = p_cur;
+
+      p_cur = p_cur->m_p_next_sibling;
+    }
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..56c99c430291
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
@@ -0,0 +1,222 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation class for a base of binomial heaps.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+push(const_reference r_val)
+{
+  PB_DS_DBG_ONLY(assert_valid(true);)
+
+    node_pointer p_nd = base_type::get_new_node_for_insert(r_val);
+
+  insert_node(p_nd);
+
+  m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid(true);)
+
+    return point_iterator(p_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+insert_node(node_pointer p_nd)
+{
+  if (base_type::m_p_root == NULL)
+    {
+      p_nd->m_p_next_sibling = p_nd->m_p_prev_or_parent =
+	p_nd->m_p_l_child = NULL;
+
+      p_nd->m_metadata = 0;
+
+      base_type::m_p_root = p_nd;
+
+      return;
+    }
+
+  if (base_type::m_p_root->m_metadata > 0)
+    {
+      p_nd->m_p_prev_or_parent = p_nd->m_p_l_child = NULL;
+
+      p_nd->m_p_next_sibling = base_type::m_p_root;
+
+      base_type::m_p_root->m_p_prev_or_parent = p_nd;
+
+      base_type::m_p_root = p_nd;
+
+      p_nd->m_metadata = 0;
+
+      return;
+    }
+
+  if (Cmp_Fn::operator()(base_type::m_p_root->m_value, p_nd->m_value))
+    {
+      p_nd->m_p_next_sibling = base_type::m_p_root->m_p_next_sibling;
+
+      p_nd->m_p_prev_or_parent = NULL;
+
+      p_nd->m_metadata = 1;
+
+      p_nd->m_p_l_child = base_type::m_p_root;
+
+      base_type::m_p_root->m_p_prev_or_parent = p_nd;
+
+      base_type::m_p_root->m_p_next_sibling = NULL;
+
+      base_type::m_p_root = p_nd;
+    }
+  else
+    {
+      p_nd->m_p_next_sibling = NULL;
+
+      p_nd->m_p_l_child = NULL;
+
+      p_nd->m_p_prev_or_parent = base_type::m_p_root;
+
+      p_nd->m_metadata = 0;
+
+      PB_DS_DBG_ASSERT(base_type::m_p_root->m_p_l_child == 0);
+      base_type::m_p_root->m_p_l_child = p_nd;
+
+      base_type::m_p_root->m_metadata = 1;
+    }
+
+  base_type::m_p_root = fix(base_type::m_p_root);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+fix(node_pointer p_nd) const
+{
+  while (p_nd->m_p_next_sibling != NULL&& 
+	 p_nd->m_metadata == p_nd->m_p_next_sibling->m_metadata)
+    {
+      node_pointer p_next = p_nd->m_p_next_sibling;
+
+      if (Cmp_Fn::operator()(p_nd->m_value, p_next->m_value))
+        {
+	  p_next->m_p_prev_or_parent =
+	    p_nd->m_p_prev_or_parent;
+
+	  if (p_nd->m_p_prev_or_parent != NULL)
+	    p_nd->m_p_prev_or_parent->m_p_next_sibling = p_next;
+
+	  base_type::make_child_of(p_nd, p_next);
+
+	  ++p_next->m_metadata;
+
+	  p_nd = p_next;
+        }
+      else
+        {
+	  p_nd->m_p_next_sibling = p_next->m_p_next_sibling;
+
+	  if (p_nd->m_p_next_sibling != NULL)
+	    p_next->m_p_next_sibling = NULL;
+
+	  base_type::make_child_of(p_next, p_nd);
+
+	  ++p_nd->m_metadata;
+        }
+    }
+
+  if (p_nd->m_p_next_sibling != NULL)
+    p_nd->m_p_next_sibling->m_p_prev_or_parent = p_nd;
+
+  return p_nd;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+modify(point_iterator it, const_reference r_new_val)
+{
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    node_pointer p_nd = it.m_p_nd;
+
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+  PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd, false);)
+
+    const bool bubble_up = Cmp_Fn::operator()(p_nd->m_value, r_new_val);
+
+  p_nd->m_value = r_new_val;
+
+  if (bubble_up)
+    {
+      node_pointer p_parent = base_type::parent(p_nd);
+
+      while (p_parent != NULL&& 
+	     Cmp_Fn::operator()(p_parent->m_value, p_nd->m_value))
+        {
+	  base_type::swap_with_parent(p_nd, p_parent);
+
+	  p_parent = base_type::parent(p_nd);
+        }
+
+      if (p_nd->m_p_prev_or_parent == NULL)
+	base_type::m_p_root = p_nd;
+
+      m_p_max = NULL;
+
+      PB_DS_DBG_ONLY(assert_valid(true);)
+
+        return;
+    }
+
+  base_type::bubble_to_top(p_nd);
+
+  remove_parentless_node(p_nd);
+
+  insert_node(p_nd);
+
+  m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..2823269b60bd
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
@@ -0,0 +1,238 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation class for a base of binomial heaps.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+void
+PB_DS_CLASS_C_DEC::
+split(Pred pred, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    PB_DS_DBG_ONLY(other.assert_valid(true);)
+
+    other.clear();
+
+  if (base_type::empty())
+    {
+      PB_DS_DBG_ONLY(assert_valid(true);)
+        PB_DS_DBG_ONLY(other.assert_valid(true);)
+
+        return;
+    }
+
+  base_type::to_linked_list();
+
+  node_pointer p_out = base_type::prune(pred);
+
+  while (p_out != NULL)
+    {
+      PB_DS_DBG_ASSERT(base_type::m_size > 0);
+      --base_type::m_size;
+
+      ++other.m_size;
+
+      node_pointer p_next = p_out->m_p_next_sibling;
+
+      p_out->m_p_l_child = p_out->m_p_prev_or_parent = NULL;
+
+      p_out->m_metadata = 0;
+
+      p_out->m_p_next_sibling = other.m_p_root;
+
+      if (other.m_p_root != NULL)
+	other.m_p_root->m_p_prev_or_parent = p_out;
+
+      other.m_p_root = p_out;
+
+      other.m_p_root = other.fix(other.m_p_root);
+
+      p_out = p_next;
+    }
+
+  PB_DS_DBG_ONLY(other.assert_valid(true);)
+
+    node_pointer p_cur = base_type::m_p_root;
+
+  base_type::m_p_root = NULL;
+
+  while (p_cur != NULL)
+    {
+      node_pointer p_next = p_cur->m_p_next_sibling;
+
+      p_cur->m_p_l_child = p_cur->m_p_prev_or_parent = NULL;
+
+      p_cur->m_metadata = 0;
+
+      p_cur->m_p_next_sibling = base_type::m_p_root;
+
+      if (base_type::m_p_root != NULL)
+	base_type::m_p_root->m_p_prev_or_parent = p_cur;
+
+      base_type::m_p_root = p_cur;
+
+      base_type::m_p_root = fix(base_type::m_p_root);
+
+      p_cur = p_next;
+    }
+
+  m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    PB_DS_DBG_ONLY(other.assert_valid(true);)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    PB_DS_DBG_ONLY(other.assert_valid(true);)
+
+    node_pointer p_other = other.m_p_root;
+
+  if (p_other != NULL)
+    do
+      {
+	node_pointer p_next = p_other->m_p_next_sibling;
+
+	std::swap(p_other->m_p_next_sibling, p_other->m_p_prev_or_parent);
+
+	p_other = p_next;
+      }
+    while (p_other != NULL);
+
+  base_type::m_p_root = join(base_type::m_p_root, other.m_p_root);
+  base_type::m_size += other.m_size;
+  m_p_max = NULL;
+
+  other.m_p_root = NULL;
+  other.m_size = 0;
+  other.m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid(true);)
+    PB_DS_DBG_ONLY(other.assert_valid(true);)
+    }
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+join(node_pointer p_lhs, node_pointer p_rhs) const
+{
+  node_pointer p_ret = NULL;
+
+  node_pointer p_cur = NULL;
+
+  while (p_lhs != NULL || p_rhs != NULL)
+    {
+      if (p_rhs == NULL)
+        {
+	  if (p_cur == NULL)
+	    p_ret = p_cur = p_lhs;
+	  else
+            {
+	      p_cur->m_p_next_sibling = p_lhs;
+
+	      p_lhs->m_p_prev_or_parent = p_cur;
+            }
+
+	  p_cur = p_lhs = NULL;
+        }
+      else if (p_lhs == NULL || p_rhs->m_metadata < p_lhs->m_metadata)
+        {
+	  if (p_cur == NULL)
+            {
+	      p_ret = p_cur = p_rhs;
+
+	      p_rhs = p_rhs->m_p_prev_or_parent;
+            }
+	  else
+            {
+	      p_cur->m_p_next_sibling = p_rhs;
+
+	      p_rhs = p_rhs->m_p_prev_or_parent;
+
+	      p_cur->m_p_next_sibling->m_p_prev_or_parent = p_cur;
+
+	      p_cur = p_cur->m_p_next_sibling;
+            }
+        }
+      else if (p_lhs->m_metadata < p_rhs->m_metadata)
+        {
+	  if (p_cur == NULL)
+	    p_ret = p_cur = p_lhs;
+	  else
+            {
+	      p_cur->m_p_next_sibling = p_lhs;
+
+	      p_lhs->m_p_prev_or_parent = p_cur;
+
+	      p_cur = p_cur->m_p_next_sibling;
+            }
+
+	  p_lhs = p_cur->m_p_next_sibling;
+        }
+      else
+        {
+	  node_pointer p_next_rhs = p_rhs->m_p_prev_or_parent;
+
+	  p_rhs->m_p_next_sibling = p_lhs;
+
+	  p_lhs = fix(p_rhs);
+
+	  p_rhs = p_next_rhs;
+        }
+    }
+
+  if (p_cur != NULL)
+    p_cur->m_p_next_sibling = NULL;
+
+  if (p_ret != NULL)
+    p_ret->m_p_prev_or_parent = NULL;
+
+  return p_ret;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
new file mode 100644
index 000000000000..89cea3fa8fb9
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
@@ -0,0 +1,865 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cc_ht_map_.hpp
+ * Contains an implementation class for cc_ht_map_.
+ */
+
+#include <utility>
+#include <iterator>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp>
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+#include <ext/pb_ds/detail/map_debug_base.hpp>
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
+#ifdef PB_DS_HT_MAP_TRACE_
+#include <iostream>
+#endif // PB_DS_HT_MAP_TRACE_
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_CC_HT_MAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Hash_Fn,		\
+						class Eq_Fn,		\
+						class Allocator,	\
+						bool Store_Hash,	\
+						class Comb_Hash_Fn,	\
+						class Resize_Policy>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    cc_ht_map_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    cc_ht_map_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC					\
+    PB_DS_CLASS_NAME<						\
+						Key,		\
+						Mapped,		\
+						Hash_Fn,	\
+						Eq_Fn,		\
+						Allocator,	\
+						Store_Hash,	\
+						Comb_Hash_Fn,	\
+						Resize_Policy >
+
+#define PB_DS_HASH_EQ_FN_C_DEC					\
+    hash_eq_fn<					\
+						Key,		\
+						Eq_Fn,		\
+						Allocator,	\
+						Store_Hash>
+
+#define PB_DS_RANGED_HASH_FN_C_DEC					\
+    ranged_hash_fn<					\
+							Key,		\
+							Hash_Fn,	\
+							Allocator,	\
+							Comb_Hash_Fn,	\
+							Store_Hash>
+
+#define PB_DS_TYPES_TRAITS_C_DEC				\
+    types_traits<						\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						Store_Hash>
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#define PB_DS_MAP_DEBUG_BASE_C_DEC					\
+    map_debug_base<					\
+								Key,	\
+								Eq_Fn,	\
+								typename Allocator::template rebind< \
+												     Key>::other::const_reference>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped_Data()
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+    typedef								\
+    static_assert_dumclass<				\
+									sizeof(static_assert<(bool)(E)>)> \
+    UNIQUE##static_assert_type
+
+    // <011i$i0|\|-<|-|4i|\|i|\|g |-|4$|-| 74813.
+    template<typename Key,
+	     typename Mapped,
+	     class Hash_Fn,
+	     class Eq_Fn,
+	     class Allocator,
+	     bool Store_Hash,
+	     class Comb_Hash_Fn,
+	     class Resize_Policy >
+    class PB_DS_CLASS_NAME:
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+      protected PB_DS_MAP_DEBUG_BASE_C_DEC,
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
+      public PB_DS_HASH_EQ_FN_C_DEC,
+      public Resize_Policy,
+      public PB_DS_RANGED_HASH_FN_C_DEC,
+      public PB_DS_TYPES_TRAITS_C_DEC
+    {
+
+    private:
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::comp_hash comp_hash;
+
+      struct entry : public PB_DS_TYPES_TRAITS_C_DEC::stored_value_type
+      {
+	typename Allocator::template rebind<entry>::other::pointer m_p_next;
+      };
+
+      typedef
+      typename Allocator::template rebind<entry>::other
+      entry_allocator;
+
+      typedef typename entry_allocator::pointer entry_pointer;
+
+      typedef typename entry_allocator::const_pointer const_entry_pointer;
+
+      typedef typename entry_allocator::reference entry_reference;
+
+      typedef
+      typename entry_allocator::const_reference
+      const_entry_reference;
+
+      typedef
+      typename Allocator::template rebind<entry_pointer>::other
+      entry_pointer_allocator;
+
+      typedef typename entry_pointer_allocator::pointer entry_pointer_array;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type_;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer_;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer
+      const_pointer_;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference_;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference_;
+
+#define PB_DS_GEN_POS							\
+      std::pair<							\
+							entry_pointer,	\
+							typename Allocator::size_type>
+
+#include <ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/point_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/const_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/iterator.hpp>
+
+#undef PB_DS_GEN_POS
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Hash_Fn hash_fn;
+
+      typedef Eq_Fn eq_fn;
+
+      typedef Allocator allocator;
+
+      typedef Comb_Hash_Fn comb_hash_fn;
+
+      typedef Resize_Policy resize_policy;
+
+      enum
+	{
+	  store_hash = Store_Hash
+	};
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_pointer key_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_pointer
+      const_key_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_reference
+      const_key_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::mapped_type mapped_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_pointer
+      mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_reference
+      mapped_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef point_iterator_ point_iterator;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+      typedef const_point_iterator_ point_iterator;
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+      typedef const_point_iterator_ const_point_iterator;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef iterator_ iterator;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+      typedef const_iterator_ iterator;
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+      typedef const_iterator_ const_iterator;
+
+    public:
+
+      PB_DS_CLASS_NAME();
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn, const Resize_Policy& r_resize_policy);
+
+      PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      virtual
+      ~PB_DS_CLASS_NAME();
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+      void
+      initialize();
+
+      inline size_type
+      size() const;
+
+      inline size_type
+      max_size() const;
+
+      inline bool
+      empty() const;
+
+      Hash_Fn& 
+      get_hash_fn();
+
+      const Hash_Fn& 
+      get_hash_fn() const;
+
+      Eq_Fn& 
+      get_eq_fn();
+
+      const Eq_Fn& 
+      get_eq_fn() const;
+
+      Comb_Hash_Fn& 
+      get_comb_hash_fn();
+
+      const Comb_Hash_Fn& 
+      get_comb_hash_fn() const;
+
+      Resize_Policy& 
+      get_resize_policy();
+
+      const Resize_Policy& 
+      get_resize_policy() const;
+
+      inline std::pair<point_iterator, bool>
+      insert(const_reference r_val)
+      {
+	return (insert_imp(r_val, traits_base::m_store_extra_indicator));
+      }
+
+      inline mapped_reference
+      operator[](const_key_reference r_key)
+      {
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+	return (subscript_imp(r_key, traits_base::m_store_extra_indicator));
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+	insert(r_key);
+
+	return (traits_base::s_null_mapped);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+      }
+
+      inline point_iterator
+      find(const_key_reference r_key);
+
+      inline const_point_iterator
+      find(const_key_reference r_key) const;
+
+      inline point_iterator
+      find_end();
+
+      inline const_point_iterator
+      find_end() const;
+
+      inline bool
+      erase(const_key_reference r_key);
+
+      template<typename Pred>
+      inline size_type
+      erase_if(Pred pred);
+
+      void
+      clear();
+
+      inline iterator
+      begin();
+
+      inline const_iterator
+      begin() const;
+
+      inline iterator
+      end();
+
+      inline const_iterator
+      end() const;
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+      void
+      assert_valid() const;
+
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+#ifdef PB_DS_HT_MAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_HT_MAP_TRACE_
+
+    private:
+      typedef PB_DS_TYPES_TRAITS_C_DEC traits_base;
+
+      typedef PB_DS_RANGED_HASH_FN_C_DEC ranged_hash_fn_base;
+
+      typedef PB_DS_HASH_EQ_FN_C_DEC hash_eq_fn_base;
+
+      typedef Resize_Policy resize_base;
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+      typedef PB_DS_MAP_DEBUG_BASE_C_DEC map_debug_base;
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::store_extra_false_type
+      store_hash_false_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::store_extra_true_type
+      store_hash_true_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::
+      no_throw_copies_false_type
+      no_throw_copies_false_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::
+      no_throw_copies_true_type
+      no_throw_copies_true_type;
+
+    private:
+
+      void
+      deallocate_all();
+
+      inline bool
+      do_resize_if_needed();
+
+      inline void
+      do_resize_if_needed_no_throw();
+
+      void
+      resize_imp(size_type new_size);
+
+      void
+      do_resize(size_type new_size);
+
+      void
+      resize_imp_no_exceptions(size_type new_size, entry_pointer_array a_p_entries_resized, size_type old_size);
+
+      inline entry_pointer
+      resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, store_hash_false_type);
+
+      inline entry_pointer
+      resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, store_hash_true_type);
+
+      void
+      deallocate_links_in_list(entry_pointer p_e);
+
+      inline entry_pointer
+      get_entry(const_reference r_val, no_throw_copies_false_type);
+
+      inline entry_pointer
+      get_entry(const_reference r_val, no_throw_copies_true_type);
+
+      inline void
+      rels_entry(entry_pointer p_e);
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      inline mapped_reference
+      subscript_imp(const_key_reference r_key, store_hash_false_type)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  const size_type pos = ranged_hash_fn_base::operator()(r_key);
+
+	entry_pointer p_e = m_a_p_entries[pos];
+
+	resize_base::notify_insert_search_start();
+
+	while (p_e != NULL&& 
+	       !hash_eq_fn_base::operator()(p_e->m_value.first, r_key))
+	  {
+	    resize_base::notify_insert_search_collision();
+
+	    p_e = p_e->m_p_next;
+	  }
+
+	resize_base::notify_insert_search_end();
+
+	if (p_e != NULL)
+	  {
+	    PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+	      return (p_e->m_value.second);
+	  }
+
+	PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+	  return (insert_new_imp(
+				 value_type(
+					    r_key,
+					    mapped_type()),
+				 pos)->second);
+      }
+
+      inline mapped_reference
+      subscript_imp(const_key_reference r_key, store_hash_true_type)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  comp_hash pos_hash_pair = ranged_hash_fn_base::operator()(r_key);
+
+	entry_pointer p_e = m_a_p_entries[pos_hash_pair.first];
+
+	resize_base::notify_insert_search_start();
+
+	while (p_e != NULL&& 
+	       !hash_eq_fn_base::operator()(p_e->m_value.first, p_e->m_hash, r_key, pos_hash_pair.second))
+	  {
+	    resize_base::notify_insert_search_collision();
+
+	    p_e = p_e->m_p_next;
+	  }
+
+	resize_base::notify_insert_search_end();
+
+	if (p_e != NULL)
+	  {
+	    PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+	      return (p_e->m_value.second);
+	  }
+
+	PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+	  return (insert_new_imp(
+				 value_type(
+					    r_key,
+					    mapped_type()),
+				 pos_hash_pair)->second);
+      }
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      inline std::pair<
+	point_iterator,
+	bool>
+      insert_imp(const_reference r_val, store_hash_false_type);
+
+      inline std::pair<
+	point_iterator,
+	bool>
+      insert_imp(const_reference r_val, store_hash_true_type);
+
+      inline pointer
+      insert_new_imp(const_reference r_val, size_type pos)
+      {
+	if (do_resize_if_needed())
+	  pos = ranged_hash_fn_base::operator()(PB_DS_V2F(r_val));
+
+	// Following lines might throw an exception.
+	entry_pointer p_e = get_entry(            r_val, PB_DS_TYPES_TRAITS_C_DEC::m_no_throw_copies_indicator);
+
+	// At this point no exceptions can be thrown.
+
+	p_e->m_p_next = m_a_p_entries[pos];
+
+	m_a_p_entries[pos] = p_e;
+
+	resize_base::notify_inserted(++m_num_used_e);
+
+	PB_DS_DBG_ONLY(map_debug_base::insert_new(
+						  PB_DS_V2F(r_val));)
+
+	  PB_DS_DBG_ONLY(assert_valid();)
+
+	  return (&p_e->m_value);
+      }
+
+      inline pointer
+      insert_new_imp(const_reference r_val, comp_hash& r_pos_hash_pair)
+      {
+	// Following lines might throw an exception.
+
+	if (do_resize_if_needed())
+	  r_pos_hash_pair = ranged_hash_fn_base::operator()(
+							    PB_DS_V2F(r_val));
+
+	entry_pointer p_e = get_entry(            r_val, PB_DS_TYPES_TRAITS_C_DEC::m_no_throw_copies_indicator);
+
+	// At this point no exceptions can be thrown.
+
+	p_e->m_hash = r_pos_hash_pair.second;
+
+	p_e->m_p_next = m_a_p_entries[r_pos_hash_pair.first];
+
+	m_a_p_entries[r_pos_hash_pair.first] = p_e;
+
+	resize_base::notify_inserted(++m_num_used_e);
+
+	PB_DS_DBG_ONLY(map_debug_base::insert_new(
+						  PB_DS_V2F(r_val));)
+
+	  PB_DS_DBG_ONLY(assert_valid();)
+
+	  return (&p_e->m_value);
+      }
+
+      inline pointer
+      find_key_pointer(const_key_reference r_key, store_hash_false_type)
+      {
+	entry_pointer p_e =
+	  m_a_p_entries[ranged_hash_fn_base::operator()(r_key)];
+
+	resize_base::notify_find_search_start();
+
+	while (p_e != NULL&& 
+	       !hash_eq_fn_base::operator()(PB_DS_V2F(p_e->m_value), r_key))
+	  {
+	    resize_base::notify_find_search_collision();
+
+	    p_e = p_e->m_p_next;
+	  }
+
+	resize_base::notify_find_search_end();
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG_
+	if (p_e == NULL)
+	  map_debug_base::check_key_does_not_exist(r_key);
+	else
+	  map_debug_base::check_key_exists(r_key);
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG_
+
+	return (&p_e->m_value);
+      }
+
+      inline pointer
+      find_key_pointer(const_key_reference r_key, store_hash_true_type)
+      {
+	comp_hash pos_hash_pair = ranged_hash_fn_base::operator()(r_key);
+
+	entry_pointer p_e = m_a_p_entries[pos_hash_pair.first];
+
+	resize_base::notify_find_search_start();
+
+	while (p_e != NULL&& 
+	       !hash_eq_fn_base::operator()(
+					    PB_DS_V2F(p_e->m_value),
+					    p_e->m_hash,
+					    r_key, pos_hash_pair.second))
+	  {
+	    resize_base::notify_find_search_collision();
+
+	    p_e = p_e->m_p_next;
+	  }
+
+	resize_base::notify_find_search_end();
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG_
+	if (p_e == NULL)
+	  map_debug_base::check_key_does_not_exist(r_key);
+	else
+	  map_debug_base::check_key_exists(r_key);
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG_
+
+	return (&p_e->m_value);
+      }
+
+      inline bool
+      erase_in_pos_imp(const_key_reference r_key, size_type pos);
+
+      inline bool
+      erase_in_pos_imp(const_key_reference r_key, const comp_hash& r_pos_hash_pair);
+
+      inline void
+      erase_entry_pointer(entry_pointer& r_p_e);
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      void
+      inc_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const
+      {
+	inc_it_state((const_mapped_pointer& )r_p_value, r_pos);
+      }
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      void
+      inc_it_state(const_pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const
+      {
+	PB_DS_DBG_ASSERT(r_p_value != NULL);
+
+	r_pos.first = r_pos.first->m_p_next;
+
+	if (r_pos.first != NULL)
+	  {
+	    r_p_value =& r_pos.first->m_value;
+
+	    return;
+	  }
+
+	for (++r_pos.second; r_pos.second < m_num_e_p; ++r_pos.second)
+	  if (m_a_p_entries[r_pos.second] != NULL)
+	    {
+	      r_pos.first = m_a_p_entries[r_pos.second];
+
+	      r_p_value =& r_pos.first->m_value;
+
+	      return;
+	    }
+
+	r_p_value = NULL;
+      }
+
+      void
+      get_start_it_state(pointer& r_p_value, std::pair<entry_pointer, size_type>& r_pos) const
+      {
+	for (r_pos.second = 0; r_pos.second < m_num_e_p; ++r_pos.second)
+	  if (m_a_p_entries[r_pos.second] != NULL)
+	    {
+	      r_pos.first = m_a_p_entries[r_pos.second];
+
+	      r_p_value =& r_pos.first->m_value;
+
+	      return;
+	    }
+
+	r_p_value = NULL;
+      }
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+      void
+      assert_entry_pointer_array_valid(const entry_pointer_array a_p_entries) const;
+
+      void
+      assert_entry_pointer_valid(const entry_pointer p_e, store_hash_true_type) const;
+
+      void
+      assert_entry_pointer_valid(const entry_pointer p_e, store_hash_false_type) const;
+
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+#ifdef PB_DS_HT_MAP_TRACE_
+
+      void
+      trace_list(const_entry_pointer p_l) const;
+
+#endif // #ifdef PB_DS_HT_MAP_TRACE_
+
+    private:
+      static entry_allocator s_entry_allocator;
+
+      static entry_pointer_allocator s_entry_pointer_allocator;
+
+      typedef cond_dealtor< entry, Allocator> cond_dealtor_t;
+
+      entry_pointer_array m_a_p_entries;
+
+      size_type m_num_e_p;
+
+      size_type m_num_used_e;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      friend class iterator_;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      friend class const_iterator_;
+
+      static iterator s_end_it;
+
+      static const_iterator s_const_end_it;
+
+      static point_iterator s_find_end_it;
+
+      static const_point_iterator s_const_find_end_it;
+
+      enum
+	{
+	  store_hash_ok =
+	  !Store_Hash ||
+	  !is_same<
+	  Hash_Fn,
+	  pb_ds::null_hash_fn>::value
+	};
+
+      PB_DS_STATIC_ASSERT(sth, store_hash_ok);
+    };
+
+#include <ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_HASH_EQ_FN_C_DEC
+
+#undef PB_DS_RANGED_HASH_FN_C_DEC
+
+#undef PB_DS_TYPES_TRAITS_C_DEC
+
+#undef PB_DS_MAP_DEBUG_BASE_C_DEC
+
+#undef PB_DS_CLASS_NAME
+
+#undef PB_DS_V2F
+#undef PB_DS_V2S
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+#undef PB_DS_STATIC_ASSERT
+
+  } // namespace detail
+} // namespace pb_ds
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
new file mode 100644
index 000000000000..6b398b0450cb
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cmp_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s entire container comparison related
+ *    functions.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Other_HT_Map_Type>
+bool
+PB_DS_CLASS_C_DEC::
+operator==(const Other_HT_Map_Type& other) const
+{
+  return (cmp_with_other(other));
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Other_Map_Type>
+bool
+PB_DS_CLASS_C_DEC::
+cmp_with_other(const Other_Map_Type& other) const
+{
+  if (size() != other.size())
+    return (false);
+
+  for (typename Other_Map_Type::const_iterator it = other.begin();
+       it != other.end(); ++it)
+    {
+      const_key_reference r_key =(const_key_reference)PB_DS_V2F(*it);
+
+      const_mapped_pointer p_mapped_value =
+	const_cast<PB_DS_CLASS_C_DEC& >(*this).
+	find_key_pointer(r_key, traits_base::m_store_hash_indicator);
+
+      if (p_mapped_value == NULL)
+	return (false);
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      if (p_mapped_value->second != it->second)
+	return (false);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+    }
+
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Other_HT_Map_Type>
+bool
+PB_DS_CLASS_C_DEC::
+operator!=(const Other_HT_Map_Type& other) const
+{
+  return (!operator==(other));
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
new file mode 100644
index 000000000000..54859e83562d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
@@ -0,0 +1,138 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cond_key_dtor_entry_dealtor.hpp
+ * Contains a conditional key destructor, used for exception handling.
+ */
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename HT_Map>
+
+#define PB_DS_CLASS_C_DEC				\
+    PB_DS_CKDED_CLASS_NAME<				\
+						HT_Map>
+
+    /**
+     * A conditional key destructor, used for exception handling.
+     **/
+    template<typename HT_Map>
+    class PB_DS_CKDED_CLASS_NAME
+    {
+    public:
+      typedef typename HT_Map::entry entry;
+
+      typedef typename HT_Map::entry_allocator entry_allocator;
+
+      typedef typename HT_Map::key_type key_type;
+
+    public:
+      inline
+      PB_DS_CKDED_CLASS_NAME(entry_allocator* p_a, entry* p_e);
+
+      inline
+      ~PB_DS_CKDED_CLASS_NAME();
+
+      inline void
+      set_key_destruct();
+
+      inline void
+      set_no_action_destructor();
+
+    protected:
+      entry_allocator* const m_p_a;
+      entry* const m_p_e;
+
+      bool m_key_destruct;
+      bool m_no_action_destructor;
+    };
+
+    PB_DS_CLASS_T_DEC
+    inline
+    PB_DS_CLASS_C_DEC::
+    PB_DS_CKDED_CLASS_NAME(entry_allocator* p_a, entry* p_e) :
+      m_p_a(p_a),
+      m_p_e(p_e),
+      m_key_destruct(false),
+      m_no_action_destructor(false)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    set_key_destruct()
+    {
+      m_key_destruct = true;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    set_no_action_destructor()
+    {
+      m_no_action_destructor = true;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline
+    PB_DS_CLASS_C_DEC::
+    ~PB_DS_CKDED_CLASS_NAME()
+    {
+      if (m_no_action_destructor)
+	return;
+
+      if (m_key_destruct)
+	m_p_e->m_value.first.~key_type();
+
+      m_p_a->deallocate(m_p_e, 1);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace detail
+} // namespace pb_ds
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..1fe673fd3de5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
@@ -0,0 +1,239 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s constructors, destructor,
+ *    and related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::entry_allocator
+PB_DS_CLASS_C_DEC::s_entry_allocator;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::entry_pointer_allocator
+PB_DS_CLASS_C_DEC::s_entry_pointer_allocator;
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    insert(*(first_it++));
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME() :
+  ranged_hash_fn_base(resize_base::get_nearest_larger_size(1)),
+  m_a_p_entries(s_entry_pointer_allocator.allocate(
+						   resize_base::get_nearest_larger_size(1))),
+  m_num_e_p(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn) :
+  ranged_hash_fn_base(resize_base::get_nearest_larger_size(1),
+		      r_hash_fn),
+  m_a_p_entries(s_entry_pointer_allocator.allocate(
+						   resize_base::get_nearest_larger_size(1))),
+  m_num_e_p(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
+  PB_DS_HASH_EQ_FN_C_DEC(r_eq_fn),
+  ranged_hash_fn_base(resize_base::get_nearest_larger_size(1),
+		      r_hash_fn),
+  m_a_p_entries(s_entry_pointer_allocator.allocate(
+						   resize_base::get_nearest_larger_size(1))),
+  m_num_e_p(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
+
+  Resize_Policy::notify_cleared();
+
+  ranged_hash_fn_base::notify_resized(m_num_e_p);
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
+  PB_DS_HASH_EQ_FN_C_DEC(r_eq_fn),
+  ranged_hash_fn_base(
+		      resize_base::get_nearest_larger_size(1),
+		      r_hash_fn,
+		      r_comb_hash_fn),
+  m_a_p_entries(s_entry_pointer_allocator.allocate(
+						   resize_base::get_nearest_larger_size(1))),
+  m_num_e_p(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Hash_Fn& r_comb_hash_fn, const Resize_Policy& r_resize_policy) :
+  PB_DS_HASH_EQ_FN_C_DEC(r_eq_fn),
+  Resize_Policy(r_resize_policy),
+  ranged_hash_fn_base(
+		      resize_base::get_nearest_larger_size(1),
+		      r_hash_fn,
+		      r_comb_hash_fn),
+  m_a_p_entries(s_entry_pointer_allocator.allocate(
+						   resize_base::get_nearest_larger_size(1))),
+  m_num_e_p(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+#ifdef PB_DS_CC_HT_MAP_DEBUG_
+  PB_DS_MAP_DEBUG_BASE_C_DEC(other),
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG_
+  PB_DS_HASH_EQ_FN_C_DEC(other),
+  resize_base(other),
+  ranged_hash_fn_base(other),
+  m_a_p_entries(m_a_p_entries = s_entry_pointer_allocator.allocate(
+								   resize_base::get_nearest_larger_size(1))),
+  m_num_e_p(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    try
+      {
+        copy_from_range(other.begin(), other.end());
+      }
+    catch(...)
+      {
+        deallocate_all();
+
+        throw;
+      }
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~PB_DS_CLASS_NAME()
+{
+  deallocate_all();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+  PB_DS_DBG_ONLY(other.assert_valid());
+
+  std::swap(m_a_p_entries, other.m_a_p_entries);
+
+  std::swap(m_num_e_p, other.m_num_e_p);
+
+  std::swap(m_num_used_e, other.m_num_used_e);
+
+  ranged_hash_fn_base::swap(other);
+
+  hash_eq_fn_base::swap(other);
+
+  resize_base::swap(other);
+
+  PB_DS_DBG_ONLY(map_debug_base::swap(other));
+
+  PB_DS_DBG_ONLY(assert_valid());
+  PB_DS_DBG_ONLY(other.assert_valid());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+deallocate_all()
+{
+  clear();
+
+  s_entry_pointer_allocator.deallocate(m_a_p_entries, m_num_e_p);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize()
+{
+  std::fill(m_a_p_entries, m_a_p_entries + m_num_e_p, (entry_pointer)NULL);
+
+  Resize_Policy::notify_resized(m_num_e_p);
+
+  Resize_Policy::notify_cleared();
+
+  ranged_hash_fn_base::notify_resized(m_num_e_p);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..db1eac3b7e56
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_no_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s constructors, destructor,
+ *    and related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+constructor_insert_new_imp(const_mapped_reference r_val, size_type pos, integral_constant<int,false>)
+{
+  // Following lines might throw an exception.
+  entry_pointer p_e = get_entry(r_val, traits_base::s_no_throw_copies_indicator);
+
+  // At this point no exceptions can be thrown.
+
+  p_e->m_p_next = m_a_p_entries[pos];
+
+  m_a_p_entries[pos] = p_e;
+
+  PB_DS_DBG_ONLY(map_debug_base::insert_new(r_key);)
+    }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..9771d093306e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s constructors, destructor,
+ *    and related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+constructor_insert_new_imp(const_reference r_val, size_type pos, true_type)
+{
+  // Following lines might throw an exception.
+  entry_pointer p_e = get_entry(r_val, traits_base::s_no_throw_copies_indicator);
+
+  // At this point no exceptions can be thrown.
+
+  p_e->m_p_next = m_a_p_entries[pos];
+
+  p_e->m_hash = ranged_hash_fn_base::operator()((const_key_reference)(PB_DS_V2F(p_e->m_value))).second;
+
+  m_a_p_entries[pos] = p_e;
+
+  PB_DS_DBG_ONLY(map_debug_base::insert_new(r_key);)
+    }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..73f747c898a4
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
@@ -0,0 +1,86 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s debug-mode functions.
+ */
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  map_debug_base::check_size(m_num_used_e);
+
+  assert_entry_pointer_array_valid(m_a_p_entries);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_entry_pointer_array_valid(const entry_pointer_array a_p_entries) const
+{
+  size_type iterated_num_used_e = 0;
+
+  for (size_type pos = 0; pos < m_num_e_p; ++pos)
+    {
+      entry_pointer p_e = a_p_entries[pos];
+
+      while (p_e != NULL)
+        {
+	  ++iterated_num_used_e;
+
+	  assert_entry_pointer_valid(p_e,  traits_base::m_store_hash_indicator);
+
+	  p_e = p_e->m_p_next;
+        }
+    }
+
+  PB_DS_DBG_ASSERT(iterated_num_used_e == m_num_used_e);
+}
+
+#include <ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp>
+
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..205c6c6d553f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_no_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s debug-mode functions.
+ */
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_entry_pointer_valid(const entry_pointer    p_e, store_hash_false_type) const
+{
+  map_debug_base::check_key_exists(PB_DS_V2F(p_e->m_value));
+}
+
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..17dbca20d206
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
@@ -0,0 +1,62 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s debug-mode functions.
+ */
+
+#ifdef PB_DS_CC_HT_MAP_DEBUG__
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_entry_pointer_valid(const entry_pointer    p_e, store_hash_true_type) const
+{
+  map_debug_base::check_key_exists(PB_DS_V2F(p_e->m_value));
+
+  comp_hash pos_hash_pair =
+    ranged_hash_fn_base::operator()(PB_DS_V2F(p_e->m_value));
+
+  PB_DS_DBG_ASSERT(p_e->m_hash == pos_hash_pair.second);
+}
+
+#endif // #ifdef PB_DS_CC_HT_MAP_DEBUG__
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
new file mode 100644
index 000000000000..458ed361c948
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file entry_list_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s entry-list related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+deallocate_links_in_list(entry_pointer p_e)
+{
+  while (p_e != NULL)
+    {
+      entry_pointer p_dealloc_e = p_e;
+
+      p_e = p_e->m_p_next;
+
+      s_entry_allocator.deallocate(p_dealloc_e, 1);
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::entry_pointer
+PB_DS_CLASS_C_DEC::
+get_entry(const_reference r_val, no_throw_copies_true_type)
+{
+  // Following line might throw an exception.
+
+  entry_pointer p_e = s_entry_allocator.allocate(1);
+
+  // Following lines* cannot* throw an exception.
+
+  new (&p_e->m_value) value_type(r_val);
+
+  return (p_e);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::entry_pointer
+PB_DS_CLASS_C_DEC::
+get_entry(const_reference r_val, no_throw_copies_false_type)
+{
+  // Following line might throw an exception.
+
+  entry_pointer p_e = s_entry_allocator.allocate(1);
+
+  cond_dealtor_t cond(p_e);
+
+  // Following lines might throw an exception.
+
+  new (&p_e->m_value) value_type(r_val);
+
+  cond.set_no_action();
+
+  return (p_e);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+rels_entry(entry_pointer p_e)
+{
+  /* The following lines cannot throw exceptions
+   *     (unless if key-data dtors do). */
+
+  p_e->m_value.~value_type();
+
+  s_entry_allocator.deallocate(p_e, 1);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..1b4148d4cc0f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s erase related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+erase_entry_pointer(entry_pointer& r_p_e)
+{
+  PB_DS_DBG_ONLY(map_debug_base::erase_existing(
+						PB_DS_V2F(r_p_e->m_value)));
+
+  entry_pointer p_e = r_p_e;
+
+  r_p_e = r_p_e->m_p_next;
+
+  rels_entry(p_e);
+
+  PB_DS_DBG_ASSERT(m_num_used_e > 0);
+  resize_base::notify_erased(--m_num_used_e);
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  size_type num_ersd = 0;
+
+  for (size_type pos = 0; pos < m_num_e_p; ++pos)
+    {
+      typedef
+	typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+	const_reference;
+
+      while (m_a_p_entries[pos] != NULL&& 
+	     pred(m_a_p_entries[pos]->m_value))
+        {
+	  ++num_ersd;
+
+	  entry_pointer p_next_e = m_a_p_entries[pos]->m_p_next;
+
+	  erase_entry_pointer(m_a_p_entries[pos]);
+
+	  m_a_p_entries[pos] = p_next_e;
+        }
+
+      entry_pointer p_e = m_a_p_entries[pos];
+
+      while (p_e != NULL&&  p_e->m_p_next != NULL)
+        {
+	  if (pred(p_e->m_p_next->m_value))
+            {
+	      ++num_ersd;
+
+	      erase_entry_pointer(p_e->m_p_next);
+            }
+	  else
+	    p_e = p_e->m_p_next;
+        }
+    }
+
+  do_resize_if_needed_no_throw();
+
+  return (num_ersd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  for (size_type pos = 0; pos < m_num_e_p; ++pos)
+    while (m_a_p_entries[pos] != NULL)
+      erase_entry_pointer(m_a_p_entries[pos]);
+
+  do_resize_if_needed_no_throw();
+
+  resize_base::notify_cleared();
+}
+
+#include <ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp>
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..5441555ab90f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
@@ -0,0 +1,139 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_no_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s erase related functions, when the hash
+ *    value is not stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase(const_key_reference r_key)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (erase_in_pos_imp(r_key,
+			     ranged_hash_fn_base::operator()(r_key)));
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase_in_pos_imp(const_key_reference r_key, size_type pos)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    entry_pointer p_e = m_a_p_entries[pos];
+
+  resize_base::notify_erase_search_start();
+
+  if (p_e == NULL)
+    {
+      resize_base::notify_erase_search_end();
+
+      PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+							      r_key);)
+
+        PB_DS_DBG_ONLY(assert_valid();)
+
+        return (false);
+    }
+
+  if (hash_eq_fn_base::operator()(
+				  PB_DS_V2F(p_e->m_value),
+				  r_key))
+    {
+      resize_base::notify_erase_search_end();
+
+      PB_DS_DBG_ONLY(map_debug_base::
+		     check_key_exists(r_key);)
+
+        erase_entry_pointer(m_a_p_entries[pos]);
+
+      do_resize_if_needed_no_throw();
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return (true);
+    }
+
+  while (true)
+    {
+      entry_pointer p_next_e = p_e->m_p_next;
+
+      if (p_next_e == NULL)
+        {
+	  resize_base::notify_erase_search_end();
+
+	  PB_DS_DBG_ONLY(map_debug_base::
+			 check_key_does_not_exist(r_key);)
+
+            PB_DS_DBG_ONLY(assert_valid();)
+
+            return (false);
+        }
+
+      if (hash_eq_fn_base::operator()(
+				      PB_DS_V2F(p_next_e->m_value),
+				      r_key))
+        {
+	  resize_base::notify_erase_search_end();
+
+	  PB_DS_DBG_ONLY(map_debug_base::
+			 check_key_exists(r_key);)
+
+            erase_entry_pointer(p_e->m_p_next);
+
+	  do_resize_if_needed_no_throw();
+
+	  PB_DS_DBG_ONLY(assert_valid();)
+
+            return (true);
+        }
+
+      resize_base::notify_erase_search_collision();
+
+      p_e = p_next_e;
+    }
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..fbc2dd5f2e5c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
@@ -0,0 +1,134 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s erase related functions, when the hash
+ *    value is stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase_in_pos_imp(const_key_reference r_key, const comp_hash& r_pos_hash_pair)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    entry_pointer p_e = m_a_p_entries[r_pos_hash_pair.first];
+
+  resize_base::notify_erase_search_start();
+
+  if (p_e == NULL)
+    {
+      resize_base::notify_erase_search_end();
+
+      PB_DS_DBG_ONLY(map_debug_base::
+		     check_key_does_not_exist(
+					      r_key);)
+
+        PB_DS_DBG_ONLY(assert_valid();)
+
+        return (false);
+    }
+
+  if (hash_eq_fn_base::operator()(
+				  PB_DS_V2F(p_e->m_value),
+				  p_e->m_hash,
+				  r_key,
+				  r_pos_hash_pair.second))
+    {
+      resize_base::notify_erase_search_end();
+
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(
+						      r_key);)
+
+        erase_entry_pointer(m_a_p_entries[r_pos_hash_pair.first]);
+
+      do_resize_if_needed_no_throw();
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return (true);
+    }
+
+  while (true)
+    {
+      entry_pointer p_next_e = p_e->m_p_next;
+
+      if (p_next_e == NULL)
+        {
+	  resize_base::notify_erase_search_end();
+
+	  PB_DS_DBG_ONLY(map_debug_base::
+			 check_key_does_not_exist(r_key);)
+
+            PB_DS_DBG_ONLY(assert_valid();)
+
+            return (false);
+        }
+
+      if (hash_eq_fn_base::operator()(
+				      PB_DS_V2F(p_next_e->m_value),
+				      p_next_e->m_hash,
+				      r_key,
+				      r_pos_hash_pair.second))
+        {
+	  resize_base::notify_erase_search_end();
+
+	  PB_DS_DBG_ONLY(map_debug_base::
+			 check_key_exists(
+					  r_key);)
+
+            erase_entry_pointer(p_e->m_p_next);
+
+	  do_resize_if_needed_no_throw();
+
+	  PB_DS_DBG_ONLY(assert_valid();)
+
+            return (true);
+        }
+
+      resize_base::notify_erase_search_collision();
+
+      p_e = p_next_e;
+    }
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
new file mode 100644
index 000000000000..f1d68aa1dd09
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
@@ -0,0 +1,82 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s find related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (find_key_pointer(r_key, traits_base::m_store_extra_indicator));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key) const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (const_cast<PB_DS_CLASS_C_DEC& >(*this).find_key_pointer(        r_key, traits_base::m_store_extra_indicator));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+find_end()
+{
+  return (NULL);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+find_end() const
+{
+  return (NULL);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..b44f67497f62
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
@@ -0,0 +1,47 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s find related functions, when the hash
+ *    value is stored.
+ */
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
new file mode 100644
index 000000000000..dde1d35cb719
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
@@ -0,0 +1,118 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s entire container info related
+ *    functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (m_num_used_e);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (m_entry_allocator.max_size());
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (size() == 0);
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Other_HT_Map_Type>
+bool
+PB_DS_CLASS_C_DEC::
+operator==(const Other_HT_Map_Type& other) const
+{
+  return (cmp_with_other(other));
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Other_Map_Type>
+bool
+PB_DS_CLASS_C_DEC::
+cmp_with_other(const Other_Map_Type& other) const
+{
+  if (size() != other.size())
+    return (false);
+
+  for (typename Other_Map_Type::const_iterator it = other.begin();
+       it != other.end(); ++it)
+    {
+      const_key_reference r_key =(const_key_reference)PB_DS_V2F(*it);
+
+      const_mapped_pointer p_mapped_value =
+	const_cast<PB_DS_CLASS_C_DEC& >(*this).
+	find_key_pointer(r_key, traits_base::m_store_hash_indicator);
+
+      if (p_mapped_value == NULL)
+	return (false);
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      if (p_mapped_value->second != it->second)
+	return (false);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+    }
+
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Other_HT_Map_Type>
+bool
+PB_DS_CLASS_C_DEC::
+operator!=(const Other_HT_Map_Type& other) const
+{
+  return (!operator==(other));
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..27260735c634
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
@@ -0,0 +1,49 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s insert related functions.
+ */
+
+#include <ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp>
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..6c5fa3cb54ae
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_no_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s insert related functions, when the hash
+ *    value is not stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline std::pair<
+  typename PB_DS_CLASS_C_DEC::point_iterator,
+  bool>
+PB_DS_CLASS_C_DEC::
+insert_imp(const_reference r_val, store_hash_false_type)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    const_key_reference r_key = PB_DS_V2F(r_val);
+
+  const size_type pos = ranged_hash_fn_base::operator()(r_key);
+
+  entry_pointer p_e = m_a_p_entries[pos];
+
+  resize_base::notify_insert_search_start();
+
+  while (p_e != NULL&& 
+	 !hash_eq_fn_base::operator()(PB_DS_V2F(p_e->m_value), r_key))
+    {
+      resize_base::notify_insert_search_collision();
+
+      p_e = p_e->m_p_next;
+    }
+
+  resize_base::notify_insert_search_end();
+
+  if (p_e != NULL)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+        return (
+		std::make_pair(               & p_e->m_value,  false));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+    return (std::make_pair(
+			   insert_new_imp(r_val, pos),
+			   true));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..480800a228d2
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s insert related functions, when the hash
+ *    value is stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline std::pair<
+  typename PB_DS_CLASS_C_DEC::point_iterator,
+  bool>
+PB_DS_CLASS_C_DEC::
+insert_imp(const_reference r_val, store_hash_true_type)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    const_key_reference r_key = PB_DS_V2F(r_val);
+
+  comp_hash pos_hash_pair = ranged_hash_fn_base::operator()(r_key);
+
+  entry_pointer p_e = m_a_p_entries[pos_hash_pair.first];
+
+  resize_base::notify_insert_search_start();
+
+  while (p_e != NULL&& 
+	 !hash_eq_fn_base::operator()(
+				      PB_DS_V2F(p_e->m_value),
+				      p_e->m_hash,
+				      r_key, pos_hash_pair.second))
+    {
+      resize_base::notify_insert_search_collision();
+
+      p_e = p_e->m_p_next;
+    }
+
+  resize_base::notify_insert_search_end();
+
+  if (p_e != NULL)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+        return (std::make_pair(           & p_e->m_value, false));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+    return (std::make_pair(
+			   insert_new_imp(r_val, pos_hash_pair),
+			   true));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
new file mode 100644
index 000000000000..eca3791c7772
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
@@ -0,0 +1,97 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterators_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s iterators related functions, e.g.,
+ *    begin().
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::s_end_it;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::s_const_end_it;
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+begin()
+{
+  pointer p_value;
+  std::pair<entry_pointer, size_type> pos;
+
+  get_start_it_state(p_value, pos);
+
+  return (iterator(p_value, pos, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+end()
+{
+  return (s_end_it);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin() const
+{
+  pointer p_value;
+  std::pair<entry_pointer, size_type> pos;
+
+  get_start_it_state(p_value, pos);
+
+  return (const_iterator(p_value, pos, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end() const
+{
+  return (s_const_end_it);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..5ed175fe1713
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s policy access
+ *    functions.
+ */
+
+PB_DS_CLASS_T_DEC
+Hash_Fn& 
+PB_DS_CLASS_C_DEC::
+get_hash_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Hash_Fn& 
+PB_DS_CLASS_C_DEC::
+get_hash_fn() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Eq_Fn& 
+PB_DS_CLASS_C_DEC::
+get_eq_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Eq_Fn& 
+PB_DS_CLASS_C_DEC::
+get_eq_fn() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Comb_Hash_Fn& 
+PB_DS_CLASS_C_DEC::
+get_comb_hash_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Comb_Hash_Fn& 
+PB_DS_CLASS_C_DEC::
+get_comb_hash_fn() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Resize_Policy& 
+PB_DS_CLASS_C_DEC::
+get_resize_policy()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Resize_Policy& 
+PB_DS_CLASS_C_DEC::
+get_resize_policy() const
+{
+  return (*this);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
new file mode 100644
index 000000000000..ea15143a71a4
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
@@ -0,0 +1,157 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s resize related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+do_resize_if_needed()
+{
+  if (!resize_base::is_resize_needed())
+    return (false);
+
+  resize_imp(resize_base::get_new_size(        m_num_e_p, m_num_used_e));
+
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+do_resize(size_type size)
+{
+  resize_imp(resize_base::get_nearest_larger_size(
+						  size));
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+do_resize_if_needed_no_throw()
+{
+  if (!resize_base::is_resize_needed())
+    return;
+
+  try
+    {
+      resize_imp(resize_base::get_new_size(            m_num_e_p, m_num_used_e));
+    }
+  catch(...)
+    { }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+resize_imp(size_type new_size)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    if (new_size == m_num_e_p)
+      return;
+
+  const size_type old_size = m_num_e_p;
+
+  entry_pointer_array a_p_entries_resized;
+
+  // Following line might throw an exception.
+
+  ranged_hash_fn_base::notify_resized(new_size);
+
+  try
+    {
+      // Following line might throw an exception.
+
+      a_p_entries_resized = s_entry_pointer_allocator.allocate(new_size);
+
+      m_num_e_p = new_size;
+    }
+  catch(...)
+    {
+      ranged_hash_fn_base::notify_resized(old_size);
+
+      throw;
+    }
+
+  // At this point no exceptions can be thrown.
+
+  resize_imp_no_exceptions(new_size, a_p_entries_resized, old_size);
+
+  Resize_Policy::notify_resized(new_size);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+resize_imp_no_exceptions(size_type new_size, entry_pointer_array a_p_entries_resized, size_type old_size)
+{
+  std::fill(a_p_entries_resized, a_p_entries_resized + m_num_e_p,(entry_pointer)NULL);
+
+  for (size_type pos = 0; pos < old_size; ++pos)
+    {
+      entry_pointer p_e = m_a_p_entries[pos];
+
+      while (p_e != NULL)
+	p_e = resize_imp_no_exceptions_reassign_pointer(p_e,  a_p_entries_resized,  traits_base::m_store_extra_indicator);
+    }
+
+  m_num_e_p = new_size;
+
+  PB_DS_DBG_ONLY(assert_entry_pointer_array_valid(a_p_entries_resized);)
+
+    s_entry_pointer_allocator.deallocate(m_a_p_entries, old_size);
+
+  m_a_p_entries = a_p_entries_resized;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+#include <ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp>
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..474ac00182ab
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_no_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s resize related functions, when the
+ *    hash value is not stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::entry_pointer
+PB_DS_CLASS_C_DEC::
+resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, store_hash_false_type)
+{
+  const size_type hash_pos =
+    ranged_hash_fn_base::operator()(PB_DS_V2F(p_e->m_value));
+
+  entry_pointer const p_next_e = p_e->m_p_next;
+
+  p_e->m_p_next = a_p_entries_resized[hash_pos];
+
+  a_p_entries_resized[hash_pos] = p_e;
+
+  return (p_next_e);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..d90d5786ff82
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_store_hash_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s resize related functions, when the
+ *    hash value is stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::entry_pointer
+PB_DS_CLASS_C_DEC::
+resize_imp_no_exceptions_reassign_pointer(entry_pointer p_e, entry_pointer_array a_p_entries_resized, store_hash_true_type)
+{
+  const comp_hash pos_hash_pair =
+    ranged_hash_fn_base::operator()(
+				    PB_DS_V2F(p_e->m_value),
+				    p_e->m_hash);
+
+  entry_pointer const p_next_e = p_e->m_p_next;
+
+  p_e->m_p_next = a_p_entries_resized[pos_hash_pair.first];
+
+  a_p_entries_resized[pos_hash_pair.first] = p_e;
+
+  return (p_next_e);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
new file mode 100644
index 000000000000..010834d4f2b3
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
@@ -0,0 +1,71 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file size_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s entire container size related
+ *    functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (m_num_used_e);
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (size() == 0);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_entry_allocator.max_size());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp
new file mode 100644
index 000000000000..dc175b138654
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file standard_policies.hpp
+ * Contains standard policies for cc_ht_map types.
+ */
+
+#ifndef PB_DS_CC_HT_MAP_STANDARD_POLICIES_HPP
+#define PB_DS_CC_HT_MAP_STANDARD_POLICIES_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+
+#endif // #ifndef PB_DS_CC_HT_MAP_STANDARD_POLICIES_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..4c3e095ed266
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
@@ -0,0 +1,82 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s trace-mode functions.
+ */
+
+#ifdef PB_DS_HT_MAP_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  std::cerr << static_cast<unsigned long>(m_num_e_p) << " " <<
+    static_cast<unsigned long>(m_num_used_e) << std::endl;
+
+  for (size_type i = 0; i < m_num_e_p; ++i)
+    {
+      std::cerr << static_cast<unsigned long>(i) << " ";
+
+      trace_list(m_a_p_entries[i]);
+
+      std::cerr << std::endl;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace_list(const_entry_pointer p_l) const
+{
+  size_type iterated_num_used_e = 0;
+
+  while (p_l != NULL)
+    {
+      std::cerr << PB_DS_V2F(p_l->m_value) << " ";
+
+      p_l = p_l->m_p_next;
+    }
+}
+
+#endif // #ifdef PB_DS_HT_MAP_TRACE_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp b/libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
new file mode 100644
index 000000000000..3cf9ea91fa31
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/cond_dealtor.hpp
@@ -0,0 +1,131 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cond_dealtor.hpp
+ * Contains a conditional deallocator.
+ */
+
+#ifndef PB_DS_COND_DEALTOR_HPP
+#define PB_DS_COND_DEALTOR_HPP
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+#define PB_DS_COND_DEALTOR_CLASS_T_DEC		\
+    template<typename Entry, class Allocator>
+
+#define PB_DS_COND_DEALTOR_CLASS_C_DEC				\
+    cond_dealtor<						\
+						Entry,		\
+						Allocator>
+
+    template<typename Entry, class Allocator>
+    class cond_dealtor
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<Entry>::other
+      entry_allocator;
+
+      typedef typename entry_allocator::pointer entry_pointer;
+
+    public:
+      inline
+      cond_dealtor(entry_pointer p_e);
+
+      inline
+      ~cond_dealtor();
+
+      inline void
+      set_no_action();
+
+    private:
+      entry_pointer m_p_e;
+
+      bool m_no_action_destructor;
+
+      static entry_allocator s_alloc;
+    };
+
+    PB_DS_COND_DEALTOR_CLASS_T_DEC
+    typename PB_DS_COND_DEALTOR_CLASS_C_DEC::entry_allocator
+    PB_DS_COND_DEALTOR_CLASS_C_DEC::s_alloc;
+
+    PB_DS_COND_DEALTOR_CLASS_T_DEC
+    inline
+    PB_DS_COND_DEALTOR_CLASS_C_DEC::
+    cond_dealtor(entry_pointer p_e) :
+      m_p_e(p_e),
+      m_no_action_destructor(false)
+    { }
+
+    PB_DS_COND_DEALTOR_CLASS_T_DEC
+    inline void
+    PB_DS_COND_DEALTOR_CLASS_C_DEC::
+    set_no_action()
+    {
+      m_no_action_destructor = true;
+    }
+
+    PB_DS_COND_DEALTOR_CLASS_T_DEC
+    inline
+    PB_DS_COND_DEALTOR_CLASS_C_DEC::
+    ~cond_dealtor()
+    {
+      if (m_no_action_destructor)
+        return;
+
+      s_alloc.deallocate(m_p_e, 1);
+    }
+
+#undef PB_DS_COND_DEALTOR_CLASS_T_DEC
+#undef PB_DS_COND_DEALTOR_CLASS_C_DEC
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_COND_DEALTOR_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..8a673e7c08b3
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains constructors_destructor_fn_imps applicable to different containers.
+ */
+
+inline
+PB_DS_CLASS_NAME()
+{ }
+
+inline
+PB_DS_CLASS_NAME(const PB_DS_CLASS_NAME& other) : base_type((const base_type&)other)
+{ }
+
+template<typename T0>
+inline
+PB_DS_CLASS_NAME(T0 t0) : base_type(t0)
+{ }
+
+template<typename T0, typename T1>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1) : base_type(t0, t1)
+{ }
+
+template<typename T0, typename T1, typename T2>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1, T2 t2) : base_type(t0, t1, t2)
+{ }
+
+template<typename T0, typename T1, typename T2, typename T3>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3) : base_type(t0, t1, t2, t3)
+{ }
+
+template<typename T0,
+	 typename T1,
+	 typename T2,
+	 typename T3,
+	 typename T4>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) : base_type(t0, t1, t2, t3, t4)
+{ }
+
+template<typename T0,
+	 typename T1,
+	 typename T2,
+	 typename T3,
+	 typename T4,
+	 typename T5>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) : base_type(t0, t1, t2, t3, t4, t5)
+{ }
+
+template<typename T0,
+	 typename T1,
+	 typename T2,
+	 typename T3,
+	 typename T4,
+	 typename T5,
+	 typename T6>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6) : base_type(t0, t1, t2, t3, t4, t5, t6)
+{ }
+
+template<typename T0,
+	 typename T1,
+	 typename T2,
+	 typename T3,
+	 typename T4,
+	 typename T5,
+	 typename T6,
+	 typename T7>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7) : base_type(t0, t1, t2, t3, t4, t5, t6, t7)
+{ }
+
+template<typename T0,
+	 typename T1,
+	 typename T2,
+	 typename T3,
+	 typename T4,
+	 typename T5,
+	 typename T6,
+	 typename T7,
+	 typename T8>
+inline
+PB_DS_CLASS_NAME(T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8) : base_type(t0, t1, t2, t3, t4, t5, t6, t7, t8)
+{ }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp b/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
new file mode 100644
index 000000000000..6009a6863054
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/container_base_dispatch.hpp
@@ -0,0 +1,409 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file container_base_dispatch.hpp
+ * Contains an associative container dispatching base.
+ */
+
+#ifndef PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP
+#define PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP
+
+#include <ext/pb_ds/detail/typelist.hpp>
+
+#define PB_DS_DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/list_update_map_/lu_map_.hpp>
+#undef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/list_update_map_/lu_map_.hpp>
+#undef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp>
+#undef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp>
+#undef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/splay_tree_/splay_tree_.hpp>
+#undef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/splay_tree_/splay_tree_.hpp>
+#undef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp>
+#undef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp>
+#undef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp>
+#undef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp>
+#undef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp>
+#undef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp>
+#undef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/pat_trie_/pat_trie_.hpp>
+#undef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/pat_trie_/pat_trie_.hpp>
+#undef PB_DS_DATA_FALSE_INDICATOR
+
+namespace pb_ds
+{
+  namespace detail
+    {
+
+      template<typename Key,
+	       typename Mapped,
+	       class Data_Structure_Taq,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch;
+
+      template<typename Key,
+	       typename Mapped,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch<
+	Key,
+	Mapped,
+	list_update_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        lu_map_data_<
+	  Key,
+	  Mapped,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  Allocator,
+	  typename typelist_at_index<Policy_Tl, 1>::type>
+        type;
+      };
+
+      template<typename Key, class Policy_Tl, class Allocator>
+      struct container_base_dispatch<
+	Key,
+	null_mapped_type,
+	list_update_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        lu_map_no_data_<
+	  Key,
+	  null_mapped_type,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  Allocator,
+	  typename typelist_at_index<Policy_Tl, 1>::type>
+        type;
+      };
+
+      template<typename Key,
+	       typename Mapped,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch<
+	Key,
+	Mapped,
+	pat_trie_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        pat_trie_data_<
+	  Key,
+	  Mapped,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key, class Policy_Tl, class Allocator>
+      struct container_base_dispatch<
+	Key,
+	null_mapped_type,
+	pat_trie_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        pat_trie_no_data_<
+	  Key,
+	  null_mapped_type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key,
+	       typename Mapped,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch<
+	Key,
+	Mapped,
+	rb_tree_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        rb_tree_data_<
+	  Key,
+	  Mapped,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key, class Policy_Tl, class Allocator>
+      struct container_base_dispatch<
+	Key,
+	null_mapped_type,
+	rb_tree_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        rb_tree_no_data_<
+	  Key,
+	  null_mapped_type,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key,
+	       typename Mapped,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch<
+	Key,
+	Mapped,
+	splay_tree_tag,
+	Policy_Tl,
+	Allocator>
+
+      {
+	typedef
+        splay_tree_data_<
+	  Key,
+	  Mapped,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key, class Policy_Tl, class Allocator>
+      struct container_base_dispatch<
+	Key,
+	null_mapped_type,
+	splay_tree_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        splay_tree_no_data_<
+	  Key,
+	  null_mapped_type,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key,
+	       typename Mapped,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch<
+	Key,
+	Mapped,
+	ov_tree_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        ov_tree_data_<
+	  Key,
+	  Mapped,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key, class Policy_Tl, class Allocator>
+      struct container_base_dispatch<
+	Key,
+	null_mapped_type,
+	ov_tree_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        ov_tree_no_data_<
+	  Key,
+	  null_mapped_type,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator>
+        type;
+      };
+
+      template<typename Key,
+	       typename Mapped,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch<
+	Key,
+	Mapped,
+	cc_hash_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        cc_ht_map_data_<
+	  Key,
+	  Mapped,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator,
+	  typelist_at_index<Policy_Tl, 3>::type::value,
+	  typename typelist_at_index<Policy_Tl, 4>::type,
+	  typename typelist_at_index<Policy_Tl, 2>::type>
+        type;
+      };
+
+      template<typename Key, class Policy_Tl, class Allocator>
+      struct container_base_dispatch<
+	Key,
+	null_mapped_type,
+	cc_hash_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        cc_ht_map_no_data_<
+	  Key,
+	  null_mapped_type,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator,
+	  typelist_at_index<Policy_Tl, 3>::type::value,
+	  typename typelist_at_index<Policy_Tl, 4>::type,
+	  typename typelist_at_index<Policy_Tl, 2>::type>
+        type;
+      };
+
+      template<typename Key,
+	       typename Mapped,
+	       class Policy_Tl,
+	       class Allocator>
+      struct container_base_dispatch<
+	Key,
+	Mapped,
+	gp_hash_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        gp_ht_map_data_<
+	  Key,
+	  Mapped,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator,
+	  typelist_at_index<Policy_Tl, 3>::type::value,
+	  typename typelist_at_index<Policy_Tl, 4>::type,
+	  typename typelist_at_index<Policy_Tl, 5>::type,
+	  typename typelist_at_index<Policy_Tl, 2>::type>
+        type;
+      };
+
+      template<typename Key, class Policy_Tl, class Allocator>
+      struct container_base_dispatch<
+	Key,
+	null_mapped_type,
+	gp_hash_tag,
+	Policy_Tl,
+	Allocator>
+      {
+	typedef
+        gp_ht_map_no_data_<
+	  Key,
+	  null_mapped_type,
+	  typename typelist_at_index<Policy_Tl, 0>::type,
+	  typename typelist_at_index<Policy_Tl, 1>::type,
+	  Allocator,
+	  typelist_at_index<Policy_Tl, 3>::type::value,
+	  typename typelist_at_index<Policy_Tl, 4>::type,
+	  typename typelist_at_index<Policy_Tl, 5>::type,
+	  typename typelist_at_index<Policy_Tl, 2>::type>
+        type;
+      };
+
+    } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_ASSOC_CNTNR_BASE_DS_DISPATCHER_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp b/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
new file mode 100644
index 000000000000..6e37b544039a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
@@ -0,0 +1,74 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file eq_by_less.hpp
+ * Contains an equivalence function.
+ */
+
+#ifndef PB_DS_EQ_BY_LESS_HPP
+#define PB_DS_EQ_BY_LESS_HPP
+
+#include <utility>
+#include <functional>
+#include <vector>
+#include <assert.h>
+#include <ext/pb_ds/detail/types_traits.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+    template<typename Key, class Cmp_Fn>
+    struct eq_by_less : private Cmp_Fn
+    {
+      bool
+      operator()(const Key& r_lhs, const Key& r_rhs) const
+      {
+	const bool l = Cmp_Fn::operator()(r_lhs, r_rhs);
+	const bool g = Cmp_Fn::operator()(r_rhs, r_lhs);
+	return !(l || g);
+      }
+    };
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_EQ_BY_LESS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
new file mode 100644
index 000000000000..b143751b5635
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
@@ -0,0 +1,211 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_eq_fn.hpp
+ * Contains 2 eqivalence functions, one employing a hash value,
+ *    and one ignoring it.
+ */
+
+#ifndef PB_DS_HASH_EQ_FN_HPP
+#define PB_DS_HASH_EQ_FN_HPP
+
+#include <utility>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_HASH_EQ_FN_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_HASH_EQ_FN_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_HASH_EQ_FN_DEBUG
+
+    template<typename Key, class Eq_Fn, class Allocator, bool Store_Hash>
+    struct hash_eq_fn;
+
+#define PB_DS_CLASS_T_DEC					\
+    template<typename Key, class Eq_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC				\
+    hash_eq_fn<						\
+					Key,		\
+					Eq_Fn,		\
+					Allocator,	\
+					false>
+
+    /**
+     * Specialization 1- The client requests that hash values not be stored.
+     **/
+    template<typename Key, class Eq_Fn, class Allocator>
+    struct hash_eq_fn<Key, Eq_Fn, Allocator, false> : public Eq_Fn
+    {
+      typedef Eq_Fn eq_fn_base;
+
+      typedef typename Allocator::template rebind<Key>::other key_allocator;
+
+      typedef typename key_allocator::const_reference const_key_reference;
+
+      hash_eq_fn();
+
+      hash_eq_fn(const Eq_Fn& r_eq_fn);
+
+      inline bool
+      operator()(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const;
+
+      inline void
+      swap(const PB_DS_CLASS_C_DEC& other);
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    hash_eq_fn()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    swap(const PB_DS_CLASS_C_DEC& other)
+    {
+      std::swap((Eq_Fn& )(*this), (Eq_Fn& )other);
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    hash_eq_fn(const Eq_Fn& r_eq_fn) :
+      Eq_Fn(r_eq_fn)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    inline bool
+    PB_DS_CLASS_C_DEC::
+    operator()(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const
+    {
+      return (eq_fn_base::operator()(r_lhs_key, r_rhs_key));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC					\
+    template<typename Key, class Eq_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC				\
+    hash_eq_fn<						\
+					Key,		\
+					Eq_Fn,		\
+					Allocator,	\
+					true>
+
+    /**
+     * Specialization 2- The client requests that hash values be stored.
+     **/
+    template<typename Key, class Eq_Fn, class Allocator>
+    struct hash_eq_fn<Key, Eq_Fn, Allocator, true> :
+      public Eq_Fn
+    {
+      typedef typename Allocator::size_type size_type;
+
+      typedef Eq_Fn eq_fn_base;
+
+      typedef typename Allocator::template rebind<Key>::other key_allocator;
+
+      typedef typename key_allocator::const_reference const_key_reference;
+
+      hash_eq_fn();
+
+      hash_eq_fn(const Eq_Fn& r_eq_fn);
+
+      inline bool
+      operator()(const_key_reference r_lhs_key, size_type lhs_hash, const_key_reference r_rhs_key, size_type rhs_hash) const;
+
+      inline void
+      swap(const PB_DS_CLASS_C_DEC& other);
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    hash_eq_fn()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    hash_eq_fn(const Eq_Fn& r_eq_fn) :
+      Eq_Fn(r_eq_fn)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    inline bool
+    PB_DS_CLASS_C_DEC::
+    operator()(const_key_reference r_lhs_key, size_type lhs_hash, const_key_reference r_rhs_key, size_type rhs_hash) const
+    {
+      PB_DS_DBG_ASSERT(!eq_fn_base::operator()(r_lhs_key, r_rhs_key) ||
+		       lhs_hash == rhs_hash);
+
+      return (lhs_hash == rhs_hash&& 
+	      eq_fn_base::operator()(r_lhs_key, r_rhs_key));
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    swap(const PB_DS_CLASS_C_DEC& other)
+    {
+      std::swap((Eq_Fn& )(*this), (Eq_Fn& )(other));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_HASH_EQ_FN_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..6ab4b265dc6f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
@@ -0,0 +1,263 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s constructors, destructor,
+ *    and related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::entry_allocator
+PB_DS_CLASS_C_DEC::s_entry_allocator;
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    insert(*(first_it++));
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME() :
+  ranged_probe_fn_base(resize_base::get_nearest_larger_size(1)),
+  m_a_entries(s_entry_allocator.allocate(
+					 resize_base::get_nearest_larger_size(1))),
+  m_num_e(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn)    :
+  ranged_probe_fn_base(resize_base::get_nearest_larger_size(1), r_hash_fn),
+  m_a_entries(s_entry_allocator.allocate(
+					 resize_base::get_nearest_larger_size(1))),
+  m_num_e(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn) :
+  hash_eq_fn_base(r_eq_fn),
+  ranged_probe_fn_base(resize_base::get_nearest_larger_size(1), r_hash_fn),
+  m_a_entries(s_entry_allocator.allocate(
+					 resize_base::get_nearest_larger_size(1))),
+  m_num_e(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn) :
+  hash_eq_fn_base(r_eq_fn),
+  ranged_probe_fn_base(resize_base::get_nearest_larger_size(1),
+		       r_hash_fn, r_comb_hash_fn),
+  m_a_entries(s_entry_allocator.allocate(
+					 resize_base::get_nearest_larger_size(1))),
+  m_num_e(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn) :
+  hash_eq_fn_base(r_eq_fn),
+  ranged_probe_fn_base(resize_base::get_nearest_larger_size(1),
+		       r_hash_fn, r_comb_hash_fn, r_probe_fn),
+  m_a_entries(s_entry_allocator.allocate(
+					 resize_base::get_nearest_larger_size(1))),
+  m_num_e(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_hash_fn, const Probe_Fn& r_probe_fn, const Resize_Policy& r_resize_policy) :
+  hash_eq_fn_base(r_eq_fn),
+  resize_base(r_resize_policy),
+  ranged_probe_fn_base(resize_base::get_nearest_larger_size(1),
+		       r_hash_fn, r_comb_hash_fn, r_probe_fn),
+  m_a_entries(s_entry_allocator.allocate(
+					 resize_base::get_nearest_larger_size(1))),
+  m_num_e(resize_base::get_nearest_larger_size(1)),
+  m_num_used_e(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+  PB_DS_MAP_DEBUG_BASE_C_DEC(other),
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
+  hash_eq_fn_base(other),
+  resize_base(other),
+  ranged_probe_fn_base(other),
+  m_a_entries(s_entry_allocator.allocate(other.m_num_e)),
+  m_num_e(other.m_num_e),
+  m_num_used_e(other.m_num_used_e)
+{
+  for (size_type i = 0; i < m_num_e; ++i)
+    m_a_entries[i].m_stat = (entry_status)empty_entry_status;
+
+  try
+    {
+      for (size_type i = 0; i < m_num_e; ++i)
+        {
+	  m_a_entries[i].m_stat = other.m_a_entries[i].m_stat;
+
+	  if (m_a_entries[i].m_stat == valid_entry_status)
+	    new (m_a_entries + i) entry(other.m_a_entries[i]);
+        }
+    }
+  catch(...)
+    {
+      deallocate_all();
+
+      throw;
+    }
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~PB_DS_CLASS_NAME()
+{
+  deallocate_all();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+  PB_DS_DBG_ONLY(other.assert_valid());
+
+  std::swap(m_a_entries, other.m_a_entries);
+
+  std::swap(m_num_e, other.m_num_e);
+
+  std::swap(m_num_used_e, other.m_num_used_e);
+
+  ranged_probe_fn_base::swap(other);
+
+  hash_eq_fn_base::swap(other);
+
+  resize_base::swap(other);
+
+  PB_DS_DBG_ONLY(map_debug_base::swap(other));
+
+  PB_DS_DBG_ONLY(assert_valid());
+  PB_DS_DBG_ONLY(other.assert_valid());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+deallocate_all()
+{
+  clear();
+
+  erase_all_valid_entries(m_a_entries, m_num_e);
+
+  s_entry_allocator.deallocate(m_a_entries, m_num_e);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_all_valid_entries(entry_array a_entries_resized, size_type size)
+{
+  for (size_type pos = 0; pos < size; ++pos)
+    {
+      entry_pointer p_e =& a_entries_resized[pos];
+
+      if (p_e->m_stat == valid_entry_status)
+	p_e->m_value.~value_type();
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize()
+{
+  Resize_Policy::notify_resized(m_num_e);
+
+  Resize_Policy::notify_cleared();
+
+  ranged_probe_fn_base::notify_resized(m_num_e);
+
+  for (size_type i = 0; i < m_num_e; ++i)
+    m_a_entries[i].m_stat = (entry_status)empty_entry_status;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..960a79045a95
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_no_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s constructors, destructor,
+ *    and related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+constructor_insert_new_imp(const_mapped_reference r_val, size_type pos, integral_constant<int,false>)
+{
+  PB_DS_DBG_ASSERT(m_a_entries[pos].m_stat != valid_entry_status);
+
+  entry* const p_e = m_a_entries + pos;
+
+  new (&p_e->m_value) mapped_value_type(r_val);
+
+  p_e->m_stat = valid_entry_status;
+
+  PB_DS_DBG_ONLY(map_debug_base::
+		 insert_new(p_e->m_value.first);)
+    }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..95389795e776
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
@@ -0,0 +1,66 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s constructors, destructor,
+ *    and related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+constructor_insert_new_imp(const_mapped_reference r_val, size_type pos, true_type)
+{
+  PB_DS_DBG_ASSERT(m_a_entries[pos].m_stat != valid_entry_status);
+
+  entry* const p_e = m_a_entries + pos;
+
+  new (&p_e->m_value) mapped_value_type(r_val);
+
+  p_e->m_hash = ranged_probe_fn_base::operator()(
+						 PB_DS_V2F(r_val)).second;
+
+  p_e->m_stat = valid_entry_status;
+
+  PB_DS_DBG_ONLY(map_debug_base::
+		 insert_new(p_e->m_value.first);)
+    }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..aaac10f76b26
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
@@ -0,0 +1,62 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s debug-mode functions.
+ */
+
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  map_debug_base::check_size(m_num_used_e);
+
+  assert_entry_array_valid(m_a_entries, traits_base::m_store_extra_indicator);
+}
+
+#include <ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp>
+
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..c55069ed18f8
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
@@ -0,0 +1,84 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_no_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s debug-mode functions.
+ */
+
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_entry_array_valid(const entry_array a_entries, store_hash_false_type) const
+{
+  size_type iterated_num_used_e = 0;
+
+  for (size_type pos = 0; pos < m_num_e; ++pos)
+    {
+      const_entry_pointer p_e =& a_entries[pos];
+
+      switch(p_e->m_stat)
+        {
+        case empty_entry_status:
+        case erased_entry_status:
+	  break;
+        case valid_entry_status:
+	  {
+	    const_key_reference r_key =
+	      PB_DS_V2F(p_e->m_value);
+
+	    map_debug_base::check_key_exists(r_key);
+
+	    ++iterated_num_used_e;
+
+	    break;
+	  }
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+    }
+
+  PB_DS_DBG_ASSERT(iterated_num_used_e == m_num_used_e);
+}
+
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..dc92deff77e6
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s debug-mode functions.
+ */
+
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_entry_array_valid(const entry_array a_entries, store_hash_true_type) const
+{
+  size_type iterated_num_used_e = 0;
+
+  for (size_type pos = 0; pos < m_num_e; ++pos)
+    {
+      const_entry_pointer p_e =& a_entries[pos];
+
+      switch(p_e->m_stat)
+        {
+        case empty_entry_status:
+        case erased_entry_status:
+	  break;
+        case valid_entry_status:
+	  {
+	    const_key_reference r_key =
+	      PB_DS_V2F(p_e->m_value);
+
+	    map_debug_base::check_key_exists(r_key);
+
+	    const comp_hash pos_hash_pair =
+	      ranged_probe_fn_base::operator()(r_key);
+
+	    PB_DS_DBG_ASSERT(p_e->m_hash == pos_hash_pair.second);
+
+	    ++iterated_num_used_e;
+
+	    break;
+	  }
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+    }
+
+  PB_DS_DBG_ASSERT(iterated_num_used_e == m_num_used_e);
+}
+
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..92422873b40f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s erase related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+erase_entry(entry_pointer p_e)
+{
+  PB_DS_DBG_ASSERT(p_e->m_stat = valid_entry_status);
+
+  PB_DS_DBG_ONLY(map_debug_base::erase_existing(
+						PB_DS_V2F(p_e->m_value));)
+
+    typedef
+    typename PB_DS_TYPES_TRAITS_C_DEC::stored_value_type
+    stored_value_type;
+
+  p_e->m_value.~value_type();
+
+  p_e->m_stat = erased_entry_status;
+
+  PB_DS_DBG_ASSERT(m_num_used_e > 0);
+  resize_base::notify_erased(--m_num_used_e);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  for (size_type pos = 0; pos < m_num_e; ++pos)
+    {
+      entry_pointer p_e =& m_a_entries[pos];
+
+      if (p_e->m_stat == valid_entry_status)
+	erase_entry(p_e);
+    }
+
+  do_resize_if_needed_no_throw();
+
+  resize_base::notify_cleared();
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    size_type num_ersd = 0;
+
+  for (size_type pos = 0; pos < m_num_e; ++pos)
+    {
+      entry_pointer p_e =& m_a_entries[pos];
+
+      if (p_e->m_stat == valid_entry_status)
+	if (pred(p_e->m_value))
+	  {
+	    ++num_ersd;
+
+	    erase_entry(p_e);
+	  }
+    }
+
+  do_resize_if_needed_no_throw();
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    return (num_ersd);
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase(const_key_reference r_key)
+{
+  return (erase_imp(r_key, traits_base::m_store_extra_indicator));
+}
+
+#include <ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp>
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..eb2bf9899fdc
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
@@ -0,0 +1,107 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_no_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s erase related functions, when the hash
+ *    value is not stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase_imp(const_key_reference r_key,  false_type)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    size_type hash = ranged_probe_fn_base::operator()(r_key);
+
+  size_type i;
+
+  resize_base::notify_erase_search_start();
+
+  for (i = 0; i < m_num_e; ++i)
+    {
+      const size_type pos =
+	ranged_probe_fn_base::operator()(                r_key,  hash, i);
+
+      entry* const p_e = m_a_entries + pos;
+
+      switch(p_e->m_stat)
+        {
+        case empty_entry_status:
+	  {
+	    resize_base::notify_erase_search_end();
+
+	    PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+								    r_key));
+
+	    return (false);
+	  }
+	  break;
+        case valid_entry_status:
+	  if (hash_eq_fn_base::operator()(
+					  PB_DS_V2F(p_e->m_value),
+					  r_key))
+            {
+	      resize_base::notify_erase_search_end();
+
+	      erase_entry(p_e);
+
+	      do_resize_if_needed_no_throw();
+
+	      return (true);
+            }
+	  break;
+        case erased_entry_status:
+	  break;
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+
+      resize_base::notify_erase_search_collision();
+    }
+
+  resize_base::notify_erase_search_end();
+
+  return (false);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..a6f683160ce2
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
@@ -0,0 +1,107 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s erase related functions, when the hash
+ *    value is stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase_imp(const_key_reference r_key,  true_type)
+{
+  const comp_hash pos_hash_pair =
+    ranged_probe_fn_base::operator()(r_key);
+
+  size_type i;
+
+  resize_base::notify_erase_search_start();
+
+  for (i = 0; i < m_num_e; ++i)
+    {
+      const size_type pos = ranged_probe_fn_base::operator()(            r_key, pos_hash_pair.second, i);
+
+      entry* const p_e = m_a_entries + pos;
+
+      switch(p_e->m_stat)
+        {
+        case empty_entry_status:
+	  {
+	    resize_base::notify_erase_search_end();
+
+	    PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+								    r_key));
+
+	    return (false);
+	  }
+	  break;
+        case valid_entry_status:
+	  if (hash_eq_fn_base::operator()(
+					  PB_DS_V2F(p_e->m_value),
+					  p_e->m_hash,
+					  r_key,
+					  pos_hash_pair.second))
+            {
+	      resize_base::notify_erase_search_end();
+
+	      erase_entry(p_e);
+
+	      do_resize_if_needed_no_throw();
+
+	      return (true);
+            }
+	  break;
+        case erased_entry_status:
+	  break;
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+
+      resize_base::notify_erase_search_collision();
+    }
+
+  resize_base::notify_erase_search_end();
+
+  return (false);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
new file mode 100644
index 000000000000..eb231d8b0567
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s find related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return ((find_key_pointer(r_key, traits_base::m_store_extra_indicator)));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key) const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (const_cast<PB_DS_CLASS_C_DEC& >(*this).
+	    find_key_pointer(r_key, traits_base::m_store_extra_indicator));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+find_end()
+{
+  return (NULL);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+find_end() const
+{
+  return (NULL);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..f203850412af
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_no_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s find related functions, when the hash
+ *    value is not stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::pointer
+PB_DS_CLASS_C_DEC::
+find_key_pointer(const_key_reference r_key, store_hash_false_type)
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..89826079d0c4
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
@@ -0,0 +1,46 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s insert related functions, when the hash
+ *    value is stored.
+ */
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
new file mode 100644
index 000000000000..3f0c6c22d888
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
@@ -0,0 +1,891 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file gp_ht_map_.hpp
+ * Contains an implementation class for gp_ht_map_.
+ */
+
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp>
+#include <utility>
+#ifdef PB_DS_HT_MAP_TRACE_
+#include <iostream>
+#endif // PB_DS_HT_MAP_TRACE_
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#include <ext/pb_ds/detail/map_debug_base.hpp>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_GP_HT_MAP_DEBUG__
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Hash_Fn,		\
+						class Eq_Fn,		\
+						class Allocator,	\
+						bool Store_Hash,	\
+						class Comb_Probe_Fn,	\
+						class Probe_Fn,		\
+						class Resize_Policy>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    gp_ht_map_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    gp_ht_map_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC					\
+    PB_DS_CLASS_NAME<						\
+						Key,		\
+						Mapped,		\
+						Hash_Fn,	\
+						Eq_Fn,		\
+						Allocator,	\
+						Store_Hash,	\
+						Comb_Probe_Fn,	\
+						Probe_Fn,	\
+						Resize_Policy>
+
+#define PB_DS_HASH_EQ_FN_C_DEC					\
+    hash_eq_fn<					\
+						Key,		\
+						Eq_Fn,		\
+						Allocator,	\
+						Store_Hash>
+
+#define PB_DS_RANGED_PROBE_FN_C_DEC					\
+    ranged_probe_fn<					\
+							Key,		\
+							Hash_Fn,	\
+							Allocator,	\
+							Comb_Probe_Fn,	\
+							Probe_Fn,	\
+							Store_Hash>
+
+#define PB_DS_TYPES_TRAITS_C_DEC				\
+    types_traits<						\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						Store_Hash>
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#define PB_DS_MAP_DEBUG_BASE_C_DEC					\
+    map_debug_base<					\
+									Key, \
+									Eq_Fn, \
+									typename Allocator::template rebind< \
+													     Key>::other::const_reference>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped()
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+    typedef								\
+    static_assert_dumclass<				\
+									sizeof(static_assert<(bool)(E)>)> \
+    UNIQUE##static_assert_type
+
+    template<typename Key,
+	     typename Mapped,
+	     class Hash_Fn,
+	     class Eq_Fn,
+	     class Allocator,
+	     bool Store_Hash,
+	     class Comb_Probe_Fn,
+	     class Probe_Fn,
+	     class Resize_Policy>
+    class PB_DS_CLASS_NAME :
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+      protected PB_DS_MAP_DEBUG_BASE_C_DEC,
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
+      public PB_DS_HASH_EQ_FN_C_DEC,
+      public Resize_Policy,
+      public PB_DS_RANGED_PROBE_FN_C_DEC,
+      public PB_DS_TYPES_TRAITS_C_DEC
+    {
+
+    private:
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::store_extra_false_type
+      store_hash_false_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::store_extra_true_type
+      store_hash_true_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type_;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer_;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer
+      const_pointer_;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference_;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference_;
+
+#define PB_DS_GEN_POS				\
+      typename Allocator::size_type
+
+#include <ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/point_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/const_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/iterator.hpp>
+
+#undef PB_DS_GEN_POS
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Hash_Fn hash_fn;
+
+      typedef Eq_Fn eq_fn;
+
+      typedef Allocator allocator;
+
+      typedef Probe_Fn probe_fn;
+
+      typedef Comb_Probe_Fn comb_probe_fn;
+
+      typedef Resize_Policy resize_policy;
+
+      enum
+	{
+	  store_hash = Store_Hash
+	};
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_pointer key_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_pointer
+      const_key_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_reference
+      const_key_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::mapped_type mapped_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_pointer
+      mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_reference
+      mapped_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef point_iterator_ point_iterator;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+      typedef const_point_iterator_ point_iterator;
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+      typedef const_point_iterator_ const_point_iterator;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef iterator_ iterator;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+      typedef const_iterator_ iterator;
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+      typedef const_iterator_ const_iterator;
+
+    public:
+
+      PB_DS_CLASS_NAME();
+
+      PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn);
+
+      PB_DS_CLASS_NAME(const Hash_Fn& r_hash_fn, const Eq_Fn& r_eq_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn, const Resize_Policy& r_resize_policy);
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+      virtual
+      ~PB_DS_CLASS_NAME();
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      inline size_type
+      size() const;
+
+      inline size_type
+      max_size() const;
+
+      inline bool
+      empty() const;
+
+      Hash_Fn& 
+      get_hash_fn();
+
+      const Hash_Fn& 
+      get_hash_fn() const;
+
+      Eq_Fn& 
+      get_eq_fn();
+
+      const Eq_Fn& 
+      get_eq_fn() const;
+
+      Probe_Fn& 
+      get_probe_fn();
+
+      const Probe_Fn& 
+      get_probe_fn() const;
+
+      Comb_Probe_Fn& 
+      get_comb_probe_fn();
+
+      const Comb_Probe_Fn& 
+      get_comb_probe_fn() const;
+
+      Resize_Policy& 
+      get_resize_policy();
+
+      const Resize_Policy& 
+      get_resize_policy() const;
+
+      inline std::pair<point_iterator, bool>
+      insert(const_reference r_val)
+      {
+	PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+	  return (insert_imp(r_val, traits_base::m_store_extra_indicator));
+      }
+
+      inline mapped_reference
+      operator[](const_key_reference r_key)
+      {
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+	return (subscript_imp(r_key, traits_base::m_store_extra_indicator));
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+	insert(r_key);
+
+	return (traits_base::s_null_mapped);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+      }
+
+      inline point_iterator
+      find(const_key_reference r_key);
+
+      inline const_point_iterator
+      find(const_key_reference r_key) const;
+
+      inline point_iterator
+      find_end();
+
+      inline const_point_iterator
+      find_end() const;
+
+      inline bool
+      erase(const_key_reference r_key);
+
+      template<typename Pred>
+      inline size_type
+      erase_if(Pred prd);
+
+      void
+      clear();
+
+      inline iterator
+      begin();
+
+      inline const_iterator
+      begin() const;
+
+      inline iterator
+      end();
+
+      inline const_iterator
+      end() const;
+
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+      void
+      assert_valid() const;
+
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+#ifdef PB_DS_HT_MAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_HT_MAP_TRACE_
+
+    private:
+      typedef PB_DS_TYPES_TRAITS_C_DEC traits_base;
+
+      enum ENTRY_STATUS
+	{
+	  empty_entry_status,
+	  valid_entry_status,
+	  erased_entry_status
+	};
+
+      typedef char entry_status;
+
+      struct entry : public PB_DS_TYPES_TRAITS_C_DEC::stored_value_type
+      {
+	entry_status m_stat;
+      };
+
+      typedef
+      typename Allocator::template rebind<entry>::other
+      entry_allocator;
+
+      typedef typename entry_allocator::pointer entry_pointer;
+
+      typedef typename entry_allocator::const_pointer const_entry_pointer;
+
+      typedef typename entry_allocator::reference entry_reference;
+
+      typedef
+      typename entry_allocator::const_reference
+      const_entry_reference;
+
+      typedef typename entry_allocator::pointer entry_array;
+
+      typedef PB_DS_RANGED_PROBE_FN_C_DEC ranged_probe_fn_base;
+
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+      typedef PB_DS_MAP_DEBUG_BASE_C_DEC map_debug_base;
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+      typedef PB_DS_HASH_EQ_FN_C_DEC hash_eq_fn_base;
+
+      typedef Resize_Policy resize_base;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      friend class iterator_;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      friend class const_iterator_;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::comp_hash comp_hash;
+
+    private:
+
+      void
+      deallocate_all();
+
+      void
+      initialize();
+
+      void
+      erase_all_valid_entries(entry_array a_entries_resized, size_type size);
+
+      inline bool
+      do_resize_if_needed();
+
+      inline void
+      do_resize_if_needed_no_throw();
+
+      void
+      resize_imp(size_type new_size);
+
+      virtual void
+      do_resize(size_type new_size);
+
+      void
+      resize_imp(entry_array a_entries_resized, size_type old_size);
+
+      inline void
+      resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, store_hash_false_type);
+
+      inline void
+      resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, store_hash_true_type);
+
+      inline size_type
+      find_ins_pos(const_key_reference r_key, store_hash_false_type);
+
+      inline comp_hash
+      find_ins_pos(const_key_reference r_key, store_hash_true_type);
+
+      inline std::pair<point_iterator, bool>
+      insert_imp(const_reference r_val, store_hash_false_type);
+
+      inline std::pair<point_iterator, bool>
+      insert_imp(const_reference r_val, store_hash_true_type);
+
+      inline pointer
+      insert_new_imp(const_reference r_val, size_type pos)
+      {
+	PB_DS_DBG_ASSERT(m_a_entries[pos].m_stat != valid_entry_status);
+
+	if (do_resize_if_needed())
+	  pos = find_ins_pos(PB_DS_V2F(r_val),
+			     traits_base::m_store_extra_indicator);
+
+	PB_DS_DBG_ASSERT(m_a_entries[pos].m_stat != valid_entry_status);
+
+	entry* const p_e = m_a_entries + pos;
+
+	new (&p_e->m_value) value_type(r_val);
+
+	p_e->m_stat = valid_entry_status;
+
+	resize_base::notify_inserted(++m_num_used_e);
+
+	PB_DS_DBG_ONLY(map_debug_base::
+		       insert_new(PB_DS_V2F(p_e->m_value));)
+
+	  PB_DS_DBG_ONLY(assert_valid();)
+
+	  return (&p_e->m_value);
+      }
+
+      inline pointer
+      insert_new_imp(const_reference r_val, comp_hash& r_pos_hash_pair)
+      {
+	PB_DS_DBG_ASSERT(m_a_entries[r_pos_hash_pair.first].m_stat !=
+			 valid_entry_status);
+
+	if (do_resize_if_needed())
+	  r_pos_hash_pair = find_ins_pos(
+					 PB_DS_V2F(r_val),
+					 traits_base::m_store_extra_indicator);
+
+	PB_DS_DBG_ASSERT(m_a_entries[r_pos_hash_pair.first].m_stat !=
+			 valid_entry_status);
+
+	entry* const p_e = m_a_entries + r_pos_hash_pair.first;
+
+	new (&p_e->m_value) value_type(r_val);
+
+	p_e->m_hash = r_pos_hash_pair.second;
+
+	p_e->m_stat = valid_entry_status;
+
+	resize_base::notify_inserted(++m_num_used_e);
+
+	PB_DS_DBG_ONLY(map_debug_base::insert_new(
+						  PB_DS_V2F(p_e->m_value));)
+
+	  PB_DS_DBG_ONLY(assert_valid();)
+
+	  return (&p_e->m_value);
+      }
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      inline mapped_reference
+      subscript_imp(const_key_reference r_key, store_hash_false_type)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  const size_type pos =
+	  find_ins_pos(r_key, traits_base::m_store_extra_indicator);
+
+	entry_pointer p_e =& m_a_entries[pos];
+
+	if (p_e->m_stat != valid_entry_status)
+	  return (insert_new_imp(
+				 value_type(
+					    r_key,
+					    mapped_type()),
+				 pos)->second);
+
+	PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+	  return (p_e->m_value.second);
+      }
+
+      inline mapped_reference
+      subscript_imp(const_key_reference r_key, store_hash_true_type)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  comp_hash pos_hash_pair =
+	  find_ins_pos(r_key, traits_base::m_store_extra_indicator);
+
+	if (m_a_entries[pos_hash_pair.first].m_stat != valid_entry_status)
+	  return (insert_new_imp(
+				 value_type(
+					    r_key,
+					    mapped_type()),
+				 pos_hash_pair)->second);
+
+	PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+	return ((m_a_entries + pos_hash_pair.first)->m_value.second);
+      }
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      inline pointer
+      find_key_pointer(const_key_reference r_key, store_hash_false_type)
+      {
+	const size_type hash = ranged_probe_fn_base::operator()(r_key);
+
+	size_type i;
+
+	resize_base::notify_find_search_start();
+
+	// Loop until entry is found or until all possible entries accessed.
+
+	for (i = 0; i < m_num_e; ++i)
+	  {
+	    const size_type pos =
+	      ranged_probe_fn_base::operator()(                    r_key, hash, i);
+
+	    entry* const p_e = m_a_entries + pos;
+
+	    switch(p_e->m_stat)
+	      {
+	      case empty_entry_status:
+		{
+		  resize_base::notify_find_search_end();
+
+		  PB_DS_DBG_ONLY(map_debug_base::
+				 check_key_does_not_exist(r_key);)
+
+		    return (NULL);
+		}
+		break;
+	      case valid_entry_status:
+		if (hash_eq_fn_base::operator()(
+						PB_DS_V2F(p_e->m_value),
+						r_key))
+		  {
+		    resize_base::notify_find_search_end();
+
+		    PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+		      return ((pointer)&p_e->m_value);
+		  }
+		break;
+	      case erased_entry_status:
+		break;
+	      default:
+		PB_DS_DBG_ASSERT(0);
+	      };
+
+	    resize_base::notify_find_search_collision();
+	  }
+
+	PB_DS_DBG_ONLY(map_debug_base::
+		       check_key_does_not_exist(r_key);)
+
+	  resize_base::notify_find_search_end();
+
+	return (NULL);
+      }
+
+      inline pointer
+      find_key_pointer(const_key_reference r_key, store_hash_true_type)
+      {
+	comp_hash pos_hash_pair = ranged_probe_fn_base::operator()(r_key);
+
+	size_type i;
+
+	resize_base::notify_find_search_start();
+
+	// Loop until entry is found or until all possible entries accessed.
+
+	for (i = 0; i < m_num_e; ++i)
+	  {
+	    const size_type pos =
+	      ranged_probe_fn_base::operator()(                    r_key, pos_hash_pair.second, i);
+
+	    entry* const p_e = m_a_entries + pos;
+
+	    switch(p_e->m_stat)
+	      {
+	      case empty_entry_status:
+		{
+		  resize_base::notify_find_search_end();
+
+		  PB_DS_DBG_ONLY(map_debug_base::
+				 check_key_does_not_exist(r_key);)
+
+		    return (NULL);
+		}
+		break;
+	      case valid_entry_status:
+		if (hash_eq_fn_base::operator()(
+						PB_DS_V2F(p_e->m_value),
+						p_e->m_hash,
+						r_key, pos_hash_pair.second))
+		  {
+		    resize_base::notify_find_search_end();
+
+		    PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+		      return ((pointer)&p_e->m_value);
+		  }
+		break;
+	      case erased_entry_status:
+		break;
+	      default:
+		PB_DS_DBG_ASSERT(0);
+	      };
+
+	    resize_base::notify_find_search_collision();
+	  }
+
+	PB_DS_DBG_ONLY(map_debug_base::
+		       check_key_does_not_exist(r_key);)
+
+	  resize_base::notify_find_search_end();
+
+	return (NULL);
+      }
+
+      inline bool
+      erase_imp(const_key_reference r_key,  true_type);
+
+      inline bool
+      erase_imp(const_key_reference r_key,  false_type);
+
+      inline void
+      erase_entry(entry_pointer p_e);
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      void
+      inc_it_state(pointer& r_p_value, size_type& r_pos) const
+      {
+	inc_it_state((const_mapped_pointer& )r_p_value, r_pos);
+      }
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      void
+      inc_it_state(const_pointer& r_p_value, size_type& r_pos) const
+      {
+	PB_DS_DBG_ASSERT(r_p_value != NULL);
+
+	for (++r_pos; r_pos < m_num_e; ++r_pos)
+	  {
+	    const_entry_pointer p_e =& m_a_entries[r_pos];
+
+	    if (p_e->m_stat == valid_entry_status)
+	      {
+		r_p_value =& p_e->m_value;
+
+		return;
+	      }
+	  }
+
+	r_p_value = NULL;
+      }
+
+      void
+      get_start_it_state(const_pointer& r_p_value, size_type& r_pos) const
+      {
+	for (r_pos = 0; r_pos < m_num_e; ++r_pos)
+	  {
+	    const_entry_pointer p_e =& m_a_entries[r_pos];
+
+	    if (p_e->m_stat == valid_entry_status)
+	      {
+		r_p_value =& p_e->m_value;
+
+		return;
+	      }
+	  }
+
+	r_p_value = NULL;
+      }
+
+      void
+      get_start_it_state(pointer& r_p_value, size_type& r_pos)
+      {
+	for (r_pos = 0; r_pos < m_num_e; ++r_pos)
+	  {
+	    entry_pointer p_e =& m_a_entries[r_pos];
+
+	    if (p_e->m_stat == valid_entry_status)
+	      {
+		r_p_value =& p_e->m_value;
+
+		return;
+	      }
+	  }
+
+	r_p_value = NULL;
+      }
+
+#ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+      void
+      assert_entry_array_valid(const entry_array a_entries, store_hash_false_type) const;
+
+      void
+      assert_entry_array_valid(const entry_array a_entries, store_hash_true_type) const;
+
+#endif // #ifdef PB_DS_GP_HT_MAP_DEBUG__
+
+    private:
+      static entry_allocator s_entry_allocator;
+
+      entry_pointer m_a_entries;
+
+      size_type m_num_e;
+
+      size_type m_num_used_e;
+
+      static iterator s_end_it;
+
+      static const_iterator s_const_end_it;
+
+      enum
+	{
+	  store_hash_ok =
+	  !Store_Hash ||
+	  !is_same<
+	  Hash_Fn,
+	  pb_ds::null_hash_fn>::value
+	};
+
+      PB_DS_STATIC_ASSERT(sth, store_hash_ok);
+    };
+
+#include <ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_HASH_EQ_FN_C_DEC
+
+#undef PB_DS_RANGED_PROBE_FN_C_DEC
+
+#undef PB_DS_TYPES_TRAITS_C_DEC
+
+#undef PB_DS_MAP_DEBUG_BASE_C_DEC
+
+#undef PB_DS_CLASS_NAME
+
+#undef PB_DS_V2F
+#undef PB_DS_V2S
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+#undef PB_DS_STATIC_ASSERT
+
+  } // namespace detail
+} // namespace pb_ds
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
new file mode 100644
index 000000000000..071399d553a2
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s entire container info related
+ *    functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (m_num_used_e);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_entry_allocator.max_size());
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (size() == 0);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..de6e3c21f729
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
@@ -0,0 +1,49 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s insert related functions.
+ */
+
+#include <ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp>
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..0d627df18558
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
@@ -0,0 +1,140 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_no_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s insert related functions, when the hash
+ *    value is not stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+find_ins_pos(const_key_reference r_key, store_hash_false_type)
+{
+  size_type hash = ranged_probe_fn_base::operator()(r_key);
+
+  size_type i;
+
+  /* The insertion position is initted to a non-legal value to indicate
+   *     that it has not been initted yet.
+   */
+  size_type ins_pos = m_num_e;
+
+  resize_base::notify_insert_search_start();
+
+  for (i = 0; i < m_num_e; ++i)
+    {
+      const size_type pos =
+	ranged_probe_fn_base::operator()(r_key, hash, i);
+
+      PB_DS_DBG_ASSERT(pos < m_num_e);
+
+      entry* const p_e = m_a_entries + pos;
+
+      switch(p_e->m_stat)
+        {
+        case empty_entry_status:
+	  {
+            resize_base::notify_insert_search_end();
+
+            PB_DS_DBG_ONLY(
+			   map_debug_base::check_key_does_not_exist(r_key);)
+
+	      return ((ins_pos == m_num_e)? pos : ins_pos);
+	  }
+	  break;
+        case erased_entry_status:
+	  if (ins_pos == m_num_e)
+	    ins_pos = pos;
+	  break;
+        case valid_entry_status:
+	  if (hash_eq_fn_base::operator()(
+					  PB_DS_V2F(p_e->m_value), r_key))
+            {
+	      resize_base::notify_insert_search_end();
+
+	      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+                return (pos);
+            }
+	  break;
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+
+      resize_base::notify_insert_search_collision();
+    }
+
+  resize_base::notify_insert_search_end();
+
+  if (ins_pos == m_num_e)
+    throw insert_error();
+
+  return (ins_pos);
+}
+
+PB_DS_CLASS_T_DEC
+inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool>
+PB_DS_CLASS_C_DEC::
+insert_imp(const_reference r_val, store_hash_false_type)
+{
+  const_key_reference r_key = PB_DS_V2F(r_val);
+
+  const size_type pos =
+    find_ins_pos(r_key, traits_base::m_store_extra_indicator);
+
+  if (m_a_entries[pos].m_stat == valid_entry_status)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+        return (std::make_pair(
+			       & (m_a_entries + pos)->m_value,
+			       false));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key));
+
+  return (std::make_pair(
+			 insert_new_imp(r_val, pos),
+			 true));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..ff11ce3db9c0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
@@ -0,0 +1,147 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s find related functions, when the hash
+ *    value is stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::comp_hash
+PB_DS_CLASS_C_DEC::
+find_ins_pos(const_key_reference r_key, store_hash_true_type)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    comp_hash pos_hash_pair = ranged_probe_fn_base::operator()(r_key);
+
+  size_type i;
+
+  /* The insertion position is initted to a non-legal value to indicate
+   *     that it has not been initted yet.
+   */
+  size_type ins_pos = m_num_e;
+
+  resize_base::notify_insert_search_start();
+
+  for (i = 0; i < m_num_e; ++i)
+    {
+      const size_type pos =
+	ranged_probe_fn_base::operator()(r_key, pos_hash_pair.second, i);
+
+      entry* const p_e = m_a_entries + pos;
+
+      switch(p_e->m_stat)
+        {
+        case empty_entry_status:
+	  {
+            resize_base::notify_insert_search_end();
+
+            PB_DS_DBG_ONLY(
+			   map_debug_base::check_key_does_not_exist(r_key);)
+
+	      return ((ins_pos == m_num_e)?
+		      std::make_pair(pos, pos_hash_pair.second) :
+		      std::make_pair(ins_pos, pos_hash_pair.second));
+	  }
+	  break;
+        case erased_entry_status:
+	  if (ins_pos == m_num_e)
+	    ins_pos = pos;
+	  break;
+        case valid_entry_status:
+	  if (hash_eq_fn_base::operator()(
+					  PB_DS_V2F(p_e->m_value),
+					  p_e->m_hash,
+					  r_key,
+					  pos_hash_pair.second))
+            {
+	      resize_base::notify_insert_search_end();
+
+	      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+                return (std::make_pair(pos, pos_hash_pair.second));
+            }
+	  break;
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+
+      resize_base::notify_insert_search_collision();
+    }
+
+  resize_base::notify_insert_search_end();
+
+  if (ins_pos == m_num_e)
+    throw insert_error();
+
+  return (std::make_pair(ins_pos, pos_hash_pair.second));
+}
+
+PB_DS_CLASS_T_DEC
+inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool>
+PB_DS_CLASS_C_DEC::
+insert_imp(const_reference r_val, store_hash_true_type)
+{
+  const_key_reference r_key = PB_DS_V2F(r_val);
+
+  comp_hash pos_hash_pair =
+    find_ins_pos(r_key, traits_base::m_store_extra_indicator);
+
+  PB_DS_DBG_ASSERT(pos_hash_pair.first < m_num_e);
+
+  entry_pointer p_e =& m_a_entries[pos_hash_pair.first];
+
+  if (p_e->m_stat == valid_entry_status)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+      return (std::make_pair(&p_e->m_value, false));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key));
+
+  return (std::make_pair(
+			 insert_new_imp(r_val, pos_hash_pair),
+			 true));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
new file mode 100644
index 000000000000..a73109cc6e1a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
@@ -0,0 +1,97 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterator_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s iterators related functions, e.g.,
+ *    begin().
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::s_end_it;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::s_const_end_it;
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+begin()
+{
+  pointer_ p_value;
+  size_type pos;
+
+  get_start_it_state(p_value, pos);
+
+  return (iterator(p_value, pos, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+end()
+{
+  return (s_end_it);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin() const
+{
+  const_pointer_ p_value;
+  size_type pos;
+
+  get_start_it_state(p_value, pos);
+
+  return (const_iterator(        p_value, pos, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end() const
+{
+  return (s_const_end_it);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..593c8fd233be
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s policy agpess
+ *    functions.
+ */
+
+PB_DS_CLASS_T_DEC
+Hash_Fn& 
+PB_DS_CLASS_C_DEC::
+get_hash_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Hash_Fn& 
+PB_DS_CLASS_C_DEC::
+get_hash_fn() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Eq_Fn& 
+PB_DS_CLASS_C_DEC::
+get_eq_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Eq_Fn& 
+PB_DS_CLASS_C_DEC::
+get_eq_fn() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Probe_Fn& 
+PB_DS_CLASS_C_DEC::
+get_probe_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Probe_Fn& 
+PB_DS_CLASS_C_DEC::
+get_probe_fn() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Comb_Probe_Fn& 
+PB_DS_CLASS_C_DEC::
+get_comb_probe_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Comb_Probe_Fn& 
+PB_DS_CLASS_C_DEC::
+get_comb_probe_fn() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Resize_Policy& 
+PB_DS_CLASS_C_DEC::
+get_resize_policy()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Resize_Policy& 
+PB_DS_CLASS_C_DEC::
+get_resize_policy() const
+{
+  return (*this);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
new file mode 100644
index 000000000000..842169c08d3d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
@@ -0,0 +1,160 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s resize related functions.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+do_resize_if_needed()
+{
+  if (!resize_base::is_resize_needed())
+    return (false);
+
+  resize_imp(resize_base::get_new_size(        m_num_e, m_num_used_e));
+
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+do_resize(size_type size)
+{
+  resize_imp(resize_base::get_nearest_larger_size(
+						  size));
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+do_resize_if_needed_no_throw()
+{
+  if (!resize_base::is_resize_needed())
+    return;
+
+  try
+    {
+      resize_imp(resize_base::get_new_size(            m_num_e, m_num_used_e));
+    }
+  catch(...)
+    { }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+resize_imp(size_type new_size)
+{
+#ifdef PB_DS_REGRESSION
+  typename Allocator::group_throw_prob_adjustor adjust(m_num_e);
+#endif // #ifdef PB_DS_REGRESSION
+
+  if (new_size == m_num_e)
+    return;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    const size_type old_size = m_num_e;
+
+  entry_array a_entries_resized = NULL;
+
+  // Following line might throw an exception.
+
+  a_entries_resized = s_entry_allocator.allocate(new_size);
+
+  ranged_probe_fn_base::notify_resized(new_size);
+
+  m_num_e = new_size;
+
+  for (size_type i = 0; i < m_num_e; ++i)
+    a_entries_resized[i].m_stat = empty_entry_status;
+
+  try
+    {
+      resize_imp(a_entries_resized, old_size);
+    }
+  catch(...)
+    {
+      erase_all_valid_entries(a_entries_resized, new_size);
+
+      m_num_e = old_size;
+
+      s_entry_allocator.deallocate(a_entries_resized, new_size);
+
+      ranged_probe_fn_base::notify_resized(old_size);
+
+      throw;
+    }
+
+  // At this point no exceptions can be thrown.
+
+  PB_DS_DBG_ONLY(assert_entry_array_valid(a_entries_resized, traits_base::m_store_extra_indicator);)
+
+    Resize_Policy::notify_resized(new_size);
+
+  erase_all_valid_entries(m_a_entries, old_size);
+
+  s_entry_allocator.deallocate(m_a_entries, old_size);
+
+  m_a_entries = a_entries_resized;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+resize_imp(entry_array a_entries_resized, size_type old_size)
+{
+  for (size_type pos = 0; pos < old_size; ++pos)
+    if (m_a_entries[pos].m_stat == valid_entry_status)
+      resize_imp_reassign(m_a_entries + pos,  a_entries_resized,  traits_base::m_store_extra_indicator);
+}
+
+#include <ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp>
+#include <ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp>
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..1430d7171b1f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_no_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s resize related functions, when the
+ *    hash value is not stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, store_hash_false_type)
+{
+  const_key_reference r_key = PB_DS_V2F(p_e->m_value);
+
+  size_type hash = ranged_probe_fn_base::operator()(r_key);
+
+  size_type i;
+
+  for (i = 0; i < m_num_e; ++i)
+    {
+      const size_type pos =
+	ranged_probe_fn_base::operator()(r_key, hash, i);
+
+      entry_pointer p_new_e = a_entries_resized + pos;
+
+      switch(p_new_e->m_stat)
+        {
+        case empty_entry_status:
+
+	  new (&p_new_e->m_value) value_type(p_e->m_value);
+
+	  p_new_e->m_stat = valid_entry_status;
+
+	  return;
+        case erased_entry_status:
+	  PB_DS_DBG_ASSERT(0);
+	  break;
+        case valid_entry_status:
+	  break;
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+    }
+
+  throw insert_error();
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
new file mode 100644
index 000000000000..4ab893023d9d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
@@ -0,0 +1,90 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_store_hash_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s resize related functions, when the
+ *    hash value is stored.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+resize_imp_reassign(entry_pointer p_e, entry_array a_entries_resized, store_hash_true_type)
+{
+  const_key_reference r_key = PB_DS_V2F(p_e->m_value);
+
+  size_type hash =
+    ranged_probe_fn_base::operator()(r_key, p_e->m_hash);
+
+  size_type i;
+
+  for (i = 0; i < m_num_e; ++i)
+    {
+      const size_type pos =
+	ranged_probe_fn_base::operator()(r_key, hash, i);
+
+      entry_pointer p_new_e = a_entries_resized + pos;
+
+      switch(p_new_e->m_stat)
+        {
+        case empty_entry_status:
+
+	  new (&p_new_e->m_value) value_type(p_e->m_value);
+
+	  p_new_e->m_hash = hash;
+
+	  p_new_e->m_stat = valid_entry_status;
+
+	  return;
+        case erased_entry_status:
+	  PB_DS_DBG_ASSERT(0);
+	  break;
+        case valid_entry_status:
+	  break;
+        default:
+	  PB_DS_DBG_ASSERT(0);
+        };
+    }
+
+  throw insert_error();
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp
new file mode 100644
index 000000000000..82c5ca0c78c8
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp
@@ -0,0 +1,85 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file standard_policies.hpp
+ * Contains standard policies for gp_ht_map types.
+ */
+
+#ifndef PB_DS_GP_HT_MAP_STANDARD_POLICIES_HPP
+#define PB_DS_GP_HT_MAP_STANDARD_POLICIES_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <ext/pb_ds/ht_load_check_resize_trigger.hpp>
+#include <ext/pb_ds/linear_probe_fn.hpp>
+#include <ext/pb_ds/quadratic_probe_fn.hpp>
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+    template<typename Comb_Probe_Fn>
+    struct default_probe_fn
+    {
+    private:
+      typedef typename Comb_Probe_Fn::size_type size_type;
+
+    public:
+      typedef
+      typename conditional_type<
+      is_same<
+      pb_ds::direct_mask_range_hashing<size_t>,
+      Comb_Probe_Fn>::value,
+      pb_ds::linear_probe_fn<
+      size_type>,
+      pb_ds::quadratic_probe_fn<
+      size_type> >::type
+      type;
+    };
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_GP_HT_MAP_STANDARD_POLICIES_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..4973c5bd31e0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
@@ -0,0 +1,80 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains implementations of gp_ht_map_'s trace-mode functions.
+ */
+
+#ifdef PB_DS_HT_MAP_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  std::cerr << static_cast<unsigned long>(m_num_e) << " " <<
+    static_cast<unsigned long>(m_num_used_e) << std::endl;
+
+  for (size_type i = 0; i < m_num_e; ++i)
+    {
+      std::cerr << static_cast<unsigned long>(i) << " ";
+
+      switch(m_a_entries[i].m_stat)
+        {
+	case empty_entry_status:
+	  std::cerr << "<empty>";
+	  break;
+	case erased_entry_status:
+	  std::cerr << "<erased>";
+	  break;
+	case valid_entry_status:
+	  std::cerr << PB_DS_V2F(m_a_entries[i].m_value);
+	  break;
+	default:
+	  PB_DS_DBG_ASSERT(0);
+	};
+
+      std::cerr << std::endl;
+    }
+}
+
+#endif // #ifdef PB_DS_HT_MAP_TRACE_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
new file mode 100644
index 000000000000..c12901c8641b
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file direct_mask_range_hashing_imp.hpp
+ * Contains a range-hashing policy implementation
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  mask_based_base::swap(other);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_resized(size_type size)
+{
+  mask_based_base::notify_resized(size);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+operator()(size_type hash) const
+{
+  return (mask_based_base::range_hash(hash));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
new file mode 100644
index 000000000000..e6f2fe9bec15
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file direct_mod_range_hashing_imp.hpp
+ * Contains a range-hashing policy implementation
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  mod_based_base::swap(other);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_resized(size_type size)
+{
+  mod_based_base::notify_resized(size);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+operator()(size_type hash) const
+{
+  return (mod_based_base::range_hash(hash));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
new file mode 100644
index 000000000000..c1e196c71c91
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
@@ -0,0 +1,59 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file linear_probe_fn_imp.hpp
+ * Contains a probe policy implementation
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{ }
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+operator()(size_type i) const
+{
+  return (i);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
new file mode 100644
index 000000000000..68d0c2b973b1
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
@@ -0,0 +1,141 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file mask_based_range_hashing.hpp
+ * Contains a range hashing policy base.
+ */
+
+#ifndef PB_DS_MASK_BASED_RANGE_HASHING_HPP
+#define PB_DS_MASK_BASED_RANGE_HASHING_HPP
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Size_Type>
+
+#define PB_DS_CLASS_C_DEC					\
+    mask_based_range_hashing<					\
+						Size_Type>
+
+    template<typename Size_Type>
+    class mask_based_range_hashing
+    {
+    protected:
+      typedef Size_Type size_type;
+
+    protected:
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      void
+      notify_resized(size_type size);
+
+      inline size_type
+      range_hash(size_type hash) const;
+
+    private:
+      size_type m_mask;
+
+      const static size_type s_num_bits_in_size_type;
+
+      const static size_type s_highest_bit_1;
+    };
+
+    PB_DS_CLASS_T_DEC
+    const typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::s_num_bits_in_size_type =
+      sizeof(typename PB_DS_CLASS_C_DEC::size_type) << 3;
+
+    PB_DS_CLASS_T_DEC
+    const typename PB_DS_CLASS_C_DEC::size_type PB_DS_CLASS_C_DEC::s_highest_bit_1 =
+						       static_cast<typename PB_DS_CLASS_C_DEC::size_type>(1) << (s_num_bits_in_size_type - 1);
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      std::swap(m_mask, other.m_mask);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    notify_resized(size_type size)
+    {
+      size_type i = 0;
+
+      while (size ^ s_highest_bit_1)
+	{
+	  size <<= 1;
+
+	  ++i;
+	}
+
+      m_mask = 1;
+
+      i += 2;
+
+      while (i++ < s_num_bits_in_size_type)
+        m_mask = (m_mask << 1) ^ 1;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    range_hash(size_type hash) const
+    {
+      return (hash&  m_mask);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MASK_BASED_RANGE_HASHING_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
new file mode 100644
index 000000000000..2d5e8d6ef55d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
@@ -0,0 +1,114 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file mod_based_range_hashing.hpp
+ * Contains a range hashing policy base.
+ */
+
+#ifndef PB_DS_MOD_BASED_RANGE_HASHING_HPP
+#define PB_DS_MOD_BASED_RANGE_HASHING_HPP
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Size_Type>
+
+#define PB_DS_CLASS_C_DEC					\
+    mod_based_range_hashing<					\
+						Size_Type>
+
+    template<typename Size_Type>
+    class mod_based_range_hashing
+    {
+    protected:
+      typedef Size_Type size_type;
+
+    protected:
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      void
+      notify_resized(size_type size);
+
+      inline size_type
+      range_hash(size_type hash) const;
+
+    private:
+      size_type m_size;
+    };
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      std::swap(m_size, other.m_size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    notify_resized(size_type size)
+    {
+      m_size = size;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    range_hash(size_type hash) const
+    {
+      return (hash % m_size);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MOD_BASED_RANGE_HASHING_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
new file mode 100644
index 000000000000..bd07117b11c5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
@@ -0,0 +1,98 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file probe_fn_base.hpp
+ * Contains a probe policy base.
+ */
+
+#ifndef PB_DS_PROBE_FN_BASE_HPP
+#define PB_DS_PROBE_FN_BASE_HPP
+
+#include <functional>
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+#ifdef PROBE_FN_BASE_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PROBE_FN_BASE_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PROBE_FN_BASE_DEBUG
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    probe_fn_base<						\
+						Allocator>
+
+    template<typename Allocator>
+    class probe_fn_base
+    {
+    protected:
+      ~probe_fn_base();
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ~probe_fn_base()
+    { }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PROBE_FN_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
new file mode 100644
index 000000000000..044b18ba61d8
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
@@ -0,0 +1,59 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file quadratic_probe_fn_imp.hpp
+ * Contains a probe policy implementation
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{ }
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+operator()(size_type i) const
+{
+  return (i*  i);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
new file mode 100644
index 000000000000..f31d3c8303a3
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
@@ -0,0 +1,478 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file ranged_hash_fn.hpp
+ * Contains a unified ranged hash functor, allowing the hash tables to deal with
+ *    a single class for ranged hashing.
+ */
+
+#ifndef PB_DS_RANGED_HASH_FN_HPP
+#define PB_DS_RANGED_HASH_FN_HPP
+
+#include <ext/pb_ds/detail/basic_types.hpp>
+#include <utility>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_RANGED_HASH_FN_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_RANGED_HASH_FN_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_RANGED_HASH_FN_DEBUG
+
+    template<typename Key,
+	     class Hash_Fn,
+	     class Allocator,
+	     class Comb_Hash_Fn,
+	     bool Store_Hash>
+    class ranged_hash_fn;
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						class Hash_Fn,		\
+						class Allocator,	\
+						class Comb_Hash_Fn>
+
+#define PB_DS_CLASS_C_DEC					\
+    ranged_hash_fn<						\
+						Key,		\
+						Hash_Fn,	\
+						Allocator,	\
+						Comb_Hash_Fn,	\
+						false>
+
+    /**
+     * Specialization 1- The client supplies a hash function and a ranged
+     *    hash function, and requests that hash values not be stored.
+     **/
+    template<typename Key,
+	     class Hash_Fn,
+	     class Allocator,
+	     class Comb_Hash_Fn>
+    class ranged_hash_fn<
+      Key,
+      Hash_Fn,
+      Allocator,
+      Comb_Hash_Fn,
+      false> : public Hash_Fn,
+	       public Comb_Hash_Fn
+    {
+    protected:
+      typedef typename Allocator::size_type size_type;
+
+      typedef Hash_Fn hash_fn_base;
+
+      typedef Comb_Hash_Fn comb_hash_fn_base;
+
+      typedef typename Allocator::template rebind< Key>::other key_allocator;
+
+      typedef typename key_allocator::const_reference const_key_reference;
+
+    protected:
+      ranged_hash_fn(size_type size);
+
+      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn);
+
+      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      void
+      notify_resized(size_type size);
+
+      inline size_type
+      operator()(const_key_reference r_key) const;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size)
+    {
+      Comb_Hash_Fn::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn) :
+      Hash_Fn(r_hash_fn)
+    {
+      Comb_Hash_Fn::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
+      Hash_Fn(r_hash_fn),
+      Comb_Hash_Fn(r_comb_hash_fn)
+    {
+      comb_hash_fn_base::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      comb_hash_fn_base::swap(other);
+
+      std::swap((Hash_Fn& )(*this), (Hash_Fn& )other);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    notify_resized(size_type size)
+    {
+      comb_hash_fn_base::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    operator()(const_key_reference r_key) const
+    {
+      return (comb_hash_fn_base::operator()(
+					    hash_fn_base::operator()(r_key)));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						class Hash_Fn,		\
+						class Allocator,	\
+						class Comb_Hash_Fn>
+
+#define PB_DS_CLASS_C_DEC					\
+    ranged_hash_fn<						\
+						Key,		\
+						Hash_Fn,	\
+						Allocator,	\
+						Comb_Hash_Fn,	\
+						true>
+
+    /**
+     * Specialization 2- The client supplies a hash function and a ranged
+     *    hash function, and requests that hash values be stored.
+     **/
+    template<typename Key,
+	     class Hash_Fn,
+	     class Allocator,
+	     class Comb_Hash_Fn>
+    class ranged_hash_fn<
+      Key,
+      Hash_Fn,
+      Allocator,
+      Comb_Hash_Fn,
+      true> :
+      public Hash_Fn,
+      public Comb_Hash_Fn
+    {
+    protected:
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename comp_hash_< size_type>::comp_hash comp_hash;
+
+      typedef Hash_Fn hash_fn_base;
+
+      typedef Comb_Hash_Fn comb_hash_fn_base;
+
+      typedef typename Allocator::template rebind< Key>::other key_allocator;
+
+      typedef typename key_allocator::const_reference const_key_reference;
+
+    protected:
+      ranged_hash_fn(size_type size);
+
+      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn);
+
+      ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      void
+      notify_resized(size_type size);
+
+      inline comp_hash
+      operator()(const_key_reference r_key) const;
+
+      inline comp_hash
+      operator()(const_key_reference r_key, size_type hash) const;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size)
+    {
+      Comb_Hash_Fn::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn) :
+      Hash_Fn(r_hash_fn)
+    {
+      Comb_Hash_Fn::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
+      Hash_Fn(r_hash_fn),
+      Comb_Hash_Fn(r_comb_hash_fn)
+    {
+      comb_hash_fn_base::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      comb_hash_fn_base::swap(other);
+
+      std::swap((Hash_Fn& )(*this), (Hash_Fn& )other);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    notify_resized(size_type size)
+    {
+      comb_hash_fn_base::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::comp_hash
+    PB_DS_CLASS_C_DEC::
+    operator()(const_key_reference r_key) const
+    {
+      const size_type hash = hash_fn_base::operator()(r_key);
+
+      return (std::make_pair(comb_hash_fn_base::operator()(hash), hash));
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::comp_hash
+    PB_DS_CLASS_C_DEC::
+    operator()
+#ifdef PB_DS_RANGED_HASH_FN_DEBUG
+      (const_key_reference r_key, size_type hash) const
+#else // #ifdef PB_DS_RANGED_HASH_FN_DEBUG
+      (const_key_reference /*r_key*/, size_type hash) const
+#endif // #ifdef PB_DS_RANGED_HASH_FN_DEBUG
+    {
+      PB_DS_DBG_ASSERT(hash == hash_fn_base::operator()(r_key));
+
+      return (std::make_pair(comb_hash_fn_base::operator()(hash), hash));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC					\
+    template<typename Key, class Allocator, class Comb_Hash_Fn>
+
+#define PB_DS_CLASS_C_DEC					\
+    ranged_hash_fn<						\
+						Key,		\
+						null_hash_fn,	\
+						Allocator,	\
+						Comb_Hash_Fn,	\
+						false>
+
+    /**
+     * Specialization 3- The client does not supply a hash function
+     *    (by specifying null_hash_fn as the Hash_Fn parameter),
+     *    and requests that hash values not be stored.
+
+    **/
+    template<typename Key, class Allocator, class Comb_Hash_Fn>
+    class ranged_hash_fn<
+      Key,
+      null_hash_fn,
+      Allocator,
+      Comb_Hash_Fn,
+      false> :
+      public null_hash_fn,
+      public Comb_Hash_Fn
+    {
+    protected:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef Comb_Hash_Fn comb_hash_fn_base;
+
+    protected:
+      ranged_hash_fn(size_type size);
+
+      ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn);
+
+      ranged_hash_fn(size_type size, const null_hash_fn           & r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size)
+    {
+      Comb_Hash_Fn::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn) :
+      Comb_Hash_Fn(r_comb_hash_fn)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const null_hash_fn& r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
+      Comb_Hash_Fn(r_comb_hash_fn)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      comb_hash_fn_base::swap(other);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC					\
+    template<typename Key, class Allocator, class Comb_Hash_Fn>
+
+#define PB_DS_CLASS_C_DEC					\
+    ranged_hash_fn<						\
+						Key,		\
+						null_hash_fn,	\
+						Allocator,	\
+						Comb_Hash_Fn,	\
+						true>
+
+    /**
+     * Specialization 4- The client does not supply a hash function
+     *    (by specifying null_hash_fn as the Hash_Fn parameter),
+     *    and requests that hash values be stored.
+
+    **/
+    template<typename Key, class Allocator, class Comb_Hash_Fn>
+    class ranged_hash_fn<
+      Key,
+      null_hash_fn,
+      Allocator,
+      Comb_Hash_Fn,
+      true> :
+      public null_hash_fn,
+      public Comb_Hash_Fn
+    {
+    protected:
+      typedef typename Allocator::size_type size_type;
+
+      typedef Comb_Hash_Fn comb_hash_fn_base;
+
+    protected:
+      ranged_hash_fn(size_type size);
+
+      ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn);
+
+      ranged_hash_fn(size_type size, const null_hash_fn           & r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size)
+    {
+      Comb_Hash_Fn::notify_resized(size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const Comb_Hash_Fn& r_comb_hash_fn) :
+      Comb_Hash_Fn(r_comb_hash_fn)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ranged_hash_fn(size_type size, const null_hash_fn           & r_null_hash_fn, const Comb_Hash_Fn& r_comb_hash_fn) :
+      Comb_Hash_Fn(r_comb_hash_fn)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      comb_hash_fn_base::swap(other);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RANGED_HASH_FN_HPP
diff --git a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
similarity index 50%
rename from libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp
rename to libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
index 61643d8d2467..b471176a1ffb 100644
--- a/libstdc++-v3/include/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
@@ -1,69 +1,70 @@
 // -*- C++ -*-
 
-// Copyright (C) 2005 Free Software Foundation, Inc.
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
+// 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
 
 // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
 
 // Permission to use, copy, modify, sell, and distribute this software
 // is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
 // representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
+// purpose. It is provided "as is" without express or implied
+// warranty.
 
 /**
  * @file ranged_probe_fn.hpp
  * Contains a unified ranged probe functor, allowing the probe tables to deal with
- *	a single class for ranged probeing.
+ *    a single class for ranged probeing.
  */
 
-#ifndef RANGED_PROBE_FN_HPP
-#define RANGED_PROBE_FN_HPP
+#ifndef PB_DS_RANGED_PROBE_FN_HPP
+#define PB_DS_RANGED_PROBE_FN_HPP
 
-#include <ext/pb_assoc/hash_policy.hpp>
+#include <ext/pb_ds/detail/basic_types.hpp>
 #include <utility>
 
-namespace pb_assoc
+namespace pb_ds
 {
-
   namespace detail
   {
 
-#ifdef PB_ASSOC_RANGED_PROBE_FN_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X) assert(X)
-#define PB_ASSOC_DBG_VERIFY(X) assert(X)
-#define PB_ASSOC_DBG_ONLY(X) X
-#else // #ifdef PB_ASSOC_RANGED_PROBE_FN_DEBUG
-#define PB_ASSOC_DBG_ASSERT(X)
-#define PB_ASSOC_DBG_VERIFY(X) {if((X)==0);}
-#define PB_ASSOC_DBG_ONLY(X) ;
-#endif // #ifdef PB_ASSOC_RANGED_PROBE_FN_DEBUG
+#ifdef PB_DS_RANGED_PROBE_FN_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_RANGED_PROBE_FN_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_RANGED_PROBE_FN_DEBUG
 
     template<typename Key,
 	     class Hash_Fn,
@@ -73,26 +74,26 @@ namespace pb_assoc
 	     bool Store_Hash>
     class ranged_probe_fn;
 
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		class Hash_Fn, \
-		class Allocator, \
-		class Comb_Probe_Fn, \
-		class Probe_Fn>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	ranged_probe_fn< \
-		Key, \
-		Hash_Fn, \
-		Allocator, \
-		Comb_Probe_Fn, \
-		Probe_Fn, \
-		false>
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						class Hash_Fn,		\
+						class Allocator,	\
+						class Comb_Probe_Fn,	\
+						class Probe_Fn>
+
+#define PB_DS_CLASS_C_DEC					\
+    ranged_probe_fn<						\
+						Key,		\
+						Hash_Fn,	\
+						Allocator,	\
+						Comb_Probe_Fn,	\
+						Probe_Fn,	\
+						false>
 
     /**
      * Specialization 1- The client supplies a probe function and a ranged
-     *	probe function, and requests that hash values not be stored.
+     *    probe function, and requests that hash values not be stored.
      **/
     template<typename Key,
 	     class Hash_Fn,
@@ -112,13 +113,13 @@ namespace pb_assoc
     protected:
       typedef typename Allocator::size_type size_type;
 
-      typedef Comb_Probe_Fn my_comb_probe_fn_base;
+      typedef Comb_Probe_Fn comb_probe_fn_base;
 
-      typedef Hash_Fn my_hash_fn_base;
+      typedef Hash_Fn hash_fn_base;
 
-      typedef Probe_Fn my_probe_fn_base;
+      typedef Probe_Fn probe_fn_base;
 
-      typedef typename Allocator::template rebind< Key>::other key_allocator;
+      typedef typename Allocator::template rebind<Key>::other key_allocator;
 
       typedef typename key_allocator::const_reference const_key_reference;
 
@@ -132,7 +133,7 @@ namespace pb_assoc
       ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn);
 
       void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
+      swap(PB_DS_CLASS_C_DEC& other);
 
       void
       notify_resized(size_type size);
@@ -144,99 +145,99 @@ namespace pb_assoc
       operator()(const_key_reference r_key, size_type hash, size_type i) const;
     };
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size)
     {
       Comb_Probe_Fn::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn) :
       Hash_Fn(r_hash_fn)
     {
       Comb_Probe_Fn::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn) :
       Hash_Fn(r_hash_fn),
       Comb_Probe_Fn(r_comb_probe_fn)
     {
-      my_comb_probe_fn_base::notify_resized(size);
+      comb_probe_fn_base::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn) :
       Hash_Fn(r_hash_fn),
       Comb_Probe_Fn(r_comb_probe_fn),
       Probe_Fn(r_probe_fn)
     {
-      my_comb_probe_fn_base::notify_resized(size);
+      comb_probe_fn_base::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
+    PB_DS_CLASS_T_DEC
     void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
     {
-      my_comb_probe_fn_base::swap(r_other);
+      comb_probe_fn_base::swap(other);
 
-      std::swap((Hash_Fn& )(*this), (Hash_Fn& )r_other);
+      std::swap((Hash_Fn& )(*this), (Hash_Fn& )other);
     }
 
-    PB_ASSOC_CLASS_T_DEC
+    PB_DS_CLASS_T_DEC
     void
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_C_DEC::
     notify_resized(size_type size)
     {
-      my_comb_probe_fn_base::notify_resized(size);
+      comb_probe_fn_base::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
     operator()(const_key_reference r_key) const
     {
-      return (my_comb_probe_fn_base::operator()(
-						my_hash_fn_base::operator()(r_key)));
+      return (comb_probe_fn_base::operator()(
+					     hash_fn_base::operator()(r_key)));
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
-    operator()(const_key_reference r_key, size_type hash, size_type i) const
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    operator()(const_key_reference /*r_key*/, size_type hash, size_type i) const
     {
-      return (my_comb_probe_fn_base::operator()(
-						hash + my_probe_fn_base::operator()(r_key, i)));
+      return (comb_probe_fn_base::operator()(
+					     hash + probe_fn_base::operator()(i)));
     }
 
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
-
-#define PB_ASSOC_CLASS_T_DEC \
-	template< \
-		typename Key, \
-		class Hash_Fn, \
-		class Allocator, \
-		class Comb_Probe_Fn, \
-		class Probe_Fn>
-
-#define PB_ASSOC_CLASS_C_DEC \
-	ranged_probe_fn< \
-		Key, \
-		Hash_Fn, \
-		Allocator, \
-		Comb_Probe_Fn, \
-		Probe_Fn, \
-		true>
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						class Hash_Fn,		\
+						class Allocator,	\
+						class Comb_Probe_Fn,	\
+						class Probe_Fn>
+
+#define PB_DS_CLASS_C_DEC					\
+    ranged_probe_fn<						\
+						Key,		\
+						Hash_Fn,	\
+						Allocator,	\
+						Comb_Probe_Fn,	\
+						Probe_Fn,	\
+						true>
 
     /**
      * Specialization 2- The client supplies a probe function and a ranged
-     *	probe function, and requests that hash values be stored.
+     *    probe function, and requests that hash values not be stored.
      **/
     template<typename Key,
 	     class Hash_Fn,
@@ -257,13 +258,13 @@ namespace pb_assoc
     protected:
       typedef typename Allocator::size_type size_type;
 
-      typedef std::pair<size_type, size_type> comp_hash;
+      typedef typename comp_hash_<size_type>::comp_hash comp_hash;
 
-      typedef Comb_Probe_Fn my_comb_probe_fn_base;
+      typedef Comb_Probe_Fn comb_probe_fn_base;
 
-      typedef Hash_Fn my_hash_fn_base;
+      typedef Hash_Fn hash_fn_base;
 
-      typedef Probe_Fn my_probe_fn_base;
+      typedef Probe_Fn probe_fn_base;
 
       typedef typename Allocator::template rebind<Key>::other key_allocator;
 
@@ -279,7 +280,7 @@ namespace pb_assoc
       ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn);
 
       void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
+      swap(PB_DS_CLASS_C_DEC& other);
 
       void
       notify_resized(size_type size);
@@ -294,110 +295,110 @@ namespace pb_assoc
       operator()(const_key_reference r_key, size_type hash) const;
     };
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size)
     {
       Comb_Probe_Fn::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn) :
       Hash_Fn(r_hash_fn)
     {
       Comb_Probe_Fn::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn) :
       Hash_Fn(r_hash_fn),
       Comb_Probe_Fn(r_comb_probe_fn)
     {
-      my_comb_probe_fn_base::notify_resized(size);
+      comb_probe_fn_base::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Hash_Fn& r_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const Probe_Fn& r_probe_fn) :
       Hash_Fn(r_hash_fn),
       Comb_Probe_Fn(r_comb_probe_fn),
       Probe_Fn(r_probe_fn)
     {
-      my_comb_probe_fn_base::notify_resized(size);
+      comb_probe_fn_base::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
+    PB_DS_CLASS_T_DEC
     void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
     {
-      my_comb_probe_fn_base::swap(r_other);
+      comb_probe_fn_base::swap(other);
 
-      std::swap((Hash_Fn& )(*this), (Hash_Fn& )r_other);
+      std::swap((Hash_Fn& )(*this), (Hash_Fn& )other);
     }
 
-    PB_ASSOC_CLASS_T_DEC
+    PB_DS_CLASS_T_DEC
     void
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_C_DEC::
     notify_resized(size_type size)
     {
-      my_comb_probe_fn_base::notify_resized(size);
+      comb_probe_fn_base::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::comp_hash
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::comp_hash
+    PB_DS_CLASS_C_DEC::
     operator()(const_key_reference r_key) const
     {
-      const size_type hash = my_hash_fn_base::operator()(r_key);
+      const size_type hash = hash_fn_base::operator()(r_key);
 
-      return (std::make_pair(my_comb_probe_fn_base::operator()(hash), hash));
+      return (std::make_pair(comb_probe_fn_base::operator()(hash), hash));
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
-    operator()(const_key_reference r_key, size_type hash, size_type i) const
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    operator()(const_key_reference /*r_key*/, size_type hash, size_type i) const
     {
-      return (my_comb_probe_fn_base::operator()(
-						hash + my_probe_fn_base::operator()(r_key, i)));
+      return (comb_probe_fn_base::operator()(
+					     hash + probe_fn_base::operator()(i)));
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    inline typename PB_ASSOC_CLASS_C_DEC::size_type
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
     operator()
-#ifdef PB_ASSOC_RANGED_PROBE_FN_DEBUG
+#ifdef PB_DS_RANGED_PROBE_FN_DEBUG
       (const_key_reference r_key, size_type hash) const
-#else // #ifdef PB_ASSOC_RANGED_PROBE_FN_DEBUG
+#else // #ifdef PB_DS_RANGED_PROBE_FN_DEBUG
       (const_key_reference /*r_key*/, size_type hash) const
-#endif // #ifdef PB_ASSOC_RANGED_PROBE_FN_DEBUG
+#endif // #ifdef PB_DS_RANGED_PROBE_FN_DEBUG
     {
-      PB_ASSOC_DBG_ASSERT(hash == my_hash_fn_base::operator()(r_key));
+      PB_DS_DBG_ASSERT(hash == hash_fn_base::operator()(r_key));
 
       return (hash);
     }
 
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
 
-#define PB_ASSOC_CLASS_T_DEC \
-	template<typename Key, class Allocator, class Comb_Probe_Fn>
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Key, class Allocator, class Comb_Probe_Fn>
 
-#define PB_ASSOC_CLASS_C_DEC \
-	ranged_probe_fn< \
-		Key, \
-		null_hash_fn, \
-		Allocator, \
-		Comb_Probe_Fn, \
-		null_probe_fn, \
-		false>
+#define PB_DS_CLASS_C_DEC					\
+    ranged_probe_fn<						\
+						Key,		\
+						null_hash_fn,	\
+						Allocator,	\
+						Comb_Probe_Fn,	\
+						null_probe_fn,	\
+						false>
 
     /**
      * Specialization 3 and 4- The client does not supply a hash function or
-     *	probe function, and requests that hash values not be stored.
+     *    probe function, and requests that hash values not be stored.
      **/
     template<typename Key, class Allocator, class Comb_Probe_Fn>
     class ranged_probe_fn<
@@ -414,7 +415,7 @@ namespace pb_assoc
     protected:
       typedef typename Allocator::size_type size_type;
 
-      typedef Comb_Probe_Fn my_comb_probe_fn_base;
+      typedef Comb_Probe_Fn comb_probe_fn_base;
 
       typedef typename Allocator::template rebind<Key>::other key_allocator;
 
@@ -428,46 +429,45 @@ namespace pb_assoc
       ranged_probe_fn(size_type size, const null_hash_fn& r_null_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const null_probe_fn& r_null_probe_fn);
 
       void
-      swap(PB_ASSOC_CLASS_C_DEC& r_other);
+      swap(PB_DS_CLASS_C_DEC& other);
     };
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size)
     {
       Comb_Probe_Fn::notify_resized(size);
     }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const Comb_Probe_Fn& r_comb_probe_fn) :
       Comb_Probe_Fn(r_comb_probe_fn)
     { }
 
-    PB_ASSOC_CLASS_T_DEC
-    PB_ASSOC_CLASS_C_DEC::
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
     ranged_probe_fn(size_type size, const null_hash_fn& r_null_hash_fn, const Comb_Probe_Fn& r_comb_probe_fn, const null_probe_fn& r_null_probe_fn) :
       Comb_Probe_Fn(r_comb_probe_fn)
     { }
 
-    PB_ASSOC_CLASS_T_DEC
+    PB_DS_CLASS_T_DEC
     void
-    PB_ASSOC_CLASS_C_DEC::
-    swap(PB_ASSOC_CLASS_C_DEC& r_other)
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
     {
-      my_comb_probe_fn_base::swap(r_other);
+      comb_probe_fn_base::swap(other);
     }
 
-#undef PB_ASSOC_CLASS_T_DEC
-#undef PB_ASSOC_CLASS_C_DEC
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
 
-#undef PB_ASSOC_DBG_ASSERT
-#undef PB_ASSOC_DBG_VERIFY
-#undef PB_ASSOC_DBG_ONLY
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
 
   } // namespace detail
+} // namespace pb_ds
 
-} // namespace pb_assoc
-
-#endif // #ifndef RANGED_PROBE_FN_HPP
+#endif // #ifndef PB_DS_RANGED_PROBE_FN_HPP
 
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
new file mode 100644
index 000000000000..908a7199fa2a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
@@ -0,0 +1,79 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_probe_fn.hpp
+ * Contains a sample probe policy.
+ */
+
+#ifndef PB_DS_SAMPLE_PROBE_FN_HPP
+#define PB_DS_SAMPLE_PROBE_FN_HPP
+
+// A sample probe policy.
+class sample_probe_fn
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+public:
+
+  // Default constructor.
+  sample_probe_fn();
+
+  // Copy constructor.
+  sample_probe_fn(const sample_probe_fn& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_probe_fn& other);
+
+protected:
+
+  // Returns the i-th offset from the hash value of some key r_key.
+  inline size_type
+  operator()(const_key_reference r_key, size_type i) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_PROBE_FN_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
new file mode 100644
index 000000000000..40ab29a921f0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_range_hashing.hpp
+ * Contains a range hashing policy.
+ */
+
+#ifndef PB_DS_SAMPLE_RANGE_HASHING_HPP
+#define PB_DS_SAMPLE_RANGE_HASHING_HPP
+
+// A sample range-hashing functor.
+class sample_range_hashing
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+public:
+
+  // Default constructor.
+  sample_range_hashing();
+
+  // Copy constructor.
+  sample_range_hashing(const sample_range_hashing& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_range_hashing& other);
+
+protected:
+
+  // Notifies the policy object that the container's __size has changed to size.
+  void
+  notify_resized(size_type size);
+
+  // Transforms the __hash value hash into a ranged-hash value.
+  inline size_type
+  operator()(size_type hash) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_RANGE_HASHING_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
new file mode 100644
index 000000000000..55a115d53c35
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_ranged_hash_fn.hpp
+ * Contains a ranged hash policy.
+ */
+
+#ifndef PB_DS_SAMPLE_RANGED_HASH_FN_HPP
+#define PB_DS_SAMPLE_RANGED_HASH_FN_HPP
+
+// A sample ranged-hash functor.
+class sample_ranged_hash_fn
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+public:
+
+  // Default constructor.
+  sample_ranged_hash_fn();
+
+  // Copy constructor.
+  sample_ranged_hash_fn(const sample_ranged_hash_fn& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_ranged_hash_fn& other);
+
+protected:
+
+  // Notifies the policy object that the container's __size has changed to size.
+  void
+  notify_resized(size_type size);
+
+  // Transforms r_key into a position within the table.
+  inline size_type
+  operator()(const_key_reference r_key) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_RANGED_HASH_FN_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
new file mode 100644
index 000000000000..01697bb41ff8
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_ranged_probe_fn.hpp
+ * Contains a ranged probe policy.
+ */
+
+#ifndef PB_DS_SAMPLE_RANGED_PROBE_FN_HPP
+#define PB_DS_SAMPLE_RANGED_PROBE_FN_HPP
+
+// A sample ranged-probe functor.
+class sample_ranged_probe_fn
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+public:
+
+  // Default constructor.
+  sample_ranged_probe_fn();
+
+  // Copy constructor.
+  sample_ranged_probe_fn(const sample_ranged_probe_fn& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_ranged_probe_fn& other);
+
+protected:
+
+  // Notifies the policy object that the container's __size has changed to size.
+  void
+  notify_resized(size_type size);
+
+  // Transforms the const key reference r_key into the i-th position within the table. This method is called for each collision within the probe sequence.
+  inline size_type
+  operator()(const_key_reference r_key, size_t hash, size_type i) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_RANGED_PROBE_FN_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
new file mode 100644
index 000000000000..c0688dbe4676
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
@@ -0,0 +1,197 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file const_iterator.hpp
+ * Contains an iterator class returned by the table's const find and insert
+ *     methods.
+ */
+
+#ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_CONST_ITERATOR_HPP
+#define PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_CONST_ITERATOR_HPP
+
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+#define PB_DS_CLASS_C_DEC						\
+    left_child_next_sibling_heap_const_iterator_<			\
+								Node,	\
+								Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    left_child_next_sibling_heap_node_const_point_iterator_<		\
+									Node, \
+									Allocator>
+
+    // Const point-type iterator.
+    template<typename Node, class Allocator>
+    class left_child_next_sibling_heap_const_iterator_ : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef typename PB_DS_BASE_C_DEC::node_pointer node_pointer;
+
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+
+      // Category.
+      typedef std::forward_iterator_tag iterator_category;
+
+      // Difference type.
+      typedef typename Allocator::difference_type difference_type;
+
+      // Iterator's value type.
+      typedef typename base_type::value_type value_type;
+
+      // Iterator's pointer type.
+      typedef typename base_type::pointer pointer;
+
+      // Iterator's const pointer type.
+      typedef typename base_type::const_pointer const_pointer;
+
+      // Iterator's reference type.
+      typedef typename base_type::reference reference;
+
+      // Iterator's const reference type.
+      typedef typename base_type::const_reference const_reference;
+
+    public:
+
+      inline
+      left_child_next_sibling_heap_const_iterator_(node_pointer p_nd) : base_type(p_nd)
+      { }
+
+      // Default constructor.
+      inline
+      left_child_next_sibling_heap_const_iterator_()
+      { }
+
+      // Copy constructor.
+      inline
+      left_child_next_sibling_heap_const_iterator_(const PB_DS_CLASS_C_DEC& other) : base_type(other)
+      { }
+
+      // Compares content to a different iterator object.
+      inline bool
+      operator==(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (base_type::m_p_nd == other.m_p_nd);
+      }
+
+      // Compares content (negatively) to a different iterator object.
+      inline bool
+      operator!=(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (base_type::m_p_nd != other.m_p_nd);
+      }
+
+      inline PB_DS_CLASS_C_DEC& 
+      operator++()
+      {
+	PB_DS_DBG_ASSERT(base_type::m_p_nd != NULL);
+
+	inc();
+
+	return (*this);
+      }
+
+      inline PB_DS_CLASS_C_DEC
+      operator++(int)
+      {
+	PB_DS_CLASS_C_DEC ret_it(base_type::m_p_nd);
+
+	operator++();
+
+	return (ret_it);
+      }
+
+    private:
+      void
+      inc()
+      {
+	if (base_type::m_p_nd->m_p_next_sibling != NULL)
+	  {
+	    base_type::m_p_nd = base_type::m_p_nd->m_p_next_sibling;
+
+	    while (base_type::m_p_nd->m_p_l_child != NULL)
+	      base_type::m_p_nd = base_type::m_p_nd->m_p_l_child;
+
+	    return;
+	  }
+
+	while (true)
+	  {
+	    node_pointer p_next = base_type::m_p_nd;
+	    base_type::m_p_nd = base_type::m_p_nd->m_p_prev_or_parent;
+
+	    if (base_type::m_p_nd == NULL || base_type::m_p_nd->m_p_l_child == p_next)
+	      return;
+	  }
+      }
+    };
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_CONST_ITERATOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp
new file mode 100644
index 000000000000..954b1335b9dd
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp
@@ -0,0 +1,188 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file const_point_iterator.hpp
+ * Contains an iterator class returned by the table's const find and insert
+ *     methods.
+ */
+
+#ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_CONST_FIND_ITERATOR_HPP
+#define PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_CONST_FIND_ITERATOR_HPP
+
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;m_p_prev_or_parent
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Node, class Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    left_child_next_sibling_heap_node_const_point_iterator_<		\
+									Node, \
+									Allocator>
+
+    // Const point-type iterator.
+    template<typename Node, class Allocator>
+    class left_child_next_sibling_heap_node_const_point_iterator_
+    {
+
+    protected:
+      typedef
+      typename Allocator::template rebind<
+      Node>::other::pointer
+      node_pointer;
+
+    public:
+
+      // Category.
+      typedef trivial_iterator_tag iterator_category;
+
+      // Difference type.
+      typedef trivial_iterator_difference_type difference_type;
+
+      // Iterator's value type.
+      typedef typename Node::value_type value_type;
+
+      // Iterator's pointer type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::pointer
+      pointer;
+
+      // Iterator's const pointer type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_pointer
+      const_pointer;
+
+      // Iterator's reference type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::reference
+      reference;
+
+      // Iterator's const reference type.
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+    public:
+
+      inline
+      left_child_next_sibling_heap_node_const_point_iterator_(node_pointer p_nd) : m_p_nd(p_nd)
+      { }
+
+      // Default constructor.
+      inline
+      left_child_next_sibling_heap_node_const_point_iterator_()
+
+	: m_p_nd(NULL)
+      { }
+
+      // Copy constructor.
+      inline
+      left_child_next_sibling_heap_node_const_point_iterator_(const PB_DS_CLASS_C_DEC& other)
+
+	: m_p_nd(other.m_p_nd)
+      { }
+
+      // Access.
+      inline const_pointer
+      operator->() const
+      {
+	PB_DS_DBG_ASSERT(m_p_nd != NULL);
+
+	return (&m_p_nd->m_value);
+      }
+
+      // Access.
+      inline const_reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(m_p_nd != NULL);
+
+	return (m_p_nd->m_value);
+      }
+
+      // Compares content to a different iterator object.
+      inline bool
+      operator==(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (m_p_nd == other.m_p_nd);
+      }
+
+      // Compares content (negatively) to a different iterator object.
+      inline bool
+      operator!=(const PB_DS_CLASS_C_DEC& other) const
+      {
+	return (m_p_nd != other.m_p_nd);
+      }
+
+    public:
+      node_pointer m_p_nd;
+    };
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_CONST_FIND_ITERATOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..97d8277e69de
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,173 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_allocator
+PB_DS_CLASS_C_DEC::s_node_allocator;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::no_throw_copies_t
+PB_DS_CLASS_C_DEC::s_no_throw_copies_ind;
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+left_child_next_sibling_heap_() :
+  m_p_root(NULL),
+  m_size(0)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+left_child_next_sibling_heap_(const Cmp_Fn& r_cmp_fn) :
+  Cmp_Fn(r_cmp_fn),
+  m_p_root(NULL),
+  m_size(0)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+left_child_next_sibling_heap_(const PB_DS_CLASS_C_DEC& other) :
+  Cmp_Fn(other),
+  m_p_root(NULL),
+  m_size(0)
+{
+  m_size = other.m_size;
+
+  PB_DS_DBG_ONLY(other.assert_valid();)
+
+    m_p_root = recursive_copy_node(other.m_p_root);
+
+  m_size = other.m_size;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    value_swap(other);
+
+  std::swap((Cmp_Fn& )(*this), (Cmp_Fn& )other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+value_swap(PB_DS_CLASS_C_DEC& other)
+{
+  std::swap(m_p_root, other.m_p_root);
+
+  std::swap(m_size, other.m_size);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~left_child_next_sibling_heap_()
+{
+  clear();
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+recursive_copy_node(const_node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return (NULL);
+
+  node_pointer p_ret = s_node_allocator.allocate(1);
+
+  try
+    {
+      new (p_ret) node(*p_nd);
+    }
+  catch(...)
+    {
+      s_node_allocator.deallocate(p_ret, 1);
+
+      throw;
+    }
+
+  p_ret->m_p_l_child = p_ret->m_p_next_sibling =
+    p_ret->m_p_prev_or_parent = NULL;
+
+  try
+    {
+      p_ret->m_p_l_child = recursive_copy_node(p_nd->m_p_l_child);
+
+      p_ret->m_p_next_sibling = recursive_copy_node(p_nd->m_p_next_sibling);
+    }
+  catch(...)
+    {
+      clear_imp(p_ret);
+
+      throw;
+    }
+
+  if (p_ret->m_p_l_child != NULL)
+    p_ret->m_p_l_child->m_p_prev_or_parent = p_ret;
+
+  if (p_ret->m_p_next_sibling != NULL)
+    p_ret->m_p_next_sibling->m_p_prev_or_parent =
+      p_nd->m_p_next_sibling->m_p_prev_or_parent == p_nd?
+      p_ret :
+      NULL;
+
+  return (p_ret);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..72c0ca1b0ef6
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
@@ -0,0 +1,165 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  PB_DS_DBG_ASSERT(m_p_root == NULL || m_p_root->m_p_prev_or_parent == NULL);
+
+  if (m_p_root != NULL)
+    assert_node_consistent(m_p_root, Single_Link_Roots);
+
+  assert_size();
+
+  assert_iterators();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_node_consistent(const_node_pointer p_nd, bool single_link) const
+{
+  if (p_nd == NULL)
+    return;
+
+  assert_node_consistent(p_nd->m_p_l_child, false);
+  assert_node_consistent(p_nd->m_p_next_sibling, single_link);
+
+  if (single_link)
+    PB_DS_DBG_ASSERT(p_nd->m_p_prev_or_parent == NULL);
+  else if (p_nd->m_p_next_sibling != NULL)
+    PB_DS_DBG_ASSERT(p_nd->m_p_next_sibling->m_p_prev_or_parent == p_nd);
+
+  if (p_nd->m_p_l_child == NULL)
+    return;
+
+  const_node_pointer p_child = p_nd->m_p_l_child;
+
+  while (p_child != NULL)
+    {
+      const_node_pointer p_next_child = p_child->m_p_next_sibling;
+
+      PB_DS_DBG_ASSERT(!Cmp_Fn::operator()(p_nd->m_value, p_child->m_value));
+
+      p_child = p_next_child;
+    }
+
+  PB_DS_DBG_ASSERT(p_nd->m_p_l_child->m_p_prev_or_parent == p_nd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_iterators() const
+{
+  const size_type calc_size = std::distance(begin(), end());
+
+  if (calc_size == size())
+    return;
+
+  PB_DS_DBG_ASSERT(0);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_size() const
+{
+  if (size_from_node(m_p_root) == m_size)
+    return;
+
+  PB_DS_DBG_ASSERT(0);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size_under_node(const_node_pointer p_nd)
+{
+  return 1 + size_from_node(p_nd->m_p_l_child);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size_from_node(const_node_pointer p_nd)
+{
+  size_type ret = 0;
+
+  while (p_nd != NULL)
+    {
+      ret += 1 + size_from_node(p_nd->m_p_l_child);
+
+      p_nd = p_nd->m_p_next_sibling;
+    }
+
+  return ret;
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+degree(const_node_pointer p_nd)
+{
+  size_type ret = 0;
+
+  const_node_pointer p_child = p_nd->m_p_l_child;
+
+  while (p_child != NULL)
+    {
+      ++ret;
+
+      p_child = p_child->m_p_next_sibling;
+    }
+
+  return ret;
+}
+
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..4b88eec98f77
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
@@ -0,0 +1,184 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  clear_imp(m_p_root);
+
+  PB_DS_DBG_ASSERT(m_size == 0);
+  m_p_root = NULL;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+actual_erase_node(node_pointer p_nd)
+{
+  PB_DS_DBG_ASSERT(m_size > 0);
+  --m_size;
+
+  p_nd->~node();
+
+  s_node_allocator.deallocate(p_nd, 1);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear_imp(node_pointer p_nd)
+{
+  while (p_nd != NULL)
+    {
+      clear_imp(p_nd->m_p_l_child);
+
+      node_pointer p_next = p_nd->m_p_next_sibling;
+
+      actual_erase_node(p_nd);
+
+      p_nd = p_next;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+to_linked_list()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    node_pointer p_cur = m_p_root;
+
+  while (p_cur != NULL)
+    if (p_cur->m_p_l_child != NULL)
+      {
+	node_pointer p_child_next = p_cur->m_p_l_child->m_p_next_sibling;
+
+	p_cur->m_p_l_child->m_p_next_sibling = p_cur->m_p_next_sibling;
+
+	p_cur->m_p_next_sibling = p_cur->m_p_l_child;
+
+	p_cur->m_p_l_child = p_child_next;
+      }
+    else
+      p_cur = p_cur->m_p_next_sibling;
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+  const_node_pointer p_counter = m_p_root;
+
+  size_type count = 0;
+
+  while (p_counter != NULL)
+    {
+      ++count;
+
+      PB_DS_DBG_ASSERT(p_counter->m_p_l_child == NULL);
+
+      p_counter = p_counter->m_p_next_sibling;
+    }
+
+  PB_DS_DBG_ASSERT(count == m_size);
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+prune(Pred pred)
+{
+  node_pointer p_cur = m_p_root;
+
+  m_p_root = NULL;
+
+  node_pointer p_out = NULL;
+
+  while (p_cur != NULL)
+    {
+      node_pointer p_next = p_cur->m_p_next_sibling;
+
+      if (pred(p_cur->m_value))
+        {
+	  p_cur->m_p_next_sibling = p_out;
+
+	  if (p_out != NULL)
+	    p_out->m_p_prev_or_parent = p_cur;
+
+	  p_out = p_cur;
+        }
+      else
+        {
+	  p_cur->m_p_next_sibling = m_p_root;
+
+	  if (m_p_root != NULL)
+	    m_p_root->m_p_prev_or_parent = p_cur;
+
+	  m_p_root = p_cur;
+        }
+
+      p_cur = p_next;
+    }
+
+  return p_out;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+bubble_to_top(node_pointer p_nd)
+{
+  node_pointer p_parent = parent(p_nd);
+
+  while (p_parent != NULL)
+    {
+      swap_with_parent(p_nd, p_parent);
+
+      p_parent = parent(p_nd);
+    }
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
new file mode 100644
index 000000000000..3c0dde816ce8
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (m_size == 0);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (m_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_node_allocator.max_size());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..32c367836972
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
@@ -0,0 +1,181 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+get_new_node_for_insert(const_reference r_val)
+{
+  return get_new_node_for_insert(r_val, s_no_throw_copies_ind);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+get_new_node_for_insert(const_reference r_val, false_type)
+{
+  node_pointer p_new_nd = s_node_allocator.allocate(1);
+
+  cond_dealtor_t cond(p_new_nd);
+
+  new (const_cast<void* >(
+			  static_cast<const void* >(&p_new_nd->m_value)))
+    typename node::value_type(r_val);
+
+  cond.set_no_action();
+
+  ++m_size;
+
+  return (p_new_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+get_new_node_for_insert(const_reference r_val, true_type)
+{
+  node_pointer p_new_nd = s_node_allocator.allocate(1);
+
+  new (const_cast<void* >(
+			  static_cast<const void* >(&p_new_nd->m_value)))
+    typename node::value_type(r_val);
+
+  ++m_size;
+
+  return (p_new_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+make_child_of(node_pointer p_nd, node_pointer p_new_parent)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+  PB_DS_DBG_ASSERT(p_new_parent != NULL);
+
+  p_nd->m_p_next_sibling = p_new_parent->m_p_l_child;
+
+  if (p_new_parent->m_p_l_child != NULL)
+    p_new_parent->m_p_l_child->m_p_prev_or_parent = p_nd;
+
+  p_nd->m_p_prev_or_parent = p_new_parent;
+
+  p_new_parent->m_p_l_child = p_nd;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+parent(node_pointer p_nd)
+{
+  while (true)
+    {
+      node_pointer p_pot = p_nd->m_p_prev_or_parent;
+
+      if (p_pot == NULL || p_pot->m_p_l_child == p_nd)
+	return p_pot;
+
+      p_nd = p_pot;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+swap_with_parent(node_pointer p_nd, node_pointer p_parent)
+{
+  if (p_parent == m_p_root)
+    m_p_root = p_nd;
+
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+  PB_DS_DBG_ASSERT(p_parent != NULL);
+  PB_DS_DBG_ASSERT(parent(p_nd) == p_parent);
+
+  const bool nd_direct_child = p_parent->m_p_l_child == p_nd;
+  const bool parent_root = p_parent->m_p_prev_or_parent == NULL;
+  const bool parent_direct_child =
+    !parent_root&&  p_parent->m_p_prev_or_parent->m_p_l_child == p_parent;
+
+  std::swap(p_parent->m_p_prev_or_parent, p_nd->m_p_prev_or_parent);
+  std::swap(p_parent->m_p_next_sibling, p_nd->m_p_next_sibling);
+  std::swap(p_parent->m_p_l_child, p_nd->m_p_l_child);
+  std::swap(p_parent->m_metadata, p_nd->m_metadata);
+
+  PB_DS_DBG_ASSERT(p_nd->m_p_l_child != NULL);
+  PB_DS_DBG_ASSERT(p_parent->m_p_prev_or_parent != NULL);
+
+  if (p_nd->m_p_next_sibling != NULL)
+    p_nd->m_p_next_sibling->m_p_prev_or_parent = p_nd;
+
+  if (p_parent->m_p_next_sibling != NULL)
+    p_parent->m_p_next_sibling->m_p_prev_or_parent = p_parent;
+
+  if (p_parent->m_p_l_child != NULL)
+    p_parent->m_p_l_child->m_p_prev_or_parent = p_parent;
+
+  if (parent_direct_child)
+    p_nd->m_p_prev_or_parent->m_p_l_child = p_nd;
+  else if (!parent_root)
+    p_nd->m_p_prev_or_parent->m_p_next_sibling = p_nd;
+
+  if (!nd_direct_child)
+    {
+      p_nd->m_p_l_child->m_p_prev_or_parent = p_nd;
+
+      p_parent->m_p_prev_or_parent->m_p_next_sibling = p_parent;
+    }
+  else
+    {
+      PB_DS_DBG_ASSERT(p_nd->m_p_l_child == p_nd);
+      PB_DS_DBG_ASSERT(p_parent->m_p_prev_or_parent == p_parent);
+
+      p_nd->m_p_l_child = p_parent;
+      p_parent->m_p_prev_or_parent = p_nd;
+    }
+
+  PB_DS_DBG_ASSERT(parent(p_parent) == p_nd);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
new file mode 100644
index 000000000000..02e99821f9b0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterators_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+begin()
+{
+  node_pointer p_nd = m_p_root;
+
+  if (p_nd == NULL)
+    return (iterator(NULL));
+
+  while (p_nd->m_p_l_child != NULL)
+    p_nd = p_nd->m_p_l_child;
+
+  return (iterator(p_nd));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin() const
+{
+  node_pointer p_nd = m_p_root;
+
+  if (p_nd == NULL)
+    return (const_iterator(NULL));
+
+  while (p_nd->m_p_l_child != NULL)
+    p_nd = p_nd->m_p_l_child;
+
+  return (const_iterator(p_nd));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+end()
+{
+  return (iterator(NULL));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end() const
+{
+  return (const_iterator(NULL));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
new file mode 100644
index 000000000000..411c4f28b146
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
@@ -0,0 +1,380 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file left_child_next_sibling_heap_.hpp
+ * Contains an implementation class for a basic heap.
+ */
+
+#ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_HPP
+#define PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_HPP
+
+/*
+ * Based on CLRS.
+ */
+
+#include <iterator>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp>
+#ifdef PB_DS_LC_NS_HEAP_TRACE_
+#include <iostream>
+#endif // #ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Value_Type,	\
+						class Cmp_Fn,		\
+						typename Node_Metadata,	\
+						class Allocator,	\
+						bool Single_Link_Roots>
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Value_Type,	\
+						class Cmp_Fn,		\
+						typename Node_Metadata,	\
+						class Allocator>
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_CLASS_C_DEC						\
+    left_child_next_sibling_heap_<					\
+							Value_Type,	\
+							Cmp_Fn,		\
+							Node_Metadata,	\
+							Allocator,	\
+							Single_Link_Roots>
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_CLASS_C_DEC						\
+    left_child_next_sibling_heap_<					\
+							Value_Type,	\
+							Cmp_Fn,		\
+							Node_Metadata,	\
+							Allocator>
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+    /**
+     * class description = "Base class for some types of h3ap$">
+     **/
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+    template<typename Value_Type,
+	     class Cmp_Fn,
+	     typename Node_Metadata,
+	     class Allocator,
+	     bool Single_Link_Roots>
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+    template<typename Value_Type,
+	     class Cmp_Fn,
+	     typename Node_Metadata,
+	     class Allocator>
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+    class left_child_next_sibling_heap_ : public Cmp_Fn
+    {
+
+    protected:
+      typedef
+      typename Allocator::template rebind<
+      left_child_next_sibling_heap_node_<
+      Value_Type,
+      Node_Metadata,
+      Allocator> >::other
+      node_allocator;
+
+      typedef typename node_allocator::value_type node;
+
+      typedef typename node_allocator::pointer node_pointer;
+
+      typedef typename node_allocator::const_pointer const_node_pointer;
+
+      typedef Node_Metadata node_metadata;
+
+      typedef std::pair< node_pointer, node_pointer> node_pointer_pair;
+
+    private:
+      typedef cond_dealtor< node, Allocator> cond_dealtor_t;
+
+      enum
+	{
+	  simple_value = is_simple<
+	  Value_Type>::value
+	};
+
+      typedef integral_constant<int, simple_value> no_throw_copies_t;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::pointer
+      pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_pointer
+      const_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::reference
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+      typedef
+      left_child_next_sibling_heap_node_const_point_iterator_<
+	node,
+	Allocator>
+      const_point_iterator;
+
+      typedef const_point_iterator point_iterator;
+
+      typedef
+      left_child_next_sibling_heap_const_iterator_<
+	node,
+	Allocator>
+      const_iterator;
+
+      typedef const_iterator iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+    public:
+
+      left_child_next_sibling_heap_();
+
+      left_child_next_sibling_heap_(const Cmp_Fn& r_cmp_fn);
+
+      left_child_next_sibling_heap_(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      ~left_child_next_sibling_heap_();
+
+      inline bool
+      empty() const;
+
+      inline size_type
+      size() const;
+
+      inline size_type
+      max_size() const;
+
+      Cmp_Fn& 
+      get_cmp_fn();
+
+      const Cmp_Fn& 
+      get_cmp_fn() const;
+
+      inline iterator
+      begin();
+
+      inline const_iterator
+      begin() const;
+
+      inline iterator
+      end();
+
+      inline const_iterator
+      end() const;
+
+      void
+      clear();
+
+#ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+    protected:
+
+      inline node_pointer
+      get_new_node_for_insert(const_reference r_val);
+
+      inline static void
+      make_child_of(node_pointer p_nd, node_pointer p_new_parent);
+
+      void
+      value_swap(PB_DS_CLASS_C_DEC& other);
+
+      inline static node_pointer
+      parent(node_pointer p_nd);
+
+      inline void
+      swap_with_parent(node_pointer p_nd, node_pointer p_parent);
+
+      void
+      bubble_to_top(node_pointer p_nd);
+
+      inline void
+      actual_erase_node(node_pointer p_nd);
+
+      void
+      clear_imp(node_pointer p_nd);
+
+      void
+      to_linked_list();
+
+      template<typename Pred>
+      node_pointer
+      prune(Pred pred);
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+      void
+      assert_valid() const;
+
+      void
+      assert_node_consistent(const_node_pointer p_nd, bool single_link) const;
+
+      static size_type
+      size_under_node(const_node_pointer p_nd);
+
+      static size_type
+      degree(const_node_pointer p_nd);
+
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+#ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+      static void
+      trace_node(const_node_pointer, size_type level);
+
+#endif // #ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+    protected:
+      node_pointer m_p_root;
+
+      size_type m_size;
+
+    private:
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+      void
+      assert_iterators() const;
+
+      void
+      assert_size() const;
+
+      static size_type
+      size_from_node(const_node_pointer p_nd);
+
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+      node_pointer
+      recursive_copy_node(const_node_pointer p_nd);
+
+      inline node_pointer
+      get_new_node_for_insert(const_reference r_val, false_type);
+
+      inline node_pointer
+      get_new_node_for_insert(const_reference r_val, true_type);
+
+#ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+      template<typename Metadata_>
+      static void
+      trace_node_metadata(const_node_pointer p_nd, type_to_type<Metadata_>);
+
+      static void
+      trace_node_metadata(const_node_pointer, type_to_type<null_left_child_next_sibling_heap_node_metadata>);
+
+#endif // #ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+    private:
+      static node_allocator s_node_allocator;
+
+      static no_throw_copies_t s_no_throw_copies_ind;
+    };
+
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
new file mode 100644
index 000000000000..e3460add5ee5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
@@ -0,0 +1,129 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node.hpp
+ * Contains an implementation struct for this type of heap's node.
+ */
+
+#ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NODE_HPP
+#define PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NODE_HPP
+
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Value_Type, typename Metadata_Type, class Allocator>
+    struct left_child_next_sibling_heap_node_
+    {
+    private:
+      typedef
+      left_child_next_sibling_heap_node_<
+      Value_Type,
+      Metadata_Type,
+      Allocator>
+      this_type;
+
+    public:
+      typedef typename Allocator::size_type size_type;
+
+      typedef
+      typename Allocator::template rebind<
+	this_type>::other::pointer
+      node_pointer;
+
+      typedef Value_Type value_type;
+
+      typedef Metadata_Type metadata_type;
+
+    public:
+      value_type m_value;
+
+      metadata_type m_metadata;
+
+      node_pointer m_p_l_child;
+
+      node_pointer m_p_next_sibling;
+
+      node_pointer m_p_prev_or_parent;
+    };
+
+    template<typename Value_Type, class Allocator>
+    struct left_child_next_sibling_heap_node_<
+      Value_Type,
+      null_left_child_next_sibling_heap_node_metadata,
+      Allocator>
+    {
+    private:
+      typedef
+      left_child_next_sibling_heap_node_<
+      Value_Type,
+      null_left_child_next_sibling_heap_node_metadata,
+      Allocator>
+      this_type;
+
+    public:
+      typedef typename Allocator::size_type size_type;
+
+      typedef
+      typename Allocator::template rebind<
+	this_type>::other::pointer
+      node_pointer;
+
+      typedef Value_Type value_type;
+
+    public:
+      value_type m_value;
+
+      node_pointer m_p_l_child;
+
+      node_pointer m_p_next_sibling;
+
+      node_pointer m_p_prev_or_parent;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NODE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp
new file mode 100644
index 000000000000..1716fd1aa644
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file null_metadata.hpp
+ * Contains an implementation struct for this type of heap's node.
+ */
+
+#ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NULL_METADATA_HPP
+#define PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NULL_METADATA_HPP
+
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    struct null_left_child_next_sibling_heap_node_metadata
+    { };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_LEFT_CHILD_NEXT_SIBLING_HEAP_NULL_METADATA_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..b7503c2caf46
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
@@ -0,0 +1,62 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn() const
+{
+  return (*this);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..5c0d9acc11dd
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
@@ -0,0 +1,101 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+#ifdef PB_DS_LC_NS_HEAP_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  std::cerr << std::endl;
+
+  trace_node(m_p_root, 0);
+
+  std::cerr << std::endl;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace_node(const_node_pointer p_nd, size_type level)
+{
+  while (p_nd != NULL)
+    {
+      for (size_type i = 0; i < level; ++i)
+	std::cerr << ' ';
+
+      std::cerr << p_nd <<
+	" prev = " << p_nd->m_p_prev_or_parent <<
+	" next " << p_nd->m_p_next_sibling <<
+	" left = " << p_nd->m_p_l_child << " ";
+
+      trace_node_metadata(p_nd, type_to_type<node_metadata>());
+
+      std::cerr << p_nd->m_value << std::endl;
+
+      trace_node(p_nd->m_p_l_child, level + 1);
+
+      p_nd = p_nd->m_p_next_sibling;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Metadata_>
+void
+PB_DS_CLASS_C_DEC::
+trace_node_metadata(const_node_pointer p_nd, type_to_type<Metadata_>)
+{
+  std::cerr << "(" << p_nd->m_metadata << ") ";
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace_node_metadata(const_node_pointer, type_to_type<null_left_child_next_sibling_heap_node_metadata>)
+{ }
+
+#endif // #ifdef PB_DS_LC_NS_HEAP_TRACE_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..b9cc9dd81c63
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
@@ -0,0 +1,165 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_fn_imps.hpp
+ * Contains implementations of PB_DS_CLASS_NAME.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::entry_allocator
+PB_DS_CLASS_C_DEC::s_entry_allocator;
+
+PB_DS_CLASS_T_DEC
+Eq_Fn PB_DS_CLASS_C_DEC::s_eq_fn;
+
+PB_DS_CLASS_T_DEC
+null_lu_metadata PB_DS_CLASS_C_DEC::s_null_lu_metadata;
+
+PB_DS_CLASS_T_DEC
+Update_Policy PB_DS_CLASS_C_DEC::s_update_policy;
+
+PB_DS_CLASS_T_DEC
+type_to_type<
+  typename PB_DS_CLASS_C_DEC::update_metadata> PB_DS_CLASS_C_DEC::s_metadata_type_indicator;
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    insert(*(first_it++));
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME() :
+  m_p_l(NULL)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(It first_it, It last_it) :
+  m_p_l(NULL)
+{
+  copy_from_range(first_it, last_it);
+
+  PB_DS_DBG_ONLY(assert_valid(););
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+#ifdef PB_DS_LU_MAP_DEBUG_
+  PB_DS_MAP_DEBUG_BASE_C_DEC(),
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
+  m_p_l(NULL)
+{
+  try
+    {
+
+      for (const_iterator it = other.begin(); it != other.end(); ++it)
+        {
+	  entry_pointer p_l =
+	    allocate_new_entry(                   * it,  PB_DS_TYPES_TRAITS_C_DEC::m_no_throw_copies_indicator);
+
+	  p_l->m_p_next = m_p_l;
+
+	  m_p_l = p_l;
+        }
+    }
+  catch(...)
+    {
+      deallocate_all();
+
+      throw;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    PB_DS_DBG_ONLY(map_debug_base::swap(other);)
+
+    std::swap(m_p_l, other.m_p_l);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+deallocate_all()
+{
+  entry_pointer p_l = m_p_l;
+
+  while (p_l != NULL)
+    {
+      entry_pointer p_next_l = p_l->m_p_next;
+
+      actual_erase_entry(p_l);
+
+      p_l = p_next_l;
+    }
+
+  m_p_l = NULL;
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~PB_DS_CLASS_NAME()
+{
+  deallocate_all();
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..a48c17db8043
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
@@ -0,0 +1,66 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains implementations of cc_ht_map_'s debug-mode functions.
+ */
+
+#ifdef PB_DS_LU_MAP_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  size_type calc_size = 0;
+
+  for (const_iterator it = begin(); it != end(); ++it)
+    {
+      map_debug_base::check_key_exists(PB_DS_V2F(*it));
+
+      ++calc_size;
+    }
+
+  map_debug_base::check_size(calc_size);
+}
+
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
new file mode 100644
index 000000000000..41a493dd7761
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
@@ -0,0 +1,66 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file entry_metadata_base.hpp
+ * Contains an implementation for a list update map.
+ */
+
+#ifndef PB_DS_LU_MAP_ENTRY_METADATA_BASE_HPP
+#define PB_DS_LU_MAP_ENTRY_METADATA_BASE_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+    template<typename Metadata>
+    struct lu_map_entry_metadata_base
+    {
+      Metadata m_update_metadata;
+    };
+    
+    template<>
+    struct lu_map_entry_metadata_base<null_lu_metadata>
+    { };  
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_LU_MAP_ENTRY_METADATA_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..5800540b2cbb
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
@@ -0,0 +1,162 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains implementations of lu_map_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase(const_key_reference r_key)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    if (m_p_l == NULL)
+      return false;
+
+  if (s_eq_fn(r_key, PB_DS_V2F(m_p_l->m_value)))
+    {
+      entry_pointer p_next = m_p_l->m_p_next;
+
+      actual_erase_entry(m_p_l);
+
+      m_p_l = p_next;
+
+      return true;
+    }
+
+  entry_pointer p_l = m_p_l;
+
+  while (p_l->m_p_next != NULL)
+    if (s_eq_fn(r_key, PB_DS_V2F(p_l->m_p_next->m_value)))
+      {
+	erase_next(p_l);
+
+	return true;
+      }
+    else
+      p_l = p_l->m_p_next;
+
+  return false;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  deallocate_all();
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    size_type num_ersd = 0;
+
+  while (m_p_l != NULL&&  pred(m_p_l->m_value))
+    {
+      entry_pointer p_next = m_p_l->m_p_next;
+
+      ++num_ersd;
+
+      actual_erase_entry(m_p_l);
+
+      m_p_l = p_next;
+    }
+
+  if (m_p_l == NULL)
+    return num_ersd;
+
+  entry_pointer p_l = m_p_l;
+
+  while (p_l->m_p_next != NULL)
+    {
+      if (pred(p_l->m_p_next->m_value))
+        {
+	  ++num_ersd;
+
+	  erase_next(p_l);
+        }
+      else
+	p_l = p_l->m_p_next;
+    }
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+    return (num_ersd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_next(entry_pointer p_l)
+{
+  PB_DS_DBG_ASSERT(p_l != NULL);
+  PB_DS_DBG_ASSERT(p_l != m_p_l);
+  PB_DS_DBG_ASSERT(p_l->m_p_next != NULL);
+
+  entry_pointer p_next_l = p_l->m_p_next->m_p_next;
+
+  actual_erase_entry(p_l->m_p_next);
+
+  p_l->m_p_next = p_next_l;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+actual_erase_entry(entry_pointer p_l)
+{
+  PB_DS_DBG_ONLY(map_debug_base::erase_existing(
+						PB_DS_V2F(p_l->m_value));)
+
+    p_l->~entry();
+
+  s_entry_allocator.deallocate(p_l, 1);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
new file mode 100644
index 000000000000..ce8d995b212e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains implementations of lu_map_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::entry_pointer
+PB_DS_CLASS_C_DEC::
+find_imp(const_key_reference r_key) const
+{
+  if (m_p_l == NULL)
+    return NULL;
+
+  if (s_eq_fn(r_key, PB_DS_V2F(m_p_l->m_value)))
+    {
+      apply_update(m_p_l, s_metadata_type_indicator);
+
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key);)
+
+        return m_p_l;
+    }
+
+  entry_pointer p_l = m_p_l;
+
+  while (p_l->m_p_next != NULL)
+    {
+      entry_pointer p_next = p_l->m_p_next;
+
+      if (s_eq_fn(r_key, PB_DS_V2F(p_next->m_value)))
+        {
+	  if (apply_update(p_next, s_metadata_type_indicator))
+            {
+	      p_l->m_p_next = p_next->m_p_next;
+
+	      p_next->m_p_next = m_p_l;
+
+	      m_p_l = p_next;
+
+	      return m_p_l;
+            }
+
+	  return p_next;
+        }
+      else
+	p_l = p_next;
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+    return NULL;
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Metadata>
+inline bool
+PB_DS_CLASS_C_DEC::
+apply_update(entry_pointer p_l, type_to_type<Metadata>)
+{
+  return s_update_policy(p_l->m_update_metadata);
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+apply_update(entry_pointer, type_to_type<null_lu_metadata>)
+{
+  return s_update_policy(s_null_lu_metadata);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
new file mode 100644
index 000000000000..56bc9bebb186
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
@@ -0,0 +1,69 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains implementations of lu_map_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (std::distance(begin(), end()));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_entry_allocator.max_size());
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (m_p_l == NULL);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..ad42590c4089
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
@@ -0,0 +1,134 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains implementations of lu_map_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline std::pair<
+  typename PB_DS_CLASS_C_DEC::point_iterator,
+  bool>
+PB_DS_CLASS_C_DEC::
+insert(const_reference r_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    entry_pointer p_l = find_imp(PB_DS_V2F(r_val));
+
+  if (p_l != NULL)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(
+						      PB_DS_V2F(r_val));)
+
+        return std::make_pair(point_iterator(&p_l->m_value), false);
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+							  PB_DS_V2F(r_val));)
+
+    p_l = allocate_new_entry(r_val, PB_DS_TYPES_TRAITS_C_DEC::m_no_throw_copies_indicator);
+
+  p_l->m_p_next = m_p_l;
+
+  m_p_l = p_l;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return std::make_pair(point_iterator(&p_l->m_value), true);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::entry_pointer
+PB_DS_CLASS_C_DEC::
+allocate_new_entry(const_reference r_val, false_type)
+{
+  entry_pointer p_l = s_entry_allocator.allocate(1);
+
+  cond_dealtor_t cond(p_l);
+
+  new (const_cast<void* >(
+			  static_cast<const void* >(&p_l->m_value)))
+    value_type(r_val);
+
+  cond.set_no_action();
+
+  PB_DS_DBG_ONLY(map_debug_base::insert_new(
+					    PB_DS_V2F(r_val));)
+
+    init_entry_metadata(p_l, s_metadata_type_indicator);
+
+  return p_l;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::entry_pointer
+PB_DS_CLASS_C_DEC::
+allocate_new_entry(const_reference    r_val, true_type)
+{
+  entry_pointer p_l = s_entry_allocator.allocate(1);
+
+  new (&p_l->m_value) value_type(r_val);
+
+  PB_DS_DBG_ONLY(map_debug_base::insert_new(
+					    PB_DS_V2F(r_val));)
+
+    init_entry_metadata(p_l, s_metadata_type_indicator);
+
+  return p_l;
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Metadata>
+inline void
+PB_DS_CLASS_C_DEC::
+init_entry_metadata(entry_pointer p_l, type_to_type<Metadata>)
+{
+  new (&p_l->m_update_metadata) Metadata(s_update_policy());
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+init_entry_metadata(entry_pointer, type_to_type<null_lu_metadata>)
+{ }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
new file mode 100644
index 000000000000..3c76377aa45d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterators_fn_imps.hpp
+ * Contains implementations of lu_map_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+begin()
+{
+  if (m_p_l == NULL)
+    {
+      PB_DS_DBG_ASSERT(empty());
+
+      return (end());
+    }
+
+  return (iterator(&m_p_l->m_value, m_p_l, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin() const
+{
+  if (m_p_l == NULL)
+    {
+      PB_DS_DBG_ASSERT(empty());
+
+      return (end());
+    }
+
+  return (iterator(&m_p_l->m_value, m_p_l,
+		   const_cast<PB_DS_CLASS_C_DEC* >(this)));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+end()
+{
+  return (iterator(NULL, NULL, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end() const
+{
+  return (const_iterator(NULL, NULL,
+			 const_cast<PB_DS_CLASS_C_DEC* const>(this)));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
new file mode 100644
index 000000000000..5451f56ae096
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
@@ -0,0 +1,500 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file lu_map_.hpp
+ * Contains a list update map.
+ */
+
+#include <utility>
+#include <iterator>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+#include <ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp>
+#include <ext/pb_ds/exception.hpp>
+#ifdef PB_DS_LU_MAP_DEBUG_
+#include <ext/pb_ds/detail/map_debug_base.hpp>
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
+#ifdef PB_DS_LU_MAP_TRACE_
+#include <iostream>
+#endif // PB_DS_LU_MAP_TRACE_
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_LU_MAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_LU_MAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Eq_Fn,		\
+						class Allocator,	\
+						class Update_Policy>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    lu_map_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    lu_map_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC					\
+    PB_DS_CLASS_NAME<						\
+						Key,		\
+						Mapped,		\
+						Eq_Fn,		\
+						Allocator,	\
+						Update_Policy>
+
+#define PB_DS_TYPES_TRAITS_C_DEC				\
+    types_traits<				\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						false>
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#define PB_DS_MAP_DEBUG_BASE_C_DEC					\
+    map_debug_base<					\
+									Key, \
+									Eq_Fn, \
+									typename Allocator::template rebind< \
+													     Key>::other::const_reference>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#define PB_DS_EP2VP(X)& ((X)->m_value)
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped_Data()
+#define PB_DS_EP2VP(X)& ((X)->m_value.first)
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#ifdef PB_DS_LU_MAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_LU_MAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
+
+    /* Skip to the lu, my darling. */
+
+    // list-based (with updates) associative container.
+    template<typename Key,
+	     typename Mapped,
+	     class Eq_Fn,
+	     class Allocator,
+	     class Update_Policy>
+    class PB_DS_CLASS_NAME :
+#ifdef PB_DS_LU_MAP_DEBUG_
+      protected PB_DS_MAP_DEBUG_BASE_C_DEC,
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
+      public PB_DS_TYPES_TRAITS_C_DEC
+    {
+
+    private:
+
+      struct entry : public lu_map_entry_metadata_base<
+      typename Update_Policy::metadata_type>
+      {
+	typename PB_DS_TYPES_TRAITS_C_DEC::value_type m_value;
+
+	typename Allocator::template rebind<entry>::other::pointer m_p_next;
+      };
+
+      typedef
+      typename Allocator::template rebind<entry>::other
+      entry_allocator;
+
+      typedef typename entry_allocator::pointer entry_pointer;
+
+      typedef typename entry_allocator::const_pointer const_entry_pointer;
+
+      typedef typename entry_allocator::reference entry_reference;
+
+      typedef
+      typename entry_allocator::const_reference
+      const_entry_reference;
+
+      typedef
+      typename Allocator::template rebind<entry_pointer>::other
+      entry_pointer_allocator;
+
+      typedef typename entry_pointer_allocator::pointer entry_pointer_array;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type_;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer_;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer
+      const_pointer_;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference_;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference_;
+
+#define PB_DS_GEN_POS entry_pointer
+
+#include <ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/point_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/const_iterator.hpp>
+#include <ext/pb_ds/detail/unordered_iterator/iterator.hpp>
+
+#undef PB_DS_GEN_POS
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Eq_Fn eq_fn;
+
+      typedef Allocator allocator;
+
+      typedef Update_Policy update_policy;
+
+      typedef typename Update_Policy::metadata_type update_metadata;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_pointer key_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_pointer
+      const_key_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_reference
+      const_key_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::mapped_type mapped_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_pointer
+      mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_reference
+      mapped_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef point_iterator_ point_iterator;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+      typedef const_point_iterator_ point_iterator;
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+      typedef const_point_iterator_ const_point_iterator;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef iterator_ iterator;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+      typedef const_iterator_ iterator;
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+      typedef const_iterator_ const_iterator;
+
+    public:
+
+      PB_DS_CLASS_NAME();
+
+      PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      virtual
+      ~PB_DS_CLASS_NAME();
+
+      template<typename It>
+      PB_DS_CLASS_NAME(It first_it, It last_it);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      inline size_type
+      size() const;
+
+      inline size_type
+      max_size() const;
+
+      inline bool
+      empty() const;
+
+      inline mapped_reference
+      operator[](const_key_reference r_key)
+      {
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  return insert(std::make_pair(r_key, mapped_type())).first->second;
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+	insert(r_key);
+
+	return (traits_base::s_null_mapped);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+      }
+
+      inline std::pair<
+	point_iterator,
+	bool>
+      insert(const_reference r_val);
+
+      inline point_iterator
+      find(const_key_reference r_key)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  entry_pointer p_e = find_imp(r_key);
+
+	return point_iterator(p_e == NULL? NULL :& p_e->m_value);
+      }
+
+      inline const_point_iterator
+      find(const_key_reference r_key) const
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  entry_pointer p_e = find_imp(r_key);
+
+	return const_point_iterator(p_e == NULL? NULL :& p_e->m_value);
+      }
+
+      inline bool
+      erase(const_key_reference r_key);
+
+      template<typename Pred>
+      inline size_type
+      erase_if(Pred pred);
+
+      void
+      clear();
+
+      inline iterator
+      begin();
+
+      inline const_iterator
+      begin() const;
+
+      inline iterator
+      end();
+
+      inline const_iterator
+      end() const;
+
+#ifdef PB_DS_LU_MAP_DEBUG_
+
+      void
+      assert_valid() const;
+
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
+
+#ifdef PB_DS_LU_MAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // PB_DS_LU_MAP_TRACE_
+
+    private:
+      typedef PB_DS_TYPES_TRAITS_C_DEC traits_base;
+
+#ifdef PB_DS_LU_MAP_DEBUG_
+      typedef PB_DS_MAP_DEBUG_BASE_C_DEC map_debug_base;
+#endif // #ifdef PB_DS_LU_MAP_DEBUG_
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::
+      no_throw_copies_false_type
+      no_throw_copies_false_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::
+      no_throw_copies_true_type
+      no_throw_copies_true_type;
+
+    protected:
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+    private:
+
+      inline entry_pointer
+      allocate_new_entry(const_reference r_val, false_type);
+
+      inline entry_pointer
+      allocate_new_entry(const_reference r_val, true_type);
+
+      template<typename Metadata>
+      inline static void
+      init_entry_metadata(entry_pointer p_l, type_to_type<Metadata>);
+
+      inline static void
+      init_entry_metadata(entry_pointer p_l, type_to_type<null_lu_metadata>);
+
+      void
+      deallocate_all();
+
+      void
+      erase_next(entry_pointer p_l);
+
+      void
+      actual_erase_entry(entry_pointer p_l);
+
+      void
+      inc_it_state(const_pointer& r_p_value, entry_pointer& r_pos) const
+      {
+	r_pos = r_pos->m_p_next;
+
+	r_p_value = (r_pos == NULL)? NULL :& r_pos->m_value;
+      }
+
+      template<typename Metadata>
+      inline static bool
+      apply_update(entry_pointer p_l, type_to_type<Metadata>);
+
+      inline static bool
+      apply_update(entry_pointer p_l, type_to_type<null_lu_metadata>);
+
+      inline entry_pointer
+      find_imp(const_key_reference r_key) const;
+
+    private:
+      mutable entry_pointer m_p_l;
+
+      typedef cond_dealtor< entry, Allocator> cond_dealtor_t;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      friend class iterator_;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      friend class const_iterator_;
+
+      static entry_allocator s_entry_allocator;
+
+      static Eq_Fn s_eq_fn;
+
+      static Update_Policy s_update_policy;
+
+      static type_to_type<update_metadata> s_metadata_type_indicator;
+
+      static null_lu_metadata s_null_lu_metadata;
+    };
+
+#include <ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp>
+#include <ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp>
+#include <ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_TYPES_TRAITS_C_DEC
+
+#undef PB_DS_MAP_DEBUG_BASE_C_DEC
+
+#undef PB_DS_CLASS_NAME
+
+#undef PB_DS_V2F
+#undef PB_DS_EP2VP
+#undef PB_DS_V2S
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..f406bd828424
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
@@ -0,0 +1,69 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains implementations of lu_map_.
+ */
+
+#ifdef PB_DS_LU_MAP_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  std::cerr << m_p_l << std::endl << std::endl;
+
+  const_entry_pointer p_l = m_p_l;
+
+  while (p_l != NULL)
+    {
+      std::cerr << PB_DS_V2F(p_l->m_value) << std::endl;
+
+      p_l = p_l->m_p_next;
+    }
+
+  std::cerr << std::endl;
+}
+
+#endif // #ifdef PB_DS_LU_MAP_TRACE_
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp
new file mode 100644
index 000000000000..744f72b48ca0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file counter_lu_metadata.hpp
+ * Contains implementation of a lu counter policy's metadata.
+ */
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Size_Type>
+    class counter_lu_policy_base;
+
+    // A list-update metadata type that moves elements to the front of the list based on the counter algorithm.
+    template<typename Size_Type = size_t>
+    class counter_lu_metadata
+    {
+
+    public:
+
+      typedef Size_Type size_type;
+
+    private:
+      counter_lu_metadata(size_type init_count) : m_count(init_count)
+      { }
+
+    private:
+      mutable size_type m_count;
+
+      friend class counter_lu_policy_base<Size_Type>;
+    };
+
+    template<typename Size_Type>
+    class counter_lu_policy_base;
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Size_Type>
+
+#define PB_DS_CLASS_C_DEC					\
+    counter_lu_policy_base<					\
+						Size_Type>
+
+    template<typename Size_Type>
+    class counter_lu_policy_base
+    {
+    protected:
+      typedef Size_Type size_type;
+
+    protected:
+      counter_lu_metadata<
+      Size_Type>
+      operator()(size_type max_size) const;
+
+      template<typename Metadata_Reference>
+      bool
+      operator()(Metadata_Reference r_data, size_type m_max_count) const;
+    };
+
+    PB_DS_CLASS_T_DEC
+    counter_lu_metadata<
+      Size_Type>
+    PB_DS_CLASS_C_DEC::
+    operator()(size_type m_max_count) const
+    {
+      return (counter_lu_metadata<Size_Type>(rand() % m_max_count));
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Metadata_Reference>
+    inline bool
+    PB_DS_CLASS_C_DEC::
+    operator()(Metadata_Reference r_data, size_type m_max_count) const
+    {
+      if (++r_data.m_count != m_max_count)
+	return (false);
+
+      r_data.m_count = 0;
+
+      return (true);
+    }
+
+  } // namespace detail
+} // namespace pb_ds
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp
new file mode 100644
index 000000000000..2d0521ab1f8f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp
@@ -0,0 +1,62 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file counter_lu_policy_imp.hpp
+ * Contains a lu counter policy implementation.
+ */
+
+PB_DS_CLASS_T_DEC
+detail::counter_lu_metadata<
+  typename Allocator::size_type>
+PB_DS_CLASS_C_DEC::
+operator()() const
+{
+  return (base_type::operator()(max_count));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+operator()(metadata_reference r_data) const
+{
+  return (base_type::operator()(r_data, max_count));
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp
new file mode 100644
index 000000000000..0a6180cd558e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp
@@ -0,0 +1,65 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file mtf_lu_policy_imp.hpp
+ * Contains a move-to-front policy implementation.
+ */
+
+PB_DS_CLASS_T_DEC
+null_lu_metadata PB_DS_CLASS_C_DEC::s_metadata;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::metadata_type
+PB_DS_CLASS_C_DEC::
+operator()() const
+{
+  return s_metadata;
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+operator()(metadata_reference /*r_data*/) const
+{
+  return true;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
new file mode 100644
index 000000000000..d16a629424e6
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_update_policy.hpp
+ * Contains a sample policy for list update containers.
+ */
+
+#ifndef PB_DS_SAMPLE_UPDATE_POLICY_HPP
+#define PB_DS_SAMPLE_UPDATE_POLICY_HPP
+
+// A sample list-update policy.
+class sample_update_policy
+{
+
+public:
+
+  // Default constructor.
+  sample_update_policy();
+
+  // Copy constructor.
+  sample_update_policy(const sample_update_policy& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_update_policy& other);
+
+protected:
+
+  // Metadata on which this functor operates.
+  typedef some_metadata_type metadata_type;
+
+protected:
+
+  // Creates a metadata object.
+  metadata_type
+  operator()() const;
+
+  // Decides whether a metadata object should be moved to the front of the list. A list-update based containers object will call this method to decide whether to move a node to the front of the list. The method shoule return true if the node should be moved to the front of the list.
+  bool
+  operator()(metadata_reference r_data) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_UPDATE_POLICY_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/map_debug_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/map_debug_base.hpp
new file mode 100644
index 000000000000..b154a9baf066
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/map_debug_base.hpp
@@ -0,0 +1,438 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file map_debug_base.hpp
+ * Contains a debug-mode base for all maps.
+ */
+
+#ifndef PB_DS_MAP_DEBUG_BASE_HPP
+#define PB_DS_MAP_DEBUG_BASE_HPP
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#include <assert.h>
+#include <list>
+#include <utility>
+#include <pb_ds/testsuite/regression/res_mng/dbg_ex_allocator.hpp>
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+#ifdef PB_DS_MAP_DEBUG_BASE_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_MAP_DEBUG_BASE_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_MAP_DEBUG_BASE_DEBUG
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Key, class Eq_Fn, typename Const_Key_Reference>
+
+#define PB_DS_CLASS_C_DEC						\
+    map_debug_base<							\
+						Key,			\
+						Eq_Fn,			\
+						Const_Key_Reference>
+
+    template<typename Key, class Eq_Fn, typename Const_Key_Reference>
+    class map_debug_base
+    {
+    private:
+      typedef typename std::allocator< Key> key_allocator;
+
+      typedef typename key_allocator::size_type size_type;
+
+      typedef Const_Key_Reference const_key_reference;
+
+    protected:
+      map_debug_base();
+
+      map_debug_base(const PB_DS_CLASS_C_DEC& other);
+
+      ~map_debug_base();
+
+      inline void
+      insert_new(const_key_reference r_key);
+
+      inline void
+      erase_existing(const_key_reference r_key);
+
+      void
+      clear();
+
+      inline void
+      check_key_exists(const_key_reference r_key) const;
+
+      inline void
+      check_key_does_not_exist(const_key_reference r_key) const;
+
+      inline void
+      check_size(size_type size) const;
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      template<typename Cmp_Fn>
+      void
+      split(const_key_reference r_key, Cmp_Fn cmp_fn, PB_DS_CLASS_C_DEC& other);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+    private:
+      typedef std::list< Key> key_set;
+
+      typedef typename key_set::iterator key_set_iterator;
+
+      typedef typename key_set::const_iterator const_key_set_iterator;
+
+    private:
+#ifdef PB_DS_MAP_DEBUG_BASE_DEBUG
+      void
+      assert_valid() const;
+#endif // #ifdef PB_DS_MAP_DEBUG_BASE_DEBUG
+
+      const_key_set_iterator
+      find(const_key_reference r_key) const;
+
+      key_set_iterator
+      find(const_key_reference r_key);
+
+    private:
+      key_set m_key_set;
+
+      Eq_Fn m_eq;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    map_debug_base()
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    map_debug_base(const PB_DS_CLASS_C_DEC& other) :
+      m_key_set(other.m_key_set)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ~map_debug_base()
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    insert_new(const_key_reference r_key)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	pb_ds::test::dbg_ex_allocator<char> alloc;
+
+      const double orig_throw_prob = alloc.get_throw_prob();
+
+      alloc.set_throw_prob(0);
+
+      if (find(r_key) != m_key_set.end())
+	{
+	  std::cerr << "insert_new " << r_key << std::endl;
+
+	  abort();
+	}
+
+      try
+	{
+	  m_key_set.push_back(r_key);
+	}
+      catch(...)
+	{
+	  std::cerr << "insert_new 1" << r_key << std::endl;
+
+	  abort();
+	}
+
+      alloc.set_throw_prob(orig_throw_prob);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    erase_existing(const_key_reference r_key)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	key_set_iterator it = find(r_key);
+
+      if (it == m_key_set.end())
+	{
+	  std::cerr << "erase_existing " << r_key << std::endl;
+
+	  abort();
+	}
+
+      m_key_set.erase(it);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    clear()
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	m_key_set.clear();
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    check_key_exists(const_key_reference r_key) const
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	if (find(r_key) == m_key_set.end())
+	  {
+	    std::cerr << "check_key_exists " << r_key << std::endl;
+
+	    abort();
+	  }
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    check_key_does_not_exist(const_key_reference r_key) const
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	if (find(r_key) != m_key_set.end())
+	  {
+	    std::cerr << "check_key_does_not_exist " << r_key << std::endl;
+
+	    abort();
+	  }
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    check_size(size_type size) const
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	const size_type key_set_size = m_key_set.size();
+
+      if (size != key_set_size)
+	{
+	  std::cerr << "check_size " << size << " " << key_set_size << std::endl;
+
+	  abort();
+	}
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	m_key_set.swap(other.m_key_set);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::const_key_set_iterator
+    PB_DS_CLASS_C_DEC::
+    find(const_key_reference r_key) const
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	for (const_key_set_iterator it = m_key_set.begin(); it != m_key_set.end();
+	     ++it)
+	  if (m_eq(*it, r_key))
+            return (it);
+
+      return (m_key_set.end());
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::key_set_iterator
+    PB_DS_CLASS_C_DEC::
+    find(const_key_reference r_key)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	key_set_iterator it = m_key_set.begin();
+
+      while (it != m_key_set.end())
+	{
+	  if (m_eq(*it, r_key))
+            return (it);
+
+	  ++it;
+	}
+
+      return (it);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+#ifdef PB_DS_MAP_DEBUG_BASE_DEBUG
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    assert_valid() const
+    {
+      const_key_set_iterator prime_it = m_key_set.begin();
+
+      while (prime_it != m_key_set.end())
+	{
+	  const_key_set_iterator sec_it = prime_it;
+
+	  ++sec_it;
+
+	  while (sec_it != m_key_set.end())
+	    {
+	      assert(!m_eq(*sec_it, * prime_it));
+	      assert(!m_eq(*prime_it, * sec_it));
+
+	      ++sec_it;
+	    }
+
+	  ++prime_it;
+	}
+    }
+#endif // #ifdef PB_DS_MAP_DEBUG_BASE_DEBUG
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cmp_Fn>
+    void
+    PB_DS_CLASS_C_DEC::
+    split(const_key_reference r_key, Cmp_Fn cmp_fn, PB_DS_CLASS_C_DEC& other)
+    {
+      pb_ds::test::dbg_ex_allocator<char> alloc;
+
+      const double orig_throw_prob = alloc.get_throw_prob();
+
+      alloc.set_throw_prob(0);
+
+      other.clear();
+
+      key_set_iterator it = m_key_set.begin();
+
+      while (it != m_key_set.end())
+        if (cmp_fn(r_key, * it))
+	  {
+            other.insert_new(*it);
+
+            it = m_key_set.erase(it);
+	  }
+        else
+	  ++it;
+
+      alloc.set_throw_prob(orig_throw_prob);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    join(PB_DS_CLASS_C_DEC& other)
+    {
+      pb_ds::test::dbg_ex_allocator<char> alloc;
+
+      const double orig_throw_prob = alloc.get_throw_prob();
+
+      alloc.set_throw_prob(0);
+
+      key_set_iterator it = other.m_key_set.begin();
+
+      while (it != other.m_key_set.end())
+	{
+	  insert_new(*it);
+
+	  it = other.m_key_set.erase(it);
+	}
+
+      PB_DS_DBG_ASSERT(other.m_key_set.empty());
+
+      alloc.set_throw_prob(orig_throw_prob);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#endif // #ifndef PB_DS_MAP_DEBUG_BASE_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp
new file mode 100644
index 000000000000..47e6e67b332b
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cond_dtor.hpp
+ * Contains a conditional destructor
+ */
+
+template<typename Size_Type>
+class cond_dtor
+{
+public:
+  cond_dtor(value_vector a_vec, iterator& r_last_it, Size_Type total_size) : m_a_vec(a_vec),
+									     m_r_last_it(r_last_it),
+									     m_max_size(total_size),
+									     m_no_action(false)
+  { }
+
+  ~cond_dtor()
+  {
+    if (m_no_action)
+      return;
+
+    iterator it = m_a_vec;
+
+    while (it != m_r_last_it)
+      {
+	it->~value_type();
+
+	++it;
+      }
+
+    if (m_max_size > 0)
+      value_allocator().deallocate(m_a_vec, m_max_size);
+  }
+
+  inline void
+  set_no_action()
+  {
+    m_no_action = true;
+  }
+
+protected:
+  value_vector m_a_vec;
+
+  iterator& m_r_last_it;
+
+  const Size_Type m_max_size;
+
+  bool m_no_action;
+};
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..642f79b8243a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,325 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::value_allocator
+PB_DS_CLASS_C_DEC::s_value_alloc;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::metadata_allocator
+PB_DS_CLASS_C_DEC::s_metadata_alloc;
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_OV_TREE_CLASS_NAME() :
+  m_a_values(NULL),
+  m_a_metadata(NULL),
+  m_end_it(NULL),
+  m_size(0)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
+  cmp_fn_base(r_cmp_fn),
+  m_a_values(NULL),
+  m_a_metadata(NULL),
+  m_end_it(NULL),
+  m_size(0)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update) :
+  cmp_fn_base(r_cmp_fn),
+  node_update(r_node_update),
+  m_a_values(NULL),
+  m_a_metadata(NULL),
+  m_end_it(NULL),
+  m_size(0)
+{
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_OV_TREE_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+#ifdef PB_DS_OV_TREE_DEBUG_
+  PB_DS_MAP_DEBUG_BASE_C_DEC(other),
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+#ifdef PB_DS_TREE_TRACE
+  PB_DS_TREE_TRACE_BASE_C_DEC(other),
+#endif // #ifdef PB_DS_TREE_TRACE
+  cmp_fn_base(other),
+  node_update(other),
+  m_a_values(NULL),
+  m_a_metadata(NULL),
+  m_end_it(NULL),
+  m_size(0)
+{
+  copy_from_ordered_range(other.begin(), other.end());
+
+  PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+inline void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+  typedef
+    std::map<
+    key_type,
+    mapped_type,
+    Cmp_Fn,
+    typename Allocator::template rebind<
+    value_type>::other>
+    map_type;
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+  typedef
+    std::set<
+    key_type,
+    Cmp_Fn,
+    typename Allocator::template rebind<
+    Key>::other>
+    map_type;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+  map_type m(first_it, last_it);
+
+  copy_from_ordered_range(m.begin(), m.end());
+}
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_ordered_range(It first_it, It last_it)
+{
+  const size_type size = std::distance(first_it, last_it);
+
+  if (size == 0)
+    return;
+
+  value_vector a_values = s_value_alloc.allocate(size);
+
+  iterator target_it = a_values;
+  It source_it = first_it;
+  It source_end_it = last_it;
+
+  cond_dtor<size_type> cd(a_values, target_it, size);
+
+  while (source_it != source_end_it)
+    {
+      new (const_cast<void* >(
+			      static_cast<const void* >(target_it)))
+	value_type(*source_it++);
+
+      ++target_it;
+    }
+
+  reallocate_metadata((node_update* )this, size);
+
+  cd.set_no_action();
+
+  m_a_values = a_values;
+
+  m_size = size;
+
+  m_end_it = m_a_values + m_size;
+
+  update(PB_DS_node_begin_imp(), (node_update* )this);
+
+#ifdef PB_DS_OV_TREE_DEBUG_
+  const_iterator dbg_it = m_a_values;
+
+  while (dbg_it != m_end_it)
+    {
+      map_debug_base::insert_new(PB_DS_V2F(*dbg_it));
+
+      dbg_it++;
+    }
+
+  PB_DS_CLASS_C_DEC::assert_valid();
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+}
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_ordered_range(It first_it, It last_it, It other_first_it, It other_last_it)
+{
+  clear();
+
+  const size_type size =
+    std::distance(first_it, last_it) +
+    std::distance(other_first_it, other_last_it);
+
+  value_vector a_values = s_value_alloc.allocate(size);
+
+  iterator target_it = a_values;
+  It source_it = first_it;
+  It source_end_it = last_it;
+
+  cond_dtor<size_type> cd(a_values, target_it, size);
+
+  while (source_it != source_end_it)
+    {
+      new (const_cast<void* >(
+			      static_cast<const void* >(target_it)))
+	value_type(*source_it++);
+
+      ++target_it;
+    }
+
+  source_it = other_first_it;
+  source_end_it = other_last_it;
+
+  while (source_it != source_end_it)
+    {
+      new (const_cast<void* >(
+			      static_cast<const void* >(target_it)))
+	value_type(*source_it++);
+
+      ++target_it;
+    }
+
+  reallocate_metadata((node_update* )this, size);
+
+  cd.set_no_action();
+
+  m_a_values = a_values;
+
+  m_size = size;
+
+  m_end_it = m_a_values + m_size;
+
+  update(PB_DS_node_begin_imp(), (node_update* )this);
+
+#ifdef PB_DS_OV_TREE_DEBUG_
+  const_iterator dbg_it = m_a_values;
+
+  while (dbg_it != m_end_it)
+    {
+      map_debug_base::insert_new(PB_DS_V2F(*dbg_it));
+
+      dbg_it++;
+    }
+
+  PB_DS_CLASS_C_DEC::assert_valid();
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    value_swap(other);
+
+  std::swap((Cmp_Fn& )(*this), (Cmp_Fn& )other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+value_swap(PB_DS_CLASS_C_DEC& other)
+{
+  std::swap(m_a_values, other.m_a_values);
+
+  std::swap(m_a_metadata, other.m_a_metadata);
+
+  std::swap(m_size, other.m_size);
+
+  std::swap(m_end_it, other.m_end_it);
+
+  PB_DS_DBG_ONLY(map_debug_base::swap(other);)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~PB_DS_OV_TREE_CLASS_NAME()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    cond_dtor<size_type> cd(m_a_values, m_end_it, m_size);
+
+  reallocate_metadata((node_update* )this, 0);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+update(node_iterator /*it*/, null_node_update_pointer)
+{ }
+
+PB_DS_CLASS_T_DEC
+template<typename Node_Update>
+void
+PB_DS_CLASS_C_DEC::
+update(node_iterator nd_it, Node_Update* p_update)
+{
+  const_node_iterator end_it = PB_DS_node_end_imp();
+
+  if (nd_it == end_it)
+    return;
+
+  update(nd_it.get_l_child(), p_update);
+  update(nd_it.get_r_child(), p_update);
+
+  node_update::operator()(nd_it, end_it);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..d5e9b5eab5a5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
@@ -0,0 +1,109 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+#ifdef PB_DS_OV_TREE_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  std::cout << "av1" << std::endl;
+
+  if (m_a_values == NULL || m_end_it == NULL || m_size == 0)
+    PB_DS_DBG_ASSERT(m_a_values == NULL&&  m_end_it == NULL&& 
+		     m_size == 0);
+
+  std::cout << "av2" << std::endl;
+
+  assert_iterators();
+
+  std::cout << "av3" << std::endl;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_iterators() const
+{
+  map_debug_base::check_size(m_size);
+
+  size_type iterated_num = 0;
+
+  const_iterator prev_it = end();
+
+  PB_DS_DBG_ASSERT( m_end_it == m_a_values + m_size);
+
+  for (const_iterator it = begin(); it != end(); ++it)
+    {
+      ++iterated_num;
+
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(
+						      PB_DS_V2F(*it));)
+
+        PB_DS_DBG_ASSERT(lower_bound(
+				     PB_DS_V2F(*it)) == it);
+
+      const_iterator upper_bound_it = upper_bound(
+						  PB_DS_V2F(*it));
+
+      --upper_bound_it;
+
+      PB_DS_DBG_ASSERT(upper_bound_it == it);
+
+      if (prev_it != end())
+	PB_DS_DBG_ASSERT(Cmp_Fn::operator()(
+					    PB_DS_V2F(*prev_it),
+					    PB_DS_V2F(*it)));
+
+      prev_it = it;
+    }
+
+  PB_DS_DBG_ASSERT(iterated_num == m_size);
+}
+
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..5fbf91b171a7
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
@@ -0,0 +1,242 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    if (m_size == 0)
+      {
+        PB_DS_DBG_ONLY(assert_valid();)
+
+	  return;
+      }
+    else
+      {
+        reallocate_metadata((node_update* )this, 0);
+
+        cond_dtor<size_type> cd(m_a_values, m_end_it, m_size);
+      }
+
+  PB_DS_DBG_ONLY(map_debug_base::clear();)
+
+    m_a_values = NULL;
+
+  m_size = 0;
+
+  m_end_it = m_a_values;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+#ifdef PB_DS_REGRESSION
+    typename Allocator::group_throw_prob_adjustor adjust(m_size);
+#endif // #ifdef PB_DS_REGRESSION
+
+  size_type new_size = 0;
+
+  size_type num_val_ersd = 0;
+
+  iterator source_it = m_a_values;
+
+  for (source_it = begin(); source_it != m_end_it; ++source_it)
+    if (!pred(*source_it))
+      ++new_size;
+    else
+      ++num_val_ersd;
+
+  if (new_size == 0)
+    {
+      clear();
+
+      return (num_val_ersd);
+    }
+
+  value_vector a_new_values = s_value_alloc.allocate(new_size);
+
+  iterator target_it = a_new_values;
+
+  cond_dtor<size_type> cd(a_new_values, target_it, new_size);
+
+  PB_DS_DBG_ONLY(map_debug_base::clear());
+
+  for (source_it = begin(); source_it != m_end_it; ++source_it)
+    {
+      if (!pred(*source_it))
+        {
+	  new (const_cast<void* >(
+				  static_cast<const void* >(target_it)))
+	    value_type(*source_it);
+
+	  PB_DS_DBG_ONLY(map_debug_base::insert_new(
+						    PB_DS_V2F(*source_it)));
+
+	  ++target_it;
+        }
+    }
+
+  reallocate_metadata((node_update* )this, new_size);
+
+  cd.set_no_action();
+
+  {
+    cond_dtor<size_type> cd1(m_a_values, m_end_it, m_size);
+  }
+
+  m_a_values = a_new_values;
+
+  m_size = new_size;
+
+  m_end_it = target_it;
+
+  update(node_begin(), (node_update* )this);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (num_val_ersd);
+}
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+It
+PB_DS_CLASS_C_DEC::
+erase_imp(It it)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    if (it == end())
+      return end();
+
+  PB_DS_DBG_ONLY(
+		 PB_DS_CLASS_C_DEC::check_key_exists(PB_DS_V2F(*it));)
+
+#ifdef PB_DS_REGRESSION
+    typename Allocator::group_throw_prob_adjustor adjust(m_size);
+#endif // #ifdef PB_DS_REGRESSION
+
+  PB_DS_DBG_ASSERT(m_size > 0);
+
+  value_vector a_values = s_value_alloc.allocate(m_size - 1);
+
+  iterator source_it = begin();
+  iterator source_end_it = end();
+  iterator target_it = a_values;
+  iterator ret_it = end();
+
+  cond_dtor<size_type> cd(a_values, target_it, m_size - 1);
+
+  PB_DS_DBG_ONLY(size_type cnt = 0;)
+
+    while (source_it != source_end_it)
+      {
+        if (source_it != it)
+	  {
+            PB_DS_DBG_ONLY(++cnt;)
+	      PB_DS_DBG_ASSERT(cnt != m_size);
+
+            new (const_cast<void* >(
+				    static_cast<const void* >(target_it)))
+	      value_type(*source_it);
+
+            ++target_it;
+	  }
+        else
+	  ret_it = target_it;
+
+        ++source_it;
+      }
+
+  PB_DS_DBG_ASSERT(m_size > 0);
+
+  reallocate_metadata((node_update* )this, m_size - 1);
+
+  cd.set_no_action();
+
+  PB_DS_DBG_ONLY(
+		 PB_DS_CLASS_C_DEC::erase_existing(PB_DS_V2F(*it));)
+    {
+      cond_dtor<size_type> cd1(m_a_values, m_end_it, m_size);
+    }
+
+  m_a_values = a_values;
+
+  --m_size;
+
+  m_end_it = m_a_values + m_size;
+
+  update(node_begin(), (node_update* )this);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (It(ret_it));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase(const_key_reference r_key)
+{
+  point_iterator it = find(r_key);
+
+  if (it == end())
+    return (false);
+
+  erase(it);
+
+  return (true);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
new file mode 100644
index 000000000000..27fb02fe74cf
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
@@ -0,0 +1,71 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (m_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_value_alloc.max_size());
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (size() == 0);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..4f0481d58a03
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
@@ -0,0 +1,71 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+reallocate_metadata(null_node_update_pointer, size_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+template<typename Node_Update_>
+void
+PB_DS_CLASS_C_DEC::
+reallocate_metadata(Node_Update_* , size_type new_size)
+{
+  metadata_pointer a_new_metadata_vec =(new_size == 0)? NULL : s_metadata_alloc.allocate(new_size);
+
+  if (m_a_metadata != NULL)
+    {
+      for (size_type i = 0; i < m_size; ++i)
+	m_a_metadata[i].~metadata_type();
+
+      s_metadata_alloc.deallocate(m_a_metadata, m_size);
+    }
+
+  std::swap(m_a_metadata, a_new_metadata_vec);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
new file mode 100644
index 000000000000..f982c9136b15
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
@@ -0,0 +1,130 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterators_fn_imps.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+node_begin() const
+{
+  return (PB_DS_node_begin_imp());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+node_end() const
+{
+  return (PB_DS_node_end_imp());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+node_begin()
+{
+  return (PB_DS_node_begin_imp());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+node_end()
+{
+  return (PB_DS_node_end_imp());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+PB_DS_node_begin_imp() const
+{
+  return (const_node_iterator(
+			      const_cast<pointer>(mid_pointer(begin(), end())),
+			      const_cast<pointer>(begin()),
+			      const_cast<pointer>(end()),(m_a_metadata == NULL)?
+			      NULL :
+			      mid_pointer(m_a_metadata, m_a_metadata + m_size)));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+PB_DS_node_end_imp() const
+{
+  return (const_node_iterator(
+			      end(),
+			      end(),
+			      end(),(m_a_metadata == NULL)?
+			      NULL :
+			      m_a_metadata + m_size));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+PB_DS_node_begin_imp()
+{
+  return (node_iterator(
+			mid_pointer(begin(), end()),
+			begin(),
+			end(),(m_a_metadata == NULL)?
+			NULL :
+			mid_pointer(m_a_metadata, m_a_metadata + m_size)));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+PB_DS_node_end_imp()
+{
+  return (node_iterator(
+			end(),
+			end(),
+			end(),(m_a_metadata == NULL)?
+			NULL :
+			m_a_metadata + m_size));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
new file mode 100644
index 000000000000..c9a852a7ed53
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
@@ -0,0 +1,348 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_iterators.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+#ifndef PB_DS_OV_TREE_NODE_ITERATORS_HPP
+#define PB_DS_OV_TREE_NODE_ITERATORS_HPP
+
+#ifdef PB_DS_OV_TREE_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+    typedef								\
+    static_assert_dumclass<				\
+									sizeof(static_assert<(bool)(E)>)> \
+    UNIQUE##static_assert_type
+
+#ifdef PB_DS_OV_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X);
+#define PB_DS_DBG_VERIFY(X) PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_OV_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) ((void)0)
+#define PB_DS_DBG_VERIFY(X) X
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+
+#define PB_DS_OV_TREE_CONST_NODE_ITERATOR_C_DEC			\
+    ov_tree_node_const_it_<					\
+						Value_Type,	\
+						Metadata_Type,	\
+						Allocator>
+
+    // Const node reference.
+    template<typename Value_Type, typename Metadata_Type, class Allocator>
+    class ov_tree_node_const_it_
+    {
+
+    protected:
+      typedef
+      typename Allocator::template rebind<
+      Value_Type>::other::pointer
+      pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Value_Type>::other::const_pointer
+      const_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Metadata_Type>::other::const_pointer
+      const_metadata_pointer;
+
+      typedef PB_DS_OV_TREE_CONST_NODE_ITERATOR_C_DEC this_type;
+
+    protected:
+
+      template<typename Ptr>
+      inline static Ptr
+      mid_pointer(Ptr p_begin, Ptr p_end)
+      {
+	PB_DS_DBG_ASSERT(p_end >= p_begin);
+
+	return (p_begin + (p_end - p_begin) / 2);
+      }
+
+    public:
+
+      typedef trivial_iterator_tag iterator_category;
+
+      typedef trivial_iterator_difference_type difference_type;
+
+      typedef
+      typename Allocator::template rebind<
+	Value_Type>::other::const_pointer
+      value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	Value_Type>::type>::other::const_pointer
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	Value_Type>::type>::other::const_pointer
+      const_reference;
+
+      typedef Metadata_Type metadata_type;
+
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::const_reference
+      const_metadata_reference;
+
+    public:
+      inline
+      ov_tree_node_const_it_(const_pointer p_nd = NULL,  const_pointer p_begin_nd = NULL,  const_pointer p_end_nd = NULL,  const_metadata_pointer p_metadata = NULL) : m_p_value(const_cast<pointer>(p_nd)),
+																				       m_p_begin_value(const_cast<pointer>(p_begin_nd)),
+																				       m_p_end_value(const_cast<pointer>(p_end_nd)),
+																				       m_p_metadata(p_metadata)
+      { }
+
+      inline const_reference
+      operator*() const
+      {
+	return (m_p_value);
+      }
+
+      inline const_metadata_reference
+      get_metadata() const
+      {
+	enum
+	  {
+	    has_metadata =
+	    !is_same<
+	    Metadata_Type,
+	    null_node_metadata>::value
+	  };
+
+	PB_DS_STATIC_ASSERT(should_have_metadata, has_metadata);
+
+	PB_DS_DBG_ASSERT(m_p_metadata != NULL);
+
+	return (*m_p_metadata);
+      }
+
+      inline this_type
+      get_l_child() const
+      {
+	if (m_p_begin_value == m_p_value)
+	  return (this_type(                m_p_begin_value,  m_p_begin_value,  m_p_begin_value));
+
+	const_metadata_pointer p_begin_metadata =
+	  m_p_metadata - (m_p_value - m_p_begin_value);
+
+	return (this_type(
+			  mid_pointer(m_p_begin_value, m_p_value),
+			  m_p_begin_value,
+			  m_p_value,
+			  mid_pointer(p_begin_metadata, m_p_metadata)));
+      }
+
+      inline this_type
+      get_r_child() const
+      {
+	if (m_p_value == m_p_end_value)
+	  return (this_type(                m_p_end_value,  m_p_end_value,  m_p_end_value));
+
+	const_metadata_pointer p_end_metadata =
+	  m_p_metadata + (m_p_end_value - m_p_value);
+
+	return (this_type(
+			  mid_pointer(m_p_value + 1, m_p_end_value),
+			  m_p_value + 1,
+			  m_p_end_value,(m_p_metadata == NULL)?
+			  NULL : mid_pointer(m_p_metadata + 1, p_end_metadata)));
+      }
+
+      inline bool
+      operator==(const this_type& other) const
+      {
+	const bool is_end = m_p_begin_value == m_p_end_value;
+	const bool is_other_end = other.m_p_begin_value == other.m_p_end_value;
+
+	if (is_end)
+	  return (is_other_end);
+
+	if (is_other_end)
+	  return (is_end);
+
+	return (m_p_value == other.m_p_value);
+      }
+
+      inline bool
+      operator!=(const this_type& other) const
+      {
+	return (!operator==(other));
+      }
+
+    public:
+      pointer m_p_value;
+      pointer m_p_begin_value;
+      pointer m_p_end_value;
+
+      const_metadata_pointer m_p_metadata;
+    };
+
+#define PB_DS_OV_TREE_NODE_ITERATOR_C_DEC			\
+    ov_tree_node_it_<						\
+						Value_Type,	\
+						Metadata_Type,	\
+						Allocator>
+
+    // Node reference.
+    template<typename Value_Type, typename Metadata_Type, class Allocator>
+    class ov_tree_node_it_ : public PB_DS_OV_TREE_CONST_NODE_ITERATOR_C_DEC
+    {
+
+    private:
+      typedef PB_DS_OV_TREE_NODE_ITERATOR_C_DEC this_type;
+
+      typedef PB_DS_OV_TREE_CONST_NODE_ITERATOR_C_DEC base_type;
+
+      typedef typename base_type::pointer pointer;
+
+      typedef typename base_type::const_pointer const_pointer;
+
+      typedef
+      typename base_type::const_metadata_pointer
+      const_metadata_pointer;
+
+    public:
+
+      typedef trivial_iterator_tag iterator_category;
+
+      typedef trivial_iterator_difference_type difference_type;
+
+      typedef
+      typename Allocator::template rebind<
+	Value_Type>::other::pointer
+      value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	Value_Type>::type>::other::pointer
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	typename remove_const<
+	Value_Type>::type>::other::pointer
+      const_reference;
+
+    public:
+      inline
+      ov_tree_node_it_(const_pointer p_nd = NULL,  const_pointer p_begin_nd = NULL,  const_pointer p_end_nd = NULL,  const_metadata_pointer p_metadata = NULL) : base_type(                p_nd,  p_begin_nd,  p_end_nd,  p_metadata)
+      { }
+
+      // Access.
+      inline reference
+      operator*() const
+      {
+	return (reference(base_type::m_p_value));
+      }
+
+      // Returns the node reference associated with the left node.
+      inline ov_tree_node_it_
+      get_l_child() const
+      {
+	if (base_type::m_p_begin_value == base_type::m_p_value)
+	  return (this_type(                base_type::m_p_begin_value,  base_type::m_p_begin_value,  base_type::m_p_begin_value));
+
+	const_metadata_pointer p_begin_metadata =
+	  base_type::m_p_metadata - (base_type::m_p_value - base_type::m_p_begin_value);
+
+	return (this_type(
+			  base_type::mid_pointer(base_type::m_p_begin_value, base_type::m_p_value),
+			  base_type::m_p_begin_value,
+			  base_type::m_p_value,
+			  base_type::mid_pointer(p_begin_metadata, base_type::m_p_metadata)));
+      }
+
+      // Returns the node reference associated with the right node.
+      inline ov_tree_node_it_
+      get_r_child() const
+      {
+	if (base_type::m_p_value == base_type::m_p_end_value)
+	  return (this_type(                base_type::m_p_end_value,  base_type::m_p_end_value,  base_type::m_p_end_value));
+
+	const_metadata_pointer p_end_metadata =
+	  base_type::m_p_metadata + (base_type::m_p_end_value - base_type::m_p_value);
+
+	return (this_type(
+			  base_type::mid_pointer(base_type::m_p_value + 1, base_type::m_p_end_value),
+			  base_type::m_p_value + 1,
+			  base_type::m_p_end_value,(base_type::m_p_metadata == NULL)?
+			  NULL : base_type::mid_pointer(base_type::m_p_metadata + 1, p_end_metadata)));
+      }
+
+    };
+
+#undef PB_DS_OV_TREE_NODE_ITERATOR_C_DEC
+
+#undef PB_DS_OV_TREE_CONST_NODE_ITERATOR_C_DEC
+
+#undef PB_DS_STATIC_ASSERT
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_OV_TREE_NODE_ITERATORS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
new file mode 100644
index 000000000000..e338abf75292
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
@@ -0,0 +1,696 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file ov_tree_map_.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+#include <map>
+#include <set>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/detail/eq_fn/eq_by_less.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+#include <ext/pb_ds/detail/map_debug_base.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/detail/tree_trace_base.hpp>
+#include <utility>
+#include <functional>
+#include <algorithm>
+#include <vector>
+#include <assert.h>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_OV_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X);
+#define PB_DS_DBG_VERIFY(X) PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_OV_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) ((void)0)
+#define PB_DS_DBG_VERIFY(X) X
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Cmp_Fn,		\
+						class Node_And_It_Traits, \
+						class Allocator>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_OV_TREE_CLASS_NAME		\
+    ov_tree_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_OV_TREE_CLASS_NAME		\
+    ov_tree_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CONST_NODE_ITERATOR_NAME ov_tree_const_node_iterator_data_
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CONST_NODE_ITERATOR_NAME ov_tree_const_node_iterator_no_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC						\
+    PB_DS_OV_TREE_CLASS_NAME<						\
+							Key,		\
+							Mapped,		\
+							Cmp_Fn,		\
+							Node_And_It_Traits, \
+							Allocator>
+
+#define PB_DS_TYPES_TRAITS_C_DEC				\
+    types_traits<						\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						false>
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#define PB_DS_MAP_DEBUG_BASE_C_DEC					\
+    map_debug_base<					\
+									Key, \
+									eq_by_less<Key, Cmp_Fn>, \
+									typename Allocator::template rebind< \
+													     Key>::other::const_reference>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#define PB_DS_EP2VP(X)& ((X)->m_value)
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped_Data()
+#define PB_DS_EP2VP(X)& ((X)->m_value.first)
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#ifdef PB_DS_TREE_TRACE
+#define PB_DS_TREE_TRACE_BASE_C_DEC					\
+    tree_trace_base<							\
+									typename Node_And_It_Traits::const_node_iterator, \
+									typename Node_And_It_Traits::node_iterator, \
+									Cmp_Fn,	\
+									false, \
+									Allocator>
+#endif // #ifdef PB_DS_TREE_TRACE
+
+    // Ordered-vector tree associative-container.
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     class Node_And_It_Traits,
+	     class Allocator>
+    class PB_DS_OV_TREE_CLASS_NAME :
+#ifdef PB_DS_OV_TREE_DEBUG_
+      protected PB_DS_MAP_DEBUG_BASE_C_DEC,
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+#ifdef PB_DS_TREE_TRACE
+      public PB_DS_TREE_TRACE_BASE_C_DEC,
+#endif // #ifdef PB_DS_TREE_TRACE
+      public Cmp_Fn,
+      public Node_And_It_Traits::node_update,
+      public PB_DS_TYPES_TRAITS_C_DEC
+    {
+
+    private:
+      typedef
+      typename remove_const<
+      typename PB_DS_TYPES_TRAITS_C_DEC::value_type>::type
+      non_const_value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	non_const_value_type>::other
+      value_allocator;
+
+      typedef typename value_allocator::pointer value_vector;
+
+      typedef PB_DS_TYPES_TRAITS_C_DEC traits_base;
+
+      typedef Cmp_Fn cmp_fn_base;
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+      typedef PB_DS_MAP_DEBUG_BASE_C_DEC map_debug_base;
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer mapped_pointer_;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer
+      const_mapped_pointer_;
+
+      typedef typename Node_And_It_Traits::metadata_type metadata_type;
+
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other
+      metadata_allocator;
+
+      typedef typename metadata_allocator::pointer metadata_pointer;
+
+      typedef
+      typename metadata_allocator::const_reference
+      const_metadata_reference;
+
+      typedef typename metadata_allocator::reference metadata_reference;
+
+      typedef
+      typename Node_And_It_Traits::null_node_update_pointer
+      null_node_update_pointer;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef typename Node_And_It_Traits::node_update node_update;
+
+      typedef Allocator allocator;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_pointer key_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_pointer
+      const_key_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_reference
+      const_key_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::mapped_type mapped_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_pointer
+      mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_reference
+      mapped_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference;
+
+      typedef const_pointer const_point_iterator;
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef pointer point_iterator;
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+      typedef const_point_iterator point_iterator;
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      typedef const_point_iterator const_iterator;
+
+      typedef point_iterator iterator;
+
+#include <ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp>
+
+      typedef
+      typename Node_And_It_Traits::const_node_iterator
+      const_node_iterator;
+
+      typedef typename Node_And_It_Traits::node_iterator node_iterator;
+
+    public:
+
+      PB_DS_OV_TREE_CLASS_NAME();
+
+      PB_DS_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
+
+      PB_DS_OV_TREE_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update);
+
+      PB_DS_OV_TREE_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      ~PB_DS_OV_TREE_CLASS_NAME();
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+      inline size_type
+      max_size() const;
+
+      inline bool
+      empty() const;
+
+      inline size_type
+      size() const;
+
+      Cmp_Fn& 
+      get_cmp_fn();
+
+      const Cmp_Fn& 
+      get_cmp_fn() const;
+
+      inline mapped_reference
+      operator[](const_key_reference r_key)
+      {
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  point_iterator it = lower_bound(r_key);
+
+	if (it != end()&&  !Cmp_Fn::operator()(
+					       r_key,
+					       PB_DS_V2F(*it)))
+	  {
+	    PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+	    PB_DS_DBG_ONLY(assert_valid();)
+
+	      return (it->second);
+	  }
+
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  return (insert_new_val(it,
+				 std::make_pair(
+						r_key,
+						mapped_type()))->second);
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+	insert(r_key);
+
+	return (traits_base::s_null_mapped);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+      }
+
+      inline std::pair<point_iterator, bool>
+      insert(const_reference r_value)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  const_key_reference r_key = PB_DS_V2F(r_value);
+
+	point_iterator it = lower_bound(r_key);
+
+	if (it != end()&&  !Cmp_Fn::operator()(
+					       r_key,
+					       PB_DS_V2F(*it)))
+	  {
+	    PB_DS_DBG_ONLY(assert_valid();)
+
+	      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+	    return (std::make_pair(it, false));
+	  }
+
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  return (std::make_pair(insert_new_val(it, r_value), true));
+      }
+
+      inline point_iterator
+      lower_bound(const_key_reference r_key)
+      {
+	pointer it = m_a_values;
+
+	pointer e_it = m_a_values + m_size;
+
+	while (it != e_it)
+	  {
+	    pointer mid_it = it + ((e_it - it) >> 1);
+
+	    if (cmp_fn_base::operator()(
+					PB_DS_V2F(*mid_it),
+					r_key))
+	      it = ++mid_it;
+	    else
+	      e_it = mid_it;
+	  }
+
+	return (it);
+      }
+
+      inline const_point_iterator
+      lower_bound(const_key_reference r_key) const
+      {
+	return (const_cast<PB_DS_CLASS_C_DEC& >(*this).lower_bound(r_key));
+      }
+
+      inline point_iterator
+      upper_bound(const_key_reference r_key)
+      {
+	iterator pot_it = lower_bound(r_key);
+
+	if (pot_it != end()&&  !Cmp_Fn::operator()(
+						   r_key,
+						   PB_DS_V2F(*pot_it)))
+	  {
+	    PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+	    return (++pot_it);
+	  }
+
+	PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key));
+
+	return (pot_it);
+      }
+
+      inline const_point_iterator
+      upper_bound(const_key_reference r_key) const
+      {
+	return (const_cast<PB_DS_CLASS_C_DEC& >(*this).upper_bound(r_key));
+      }
+
+      inline point_iterator
+      find(const_key_reference r_key)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  iterator pot_it = lower_bound(r_key);
+
+	if (pot_it != end()&&  !Cmp_Fn::operator()(
+						   r_key,
+						   PB_DS_V2F(*pot_it)))
+	  {
+	    PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+	    return (pot_it);
+	  }
+
+	PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key));
+
+	return (end());
+      }
+
+      inline const_point_iterator
+      find(const_key_reference r_key) const
+      {
+	return (const_cast<PB_DS_CLASS_C_DEC& >(*this).find(r_key));
+      }
+
+      bool
+      erase(const_key_reference r_key);
+
+      template<typename Pred>
+      inline size_type
+      erase_if(Pred pred);
+
+      inline iterator
+      erase(iterator it)
+      {
+	return (erase_imp<iterator>(it));
+      }
+
+      void
+      clear();
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+      void
+      split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other);
+
+      inline iterator
+      begin()
+      {
+	return (m_a_values);
+      }
+
+      inline const_iterator
+      begin() const
+      {
+	return (m_a_values);
+      }
+
+      inline iterator
+      end()
+      {
+	return (m_end_it);
+      }
+
+      inline const_iterator
+      end() const
+      {
+	return (m_end_it);
+      }
+
+      inline const_node_iterator
+      node_begin() const;
+
+      inline const_node_iterator
+      node_end() const;
+
+      inline node_iterator
+      node_begin();
+
+      inline node_iterator
+      node_end();
+
+    private:
+
+      inline void
+      update(node_iterator /*it*/, null_node_update_pointer);
+
+      template<typename Node_Update>
+      void
+      update(node_iterator it, Node_Update* p_update);
+
+      void
+      reallocate_metadata(null_node_update_pointer, size_type);
+
+      template<typename Node_Update_>
+      void
+      reallocate_metadata(Node_Update_* p_update, size_type new_size);
+
+      template<typename It>
+      void
+      copy_from_ordered_range(It first_it, It last_it);
+
+      void
+      value_swap(PB_DS_CLASS_C_DEC& other);
+
+      template<typename It>
+      void
+      copy_from_ordered_range(It first_it, It last_it, It other_first_it, It other_last_it);
+
+      template<typename Ptr>
+      inline static Ptr
+      mid_pointer(Ptr p_begin, Ptr p_end)
+      {
+	PB_DS_DBG_ASSERT(p_end >= p_begin);
+
+	return (p_begin + (p_end - p_begin) / 2);
+      }
+
+      inline iterator
+      insert_new_val(iterator it, const_reference r_value)
+      {
+	PB_DS_DBG_ONLY(assert_valid();)
+
+#ifdef PB_DS_REGRESSION
+	  typename Allocator::group_throw_prob_adjustor adjust(m_size);
+#endif // #ifdef PB_DS_REGRESSION
+
+	PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+								PB_DS_V2F(r_value)));
+
+	value_vector a_values = s_value_alloc.allocate(m_size + 1);
+
+	iterator source_it = begin();
+	iterator source_end_it = end();
+	iterator target_it = a_values;
+	iterator ret_it;
+
+	cond_dtor<size_type> cd(a_values, target_it, m_size + 1);
+
+	while (source_it != it)
+	  {
+	    new (const_cast<void* >(
+				    static_cast<const void* >(target_it)))
+	      value_type(*source_it++);
+
+	    ++target_it;
+	  }
+
+	new (const_cast<void* >(
+				static_cast<const void* >(ret_it = target_it)))
+	  value_type(r_value);
+
+	++target_it;
+
+	while (source_it != source_end_it)
+	  {
+	    new (const_cast<void* >(
+				    static_cast<const void* >(target_it)))
+	      value_type(*source_it++);
+
+	    ++target_it;
+	  }
+
+	reallocate_metadata((node_update* )this, m_size + 1);
+
+	cd.set_no_action();
+
+	if (m_size != 0)
+	  {
+	    cond_dtor<size_type> cd1(m_a_values, m_end_it, m_size);
+	  }
+
+	++m_size;
+
+	m_a_values = a_values;
+
+	m_end_it = m_a_values + m_size;
+
+	PB_DS_DBG_ONLY(map_debug_base::insert_new(
+						  PB_DS_V2F(r_value)));
+
+	update(node_begin(), (node_update* )this);
+
+	PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+	  return (ret_it);
+      }
+
+#ifdef PB_DS_OV_TREE_DEBUG_
+
+      void
+      assert_valid() const;
+
+      void
+      assert_iterators() const;
+
+#endif // #ifdef PB_DS_OV_TREE_DEBUG_
+
+      template<typename It>
+      It
+      erase_imp(It it);
+
+      inline const_node_iterator
+      PB_DS_node_begin_imp() const;
+
+      inline const_node_iterator
+      PB_DS_node_end_imp() const;
+
+      inline node_iterator
+      PB_DS_node_begin_imp();
+
+      inline node_iterator
+      PB_DS_node_end_imp();
+
+    private:
+      value_vector m_a_values;
+
+      static value_allocator s_value_alloc;
+
+      metadata_pointer m_a_metadata;
+
+      static metadata_allocator s_metadata_alloc;
+
+      iterator m_end_it;
+
+      size_type m_size;
+    };
+
+#include <ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp>
+#include <ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp>
+#include <ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp>
+#include <ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_OV_TREE_CLASS_NAME
+
+#undef PB_DS_TYPES_TRAITS_C_DEC
+
+#undef PB_DS_MAP_DEBUG_BASE_C_DEC
+
+#ifdef PB_DS_TREE_TRACE
+#undef PB_DS_TREE_TRACE_BASE_C_DEC
+#endif // #ifdef PB_DS_TREE_TRACE
+
+#undef PB_DS_V2F
+#undef PB_DS_EP2VP
+#undef PB_DS_V2S
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+#undef PB_DS_CONST_NODE_ITERATOR_NAME
+
+  } // namespace detail
+} // namespace pb_ds
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..adb08a8922f4
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Cmp_Fn& 
+PB_DS_CLASS_C_DEC::
+get_cmp_fn() const
+{
+  return (*this);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..193241f09b0d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
@@ -0,0 +1,179 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    if (m_size == 0)
+      {
+        other.clear();
+
+        PB_DS_DBG_ONLY(assert_valid();)
+	  PB_DS_DBG_ONLY(other.assert_valid();)
+
+	  return;
+      }
+
+  if (Cmp_Fn::operator()(r_key, PB_DS_V2F(*begin())))
+    {
+      value_swap(other);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return;
+    }
+
+  if (!Cmp_Fn::operator()(
+			  r_key,
+			  PB_DS_V2F(*(end() - 1))))
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return;
+    }
+
+  if (m_size == 1)
+    {
+      value_swap(other);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return;
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::join(other);)
+
+    iterator it = upper_bound(r_key);
+
+  PB_DS_CLASS_C_DEC new_other(other, other);
+
+  new_other.copy_from_ordered_range(it, end());
+
+  PB_DS_CLASS_C_DEC new_this(*this, * this);
+
+  new_this.copy_from_ordered_range(begin(), it);
+
+  // No exceptions from this point.
+
+  PB_DS_DBG_ONLY(map_debug_base::split(
+				       r_key,(Cmp_Fn& )(*this),
+				       other);)
+
+    other.update(other.node_begin(), (node_update* )(&other));
+
+  update(node_begin(), (node_update* )this);
+
+  other.value_swap(new_other);
+
+  value_swap(new_this);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    if (other.m_size == 0)
+      return;
+
+  if (m_size == 0)
+    {
+      value_swap(other);
+
+      return;
+    }
+
+  const bool greater = Cmp_Fn::operator()(
+					  PB_DS_V2F(*(end() - 1)),
+					  PB_DS_V2F(*other.begin()));
+
+  const bool lesser = Cmp_Fn::operator()(
+					 PB_DS_V2F(*(other.end() - 1)),
+					 PB_DS_V2F(*begin()));
+
+  if (!greater&&  !lesser)
+    throw join_error();
+
+  PB_DS_CLASS_C_DEC new_this(*this, * this);
+
+  if (greater)
+    new_this.copy_from_ordered_range(
+				     begin(),
+				     end(),
+				     other.begin(),
+				     other.end());
+  else
+    new_this.copy_from_ordered_range(
+				     other.begin(),
+				     other.end(),
+				     begin(),
+				     end());
+
+  // No exceptions from this point.
+
+  PB_DS_DBG_ONLY(map_debug_base::join(other);)
+
+    value_swap(new_this);
+
+  other.clear();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
new file mode 100644
index 000000000000..182c0c8d3930
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/ov_tree_map_/traits.hpp
@@ -0,0 +1,189 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file traits.hpp
+ * Contains an implementation class for ov_tree_.
+ */
+
+#ifndef PB_DS_OV_TREE_NODE_AND_IT_TRAITS_HPP
+#define PB_DS_OV_TREE_NODE_AND_IT_TRAITS_HPP
+
+#include <ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct tree_traits<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      ov_tree_tag,
+      Allocator>
+    {
+    private:
+      typedef
+      typename types_traits<
+      Key,
+      Mapped,
+      Allocator,
+      false>::value_type
+      value_type;
+
+    public:
+      typedef
+      typename tree_node_metadata_selector<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      Allocator>::type
+      metadata_type;
+
+      typedef
+      ov_tree_node_const_it_<
+	value_type,
+	metadata_type,
+	Allocator>
+      const_node_iterator;
+
+      typedef
+      ov_tree_node_it_<
+	value_type,
+	metadata_type,
+	Allocator>
+      node_iterator;
+
+      typedef
+      Node_Update<
+	const_node_iterator,
+	node_iterator,
+	Cmp_Fn,
+	Allocator>
+      node_update;
+
+      typedef
+      pb_ds::null_tree_node_update<
+	const_node_iterator,
+	node_iterator,
+	Cmp_Fn,
+	Allocator>* 
+      null_node_update_pointer;
+    };
+
+    template<typename Key,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct tree_traits<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      ov_tree_tag,
+      Allocator>
+    {
+    private:
+      typedef
+      typename types_traits<
+      Key,
+      null_mapped_type,
+      Allocator,
+      false>::value_type
+      value_type;
+
+    public:
+      typedef
+      typename tree_node_metadata_selector<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      Allocator>::type
+      metadata_type;
+
+      typedef
+      ov_tree_node_const_it_<
+	value_type,
+	metadata_type,
+	Allocator>
+      const_node_iterator;
+
+      typedef const_node_iterator node_iterator;
+
+      typedef
+      Node_Update<
+	const_node_iterator,
+	const_node_iterator,
+	Cmp_Fn,
+	Allocator>
+      node_update;
+
+      typedef
+      pb_ds::null_tree_node_update<
+	const_node_iterator,
+	node_iterator,
+	Cmp_Fn,
+	Allocator>* 
+      null_node_update_pointer;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_OV_TREE_NODE_AND_IT_TRAITS_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..280d10f191c4
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,97 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for a pairing heap.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    push(*(first_it++));
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+pairing_heap_()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+pairing_heap_(const Cmp_Fn& r_cmp_fn) :
+  PB_DS_BASE_C_DEC(r_cmp_fn)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+pairing_heap_(const PB_DS_CLASS_C_DEC& other) :
+  PB_DS_BASE_C_DEC(other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    PB_DS_BASE_C_DEC::swap(other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~pairing_heap_()
+{ }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..115b48cf2256
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for a pairing heap.
+ */
+
+#ifdef PB_DS_PAIRING_HEAP_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  PB_DS_DBG_ASSERT(base_type::m_p_root == NULL ||
+		   base_type::m_p_root->m_p_next_sibling == NULL);
+
+  base_type::assert_valid();
+}
+
+#endif // #ifdef PB_DS_PAIRING_HEAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..4d33eaccba0a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
@@ -0,0 +1,302 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for a pairing heap.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+pop()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  node_pointer p_new_root = join_node_children(base_type::m_p_root);
+  PB_DS_DBG_ONLY(assert_node_consistent(p_new_root, false);)
+
+    if (p_new_root != NULL)
+      p_new_root->m_p_prev_or_parent = NULL;
+
+  base_type::actual_erase_node(base_type::m_p_root);
+
+  base_type::m_p_root = p_new_root;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase(point_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  remove_node(it.m_p_nd);
+
+  base_type::actual_erase_node(it.m_p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+remove_node(node_pointer p_nd)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  node_pointer p_new_child = join_node_children(p_nd);
+
+#ifdef PB_DS_PAIRING_HEAP_DEBUG_
+  if (p_new_child != NULL)
+    base_type::assert_node_consistent(p_new_child, false);
+#endif // #ifdef PB_DS_PAIRING_HEAP_DEBUG_
+
+  if (p_nd == base_type::m_p_root)
+    {
+      if (p_new_child != NULL)
+	p_new_child->m_p_prev_or_parent = NULL;
+
+      base_type::m_p_root = p_new_child;
+
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(base_type::m_p_root, false);)
+
+        return;
+    }
+
+  PB_DS_DBG_ASSERT(p_nd->m_p_prev_or_parent != NULL);
+
+  if (p_nd->m_p_prev_or_parent->m_p_l_child == p_nd)
+    {
+      if (p_new_child != NULL)
+        {
+	  p_new_child->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+	  p_new_child->m_p_next_sibling = p_nd->m_p_next_sibling;
+
+	  if (p_new_child->m_p_next_sibling != NULL)
+	    p_new_child->m_p_next_sibling->m_p_prev_or_parent = p_new_child;
+
+	  p_nd->m_p_prev_or_parent->m_p_l_child = p_new_child;
+
+	  PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd->m_p_prev_or_parent, false);)
+
+            return;
+        }
+
+      p_nd->m_p_prev_or_parent->m_p_l_child = p_nd->m_p_next_sibling;
+
+      if (p_nd->m_p_next_sibling != NULL)
+	p_nd->m_p_next_sibling->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd->m_p_prev_or_parent, false);)
+
+        return;
+    }
+
+  if (p_new_child != NULL)
+    {
+      p_new_child->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+      p_new_child->m_p_next_sibling = p_nd->m_p_next_sibling;
+
+      if (p_new_child->m_p_next_sibling != NULL)
+	p_new_child->m_p_next_sibling->m_p_prev_or_parent = p_new_child;
+
+      p_new_child->m_p_prev_or_parent->m_p_next_sibling = p_new_child;
+
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd->m_p_prev_or_parent, false);)
+
+        return;
+    }
+
+  p_nd->m_p_prev_or_parent->m_p_next_sibling = p_nd->m_p_next_sibling;
+
+  if (p_nd->m_p_next_sibling != NULL)
+    p_nd->m_p_next_sibling->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+  PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd->m_p_prev_or_parent, false);)
+    }
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+join_node_children(node_pointer p_nd)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+
+  node_pointer p_ret = p_nd->m_p_l_child;
+
+  if (p_ret == NULL)
+    return NULL;
+
+  while (p_ret->m_p_next_sibling != NULL)
+    p_ret = forward_join(p_ret, p_ret->m_p_next_sibling);
+
+  while (p_ret->m_p_prev_or_parent != p_nd)
+    p_ret = back_join(p_ret->m_p_prev_or_parent, p_ret);
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_ret, false);)
+
+    return p_ret;
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+forward_join(node_pointer p_nd, node_pointer p_next)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+  PB_DS_DBG_ASSERT(p_nd->m_p_next_sibling == p_next);
+
+  if (Cmp_Fn::operator()(p_nd->m_value, p_next->m_value))
+    {
+      p_next->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+      base_type::make_child_of(p_nd, p_next);
+
+      return p_next->m_p_next_sibling == NULL?
+	p_next :
+	p_next->m_p_next_sibling;
+    }
+
+  if (p_next->m_p_next_sibling != NULL)
+    {
+      p_next->m_p_next_sibling->m_p_prev_or_parent = p_nd;
+
+      p_nd->m_p_next_sibling = p_next->m_p_next_sibling;
+
+      base_type::make_child_of(p_next, p_nd);
+
+      return p_nd->m_p_next_sibling;
+    }
+
+  p_nd->m_p_next_sibling = NULL;
+
+  base_type::make_child_of(p_next, p_nd);
+  PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd, false));
+
+  return p_nd;
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+back_join(node_pointer p_nd, node_pointer p_next)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+  PB_DS_DBG_ASSERT(p_next->m_p_next_sibling == NULL);
+
+  if (Cmp_Fn::operator()(p_nd->m_value, p_next->m_value))
+    {
+      p_next->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+      base_type::make_child_of(p_nd, p_next);
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_next, false));
+
+      return p_next;
+    }
+
+  p_nd->m_p_next_sibling = NULL;
+
+  base_type::make_child_of(p_next, p_nd);
+  PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd, false));
+
+  return p_nd;
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    if (base_type::empty())
+      {
+        PB_DS_DBG_ONLY(assert_valid();)
+
+	  return 0;
+      }
+
+  base_type::to_linked_list();
+
+  node_pointer p_out = base_type::prune(pred);
+
+  size_type ersd = 0;
+
+  while (p_out != NULL)
+    {
+      ++ersd;
+
+      node_pointer p_next = p_out->m_p_next_sibling;
+
+      base_type::actual_erase_node(p_out);
+
+      p_out = p_next;
+    }
+
+  node_pointer p_cur = base_type::m_p_root;
+
+  base_type::m_p_root = NULL;
+
+  while (p_cur != NULL)
+    {
+      node_pointer p_next = p_cur->m_p_next_sibling;
+
+      p_cur->m_p_l_child = p_cur->m_p_next_sibling = p_cur->m_p_prev_or_parent = NULL;
+
+      push_imp(p_cur);
+
+      p_cur = p_next;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return ersd;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
new file mode 100644
index 000000000000..6e6093f7347d
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation class for a pairing heap.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reference
+PB_DS_CLASS_C_DEC::
+top() const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  return base_type::m_p_root->m_value;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..d3ebfbd453e2
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
@@ -0,0 +1,107 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation class for a pairing heap.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+push(const_reference r_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    node_pointer p_new_nd = base_type::get_new_node_for_insert(r_val);
+
+  push_imp(p_new_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return point_iterator(p_new_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+push_imp(node_pointer p_nd)
+{
+  p_nd->m_p_l_child = NULL;
+
+  if (base_type::m_p_root == NULL)
+    {
+      p_nd->m_p_next_sibling = p_nd->m_p_prev_or_parent = NULL;
+
+      base_type::m_p_root = p_nd;
+    }
+  else if (Cmp_Fn::operator()(base_type::m_p_root->m_value, p_nd->m_value))
+    {
+      p_nd->m_p_next_sibling = p_nd->m_p_prev_or_parent = NULL;
+
+      base_type::make_child_of(base_type::m_p_root, p_nd);
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(p_nd, false));
+
+      base_type::m_p_root = p_nd;
+    }
+  else
+    {
+      base_type::make_child_of(p_nd, base_type::m_p_root);
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(base_type::m_p_root, false));
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+modify(point_iterator it, const_reference r_new_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    remove_node(it.m_p_nd);
+
+  it.m_p_nd->m_value = r_new_val;
+
+  push_imp(it.m_p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
new file mode 100644
index 000000000000..e43ef4e0e427
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
@@ -0,0 +1,237 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file pairing_heap_.hpp
+ * Contains an implementation class for a pairing heap.
+ */
+
+/*
+ * Pairing heap:
+ * Michael L. Fredman, Robert Sedgewick, Daniel Dominic Sleator,
+ *    and Robert Endre Tarjan, The Pairing Heap:
+ *    A New Form of Self-Adjusting Heap, Algorithmica, 1(1):111-129, 1986.
+ */
+
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_PAIRING_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_PAIRING_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_PAIRING_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    pairing_heap_<						\
+						Value_Type,	\
+						Cmp_Fn,		\
+						Allocator>
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_BASE_C_DEC						\
+    left_child_next_sibling_heap_<			\
+									Value_Type, \
+									Cmp_Fn,	\
+									null_left_child_next_sibling_heap_node_metadata, \
+									Allocator, \
+									false>
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_BASE_C_DEC						\
+    left_child_next_sibling_heap_<			\
+									Value_Type, \
+									Cmp_Fn,	\
+									null_left_child_next_sibling_heap_node_metadata, \
+									Allocator>
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+    /**
+     * class description = "P4ri|\|g h3ap$">
+     **/
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+    class pairing_heap_ : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+      typedef typename base_type::node_pointer node_pointer;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::pointer
+      pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_pointer
+      const_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::reference
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_point_iterator
+      const_point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::point_iterator point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::iterator iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+
+      pairing_heap_();
+
+      pairing_heap_(const Cmp_Fn& r_cmp_fn);
+
+      pairing_heap_(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      ~pairing_heap_();
+
+      inline point_iterator
+      push(const_reference r_val);
+
+      void
+      modify(point_iterator it, const_reference r_new_val);
+
+      inline const_reference
+      top() const;
+
+      void
+      pop();
+
+      void
+      erase(point_iterator it);
+
+      template<typename Pred>
+      size_type
+      erase_if(Pred pred);
+
+      template<typename Pred>
+      void
+      split(Pred pred, PB_DS_CLASS_C_DEC& other);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+    protected:
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+#ifdef PB_DS_PAIRING_HEAP_DEBUG_
+      void
+      assert_valid() const;
+#endif
+
+    private:
+
+      inline void
+      push_imp(node_pointer p_nd);
+
+      node_pointer
+      join_node_children(node_pointer p_nd);
+
+      node_pointer
+      forward_join(node_pointer p_nd, node_pointer p_next);
+
+      node_pointer
+      back_join(node_pointer p_nd, node_pointer p_next);
+
+      void
+      remove_node(node_pointer p_nd);
+
+    };
+
+#include <ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_BASE_C_DEC
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..1d23cc1359df
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
@@ -0,0 +1,146 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation class for a pairing heap.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+void
+PB_DS_CLASS_C_DEC::
+split(Pred pred, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    other.clear();
+
+  if (base_type::empty())
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return;
+    }
+
+  base_type::to_linked_list();
+
+  node_pointer p_out = base_type::prune(pred);
+
+  while (p_out != NULL)
+    {
+      PB_DS_DBG_ASSERT(base_type::m_size > 0);
+      --base_type::m_size;
+
+      ++other.m_size;
+
+      node_pointer p_next = p_out->m_p_next_sibling;
+
+      p_out->m_p_l_child = p_out->m_p_next_sibling = p_out->m_p_prev_or_parent = NULL;
+
+      other.push_imp(p_out);
+
+      p_out = p_next;
+    }
+
+  PB_DS_DBG_ONLY(other.assert_valid();)
+
+    node_pointer p_cur = base_type::m_p_root;
+
+  base_type::m_p_root = NULL;
+
+  while (p_cur != NULL)
+    {
+      node_pointer p_next = p_cur->m_p_next_sibling;
+
+      p_cur->m_p_l_child = p_cur->m_p_next_sibling = p_cur->m_p_prev_or_parent = NULL;
+
+      push_imp(p_cur);
+
+      p_cur = p_next;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    if (other.m_p_root == NULL)
+      {
+        PB_DS_DBG_ONLY(assert_valid();)
+	  PB_DS_DBG_ONLY(other.assert_valid();)
+
+	  return;
+      }
+
+  if (base_type::m_p_root == NULL)
+    base_type::m_p_root = other.m_p_root;
+  else if (Cmp_Fn::operator()(base_type::m_p_root->m_value, other.m_p_root->m_value))
+    {
+      base_type::make_child_of(base_type::m_p_root, other.m_p_root);
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(other.m_p_root, false));
+
+      base_type::m_p_root = other.m_p_root;
+    }
+  else
+    {
+      base_type::make_child_of(other.m_p_root, base_type::m_p_root);
+      PB_DS_DBG_ONLY(base_type::assert_node_consistent(base_type::m_p_root, false));
+    }
+
+  base_type::m_size += other.m_size;
+
+  other.m_p_root = NULL;
+  other.m_size = 0;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp
new file mode 100644
index 000000000000..4f6d921c77d5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/child_iterator.hpp
@@ -0,0 +1,111 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file child_iterator.hpp
+ * Contains a iterator for a patricia tree.
+ */
+
+struct iterator : public const_iterator
+{
+public:
+  typedef std::forward_iterator_tag iterator_category;
+
+  typedef typename Allocator::difference_type difference_type;
+
+  typedef node_pointer value_type;
+
+  typedef node_pointer_pointer pointer;
+
+  typedef node_pointer_reference reference;
+
+public:
+  inline
+  iterator(node_pointer_pointer p_p_cur = NULL,  node_pointer_pointer p_p_end = NULL) : const_iterator(p_p_cur, p_p_end)
+  { }
+
+  inline bool
+  operator==(const iterator& other) const
+  {
+    return (const_iterator::m_p_p_cur == other.m_p_p_cur);
+  }
+
+  inline bool
+  operator!=(const iterator& other) const
+  {
+    return (const_iterator::m_p_p_cur != other.m_p_p_cur);
+  }
+
+  inline iterator& 
+  operator++()
+  {
+    const_iterator::operator++();
+
+    return (*this);
+  }
+
+  inline iterator
+  operator++(int)
+  {
+    iterator ret_it(*this);
+
+    operator++();
+
+    return (ret_it);
+  }
+
+  node_pointer_pointer
+  operator->()
+  {
+    PB_DS_DBG_ONLY(const_iterator::assert_referencible();)
+
+      return (const_iterator::m_p_p_cur);
+  }
+
+  node_pointer
+  operator*()
+  {
+    PB_DS_DBG_ONLY(const_iterator::assert_referencible();)
+
+      return (*const_iterator::m_p_p_cur);
+  }
+};
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp
new file mode 100644
index 000000000000..17de4e0f1804
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cond_dtor_entry_dealtor.hpp
+ * Contains a binary tree container conditional deallocator
+ */
+
+class cond_dealtor
+{
+public:
+  inline
+  cond_dealtor(leaf_pointer p_nd) : m_p_nd(p_nd),
+				    m_no_action_dtor(false),
+				    m_call_destructor(false)
+  { }
+
+  inline void
+  set_no_action_dtor()
+  {
+    m_no_action_dtor = true;
+  }
+
+  inline void
+  set_call_destructor()
+  {
+    m_call_destructor = true;
+  }
+
+  inline
+  ~cond_dealtor()
+  {
+    if (m_no_action_dtor)
+      return;
+
+    if (m_call_destructor)
+      m_p_nd->~leaf();
+
+    s_leaf_allocator.deallocate(m_p_nd, 1);
+  }
+
+protected:
+  leaf_pointer m_p_nd;
+
+  bool m_no_action_dtor;
+
+  bool m_call_destructor;
+};
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp
new file mode 100644
index 000000000000..d0e1ce98ce84
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file const_child_iterator.hpp
+ * Contains a const_iterator for a patricia tree.
+ */
+
+struct const_iterator
+{
+public:
+  typedef std::forward_iterator_tag iterator_category;
+
+  typedef typename Allocator::difference_type difference_type;
+
+  typedef node_pointer value_type;
+
+  typedef node_pointer_pointer pointer;
+
+  typedef node_pointer_reference reference;
+
+public:
+  inline
+  const_iterator(node_pointer_pointer p_p_cur = NULL,  node_pointer_pointer p_p_end = NULL) : m_p_p_cur(p_p_cur),
+											      m_p_p_end(p_p_end)
+  { }
+
+  inline bool
+  operator==(const const_iterator& other) const
+  {
+    return (m_p_p_cur == other.m_p_p_cur);
+  }
+
+  inline bool
+  operator!=(const const_iterator& other) const
+  {
+    return (m_p_p_cur != other.m_p_p_cur);
+  }
+
+  inline const_iterator& 
+  operator++()
+  {
+    do
+      ++m_p_p_cur;
+    while (m_p_p_cur != m_p_p_end&& * m_p_p_cur == NULL);
+
+    return (*this);
+  }
+
+  inline const_iterator
+  operator++(int)
+  {
+    const_iterator ret_it(*this);
+
+    operator++();
+
+    return (ret_it);
+  }
+
+  const node_pointer_pointer
+  operator->() const
+  {
+    PB_DS_DBG_ONLY(assert_referencible();)
+
+      return (m_p_p_cur);
+  }
+
+  const_node_pointer
+  operator*() const
+  {
+    PB_DS_DBG_ONLY(assert_referencible();)
+
+      return (*m_p_p_cur);
+  }
+
+protected:
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+  void
+  assert_referencible() const
+  {
+    PB_DS_DBG_ASSERT(m_p_p_cur != m_p_p_end&& * m_p_p_cur != NULL);
+  }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+public:
+  node_pointer_pointer m_p_p_cur;
+
+  node_pointer_pointer m_p_p_end;
+};
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..6e39599f0e95
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,262 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::head_allocator
+PB_DS_CLASS_C_DEC::s_head_allocator;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::internal_node_allocator
+PB_DS_CLASS_C_DEC::s_internal_node_allocator;
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::leaf_allocator
+PB_DS_CLASS_C_DEC::s_leaf_allocator;
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME() :
+  m_p_head(s_head_allocator.allocate(1)),
+  m_size(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const e_access_traits& r_e_access_traits) :
+  synth_e_access_traits(r_e_access_traits),
+  m_p_head(s_head_allocator.allocate(1)),
+  m_size(0)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+  map_debug_base(other),
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+  synth_e_access_traits(other),
+  node_update(other),
+  m_p_head(s_head_allocator.allocate(1)),
+  m_size(0)
+{
+  initialize();
+
+  m_size = other.m_size;
+
+  PB_DS_DBG_ONLY(other.assert_valid();)
+
+    if (other.m_p_head->m_p_parent == NULL)
+      {
+        PB_DS_DBG_ONLY(assert_valid();)
+
+	  return;
+      }
+
+  try
+    {
+      m_p_head->m_p_parent =
+	recursive_copy_node(other.m_p_head->m_p_parent);
+    }
+  catch(...)
+    {
+      s_head_allocator.deallocate(m_p_head, 1);
+
+      throw;
+    }
+
+  m_p_head->m_p_min = leftmost_descendant(m_p_head->m_p_parent);
+  m_p_head->m_p_max = rightmost_descendant(m_p_head->m_p_parent);
+
+  m_p_head->m_p_parent->m_p_parent = m_p_head;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    value_swap(other);
+
+  std::swap((e_access_traits& )(*this), (e_access_traits& )other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+value_swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(map_debug_base::swap(other);)
+
+    std::swap(m_p_head, other.m_p_head);
+
+  std::swap(m_size, other.m_size);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~PB_DS_CLASS_NAME()
+{
+  clear();
+
+  s_head_allocator.deallocate(m_p_head, 1);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize()
+{
+  new (m_p_head) head();
+
+  m_p_head->m_p_parent = NULL;
+
+  m_p_head->m_p_min = m_p_head;
+  m_p_head->m_p_max = m_p_head;
+
+  m_size = 0;
+}
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    insert(*(first_it++));
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+recursive_copy_node(const_node_pointer p_other_nd)
+{
+  PB_DS_DBG_ASSERT(p_other_nd != NULL);
+
+  if (p_other_nd->m_type == pat_trie_leaf_node_type)
+    {
+      const_leaf_pointer p_other_leaf =
+	static_cast<const_leaf_pointer>(p_other_nd);
+
+      leaf_pointer p_new_lf = s_leaf_allocator.allocate(1);
+
+      cond_dealtor cond(p_new_lf);
+
+      new (p_new_lf) leaf(p_other_leaf->value());
+
+      apply_update(p_new_lf, (node_update* )this);
+
+      cond.set_no_action_dtor();
+
+      return (p_new_lf);
+    }
+
+  PB_DS_DBG_ASSERT(p_other_nd->m_type ==
+		   pat_trie_internal_node_type);
+
+  node_pointer a_p_children[internal_node::arr_size];
+
+  size_type child_i = 0;
+
+  const_internal_node_pointer p_other_internal_nd =
+    static_cast<const_internal_node_pointer>(p_other_nd);
+
+  typename internal_node::const_iterator child_it =
+    p_other_internal_nd->begin();
+
+  internal_node_pointer p_ret;
+
+  try
+    {
+      while (child_it != p_other_internal_nd->end())
+	a_p_children[child_i++] = recursive_copy_node(*(child_it++));
+
+      p_ret = s_internal_node_allocator.allocate(1);
+    }
+  catch(...)
+    {
+      while (child_i-- > 0)
+	clear_imp(a_p_children[child_i]);
+
+      throw;
+    }
+
+  new (p_ret) internal_node(
+			    p_other_internal_nd->get_e_ind(),
+			    pref_begin(a_p_children[0]));
+
+  --child_i;
+
+  PB_DS_DBG_ASSERT(child_i > 1);
+
+  do
+    p_ret->add_child(
+		     a_p_children[child_i],
+		     pref_begin(a_p_children[child_i]),
+		     pref_end(a_p_children[child_i]),
+		     this);
+  while (child_i-- > 0);
+
+  apply_update(p_ret, (node_update* )this);
+
+  return (p_ret);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..1345913a5aee
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
@@ -0,0 +1,144 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for pat_trie_.
+ */
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  if (m_p_head->m_p_parent != NULL)
+    m_p_head->m_p_parent->assert_valid(this);
+
+  assert_iterators();
+
+  assert_reverse_iterators();
+
+  if (m_p_head->m_p_parent == NULL)
+    {
+      PB_DS_DBG_ASSERT(m_p_head->m_p_min == m_p_head);
+      PB_DS_DBG_ASSERT(m_p_head->m_p_max == m_p_head);
+
+      PB_DS_DBG_ASSERT(empty());
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(m_p_head->m_p_min->m_type == pat_trie_leaf_node_type);
+  PB_DS_DBG_ASSERT(m_p_head->m_p_max->m_type == pat_trie_leaf_node_type);
+
+  PB_DS_DBG_ASSERT(!empty());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_iterators() const
+{
+  size_type calc_size = 0;
+
+  for (const_iterator it = begin(); it != end(); ++it)
+    {
+      ++calc_size;
+
+      map_debug_base::check_key_exists(PB_DS_V2F(*it));
+
+      PB_DS_DBG_ASSERT(lower_bound(PB_DS_V2F(*it)) == it);
+
+      PB_DS_DBG_ASSERT(--upper_bound(PB_DS_V2F(*it)) == it);
+    }
+
+  PB_DS_DBG_ASSERT(calc_size == m_size);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_reverse_iterators() const
+{
+  size_type calc_size = 0;
+
+  for (const_reverse_iterator it = rbegin(); it != rend(); ++it)
+    {
+      ++calc_size;
+
+      const_node_pointer p_nd =
+	const_cast<PB_DS_CLASS_C_DEC* >(this)->find_imp(
+							PB_DS_V2F(*it));
+
+      PB_DS_DBG_ASSERT(p_nd == it.m_p_nd);
+    }
+
+  PB_DS_DBG_ASSERT(calc_size == m_size);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+recursive_count_leafs(const_node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return (0);
+
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    return (1);
+
+  PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_internal_node_type);
+
+  size_type ret = 0;
+
+  for (typename internal_node::const_iterator it =
+	 static_cast<const_internal_node_pointer>(p_nd)->begin();
+       it != static_cast<const_internal_node_pointer>(p_nd)->end();
+       ++it)
+    ret += recursive_count_leafs(*it);
+
+  return (ret);
+}
+
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..1fc7b26f865e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
@@ -0,0 +1,401 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase(const_key_reference r_key)
+{
+  node_pointer p_nd = find_imp(r_key);
+
+  if (p_nd == NULL || p_nd->m_type == pat_trie_internal_node_type)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+							      r_key));
+
+      return (false);
+    }
+
+  PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_leaf_node_type);
+
+  if (!synth_e_access_traits::equal_keys(
+					 PB_DS_V2F(reinterpret_cast<leaf_pointer>(p_nd)->value()),
+					 r_key))
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+							      r_key));
+
+      return (false);
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+  erase_leaf(static_cast<leaf_pointer>(p_nd));
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (true);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_fixup(internal_node_pointer p_nd)
+{
+  PB_DS_DBG_ASSERT(std::distance(p_nd->begin(), p_nd->end()) >= 1);
+
+  if (std::distance(p_nd->begin(), p_nd->end()) == 1)
+    {
+      node_pointer p_parent = p_nd->m_p_parent;
+
+      if (p_parent == m_p_head)
+	m_p_head->m_p_parent =* p_nd->begin();
+      else
+        {
+	  PB_DS_DBG_ASSERT(p_parent->m_type == pat_trie_internal_node_type);
+
+	  node_pointer p_new_child =* p_nd->begin();
+
+	  static_cast<internal_node_pointer>(p_parent)->replace_child(
+								      p_new_child,
+								      pref_begin(p_new_child),
+								      pref_end(p_new_child),
+								      this);
+        }
+      (*p_nd->begin())->m_p_parent = p_nd->m_p_parent;
+
+      p_nd->~internal_node();
+
+      s_internal_node_allocator.deallocate(p_nd, 1);
+
+      if (p_parent == m_p_head)
+	return;
+
+      PB_DS_DBG_ASSERT(p_parent->m_type == pat_trie_internal_node_type);
+
+      p_nd = static_cast<internal_node_pointer>(p_parent);
+    }
+
+  while (true)
+    {
+      PB_DS_DBG_ASSERT(std::distance(p_nd->begin(), p_nd->end()) > 1);
+
+      p_nd->update_prefixes(this);
+
+      apply_update(p_nd, (node_update* )this);
+
+      PB_DS_DBG_ONLY(p_nd->assert_valid(this);)
+
+        if (p_nd->m_p_parent->m_type == pat_trie_head_node_type)
+	  return;
+
+      PB_DS_DBG_ASSERT(p_nd->m_p_parent->m_type ==
+		       pat_trie_internal_node_type);
+
+      p_nd = static_cast<internal_node_pointer>(p_nd->m_p_parent);
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+actual_erase_leaf(leaf_pointer p_l)
+{
+  PB_DS_DBG_ASSERT(m_size > 0);
+  --m_size;
+
+  PB_DS_DBG_ONLY(erase_existing(PB_DS_V2F(p_l->value())));
+
+  p_l->~leaf();
+
+  s_leaf_allocator.deallocate(p_l, 1);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    if (empty())
+      return;
+
+  clear_imp(m_p_head->m_p_parent);
+
+  m_size = 0;
+
+  initialize();
+
+  PB_DS_DBG_ONLY(map_debug_base::clear();)
+
+    PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear_imp(node_pointer p_nd)
+{
+  if (p_nd->m_type == pat_trie_internal_node_type)
+    {
+      PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_internal_node_type);
+
+      for (typename internal_node::iterator it =
+	     static_cast<internal_node_pointer>(p_nd)->begin();
+	   it != static_cast<internal_node_pointer>(p_nd)->end();
+	   ++it)
+        {
+	  node_pointer p_child =* it;
+
+	  clear_imp(p_child);
+        }
+
+      s_internal_node_allocator.deallocate(
+					   static_cast<internal_node_pointer>(p_nd), 1);
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_leaf_node_type);
+
+  static_cast<leaf_pointer>(p_nd)->~leaf();
+
+  s_leaf_allocator.deallocate(
+			      static_cast<leaf_pointer>(p_nd), 1);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+erase(const_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it == end())
+    return (it);
+
+  const_iterator ret_it = it;
+
+  ++ret_it;
+
+  PB_DS_DBG_ASSERT(it.m_p_nd->m_type == pat_trie_leaf_node_type);
+
+  erase_leaf(static_cast<leaf_pointer>(it.m_p_nd));
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+erase(iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it == end())
+    return (it);
+
+  iterator ret_it = it;
+
+  ++ret_it;
+
+  PB_DS_DBG_ASSERT(it.m_p_nd->m_type == pat_trie_leaf_node_type);
+
+  erase_leaf(static_cast<leaf_pointer>(it.m_p_nd));
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reverse_iterator
+PB_DS_CLASS_C_DEC::
+erase(const_reverse_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it.m_p_nd == m_p_head)
+    return (it);
+
+  const_reverse_iterator ret_it = it;
+
+  ++ret_it;
+
+  PB_DS_DBG_ASSERT(it.m_p_nd->m_type == pat_trie_leaf_node_type);
+
+  erase_leaf(static_cast<leaf_pointer>(it.m_p_nd));
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::reverse_iterator
+PB_DS_CLASS_C_DEC::
+erase(reverse_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it.m_p_nd == m_p_head)
+    return (it);
+
+  reverse_iterator ret_it = it;
+
+  ++ret_it;
+
+  PB_DS_DBG_ASSERT(it.m_p_nd->m_type == pat_trie_leaf_node_type);
+
+  erase_leaf(static_cast<leaf_pointer>(it.m_p_nd));
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  size_type num_ersd = 0;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    iterator it = begin();
+
+  while (it != end())
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        if (pred(*it))
+	  {
+            ++num_ersd;
+
+            it = erase(it);
+	  }
+        else
+	  ++it;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (num_ersd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_leaf(leaf_pointer p_l)
+{
+  update_min_max_for_erased_leaf(p_l);
+
+  if (p_l->m_p_parent->m_type == pat_trie_head_node_type)
+    {
+      PB_DS_DBG_ASSERT(size() == 1);
+
+      clear();
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(size() > 1);
+
+  PB_DS_DBG_ASSERT(p_l->m_p_parent->m_type ==
+		   pat_trie_internal_node_type);
+
+  internal_node_pointer p_parent =
+    static_cast<internal_node_pointer>(p_l->m_p_parent);
+
+  p_parent->remove_child(p_l);
+
+  erase_fixup(p_parent);
+
+  actual_erase_leaf(p_l);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+update_min_max_for_erased_leaf(leaf_pointer p_l)
+{
+  if (m_size == 1)
+    {
+      m_p_head->m_p_min = m_p_head;
+      m_p_head->m_p_max = m_p_head;
+
+      return;
+    }
+
+  if (p_l == static_cast<const_leaf_pointer>(m_p_head->m_p_min))
+    {
+      iterator it(p_l);
+
+      ++it;
+
+      m_p_head->m_p_min = it.m_p_nd;
+
+      return;
+    }
+
+  if (p_l == static_cast<const_leaf_pointer>(m_p_head->m_p_max))
+    {
+      iterator it(p_l);
+
+      --it;
+
+      m_p_head->m_p_max = it.m_p_nd;
+    }
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
new file mode 100644
index 000000000000..3462019dc600
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
@@ -0,0 +1,318 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    node_pointer p_nd = find_imp(r_key);
+
+  if (p_nd == NULL || p_nd->m_type != pat_trie_leaf_node_type)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+        return (end());
+    }
+
+  if (synth_e_access_traits::equal_keys(
+					PB_DS_V2F(static_cast<leaf_pointer>(p_nd)->value()),
+					r_key))
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(r_key));
+
+      return (iterator(p_nd));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+    return (end());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key) const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    const_node_pointer p_nd =
+    const_cast<PB_DS_CLASS_C_DEC* >(this)->find_imp(r_key);
+
+  if (p_nd == NULL || p_nd->m_type != pat_trie_leaf_node_type)
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+        return (end());
+    }
+
+  if (synth_e_access_traits::equal_keys(
+					PB_DS_V2F(static_cast<const_leaf_pointer>(p_nd)->value()),
+					r_key))
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(
+						      r_key));
+
+      return (const_iterator(const_cast<node_pointer>(p_nd)));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(r_key);)
+
+    return (end());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+find_imp(const_key_reference r_key)
+{
+  if (empty())
+    return (NULL);
+
+  typename synth_e_access_traits::const_iterator b_it =
+    synth_e_access_traits::begin(r_key);
+  typename synth_e_access_traits::const_iterator e_it =
+    synth_e_access_traits::end(r_key);
+
+  node_pointer p_nd = m_p_head->m_p_parent;
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+
+  while (p_nd->m_type != pat_trie_leaf_node_type)
+    {
+      PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_internal_node_type);
+
+      node_pointer p_next_nd =
+	static_cast<internal_node_pointer>(p_nd)->get_child_node(                b_it,  e_it,  this);
+
+      if (p_next_nd == NULL)
+	return (p_nd);
+
+      p_nd = p_next_nd;
+    }
+
+  return (p_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+lower_bound_imp(const_key_reference r_key)
+{
+  if (empty())
+    return (m_p_head);
+
+  node_pointer p_nd = m_p_head->m_p_parent;
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+
+  typename PB_DS_CLASS_C_DEC::const_e_iterator b_it =
+    synth_e_access_traits::begin(r_key);
+
+  typename PB_DS_CLASS_C_DEC::const_e_iterator e_it =
+    synth_e_access_traits::end(r_key);
+
+  size_type checked_ind = 0;
+
+  while (true)
+    {
+      if (p_nd->m_type == pat_trie_leaf_node_type)
+        {
+	  if (!synth_e_access_traits::cmp_keys(
+					       PB_DS_V2F(static_cast<const_leaf_pointer>(p_nd)->value()),
+					       r_key))
+	    return (p_nd);
+
+	  iterator it(p_nd);
+
+	  ++it;
+
+	  return (it.m_p_nd);
+        }
+
+      PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_internal_node_type);
+
+      const size_type new_checked_ind =
+	static_cast<internal_node_pointer>(p_nd)->get_e_ind();
+
+      p_nd =
+	static_cast<internal_node_pointer>(p_nd)->get_lower_bound_child_node(                b_it, e_it, checked_ind, this);
+
+      checked_ind = new_checked_ind;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+lower_bound(const_key_reference r_key)
+{
+  return (point_iterator(lower_bound_imp(r_key)));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+lower_bound(const_key_reference r_key) const
+{
+  return (const_point_iterator(
+			       const_cast<PB_DS_CLASS_C_DEC* >(this)->lower_bound_imp(r_key)));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+upper_bound(const_key_reference r_key)
+{
+  point_iterator l_bound_it = lower_bound(r_key);
+
+  PB_DS_DBG_ASSERT(l_bound_it == end() ||
+		   !synth_e_access_traits::cmp_keys(
+						    PB_DS_V2F(*l_bound_it),
+						    r_key));
+
+  if (l_bound_it == end() ||
+      synth_e_access_traits::cmp_keys(
+				      r_key,
+				      PB_DS_V2F(*l_bound_it)))
+    return (l_bound_it);
+
+  return (++l_bound_it);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+upper_bound(const_key_reference r_key) const
+{
+  const_point_iterator l_bound_it = lower_bound(r_key);
+
+  PB_DS_DBG_ASSERT(l_bound_it == end() ||
+		   !synth_e_access_traits::cmp_keys(
+						    PB_DS_V2F(*l_bound_it),
+						    r_key));
+
+  if (l_bound_it == end() ||
+      synth_e_access_traits::cmp_keys(
+				      r_key,
+				      PB_DS_V2F(*l_bound_it)))
+    return (l_bound_it);
+
+  return (++l_bound_it);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_e_iterator
+PB_DS_CLASS_C_DEC::
+pref_begin(const_node_pointer p_nd)
+{
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    return (synth_e_access_traits::begin(
+					 PB_DS_V2F(static_cast<const_leaf_pointer>(p_nd)->value())));
+
+  PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_internal_node_type);
+
+  return (static_cast<const_internal_node_pointer>(p_nd)->pref_b_it());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_e_iterator
+PB_DS_CLASS_C_DEC::
+pref_end(const_node_pointer p_nd)
+{
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    return (synth_e_access_traits::end(
+				       PB_DS_V2F(static_cast<const_leaf_pointer>(p_nd)->value())));
+
+  PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_internal_node_type);
+
+  return (static_cast<const_internal_node_pointer>(p_nd)->pref_e_it());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_leaf_pointer
+PB_DS_CLASS_C_DEC::
+leftmost_descendant(const_node_pointer p_nd)
+{
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    return (static_cast<const_leaf_pointer>(p_nd));
+
+  return (static_cast<const_internal_node_pointer>(p_nd)->leftmost_descendant());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::leaf_pointer
+PB_DS_CLASS_C_DEC::
+leftmost_descendant(node_pointer p_nd)
+{
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    return (static_cast<leaf_pointer>(p_nd));
+
+  return (static_cast<internal_node_pointer>(p_nd)->leftmost_descendant());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_leaf_pointer
+PB_DS_CLASS_C_DEC::
+rightmost_descendant(const_node_pointer p_nd)
+{
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    return (static_cast<const_leaf_pointer>(p_nd));
+
+  return (static_cast<const_internal_node_pointer>(p_nd)->rightmost_descendant());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::leaf_pointer
+PB_DS_CLASS_C_DEC::
+rightmost_descendant(node_pointer p_nd)
+{
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    return (static_cast<leaf_pointer>(p_nd));
+
+  return (static_cast<internal_node_pointer>(p_nd)->rightmost_descendant());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/head.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/head.hpp
new file mode 100644
index 000000000000..db6864bba68e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/head.hpp
@@ -0,0 +1,162 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file head.hpp
+ * Contains a leaf for a patricia tree.
+ */
+
+#ifndef PB_DS_PAT_TRIE_IHEAD_HPP
+#define PB_DS_PAT_TRIE_IHEAD_HPP
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+#include <ext/pb_ds/detail/pat_trie_/node_base.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						class Type_Traits,	\
+						class E_Access_Traits,	\
+						class Metadata,		\
+						class Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    pat_trie_head<							\
+						Type_Traits,		\
+						E_Access_Traits,	\
+						Metadata,		\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC					\
+    pat_trie_node_base<						\
+					Type_Traits,		\
+					E_Access_Traits,	\
+					Metadata,		\
+					Allocator>
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    template<typename Type_Traits,
+	     class E_Access_Traits,
+	     class Metadata,
+	     class Allocator>
+    struct pat_trie_head : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef E_Access_Traits e_access_traits;
+
+      typedef
+      typename Allocator::template rebind<
+	e_access_traits>::other::const_pointer
+      const_e_access_traits_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	PB_DS_BASE_C_DEC>::other::pointer
+      node_pointer;
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      typedef
+      typename PB_DS_BASE_C_DEC::subtree_debug_info
+      subtree_debug_info;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    public:
+      pat_trie_head();
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      virtual subtree_debug_info
+      assert_valid_imp(const_e_access_traits_pointer p_traits) const;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    public:
+      node_pointer m_p_min;
+
+      node_pointer m_p_max;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    pat_trie_head() :
+      PB_DS_BASE_C_DEC(pat_trie_head_node_type)
+    { }
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::subtree_debug_info
+    PB_DS_CLASS_C_DEC::
+    assert_valid_imp(const_e_access_traits_pointer /*p_traits*/) const
+    {
+      PB_DS_DBG_ASSERT(false);
+
+      return (subtree_debug_info());
+    }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_HEAD_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
new file mode 100644
index 000000000000..dcaf1bf4f113
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
@@ -0,0 +1,70 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+empty() const
+{
+  return (m_size == 0);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+size() const
+{
+  return (m_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+max_size() const
+{
+  return (s_internal_node_allocator.max_size());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
new file mode 100644
index 000000000000..39b798311b64
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
@@ -0,0 +1,665 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_join_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid(););
+  PB_DS_DBG_ONLY(other.assert_valid(););
+
+  split_join_branch_bag bag;
+
+  if (!join_prep(other, bag))
+    {
+      PB_DS_DBG_ONLY(assert_valid(););
+      PB_DS_DBG_ONLY(other.assert_valid(););
+
+      return;
+    }
+
+  m_p_head->m_p_parent = rec_join(m_p_head->m_p_parent, other.m_p_head->m_p_parent, 0, bag);
+
+  m_p_head->m_p_parent->m_p_parent = m_p_head;
+
+  m_size += other.m_size;
+
+  other.initialize();
+
+  PB_DS_DBG_ONLY(other.assert_valid(););
+
+  m_p_head->m_p_min = leftmost_descendant(m_p_head->m_p_parent);
+  m_p_head->m_p_max = rightmost_descendant(m_p_head->m_p_parent);
+
+  PB_DS_DBG_ONLY(assert_valid(););
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+join_prep(PB_DS_CLASS_C_DEC& other, split_join_branch_bag& r_bag)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    if (other.m_size == 0)
+      return (false);
+
+  if (m_size == 0)
+    {
+      value_swap(other);
+
+      return (false);
+    }
+
+  const bool greater = synth_e_access_traits::cmp_keys(
+						       PB_DS_V2F(static_cast<const_leaf_pointer>(
+												 m_p_head->m_p_max)->value()),
+						       PB_DS_V2F(static_cast<const_leaf_pointer>(
+												 other.m_p_head->m_p_min)->value()));
+
+  const bool lesser = synth_e_access_traits::cmp_keys(
+						      PB_DS_V2F(static_cast<const_leaf_pointer>(
+												other.m_p_head->m_p_max)->value()),
+						      PB_DS_V2F(static_cast<const_leaf_pointer>(
+												m_p_head->m_p_min)->value()));
+
+  if (!greater&&  !lesser)
+    throw join_error();
+
+  rec_join_prep(m_p_head->m_p_parent, other.m_p_head->m_p_parent, r_bag);
+
+  PB_DS_DBG_ONLY(map_debug_base::join(other);)
+
+    return (true);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rec_join_prep(const_node_pointer p_l, const_node_pointer p_r, split_join_branch_bag& r_bag)
+{
+  if (p_l->m_type == pat_trie_leaf_node_type)
+    {
+      if (p_r->m_type == pat_trie_leaf_node_type)
+        {
+	  rec_join_prep(
+			static_cast<const_leaf_pointer>(p_l),
+			static_cast<const_leaf_pointer>(p_r),
+			r_bag);
+
+	  return;
+        }
+
+      PB_DS_DBG_ASSERT(p_r->m_type == pat_trie_internal_node_type);
+
+      rec_join_prep(
+		    static_cast<const_leaf_pointer>(p_l),
+		    static_cast<const_internal_node_pointer>(p_r),
+		    r_bag);
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(p_l->m_type == pat_trie_internal_node_type);
+
+  if (p_r->m_type == pat_trie_leaf_node_type)
+    {
+      rec_join_prep(
+		    static_cast<const_internal_node_pointer>(p_l),
+		    static_cast<const_leaf_pointer>(p_r),
+		    r_bag);
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(p_r->m_type == pat_trie_internal_node_type);
+
+  rec_join_prep(
+		static_cast<const_internal_node_pointer>(p_l),
+		static_cast<const_internal_node_pointer>(p_r),
+		r_bag);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rec_join_prep(const_leaf_pointer /*p_l*/, const_leaf_pointer /*p_r*/, split_join_branch_bag& r_bag)
+{
+  r_bag.add_branch();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rec_join_prep(const_leaf_pointer /*p_l*/, const_internal_node_pointer /*p_r*/, split_join_branch_bag& r_bag)
+{
+  r_bag.add_branch();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rec_join_prep(const_internal_node_pointer /*p_l*/, const_leaf_pointer /*p_r*/, split_join_branch_bag& r_bag)
+{
+  r_bag.add_branch();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rec_join_prep(const_internal_node_pointer p_l, const_internal_node_pointer p_r, split_join_branch_bag& r_bag)
+{
+  if (p_l->get_e_ind() == p_r->get_e_ind()&& 
+      synth_e_access_traits::equal_prefixes(
+					    p_l->pref_b_it(),
+					    p_l->pref_e_it(),
+					    p_r->pref_b_it(),
+					    p_r->pref_e_it()))
+    {
+      for (typename internal_node::const_iterator it = p_r->begin();
+	   it != p_r->end(); ++ it)
+        {
+	  const_node_pointer p_l_join_child =
+	    p_l->get_join_child(*it, this);
+
+	  if (p_l_join_child != NULL)
+	    rec_join_prep(p_l_join_child, * it, r_bag);
+        }
+
+      return;
+    }
+
+  if (p_r->get_e_ind() < p_l->get_e_ind()&& 
+      p_r->should_be_mine(
+			  p_l->pref_b_it(),
+			  p_l->pref_e_it(),
+			  0,
+			  this))
+    {
+      const_node_pointer p_r_join_child =
+	p_r->get_join_child(p_l, this);
+
+      if (p_r_join_child != NULL)
+	rec_join_prep(p_r_join_child, p_l, r_bag);
+
+      return;
+    }
+
+  if (p_r->get_e_ind() < p_l->get_e_ind()&& 
+      p_r->should_be_mine(
+			  p_l->pref_b_it(),
+			  p_l->pref_e_it(),
+			  0,
+			  this))
+    {
+      const_node_pointer p_r_join_child =
+	p_r->get_join_child(p_l, this);
+
+      if (p_r_join_child != NULL)
+	rec_join_prep(p_r_join_child, p_l, r_bag);
+
+      return;
+    }
+
+  r_bag.add_branch();
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+rec_join(node_pointer p_l, node_pointer p_r, size_type checked_ind, split_join_branch_bag& r_bag)
+{
+  PB_DS_DBG_ASSERT(p_r != NULL);
+
+  if (p_l == NULL)
+    {
+      apply_update(p_r, (node_update* )this);
+
+      return (p_r);
+    }
+
+  if (p_l->m_type == pat_trie_leaf_node_type)
+    {
+      if (p_r->m_type == pat_trie_leaf_node_type)
+        {
+	  node_pointer p_ret = rec_join(
+					static_cast<leaf_pointer>(p_l),
+					static_cast<leaf_pointer>(p_r),
+					r_bag);
+
+	  apply_update(p_ret, (node_update* )this);
+
+	  return (p_ret);
+        }
+
+      PB_DS_DBG_ASSERT(p_r->m_type == pat_trie_internal_node_type);
+
+      node_pointer p_ret = rec_join(
+				    static_cast<leaf_pointer>(p_l),
+				    static_cast<internal_node_pointer>(p_r),
+				    checked_ind,
+				    r_bag);
+
+      apply_update(p_ret, (node_update* )this);
+
+      return (p_ret);
+    }
+
+  PB_DS_DBG_ASSERT(p_l->m_type == pat_trie_internal_node_type);
+
+  if (p_r->m_type == pat_trie_leaf_node_type)
+    {
+      node_pointer p_ret = rec_join(
+				    static_cast<internal_node_pointer>(p_l),
+				    static_cast<leaf_pointer>(p_r),
+				    checked_ind,
+				    r_bag);
+
+      apply_update(p_ret, (node_update* )this);
+
+      return (p_ret);
+    }
+
+  PB_DS_DBG_ASSERT(p_r->m_type == pat_trie_internal_node_type);
+
+  node_pointer p_ret = rec_join(
+				static_cast<internal_node_pointer>(p_l),
+				static_cast<internal_node_pointer>(p_r),
+				r_bag);
+
+  apply_update(p_ret, (node_update* )this);
+
+  return (p_ret);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+rec_join(leaf_pointer p_l, leaf_pointer p_r, split_join_branch_bag& r_bag)
+{
+  PB_DS_DBG_ASSERT(p_r != NULL);
+
+  if (p_l == NULL)
+    return (p_r);
+
+  node_pointer p_ret = insert_branch(p_l, p_r, r_bag);
+
+  PB_DS_DBG_ASSERT(recursive_count_leafs(p_ret) == 2);
+
+  return (p_ret);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+rec_join(leaf_pointer p_l, internal_node_pointer p_r, size_type checked_ind, split_join_branch_bag& r_bag)
+{
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+  const size_type lhs_leafs = recursive_count_leafs(p_l);
+
+  const size_type rhs_leafs = recursive_count_leafs(p_r);
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+  PB_DS_DBG_ASSERT(p_r != NULL);
+
+  node_pointer p_ret = rec_join(p_r, p_l, checked_ind, r_bag);
+
+  PB_DS_DBG_ASSERT(recursive_count_leafs(p_ret) ==
+		   lhs_leafs + rhs_leafs);
+
+  return (p_ret);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+rec_join(internal_node_pointer p_l, leaf_pointer p_r, size_type checked_ind, split_join_branch_bag& r_bag)
+{
+  PB_DS_DBG_ASSERT(p_l != NULL);
+  PB_DS_DBG_ASSERT(p_r != NULL);
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+  const size_type lhs_leafs = recursive_count_leafs(p_l);
+
+  const size_type rhs_leafs = recursive_count_leafs(p_r);
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+  if (!p_l->should_be_mine(
+			   pref_begin(p_r),
+			   pref_end(p_r),
+			   checked_ind,
+			   this))
+    {
+      node_pointer p_ret = insert_branch(p_l, p_r, r_bag);
+
+      PB_DS_DBG_ONLY(p_ret->assert_valid(this);)
+
+        PB_DS_DBG_ASSERT(recursive_count_leafs(p_ret) ==
+			 lhs_leafs + rhs_leafs);
+
+      return (p_ret);
+    }
+
+  node_pointer p_pot_child = p_l->add_child(
+					    p_r,
+					    pref_begin(p_r),
+					    pref_end(p_r),
+					    this);
+
+  if (p_pot_child != p_r)
+    {
+      node_pointer p_new_child = rec_join(
+					  p_pot_child,
+					  p_r,
+					  p_l->get_e_ind(),
+					  r_bag);
+
+      p_l->replace_child(
+			 p_new_child,
+			 pref_begin(p_new_child),
+			 pref_end(p_new_child),
+			 this);
+    }
+
+  PB_DS_DBG_ONLY(p_l->assert_valid(this));
+
+  PB_DS_DBG_ASSERT(recursive_count_leafs(p_l) ==
+		   lhs_leafs + rhs_leafs);
+
+  return (p_l);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+rec_join(internal_node_pointer p_l, internal_node_pointer p_r, split_join_branch_bag& r_bag)
+{
+  PB_DS_DBG_ASSERT(p_l != NULL);
+  PB_DS_DBG_ASSERT(p_r != NULL);
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+  const size_type lhs_leafs = recursive_count_leafs(p_l);
+
+  const size_type rhs_leafs = recursive_count_leafs(p_r);
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+  if (p_l->get_e_ind() == p_r->get_e_ind()&& 
+      synth_e_access_traits::equal_prefixes(
+					    p_l->pref_b_it(),
+					    p_l->pref_e_it(),
+					    p_r->pref_b_it(),
+					    p_r->pref_e_it()))
+    {
+      for (typename internal_node::iterator it = p_r->begin();
+	   it != p_r->end(); ++ it)
+        {
+	  node_pointer p_new_child = rec_join(
+					      p_l->get_join_child(*it, this),
+					      * it,
+					      0,
+					      r_bag);
+
+	  p_l->replace_child(
+			     p_new_child,
+			     pref_begin(p_new_child),
+			     pref_end(p_new_child),
+			     this);
+        }
+
+      p_r->~internal_node();
+
+      s_internal_node_allocator.deallocate(p_r, 1);
+
+      PB_DS_DBG_ONLY(p_l->assert_valid(this);)
+
+        PB_DS_DBG_ASSERT(recursive_count_leafs(p_l) ==
+			 lhs_leafs + rhs_leafs);
+
+      return (p_l);
+    }
+
+  if (p_l->get_e_ind() < p_r->get_e_ind()&& 
+      p_l->should_be_mine(
+			  p_r->pref_b_it(),
+			  p_r->pref_e_it(),
+			  0,
+			  this))
+    {
+      node_pointer p_new_child = rec_join(
+					  p_l->get_join_child(p_r, this),
+					  p_r,
+					  0,
+					  r_bag);
+
+      p_l->replace_child(
+			 p_new_child,
+			 pref_begin(p_new_child),
+			 pref_end(p_new_child),
+			 this);
+
+      PB_DS_DBG_ONLY(p_l->assert_valid(this);)
+
+        return (p_l);
+    }
+
+  if (p_r->get_e_ind() < p_l->get_e_ind()&& 
+      p_r->should_be_mine(
+			  p_l->pref_b_it(),
+			  p_l->pref_e_it(),
+			  0,
+			  this))
+    {
+      node_pointer p_new_child = rec_join(
+					  p_r->get_join_child(p_l, this),
+					  p_l,
+					  0,
+					  r_bag);
+
+      p_r->replace_child(
+			 p_new_child,
+			 pref_begin(p_new_child),
+			 pref_end(p_new_child),
+			 this);
+
+      PB_DS_DBG_ONLY(p_r->assert_valid(this);)
+
+        PB_DS_DBG_ASSERT(recursive_count_leafs(p_r) ==
+			 lhs_leafs + rhs_leafs);
+
+      return (p_r);
+    }
+
+  node_pointer p_ret = insert_branch(p_l, p_r, r_bag);
+
+  PB_DS_DBG_ONLY(p_ret->assert_valid(this);)
+
+    PB_DS_DBG_ASSERT(recursive_count_leafs(p_ret) ==
+		     lhs_leafs + rhs_leafs);
+
+  return (p_ret);
+}
+
+PB_DS_CLASS_T_DEC
+inline std::pair<
+  typename PB_DS_CLASS_C_DEC::iterator,
+  bool>
+PB_DS_CLASS_C_DEC::
+insert(const_reference r_val)
+{
+  node_pointer p_lf = find_imp(PB_DS_V2F(r_val));
+
+  if (p_lf != NULL&&  p_lf->m_type == pat_trie_leaf_node_type&& 
+      synth_e_access_traits::equal_keys(
+					PB_DS_V2F(static_cast<leaf_pointer>(p_lf)->value()),
+					PB_DS_V2F(r_val)))
+    {
+      PB_DS_DBG_ONLY(map_debug_base::check_key_exists(
+						      PB_DS_V2F(r_val)));
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return (std::make_pair(
+			       iterator(p_lf),
+			       false));
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist(
+							  PB_DS_V2F(r_val)));
+
+  leaf_pointer p_new_lf = s_leaf_allocator.allocate(1);
+
+  cond_dealtor cond(p_new_lf);
+
+  new (p_new_lf) leaf(r_val);
+
+  apply_update(p_new_lf, (node_update* )this);
+
+  cond.set_call_destructor();
+
+  split_join_branch_bag bag;
+
+  bag.add_branch();
+
+  m_p_head->m_p_parent =
+    rec_join(m_p_head->m_p_parent, p_new_lf, 0, bag);
+
+  m_p_head->m_p_parent->m_p_parent = m_p_head;
+
+  cond.set_no_action_dtor();
+
+  ++m_size;
+
+  update_min_max_for_inserted_leaf(p_new_lf);
+
+  PB_DS_DBG_ONLY(map_debug_base::insert_new(
+					    PB_DS_V2F(r_val));)
+
+    PB_DS_DBG_ONLY(assert_valid();)
+
+    return (std::make_pair(
+			   point_iterator(p_new_lf),
+			   true));
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+keys_diff_ind(typename e_access_traits::const_iterator b_l, typename e_access_traits::const_iterator e_l, typename e_access_traits::const_iterator b_r, typename e_access_traits::const_iterator e_r)
+{
+  size_type diff_pos = 0;
+
+  while (b_l != e_l)
+    {
+      if (b_r == e_r)
+	return (diff_pos);
+
+      if (e_access_traits::e_pos(*b_l) != e_access_traits::e_pos(*b_r))
+	return (diff_pos);
+
+      ++b_l;
+      ++b_r;
+
+      ++diff_pos;
+    }
+
+  PB_DS_DBG_ASSERT(b_r != e_r);
+
+  return (diff_pos);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::internal_node_pointer
+PB_DS_CLASS_C_DEC::
+insert_branch(node_pointer p_l, node_pointer p_r, split_join_branch_bag& r_bag)
+{
+  typename synth_e_access_traits::const_iterator left_b_it =
+    pref_begin(p_l);
+  typename synth_e_access_traits::const_iterator left_e_it =
+    pref_end(p_l);
+
+  typename synth_e_access_traits::const_iterator right_b_it =
+    pref_begin(p_r);
+  typename synth_e_access_traits::const_iterator right_e_it =
+    pref_end(p_r);
+
+  const size_type diff_ind =
+    keys_diff_ind(left_b_it, left_e_it, right_b_it, right_e_it);
+
+  internal_node_pointer p_new_nd = r_bag.get_branch();
+
+  new (p_new_nd) internal_node(diff_ind, left_b_it);
+
+  p_new_nd->add_child(        p_l, left_b_it, left_e_it, this);
+
+  p_new_nd->add_child(        p_r, right_b_it, right_e_it, this);
+
+  p_l->m_p_parent = p_new_nd;
+  p_r->m_p_parent = p_new_nd;
+
+  PB_DS_DBG_ONLY(p_new_nd->assert_valid(this);)
+
+    return (p_new_nd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+update_min_max_for_inserted_leaf(leaf_pointer p_new_lf)
+{
+  if (m_p_head->m_p_min == m_p_head ||
+      synth_e_access_traits::cmp_keys(
+				      PB_DS_V2F(p_new_lf->value()),
+				      PB_DS_V2F(static_cast<const_leaf_pointer>(m_p_head->m_p_min)->value())))
+    m_p_head->m_p_min = p_new_lf;
+
+  if (m_p_head->m_p_max == m_p_head ||
+      synth_e_access_traits::cmp_keys(
+				      PB_DS_V2F(static_cast<const_leaf_pointer>(m_p_head->m_p_max)->value()),
+				      PB_DS_V2F(p_new_lf->value())))
+    m_p_head->m_p_max = p_new_lf;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/internal_node.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/internal_node.hpp
new file mode 100644
index 000000000000..f3918373fd97
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/internal_node.hpp
@@ -0,0 +1,754 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file internal_node.hpp
+ * Contains an internal PB_DS_BASE_C_DEC for a patricia tree.
+ */
+
+#ifndef PB_DS_PAT_TRIE_INTERNAL_NODE_HPP
+#define PB_DS_PAT_TRIE_INTERNAL_NODE_HPP
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						class Type_Traits,	\
+						class E_Access_Traits,	\
+						class Metadata,		\
+						class Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    pat_trie_internal_node<						\
+						Type_Traits,		\
+						E_Access_Traits,	\
+						Metadata,		\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC					\
+    pat_trie_node_base<						\
+					Type_Traits,		\
+					E_Access_Traits,	\
+					Metadata,		\
+					Allocator>
+
+#define PB_DS_LEAF_C_DEC						\
+    pat_trie_leaf<							\
+						Type_Traits,		\
+						E_Access_Traits,	\
+						Metadata,		\
+						Allocator>
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+    typedef								\
+    static_assert_dumclass<				\
+									sizeof(static_assert<(bool)(E)>)> \
+    UNIQUE##static_assert_type
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    template<typename Type_Traits,
+	     class E_Access_Traits,
+	     class Metadata,
+	     class Allocator>
+    struct pat_trie_internal_node : public PB_DS_BASE_C_DEC
+    {
+    public:
+      enum
+	{
+	  arr_size =
+	  E_Access_Traits::max_size + 1
+	};
+
+    private:
+      typedef typename Allocator::size_type size_type;
+
+      typedef E_Access_Traits e_access_traits;
+
+      typedef
+      typename Allocator::template rebind<
+	e_access_traits>::other::const_pointer
+      const_e_access_traits_pointer;
+
+      typedef typename e_access_traits::const_iterator const_e_iterator;
+
+      typedef
+      typename Allocator::template rebind<
+	PB_DS_BASE_C_DEC >::other::pointer
+      node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	PB_DS_BASE_C_DEC >::other::const_pointer
+      const_node_pointer;
+
+      typedef PB_DS_LEAF_C_DEC leaf;
+
+      typedef
+      typename Allocator::template rebind<
+	leaf>::other
+      leaf_allocator;
+
+      typedef typename leaf_allocator::pointer leaf_pointer;
+
+      typedef typename leaf_allocator::const_pointer const_leaf_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	PB_DS_CLASS_C_DEC>::other
+      internal_node_allocator;
+
+      typedef
+      typename Allocator::template rebind<
+	PB_DS_CLASS_C_DEC>::other::const_pointer
+      const_internal_node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	PB_DS_CLASS_C_DEC>::other::pointer
+      internal_node_pointer;
+
+      PB_DS_STATIC_ASSERT(min_arr_size, arr_size >= 2);
+
+      typedef typename Type_Traits::value_type value_type;
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      typedef
+      typename PB_DS_BASE_C_DEC::subtree_debug_info
+      subtree_debug_info;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    private:
+      inline size_type
+      get_pref_pos(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits) const;
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      virtual subtree_debug_info
+      assert_valid_imp(const_e_access_traits_pointer p_traits) const;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    public:
+      typedef
+      typename Allocator::template rebind<
+      node_pointer>::other::pointer
+      node_pointer_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	node_pointer>::other::reference
+      node_pointer_reference;
+
+#include <ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp>
+#include <ext/pb_ds/detail/pat_trie_/child_iterator.hpp>
+
+    public:
+      pat_trie_internal_node(size_type e_ind, const const_e_iterator pref_b_it);
+
+      void
+      update_prefixes(const_e_access_traits_pointer p_traits);
+
+      const_iterator
+      begin() const;
+
+      iterator
+      begin();
+
+      const_iterator
+      end() const;
+
+      iterator
+      end();
+
+      inline node_pointer
+      get_child_node(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits);
+
+      inline const_node_pointer
+      get_child_node(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits) const;
+
+      inline iterator
+      get_child_it(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits);
+
+      inline node_pointer
+      get_lower_bound_child_node(const_e_iterator b_it, const_e_iterator e_it, size_type checked_ind, const_e_access_traits_pointer p_traits);
+
+      inline node_pointer
+      add_child(node_pointer p_nd, const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits);
+
+      inline const_node_pointer
+      get_join_child(const_node_pointer p_nd, const_e_access_traits_pointer p_traits) const;
+
+      inline node_pointer
+      get_join_child(node_pointer p_nd, const_e_access_traits_pointer p_traits);
+
+      void
+      remove_child(node_pointer p_nd);
+
+      iterator
+      remove_child(iterator it);
+
+      void
+      replace_child(node_pointer p_nd, const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits);
+
+      inline const_e_iterator
+      pref_b_it() const;
+
+      inline const_e_iterator
+      pref_e_it() const;
+
+      inline size_type
+      get_e_ind() const;
+
+      bool
+      should_be_mine(const_e_iterator b_it, const_e_iterator e_it, size_type checked_ind, const_e_access_traits_pointer p_traits) const;
+
+      leaf_pointer
+      leftmost_descendant();
+
+      const_leaf_pointer
+      leftmost_descendant() const;
+
+      leaf_pointer
+      rightmost_descendant();
+
+      const_leaf_pointer
+      rightmost_descendant() const;
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      size_type
+      e_ind() const;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    private:
+      pat_trie_internal_node(const PB_DS_CLASS_C_DEC& other);
+
+      size_type
+      get_begin_pos() const;
+
+    private:
+      const size_type m_e_ind;
+
+      const_e_iterator m_pref_b_it;
+      const_e_iterator m_pref_e_it;
+
+      node_pointer m_a_p_children[arr_size];
+
+      static leaf_allocator s_leaf_alloc;
+
+      static internal_node_allocator s_internal_node_alloc;
+    };
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::leaf_allocator
+    PB_DS_CLASS_C_DEC::s_leaf_alloc;
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::internal_node_allocator
+    PB_DS_CLASS_C_DEC::s_internal_node_alloc;
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    get_pref_pos(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits) const
+    {
+      if (static_cast<size_t>(std::distance(b_it, e_it)) <= m_e_ind)
+	return (0);
+
+      std::advance(b_it, m_e_ind);
+
+      return (1 + p_traits->e_pos(*b_it));
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    pat_trie_internal_node(size_type e_ind, const const_e_iterator pref_b_it) :
+      PB_DS_BASE_C_DEC(pat_trie_internal_node_type),
+      m_e_ind(e_ind),
+      m_pref_b_it(pref_b_it),
+      m_pref_e_it(pref_b_it)
+    {
+      std::advance(m_pref_e_it, m_e_ind);
+
+      std::fill(m_a_p_children, m_a_p_children + arr_size,
+		static_cast<node_pointer>(NULL));
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    update_prefixes(const_e_access_traits_pointer p_traits)
+    {
+      node_pointer p_first =* begin();
+
+      if (p_first->m_type == pat_trie_leaf_node_type)
+	m_pref_b_it =
+	  p_traits->begin(
+			  E_Access_Traits::extract_key(
+						       static_cast<const_leaf_pointer>(p_first)->value()));
+      else
+	{
+	  PB_DS_DBG_ASSERT(p_first->m_type == pat_trie_internal_node_type);
+
+	  m_pref_b_it = static_cast<internal_node_pointer>(p_first)->pref_b_it();
+	}
+
+      m_pref_e_it = m_pref_b_it;
+
+      std::advance(m_pref_e_it, m_e_ind);
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::const_iterator
+    PB_DS_CLASS_C_DEC::
+    begin() const
+    {
+      return (const_iterator(
+			     const_cast<node_pointer_pointer>(m_a_p_children) + get_begin_pos(),
+			     const_cast<node_pointer_pointer>(m_a_p_children) + arr_size));
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::iterator
+    PB_DS_CLASS_C_DEC::
+    begin()
+    {
+      return (iterator(
+		       m_a_p_children + get_begin_pos(),
+		       m_a_p_children + arr_size));
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::const_iterator
+    PB_DS_CLASS_C_DEC::
+    end() const
+    {
+      return (const_iterator(
+			     const_cast<node_pointer_pointer>(m_a_p_children) + arr_size,
+			     const_cast<node_pointer_pointer>(m_a_p_children) + arr_size));
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::iterator
+    PB_DS_CLASS_C_DEC::
+    end()
+    {
+      return (iterator(        m_a_p_children + arr_size, m_a_p_children + arr_size));
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::node_pointer
+    PB_DS_CLASS_C_DEC::
+    get_child_node(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits)
+    {
+      const size_type i = get_pref_pos(        b_it, e_it, p_traits);
+
+      PB_DS_DBG_ASSERT(i < arr_size);
+
+      return (m_a_p_children[i]);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::iterator
+    PB_DS_CLASS_C_DEC::
+    get_child_it(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits)
+    {
+      const size_type i = get_pref_pos(        b_it, e_it, p_traits);
+
+      PB_DS_DBG_ASSERT(i < arr_size);
+
+      PB_DS_DBG_ASSERT(m_a_p_children[i] != NULL);
+
+      return (iterator(m_a_p_children + i, m_a_p_children + i));
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::const_node_pointer
+    PB_DS_CLASS_C_DEC::
+    get_child_node(const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits) const
+    {
+      return (const_cast<node_pointer>(get_child_node(b_it, e_it, p_traits)));
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::node_pointer
+    PB_DS_CLASS_C_DEC::
+    get_lower_bound_child_node(const_e_iterator b_it, const_e_iterator e_it, size_type checked_ind, const_e_access_traits_pointer p_traits)
+    {
+      if (!should_be_mine(b_it, e_it, checked_ind, p_traits))
+	{
+	  if (p_traits->cmp_prefixes(b_it, e_it, m_pref_b_it, m_pref_e_it, true))
+	    return (leftmost_descendant());
+
+	  return (rightmost_descendant());
+	}
+
+      size_type i = get_pref_pos(        b_it, e_it, p_traits);
+
+      PB_DS_DBG_ASSERT(i < arr_size);
+
+      if (m_a_p_children[i] != NULL)
+	return (m_a_p_children[i]);
+
+      while (++i < arr_size)
+	if (m_a_p_children[i] != NULL)
+	  {
+	    if (m_a_p_children[i]->m_type == pat_trie_leaf_node_type)
+	      return (m_a_p_children[i]);
+
+	    PB_DS_DBG_ASSERT(m_a_p_children[i]->m_type ==
+			     pat_trie_internal_node_type);
+
+	    return (static_cast<internal_node_pointer>(
+						       m_a_p_children[i])->leftmost_descendant());
+	  }
+
+      return (rightmost_descendant());
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::node_pointer
+    PB_DS_CLASS_C_DEC::
+    add_child(node_pointer p_nd, const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits)
+    {
+      const size_type i = get_pref_pos(        b_it, e_it, p_traits);
+
+      PB_DS_DBG_ASSERT(i < arr_size);
+
+      if (m_a_p_children[i] == NULL)
+	{
+	  m_a_p_children[i] = p_nd;
+
+	  p_nd->m_p_parent = this;
+
+	  return (p_nd);
+	}
+
+      return (m_a_p_children[i]);
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::const_node_pointer
+    PB_DS_CLASS_C_DEC::
+    get_join_child(const_node_pointer p_nd, const_e_access_traits_pointer p_traits) const
+    {
+      return (const_cast<internal_node_pointer>(this)->get_join_child(
+								      const_cast<node_pointer>(p_nd),
+								      p_traits));
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::node_pointer
+    PB_DS_CLASS_C_DEC::
+    get_join_child(node_pointer p_nd, const_e_access_traits_pointer p_traits)
+    {
+      size_type i;
+
+      const_e_iterator b_it;
+      const_e_iterator e_it;
+
+      if (p_nd->m_type == pat_trie_leaf_node_type)
+	{
+	  typename Type_Traits::const_key_reference r_key =
+	    e_access_traits::extract_key(
+					 static_cast<const_leaf_pointer>(p_nd)->value());
+
+	  b_it = p_traits->begin(r_key);
+	  e_it = p_traits->end(r_key);
+	}
+      else
+	{
+	  b_it = static_cast<internal_node_pointer>(p_nd)->pref_b_it();
+	  e_it = static_cast<internal_node_pointer>(p_nd)->pref_e_it();
+	}
+
+      i = get_pref_pos(b_it, e_it, p_traits);
+
+      PB_DS_DBG_ASSERT(i < arr_size);
+
+      return (m_a_p_children[i]);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    remove_child(node_pointer p_nd)
+    {
+      size_type i = 0;
+
+      for (; i < arr_size; ++i)
+	if (m_a_p_children[i] == p_nd)
+	  {
+	    m_a_p_children[i] = NULL;
+
+	    return;
+	  }
+
+      PB_DS_DBG_ASSERT(i != arr_size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::iterator
+    PB_DS_CLASS_C_DEC::
+    remove_child(iterator it)
+    {
+      iterator ret = it;
+
+      ++ret;
+
+      * it.m_p_p_cur = NULL;
+
+      return (ret);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    replace_child(node_pointer p_nd, const_e_iterator b_it, const_e_iterator e_it, const_e_access_traits_pointer p_traits)
+    {
+      const size_type i = get_pref_pos(        b_it, e_it, p_traits);
+
+      PB_DS_DBG_ASSERT(i < arr_size);
+
+      m_a_p_children[i] = p_nd;
+
+      p_nd->m_p_parent = this;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::const_e_iterator
+    PB_DS_CLASS_C_DEC::
+    pref_b_it() const
+    {
+      return (m_pref_b_it);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::const_e_iterator
+    PB_DS_CLASS_C_DEC::
+    pref_e_it() const
+    {
+      return (m_pref_e_it);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    get_e_ind() const
+    {
+      return (m_e_ind);
+    }
+
+    PB_DS_CLASS_T_DEC
+    bool
+    PB_DS_CLASS_C_DEC::
+    should_be_mine(const_e_iterator b_it, const_e_iterator e_it, size_type checked_ind, const_e_access_traits_pointer p_traits) const
+    {
+      if (m_e_ind == 0)
+	return (true);
+
+      const size_type num_es = std::distance(b_it, e_it);
+
+      if (num_es < m_e_ind)
+	return (false);
+
+      const_e_iterator key_b_it = b_it;
+      std::advance(key_b_it, checked_ind);
+      const_e_iterator key_e_it = b_it;
+      std::advance(key_e_it, m_e_ind);
+
+      const_e_iterator value_b_it = m_pref_b_it;
+      std::advance(value_b_it, checked_ind);
+      const_e_iterator value_e_it = m_pref_b_it;
+      std::advance(value_e_it, m_e_ind);
+
+      return (p_traits->equal_prefixes(            key_b_it, key_e_it, value_b_it, value_e_it));
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::leaf_pointer
+    PB_DS_CLASS_C_DEC::
+    leftmost_descendant()
+    {
+      node_pointer p_pot =* begin();
+
+      if (p_pot->m_type == pat_trie_leaf_node_type)
+	return (static_cast<leaf_pointer>(p_pot));
+
+      PB_DS_DBG_ASSERT(p_pot->m_type == pat_trie_internal_node_type);
+
+      return (static_cast<internal_node_pointer>(p_pot)->leftmost_descendant());
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::const_leaf_pointer
+    PB_DS_CLASS_C_DEC::
+    leftmost_descendant() const
+    {
+      return (const_cast<internal_node_pointer>(this)->leftmost_descendant());
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::leaf_pointer
+    PB_DS_CLASS_C_DEC::
+    rightmost_descendant()
+    {
+      const size_type num_children = std::distance(begin(), end());
+
+      PB_DS_DBG_ASSERT(num_children >= 2);
+
+      iterator it = begin();
+      std::advance(it, num_children - 1);
+
+      node_pointer p_pot =* it;
+
+      if (p_pot->m_type == pat_trie_leaf_node_type)
+	return (static_cast<leaf_pointer>(p_pot));
+
+      PB_DS_DBG_ASSERT(p_pot->m_type == pat_trie_internal_node_type);
+
+      return (static_cast<internal_node_pointer>(p_pot)->rightmost_descendant());
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::const_leaf_pointer
+    PB_DS_CLASS_C_DEC::
+    rightmost_descendant() const
+    {
+      return (const_cast<internal_node_pointer>(this)->rightmost_descendant());
+    }
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    e_ind() const
+    {
+      return (m_e_ind);
+    }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    get_begin_pos() const
+    {
+      size_type i;
+
+      for (i = 0; i < arr_size&&  m_a_p_children[i] == NULL; ++i)
+	;
+
+      return (i);
+    }
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::subtree_debug_info
+    PB_DS_CLASS_C_DEC::
+    assert_valid_imp(const_e_access_traits_pointer p_traits) const
+    {
+      PB_DS_DBG_ASSERT(base_type::m_type == pat_trie_internal_node_type);
+
+      PB_DS_DBG_ASSERT(
+		       static_cast<size_type>(std::distance(pref_b_it(), pref_e_it())) ==
+		       m_e_ind);
+
+      PB_DS_DBG_ASSERT(
+		       std::distance(begin(), end()) >= 2);
+
+      for (typename pat_trie_internal_node::const_iterator it = begin();
+	   it != end(); ++it)
+	{
+	  const_node_pointer p_nd =* it;
+
+	  PB_DS_DBG_ASSERT(p_nd->m_p_parent == this);
+
+	  subtree_debug_info child_ret = p_nd->assert_valid_imp(p_traits);
+
+	  PB_DS_DBG_ASSERT(
+			   static_cast<size_type>(std::distance(child_ret.first, child_ret.second)) >=
+			   m_e_ind);
+
+	  PB_DS_DBG_ASSERT(should_be_mine(child_ret.first, child_ret.second, 0, p_traits));
+
+	  PB_DS_DBG_ASSERT(
+			   get_pref_pos(child_ret.first, child_ret.second, p_traits) ==
+			   static_cast<size_type>(it.m_p_p_cur - m_a_p_children));
+	}
+
+      return (std::make_pair(pref_b_it(), pref_e_it()));
+    }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_LEAF_C_DEC
+
+#undef PB_DS_STATIC_ASSERT
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_NODE_BASE_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
new file mode 100644
index 000000000000..0f3658561ae0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
@@ -0,0 +1,148 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterators_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+begin()
+{
+  return (iterator(m_p_head->m_p_min));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin() const
+{
+  return (const_iterator(m_p_head->m_p_min));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+end()
+{
+  return (iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end() const
+{
+  return (const_iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reverse_iterator
+PB_DS_CLASS_C_DEC::
+rbegin() const
+{
+  if (empty())
+    return (rend());
+
+  return (--end());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::reverse_iterator
+PB_DS_CLASS_C_DEC::
+rbegin()
+{
+  if (empty())
+    return (rend());
+
+  return (--end());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::reverse_iterator
+PB_DS_CLASS_C_DEC::
+rend()
+{
+  return (reverse_iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reverse_iterator
+PB_DS_CLASS_C_DEC::
+rend() const
+{
+  return (const_reverse_iterator(m_p_head));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+node_begin() const
+{
+  return (const_node_iterator(m_p_head->m_p_parent, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+node_begin()
+{
+  return (node_iterator(m_p_head->m_p_parent, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_node_iterator
+PB_DS_CLASS_C_DEC::
+node_end() const
+{
+  return (const_node_iterator(NULL, this));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+node_end()
+{
+  return (node_iterator(NULL, this));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/leaf.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/leaf.hpp
new file mode 100644
index 000000000000..e2eae3d4e48a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/leaf.hpp
@@ -0,0 +1,207 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file leaf.hpp
+ * Contains a pat_trie_leaf for a patricia tree.
+ */
+
+#ifndef PB_DS_PAT_TRIE_LEAF_HPP
+#define PB_DS_PAT_TRIE_LEAF_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						class Type_Traits,	\
+						class E_Access_Traits,	\
+						class Metadata,		\
+						class Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    pat_trie_leaf<							\
+						Type_Traits,		\
+						E_Access_Traits,	\
+						Metadata,		\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC					\
+    pat_trie_node_base<						\
+					Type_Traits,		\
+					E_Access_Traits,	\
+					Metadata,		\
+					Allocator>
+
+#define PB_DS_PAT_TRIE_SUBTREE_DEBUG_INFO_C_DEC				\
+    pat_trie_subtree_debug_info<					\
+							Type_Traits,	\
+							E_Access_Traits, \
+							Allocator>
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    template<typename Type_Traits,
+	     class E_Access_Traits,
+	     class Metadata,
+	     class Allocator>
+    struct pat_trie_leaf : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef typename Type_Traits::value_type value_type;
+
+      typedef typename Type_Traits::const_reference const_reference;
+
+      typedef typename Type_Traits::reference reference;
+
+      typedef
+      typename Allocator::template rebind<
+	E_Access_Traits>::other::const_pointer
+      const_e_access_traits_pointer;
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      typedef
+      typename PB_DS_BASE_C_DEC::subtree_debug_info
+      subtree_debug_info;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      pat_trie_leaf(const_reference r_val);
+
+      inline reference
+      value();
+
+      inline const_reference
+      value() const;
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      virtual subtree_debug_info
+      assert_valid_imp(const_e_access_traits_pointer p_traits) const;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      virtual
+      ~pat_trie_leaf();
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    private:
+      pat_trie_leaf(const PB_DS_CLASS_C_DEC& other);
+
+    private:
+      value_type m_value;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    pat_trie_leaf(const_reference r_val) :
+      PB_DS_BASE_C_DEC(pat_trie_leaf_node_type),
+      m_value(r_val)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::reference
+    PB_DS_CLASS_C_DEC::
+    value()
+    {
+      return (m_value);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::const_reference
+    PB_DS_CLASS_C_DEC::
+    value() const
+    {
+      return (m_value);
+    }
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::subtree_debug_info
+    PB_DS_CLASS_C_DEC::
+    assert_valid_imp(const_e_access_traits_pointer p_traits) const
+    {
+      PB_DS_DBG_ASSERT(base_type::m_type == pat_trie_leaf_node_type);
+
+      subtree_debug_info ret;
+
+      const_reference r_val = value();
+
+      return (std::make_pair(
+			     p_traits->begin(p_traits->extract_key(r_val)),
+			     p_traits->end(p_traits->extract_key(r_val))));
+    }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ~pat_trie_leaf()
+    { }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_PAT_TRIE_SUBTREE_DEBUG_INFO_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_NODE_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_base.hpp
new file mode 100644
index 000000000000..eeafb51d6b34
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_base.hpp
@@ -0,0 +1,155 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_base.hpp
+ * Contains a pat_trie_node_base base for a patricia tree.
+ */
+
+#ifndef PB_DS_PAT_TRIE_NODE_BASE_HPP
+#define PB_DS_PAT_TRIE_NODE_BASE_HPP
+
+#include <ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						class Type_Traits,	\
+						class E_Access_Traits,	\
+						class Metadata,		\
+						class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    pat_trie_node_base<						\
+					Type_Traits,		\
+					E_Access_Traits,	\
+					Metadata,		\
+					Allocator>
+
+#define PB_DS_PAT_TRIE_SUBTREE_DEBUG_INFO_C_DEC				\
+    pat_trie_subtree_debug_info<					\
+							Type_Traits,	\
+							E_Access_Traits, \
+							Allocator>
+
+    enum pat_trie_node_type
+      {
+	pat_trie_internal_node_type,
+	pat_trie_leaf_node_type,
+	pat_trie_head_node_type
+      };
+
+    template<typename Type_Traits,
+	     class E_Access_Traits,
+	     class Metadata,
+	     class Allocator>
+    struct pat_trie_node_base : public pat_trie_node_metadata_base<
+      Metadata,
+      Allocator>
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<
+      pat_trie_node_base>::other::pointer
+      node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	E_Access_Traits>::other::const_pointer
+      const_e_access_traits_pointer;
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      typedef
+      std::pair<
+	typename E_Access_Traits::const_iterator,
+	typename E_Access_Traits::const_iterator>
+      subtree_debug_info;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    public:
+      pat_trie_node_base(pat_trie_node_type type);
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      void
+      assert_valid(const_e_access_traits_pointer p_traits) const;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      virtual subtree_debug_info
+      assert_valid_imp(const_e_access_traits_pointer p_traits) const = 0;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    public:
+      node_pointer m_p_parent;
+
+      const pat_trie_node_type m_type;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    pat_trie_node_base(pat_trie_node_type type) :
+      m_type(type)
+    { }
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    assert_valid(const_e_access_traits_pointer p_traits) const
+    {
+      assert_valid_imp(p_traits);
+    }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_PAT_TRIE_SUBTREE_DEBUG_INFO_C_DEC
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_NODE_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp
new file mode 100644
index 000000000000..24d9d51cb267
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_iterators.hpp
@@ -0,0 +1,383 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_iterators.hpp
+ * Contains an implementation class for pat_trie_.
+ */
+
+#ifndef PB_DS_PAT_TRIE_NODE_ITERATORS_HPP
+#define PB_DS_PAT_TRIE_NODE_ITERATORS_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#define PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC			\
+    pat_trie_const_node_it_<						\
+							Node,		\
+							Leaf,		\
+							Head,		\
+							Internal_Node,	\
+							Const_Iterator,	\
+							Iterator,	\
+							E_Access_Traits, \
+							Allocator>
+
+#define PB_DS_PAT_TRIE_NODE_ITERATOR_C_DEC			\
+    pat_trie_node_it_<						\
+					Node,			\
+					Leaf,			\
+					Head,			\
+					Internal_Node,		\
+					Const_Iterator,		\
+					Iterator,		\
+					E_Access_Traits,	\
+					Allocator>
+
+    // Const node iterator.
+    template<typename Node,
+	     class Leaf,
+	     class Head,
+	     class Internal_Node,
+	     class Const_Iterator,
+	     class Iterator,
+	     class E_Access_Traits,
+	     class Allocator>
+    class pat_trie_const_node_it_
+    {
+
+    protected:
+      typedef
+      typename Allocator::template rebind<
+      Node>::other::pointer
+      node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Leaf>::other::const_pointer
+      const_leaf_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Leaf>::other::pointer
+      leaf_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Internal_Node>::other::pointer
+      internal_node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Internal_Node>::other::const_pointer
+      const_internal_node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	E_Access_Traits>::other::const_pointer
+      const_e_access_traits_pointer;
+
+    private:
+      inline typename E_Access_Traits::const_iterator
+      pref_begin() const
+      {
+	if (m_p_nd->m_type == pat_trie_leaf_node_type)
+	  return (m_p_traits->begin(
+				    m_p_traits->extract_key(
+							    static_cast<const_leaf_pointer>(m_p_nd)->value())));
+
+	PB_DS_DBG_ASSERT(m_p_nd->m_type == pat_trie_internal_node_type);
+
+	return (static_cast<const_internal_node_pointer>(m_p_nd)->pref_b_it());
+      }
+
+      inline typename E_Access_Traits::const_iterator
+      pref_end() const
+      {
+	if (m_p_nd->m_type == pat_trie_leaf_node_type)
+	  return (m_p_traits->end(
+				  m_p_traits->extract_key(
+							  static_cast<const_leaf_pointer>(m_p_nd)->value())));
+
+	PB_DS_DBG_ASSERT(m_p_nd->m_type == pat_trie_internal_node_type);
+
+	return (static_cast<const_internal_node_pointer>(m_p_nd)->pref_e_it());
+      }
+
+    public:
+
+      // Size type.
+      typedef typename Allocator::size_type size_type;
+
+      // Category.
+      typedef trivial_iterator_tag iterator_category;
+
+      // Difference type.
+      typedef trivial_iterator_difference_type difference_type;
+
+      // __Iterator's value type.
+      typedef Const_Iterator value_type;
+
+      // __Iterator's reference type.
+      typedef value_type reference;
+
+      // __Iterator's __const reference type.
+      typedef value_type const_reference;
+
+      // Element access traits.
+      typedef E_Access_Traits e_access_traits;
+
+      // A key's element __const iterator.
+      typedef typename e_access_traits::const_iterator const_e_iterator;
+
+      // Metadata type.
+      typedef typename Node::metadata_type metadata_type;
+
+      // Const metadata reference type.
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::const_reference
+      const_metadata_reference;
+
+    public:
+
+      // Default constructor.
+      /*
+	inline
+	pat_trie_const_node_it_()
+      */
+
+      inline
+      pat_trie_const_node_it_(node_pointer p_nd = NULL,  const_e_access_traits_pointer p_traits = NULL) : m_p_nd(const_cast<node_pointer>(p_nd)),
+													  m_p_traits(p_traits)
+      { }
+
+      // Subtree valid prefix.
+      inline std::pair<
+	const_e_iterator,
+	const_e_iterator>
+      valid_prefix() const
+      {
+	return (std::make_pair(
+			       pref_begin(),
+			       pref_end()));
+      }
+
+      // Const access; returns the __const iterator*  associated with the current leaf.
+      inline const_reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(num_children() == 0);
+
+	return (Const_Iterator(m_p_nd));
+      }
+
+      // Metadata access.
+      inline const_metadata_reference
+      get_metadata() const
+      {
+	return (m_p_nd->get_metadata());
+      }
+
+      // Returns the number of children in the corresponding node.
+      inline size_type
+      num_children() const
+      {
+	if (m_p_nd->m_type == pat_trie_leaf_node_type)
+	  return (0);
+
+	PB_DS_DBG_ASSERT(m_p_nd->m_type == pat_trie_internal_node_type);
+
+	return (std::distance(
+			      static_cast<internal_node_pointer>(m_p_nd)->begin(),
+			      static_cast<internal_node_pointer>(m_p_nd)->end()));
+      }
+
+      // Returns a __const node __iterator to the corresponding node's i-th child.
+      PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC
+      get_child(size_type i) const
+      {
+	PB_DS_DBG_ASSERT(m_p_nd->m_type == pat_trie_internal_node_type);
+
+	typename Internal_Node::iterator it =
+	  static_cast<internal_node_pointer>(m_p_nd)->begin();
+
+	std::advance(it, i);
+
+	return (PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC(*it, m_p_traits));
+      }
+
+      // Compares content to a different iterator object.
+      inline bool
+      operator==(const PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC& other) const
+      {
+	return (m_p_nd == other.m_p_nd);
+      }
+
+      // Compares content (negatively) to a different iterator object.
+      inline bool
+      operator!=(const PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC& other) const
+      {
+	return (m_p_nd != other.m_p_nd);
+      }
+
+    private:
+
+      friend class PB_DS_CLASS_C_DEC;
+
+    public:
+      node_pointer m_p_nd;
+
+      const_e_access_traits_pointer m_p_traits;
+    };
+
+    // Node iterator.
+    template<typename Node,
+	     class Leaf,
+	     class Head,
+	     class Internal_Node,
+	     class Const_Iterator,
+	     class Iterator,
+	     class E_Access_Traits,
+	     class Allocator>
+    class pat_trie_node_it_ : 
+      public PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC
+
+    {
+
+    private:
+      typedef
+      typename Allocator::template rebind<
+      Node>::other::pointer
+      node_pointer;
+
+      typedef Iterator iterator;
+
+      typedef PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC base_type;
+
+      typedef
+      typename base_type::const_e_access_traits_pointer
+      const_e_access_traits_pointer;
+
+      typedef typename base_type::internal_node_pointer internal_node_pointer;
+
+    public:
+
+      // Size type.
+      typedef
+      typename PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC::size_type
+      size_type;
+
+      // __Iterator's value type.
+      typedef Iterator value_type;
+
+      // __Iterator's reference type.
+      typedef value_type reference;
+
+      // __Iterator's __const reference type.
+      typedef value_type const_reference;
+
+    public:
+
+      // Default constructor.
+      /*
+	inline
+	pat_trie_node_it_() ;
+      */
+
+      inline
+      pat_trie_node_it_(node_pointer p_nd = NULL,  const_e_access_traits_pointer p_traits = NULL) : base_type(p_nd, p_traits)
+      { }
+
+      // Access; returns the iterator*  associated with the current leaf.
+      inline reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(base_type::num_children() == 0);
+
+	return (Iterator(base_type::m_p_nd));
+
+      }
+
+      // Returns a node __iterator to the corresponding node's i-th child.
+      PB_DS_PAT_TRIE_NODE_ITERATOR_C_DEC
+      get_child(size_type i) const
+      {
+	PB_DS_DBG_ASSERT(base_type::m_p_nd->m_type ==
+			 pat_trie_internal_node_type);
+
+	typename Internal_Node::iterator it =
+	  static_cast<internal_node_pointer>(base_type::m_p_nd)->begin();
+
+	std::advance(it, i);
+
+	return (PB_DS_PAT_TRIE_NODE_ITERATOR_C_DEC(*it, base_type::m_p_traits));
+      }
+
+    private:
+      friend class PB_DS_CLASS_C_DEC;
+    };
+
+#undef PB_DS_PAT_TRIE_CONST_NODE_ITERATOR_C_DEC
+
+#undef PB_DS_PAT_TRIE_NODE_ITERATOR_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_NODE_ITERATORS_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp
new file mode 100644
index 000000000000..5434ff9d4080
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_metadata_base.hpp
+ * Contains an internal PB_DS_BASE_C_DEC for a patricia tree.
+ */
+
+#ifndef PB_DS_PAT_TRIE_NODE_METADATA_BASE_HPP
+#define PB_DS_PAT_TRIE_NODE_METADATA_BASE_HPP
+
+#include <ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Metadata, class Allocator>
+    struct pat_trie_node_metadata_base
+    {
+    public:
+      typedef Metadata metadata_type;
+
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::const_reference
+      const_metadata_reference;
+
+    public:
+      inline const_metadata_reference
+      get_metadata() const
+      {
+	return (m_metadata);
+      }
+
+    public:
+      metadata_type m_metadata;
+    };
+
+    template<typename Allocator>
+    struct pat_trie_node_metadata_base<
+      null_node_metadata,
+      Allocator>
+    {
+    public:
+      typedef null_node_metadata metadata_type;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_NODE_BASE_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
new file mode 100644
index 000000000000..25093e7e4347
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
@@ -0,0 +1,658 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file pat_trie_.hpp
+ * Contains an implementation class for a patricia tree.
+ */
+
+/**
+ * This implementation loosely borrows ideas from:
+ * 1) "Fast Mergeable Integer Maps", Okasaki, Gill 1998
+ * 2) "Ptset: Sets of integers implemented as Patricia trees",
+ *    Jean-Christophe Filliatr, 2000
+ **/
+
+#include <ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp>
+#include <ext/pb_ds/detail/pat_trie_/node_base.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/eq_fn/eq_by_less.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <iterator>
+#include <utility>
+#include <algorithm>
+#include <functional>
+#include <assert.h>
+#include <list>
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#include <ext/pb_ds/detail/map_debug_base.hpp>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Node_And_It_Traits, \
+						class Allocator>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    pat_trie_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    pat_trie_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC						\
+    PB_DS_CLASS_NAME<							\
+						Key,			\
+						Mapped,			\
+						Node_And_It_Traits,	\
+						Allocator>
+
+#define PB_DS_TYPES_TRAITS_C_DEC				\
+    types_traits<				\
+						Key,		\
+						Mapped,		\
+						Allocator,	\
+						false>
+
+#ifdef PB_DS_USE_MAP_DEBUG_BASE
+#define PB_DS_MAP_DEBUG_BASE_C_DEC					\
+    map_debug_base<					\
+								Key,	\
+								eq_by_less< \
+												Key, \
+												std::less< \
+														Key> >, \
+								typename Allocator::template rebind< \
+												     Key>::other::const_reference>
+#endif // #ifdef PB_DS_USE_MAP_DEBUG_BASE
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#define PB_DS_EP2VP(X)& ((X)->m_value)
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped_Data()
+#define PB_DS_EP2VP(X)& ((X)->m_value.first)
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+    typedef								\
+    static_assert_dumclass<				\
+									sizeof(static_assert<(bool)(E)>)> \
+    UNIQUE##static_assert_type
+
+    /**
+     * class description = PATRICIA trie implementation.">
+     **/
+    template<typename Key,
+	     typename Mapped,
+	     class Node_And_It_Traits,
+	     class Allocator>
+    class PB_DS_CLASS_NAME :
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      public PB_DS_MAP_DEBUG_BASE_C_DEC,
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+      public Node_And_It_Traits::synth_e_access_traits,
+      public Node_And_It_Traits::node_update,
+      public PB_DS_TYPES_TRAITS_C_DEC
+    {
+
+    private:
+
+      typedef
+      typename Node_And_It_Traits::synth_e_access_traits
+      synth_e_access_traits;
+
+      typedef
+      typename Allocator::template rebind<
+	synth_e_access_traits>::other::const_pointer
+      const_e_access_traits_pointer;
+
+      typedef
+      typename synth_e_access_traits::const_iterator
+      const_e_iterator;
+
+      typedef typename Node_And_It_Traits::node node;
+
+      typedef
+      typename Allocator::template rebind<
+	node>::other::const_pointer
+      const_node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	node>::other::pointer
+      node_pointer;
+
+      typedef typename Node_And_It_Traits::head head;
+
+      typedef
+      typename Allocator::template rebind<
+	head>::other
+      head_allocator;
+
+      typedef typename head_allocator::pointer head_pointer;
+
+      typedef typename Node_And_It_Traits::leaf leaf;
+
+      typedef
+      typename Allocator::template rebind<
+	leaf>::other
+      leaf_allocator;
+
+      typedef typename leaf_allocator::const_pointer const_leaf_pointer;
+
+      typedef typename leaf_allocator::pointer leaf_pointer;
+
+      typedef typename Node_And_It_Traits::internal_node internal_node;
+
+      typedef
+      typename Allocator::template rebind<
+	internal_node>::other
+      internal_node_allocator;
+
+      typedef
+      typename internal_node_allocator::const_pointer
+      const_internal_node_pointer;
+
+      typedef
+      typename internal_node_allocator::pointer
+      internal_node_pointer;
+
+      typedef PB_DS_TYPES_TRAITS_C_DEC traits_base;
+
+#include <ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp>
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      typedef PB_DS_MAP_DEBUG_BASE_C_DEC map_debug_base;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#include <ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp>
+
+      typedef
+      typename Node_And_It_Traits::null_node_update_pointer
+      null_node_update_pointer;
+
+    public:
+      typedef pat_trie_tag container_category;
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_pointer key_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_pointer
+      const_key_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_key_reference
+      const_key_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::mapped_type mapped_type;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_pointer
+      mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::mapped_reference
+      mapped_reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_TYPES_TRAITS_C_DEC::reference reference;
+
+      typedef
+      typename PB_DS_TYPES_TRAITS_C_DEC::const_reference
+      const_reference;
+
+      typedef
+      typename Node_And_It_Traits::const_iterator
+      const_point_iterator;
+
+      typedef typename Node_And_It_Traits::iterator point_iterator;
+
+      typedef const_point_iterator const_iterator;
+
+      typedef point_iterator iterator;
+
+      typedef
+      typename Node_And_It_Traits::const_reverse_iterator
+      const_reverse_iterator;
+
+      typedef typename Node_And_It_Traits::reverse_iterator reverse_iterator;
+
+      typedef
+      typename Node_And_It_Traits::const_node_iterator
+      const_node_iterator;
+
+      typedef typename Node_And_It_Traits::node_iterator node_iterator;
+
+      typedef typename Node_And_It_Traits::e_access_traits e_access_traits;
+
+      typedef typename Node_And_It_Traits::node_update node_update;
+
+      typedef Allocator allocator;
+
+    public:
+
+      PB_DS_CLASS_NAME();
+
+      PB_DS_CLASS_NAME(const e_access_traits& r_e_access_traits);
+
+      PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      ~PB_DS_CLASS_NAME();
+
+      inline bool
+      empty() const;
+
+      inline size_type
+      size() const;
+
+      inline size_type
+      max_size() const;
+
+      e_access_traits& 
+      get_e_access_traits();
+
+      const e_access_traits& 
+      get_e_access_traits() const;
+
+      node_update& 
+      get_node_update();
+
+      const node_update& 
+      get_node_update() const;
+
+      inline std::pair<
+	point_iterator,
+	bool>
+      insert(const_reference r_val);
+
+      inline mapped_reference
+      operator[](const_key_reference r_key)
+      {
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+	return (insert(std::make_pair(
+				      r_key,
+				      mapped_type())).first->second);
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+	insert(r_key);
+
+	return (traits_base::s_null_mapped);
+#endif // #ifdef PB_DS_DATA_TRUE
+      }
+
+      inline point_iterator
+      find(const_key_reference r_key);
+
+      inline const_point_iterator
+      find(const_key_reference r_key) const;
+
+      inline point_iterator
+      lower_bound(const_key_reference r_key);
+
+      inline const_point_iterator
+      lower_bound(const_key_reference r_key) const;
+
+      inline point_iterator
+      upper_bound(const_key_reference r_key);
+
+      inline const_point_iterator
+      upper_bound(const_key_reference r_key) const;
+
+      void
+      clear();
+
+      inline bool
+      erase(const_key_reference r_key);
+
+      inline const_iterator
+      erase(const_iterator it);
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      inline iterator
+      erase(iterator it);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      inline const_reverse_iterator
+      erase(const_reverse_iterator it);
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+      inline reverse_iterator
+      erase(reverse_iterator it);
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+      template<typename Pred>
+      inline size_type
+      erase_if(Pred pred);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+      void
+      split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other);
+
+      inline iterator
+      begin();
+
+      inline const_iterator
+      begin() const;
+
+      inline iterator
+      end();
+
+      inline const_iterator
+      end() const;
+
+      inline reverse_iterator
+      rbegin();
+
+      inline const_reverse_iterator
+      rbegin() const;
+
+      inline reverse_iterator
+      rend();
+
+      inline const_reverse_iterator
+      rend() const;
+
+      inline const_node_iterator
+      node_begin() const;
+
+      inline node_iterator
+      node_begin();
+
+      inline const_node_iterator
+      node_end() const;
+
+      inline node_iterator
+      node_end();
+
+#ifdef PB_DS_PAT_TRIE_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_PAT_TRIE_TRACE_
+
+    protected:
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+      void
+      value_swap(PB_DS_CLASS_C_DEC& other);
+
+      node_pointer
+      recursive_copy_node(const_node_pointer p_other_nd);
+
+    private:
+
+      void
+      initialize();
+
+      inline void
+      apply_update(node_pointer p_nd, null_node_update_pointer);
+
+      template<typename Node_Update_>
+      inline void
+      apply_update(node_pointer p_nd, Node_Update_* p_update);
+
+      bool
+      join_prep(PB_DS_CLASS_C_DEC& other, split_join_branch_bag& r_bag);
+
+      void
+      rec_join_prep(const_node_pointer p_l, const_node_pointer p_r, split_join_branch_bag& r_bag);
+
+      void
+      rec_join_prep(const_leaf_pointer p_l, const_leaf_pointer p_r, split_join_branch_bag& r_bag);
+
+      void
+      rec_join_prep(const_leaf_pointer p_l, const_internal_node_pointer p_r, split_join_branch_bag& r_bag);
+
+      void
+      rec_join_prep(const_internal_node_pointer p_l, const_leaf_pointer p_r, split_join_branch_bag& r_bag);
+
+      void
+      rec_join_prep(const_internal_node_pointer p_l, const_internal_node_pointer p_r, split_join_branch_bag& r_bag);
+
+      node_pointer
+      rec_join(node_pointer p_l, node_pointer p_r, size_type checked_ind, split_join_branch_bag& r_bag);
+
+      node_pointer
+      rec_join(leaf_pointer p_l, leaf_pointer p_r, split_join_branch_bag& r_bag);
+
+      node_pointer
+      rec_join(leaf_pointer p_l, internal_node_pointer p_r, size_type checked_ind, split_join_branch_bag& r_bag);
+
+      node_pointer
+      rec_join(internal_node_pointer p_l, leaf_pointer p_r, size_type checked_ind, split_join_branch_bag& r_bag);
+
+      node_pointer
+      rec_join(internal_node_pointer p_l, internal_node_pointer p_r, split_join_branch_bag& r_bag);
+
+      size_type
+      keys_diff_ind(typename e_access_traits::const_iterator b_l, typename e_access_traits::const_iterator e_l, typename e_access_traits::const_iterator b_r, typename e_access_traits::const_iterator e_r);
+
+      internal_node_pointer
+      insert_branch(node_pointer p_left_nd, node_pointer p_right_nd, split_join_branch_bag& r_bag);
+
+      void
+      update_min_max_for_inserted_leaf(leaf_pointer p_l);
+
+      void
+      erase_leaf(leaf_pointer p_l);
+
+      inline void
+      actual_erase_leaf(leaf_pointer p_lf);
+
+      void
+      clear_imp(node_pointer p_nd);
+
+      void
+      erase_fixup(internal_node_pointer p_nd);
+
+      void
+      update_min_max_for_erased_leaf(leaf_pointer p_l);
+
+      static inline const_e_iterator
+      pref_begin(const_node_pointer p_nd);
+
+      static inline const_e_iterator
+      pref_end(const_node_pointer p_nd);
+
+      inline node_pointer
+      find_imp(const_key_reference r_key);
+
+      inline node_pointer
+      lower_bound_imp(const_key_reference r_key);
+
+      inline node_pointer
+      upper_bound_imp(const_key_reference r_key);
+
+      inline static const_leaf_pointer
+      leftmost_descendant(const_node_pointer p_nd);
+
+      inline static leaf_pointer
+      leftmost_descendant(node_pointer p_nd);
+
+      inline static const_leaf_pointer
+      rightmost_descendant(const_node_pointer p_nd);
+
+      inline static leaf_pointer
+      rightmost_descendant(node_pointer p_nd);
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+
+      void
+      assert_valid() const;
+
+      void
+      assert_iterators() const;
+
+      void
+      assert_reverse_iterators() const;
+
+      static size_type
+      recursive_count_leafs(const_node_pointer p_nd);
+
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#ifdef PB_DS_PAT_TRIE_TRACE_
+
+      static void
+      trace_node(const_node_pointer p_nd, size_type level);
+
+      template<typename Metadata_>
+      static void
+      trace_node_metadata(const_node_pointer p_nd, type_to_type<Metadata_>);
+
+      static void
+      trace_node_metadata(const_node_pointer, type_to_type<null_node_metadata>);
+
+#endif // #ifdef PB_DS_PAT_TRIE_TRACE_
+
+      leaf_pointer
+      split_prep(const_key_reference r_key, PB_DS_CLASS_C_DEC& other, split_join_branch_bag& r_bag);
+
+      node_pointer
+      rec_split(node_pointer p_nd, const_e_iterator b_it, const_e_iterator e_it, PB_DS_CLASS_C_DEC& other, split_join_branch_bag& r_bag);
+
+      void
+      split_insert_branch(size_type e_ind, const_e_iterator b_it, typename internal_node::iterator child_b_it, size_type num_children, split_join_branch_bag& r_bag);
+
+    private:
+      static head_allocator s_head_allocator;
+
+      static internal_node_allocator s_internal_node_allocator;
+
+      static leaf_allocator s_leaf_allocator;
+
+      head_pointer m_p_head;
+
+      size_type m_size;
+    };
+
+#include <ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp>
+#include <ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_NAME
+
+#undef PB_DS_TYPES_TRAITS_C_DEC
+
+#undef PB_DS_MAP_DEBUG_BASE_C_DEC
+
+#undef PB_DS_V2F
+#undef PB_DS_EP2VP
+#undef PB_DS_V2S
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+#undef PB_DS_STATIC_ASSERT
+
+  } // namespace detail
+} // namespace pb_ds
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp
new file mode 100644
index 000000000000..2e159d76818f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/point_iterators.hpp
@@ -0,0 +1,574 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file point_iterators.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+#ifndef PB_DS_PAT_TRIE_FIND_ITERATORS_HPP
+#define PB_DS_PAT_TRIE_FIND_ITERATORS_HPP
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CONST_IT_C_DEC					\
+    pat_trie_const_it_<						\
+					Type_Traits,		\
+					Node,			\
+					Leaf,			\
+					Head,			\
+					Internal_Node,		\
+					Is_Forward_Iterator,	\
+					Allocator>
+
+#define PB_DS_CONST_ODIR_IT_C_DEC				\
+    pat_trie_const_it_<						\
+					Type_Traits,		\
+					Node,			\
+					Leaf,			\
+					Head,			\
+					Internal_Node,		\
+					!Is_Forward_Iterator,	\
+					Allocator>
+
+#define PB_DS_IT_C_DEC							\
+    pat_trie_it_<							\
+						Type_Traits,		\
+						Node,			\
+						Leaf,			\
+						Head,			\
+						Internal_Node,		\
+						Is_Forward_Iterator,	\
+						Allocator>
+
+#define PB_DS_ODIR_IT_C_DEC						\
+    pat_trie_it_<							\
+						Type_Traits,		\
+						Node,			\
+						Leaf,			\
+						Head,			\
+						Internal_Node,		\
+						!Is_Forward_Iterator,	\
+						Allocator>
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_PAT_TRIE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    // Const iterator.
+    template<typename Type_Traits,
+	     class Node,
+	     class Leaf,
+	     class Head,
+	     class Internal_Node,
+	     bool Is_Forward_Iterator,
+	     class Allocator>
+    class pat_trie_const_it_
+    {
+
+    private:
+      typedef
+      typename Allocator::template rebind<
+      Node>::other::pointer
+      node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Leaf>::other::const_pointer
+      const_leaf_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Leaf>::other::pointer
+      leaf_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Head>::other::pointer
+      head_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Internal_Node>::other::pointer
+      internal_node_pointer;
+
+    public:
+
+      typedef std::bidirectional_iterator_tag iterator_category;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef typename Type_Traits::value_type value_type;
+
+      typedef typename Type_Traits::pointer pointer;
+
+      typedef typename Type_Traits::const_pointer const_pointer;
+
+      typedef typename Type_Traits::reference reference;
+
+      typedef typename Type_Traits::const_reference const_reference;
+
+    public:
+
+      inline
+      pat_trie_const_it_(node_pointer p_nd = NULL) : m_p_nd(p_nd)
+      { }
+
+      inline
+      pat_trie_const_it_(const PB_DS_CONST_ODIR_IT_C_DEC& 
+			 other) : m_p_nd(other.m_p_nd)
+      { }
+
+      inline
+      PB_DS_CONST_IT_C_DEC& 
+      operator=(const PB_DS_CONST_IT_C_DEC& 
+		other)
+      {
+	m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline
+      PB_DS_CONST_IT_C_DEC& 
+      operator=(const PB_DS_CONST_ODIR_IT_C_DEC& 
+		other)
+      {
+	m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline const_pointer
+      operator->() const
+      {
+	PB_DS_DBG_ASSERT(m_p_nd->m_type == pat_trie_leaf_node_type);
+
+	return (&static_cast<leaf_pointer>(m_p_nd)->value());
+      }
+
+      inline const_reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(m_p_nd->m_type == pat_trie_leaf_node_type);
+
+	return (static_cast<leaf_pointer>(m_p_nd)->value());
+      }
+
+      inline bool
+      operator==(const PB_DS_CONST_IT_C_DEC
+		 & other) const
+      {
+	return (m_p_nd == other.m_p_nd);
+      }
+
+      inline bool
+      operator==(const PB_DS_CONST_ODIR_IT_C_DEC
+		 & other) const
+      {
+	return (m_p_nd == other.m_p_nd);
+      }
+
+      inline bool
+      operator!=(const PB_DS_CONST_IT_C_DEC& 
+		 other) const
+      {
+	return (m_p_nd != other.m_p_nd);
+      }
+
+      inline bool
+      operator!=(const PB_DS_CONST_ODIR_IT_C_DEC& 
+		 other) const
+      {
+	return (m_p_nd != other.m_p_nd);
+      }
+
+      inline PB_DS_CONST_IT_C_DEC& 
+      operator++()
+      {
+	inc(integral_constant<int,Is_Forward_Iterator>());
+
+	return (*this);
+      }
+
+      inline PB_DS_CONST_IT_C_DEC
+      operator++(int)
+      {
+	PB_DS_CONST_IT_C_DEC
+	  ret_it(m_p_nd);
+
+	operator++();
+
+	return (ret_it);
+      }
+
+      inline PB_DS_CONST_IT_C_DEC& 
+      operator--()
+      {
+	dec(integral_constant<int,Is_Forward_Iterator>());
+
+	return (*this);
+      }
+
+      inline PB_DS_CONST_IT_C_DEC
+      operator--(int)
+      {
+	PB_DS_CONST_IT_C_DEC
+	  ret_it(m_p_nd);
+
+	operator--();
+
+	return (ret_it);
+      }
+
+    protected:
+      inline void
+      inc(false_type)
+      {
+	dec(true_type());
+      }
+
+      void
+      inc(true_type)
+      {
+	if (m_p_nd->m_type == pat_trie_head_node_type)
+	  {
+	    m_p_nd = static_cast<head_pointer>(m_p_nd)->m_p_min;
+
+	    return;
+	  }
+
+	node_pointer p_y = m_p_nd->m_p_parent;
+
+	while (p_y->m_type != pat_trie_head_node_type&& 
+	       get_larger_sibling(m_p_nd) == NULL)
+	  {
+	    m_p_nd = p_y;
+
+	    p_y = p_y->m_p_parent;
+	  }
+
+	if (p_y->m_type == pat_trie_head_node_type)
+	  {
+	    m_p_nd = p_y;
+
+	    return;
+	  }
+
+	m_p_nd = leftmost_descendant(get_larger_sibling(m_p_nd));
+      }
+
+      inline void
+      dec(false_type)
+      {
+	inc(true_type());
+      }
+
+      void
+      dec(true_type)
+      {
+	if (m_p_nd->m_type == pat_trie_head_node_type)
+	  {
+	    m_p_nd = static_cast<head_pointer>(m_p_nd)->m_p_max;
+
+	    return;
+	  }
+
+	node_pointer p_y = m_p_nd->m_p_parent;
+
+	while (p_y->m_type != pat_trie_head_node_type&& 
+	       get_smaller_sibling(m_p_nd) == NULL)
+	  {
+	    m_p_nd = p_y;
+
+	    p_y = p_y->m_p_parent;
+	  }
+
+	if (p_y->m_type == pat_trie_head_node_type)
+	  {
+	    m_p_nd = p_y;
+
+	    return;
+	  }
+
+	m_p_nd = rightmost_descendant(get_smaller_sibling(m_p_nd));
+      }
+
+      inline static node_pointer
+      get_larger_sibling(node_pointer p_nd)
+      {
+	internal_node_pointer p_parent =
+	  static_cast<internal_node_pointer>(p_nd->m_p_parent);
+
+	typename Internal_Node::iterator it = p_parent->begin();
+
+	while (*it != p_nd)
+	  ++it;
+
+	typename Internal_Node::iterator next_it = it;
+	++next_it;
+
+	return ((next_it == p_parent->end())? NULL :* next_it);
+      }
+
+      inline static node_pointer
+      get_smaller_sibling(node_pointer p_nd)
+      {
+	internal_node_pointer p_parent =
+	  static_cast<internal_node_pointer>(p_nd->m_p_parent);
+
+	typename Internal_Node::iterator it = p_parent->begin();
+
+	if (*it == p_nd)
+	  return (NULL);
+
+	typename Internal_Node::iterator prev_it;
+
+	do
+	  {
+	    prev_it = it;
+
+	    ++it;
+
+	    if (*it == p_nd)
+	      return (*prev_it);
+	  }
+	while (true);
+
+	PB_DS_DBG_ASSERT(false);
+
+	return (NULL);
+      }
+
+      inline static leaf_pointer
+      leftmost_descendant(node_pointer p_nd)
+      {
+	if (p_nd->m_type == pat_trie_leaf_node_type)
+	  return (static_cast<leaf_pointer>(p_nd));
+
+	return (static_cast<internal_node_pointer>(p_nd)->leftmost_descendant());
+      }
+
+      inline static leaf_pointer
+      rightmost_descendant(node_pointer p_nd)
+      {
+	if (p_nd->m_type == pat_trie_leaf_node_type)
+	  return (static_cast<leaf_pointer>(p_nd));
+
+	return (static_cast<internal_node_pointer>(p_nd)->rightmost_descendant());
+      }
+
+    public:
+      node_pointer m_p_nd;
+    };
+
+    // Iterator.
+    template<typename Type_Traits,
+	     class Node,
+	     class Leaf,
+	     class Head,
+	     class Internal_Node,
+	     bool Is_Forward_Iterator,
+	     class Allocator>
+    class pat_trie_it_ : 
+      public PB_DS_CONST_IT_C_DEC
+
+    {
+
+    private:
+      typedef
+      typename Allocator::template rebind<
+      Node>::other::pointer
+      node_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Leaf>::other::const_pointer
+      const_leaf_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Leaf>::other::pointer
+      leaf_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Head>::other::pointer
+      head_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	Internal_Node>::other::pointer
+      internal_node_pointer;
+
+    public:
+      typedef typename Type_Traits::value_type value_type;
+
+      typedef typename Type_Traits::const_pointer const_pointer;
+
+      typedef typename Type_Traits::pointer pointer;
+
+      typedef typename Type_Traits::const_reference const_reference;
+
+      typedef typename Type_Traits::reference reference;
+
+    public:
+
+      inline
+      pat_trie_it_(node_pointer p_nd = NULL) : PB_DS_CONST_IT_C_DEC((node_pointer)p_nd)
+      { }
+
+      inline
+      pat_trie_it_(const PB_DS_ODIR_IT_C_DEC& other) : PB_DS_CONST_IT_C_DEC(other.m_p_nd)
+      { }
+
+      inline
+      PB_DS_IT_C_DEC& 
+      operator=(const PB_DS_IT_C_DEC& other)
+      {
+	base_it_type::m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline
+      PB_DS_IT_C_DEC& 
+      operator=(const PB_DS_ODIR_IT_C_DEC& other)
+      {
+	base_it_type::m_p_nd = other.m_p_nd;
+
+	return (*this);
+      }
+
+      inline pointer
+      operator->() const
+      {
+	PB_DS_DBG_ASSERT(base_it_type::m_p_nd->m_type ==
+			 pat_trie_leaf_node_type);
+
+	return (&static_cast<leaf_pointer>(base_it_type::m_p_nd)->value());
+      }
+
+      inline reference
+      operator*() const
+      {
+	PB_DS_DBG_ASSERT(base_it_type::m_p_nd->m_type ==
+			 pat_trie_leaf_node_type);
+
+	return (static_cast<leaf_pointer>(base_it_type::m_p_nd)->value());
+      }
+
+      inline PB_DS_IT_C_DEC& 
+      operator++()
+      {
+	PB_DS_CONST_IT_C_DEC::
+	  operator++();
+
+	return (*this);
+      }
+
+      inline PB_DS_IT_C_DEC
+      operator++(int)
+      {
+	PB_DS_IT_C_DEC
+	  ret_it(base_it_type::m_p_nd);
+
+	operator++();
+
+	return (ret_it);
+      }
+
+      inline PB_DS_IT_C_DEC& 
+      operator--()
+      {
+	PB_DS_CONST_IT_C_DEC::
+	  operator--();
+
+	return (*this);
+      }
+
+      inline PB_DS_IT_C_DEC
+      operator--(int)
+      {
+	PB_DS_IT_C_DEC
+	  ret_it(base_it_type::m_p_nd);
+
+	operator--();
+
+	return (ret_it);
+      }
+
+    protected:
+      typedef PB_DS_CONST_IT_C_DEC base_it_type;
+
+      friend class PB_DS_CLASS_C_DEC;
+    };
+
+#undef PB_DS_CONST_IT_C_DEC
+
+#undef PB_DS_CONST_ODIR_IT_C_DEC
+
+#undef PB_DS_IT_C_DEC
+
+#undef PB_DS_ODIR_IT_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_FIND_ITERATORS_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..a054e279f26f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
@@ -0,0 +1,77 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::e_access_traits& 
+PB_DS_CLASS_C_DEC::
+get_e_access_traits()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const typename PB_DS_CLASS_C_DEC::e_access_traits& 
+PB_DS_CLASS_C_DEC::
+get_e_access_traits() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_update& 
+PB_DS_CLASS_C_DEC::
+get_node_update()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const typename PB_DS_CLASS_C_DEC::node_update& 
+PB_DS_CLASS_C_DEC::
+get_node_update() const
+{
+  return (*this);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
new file mode 100644
index 000000000000..91ce90a4eab9
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file r_erase_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+actual_erase_node(node_pointer p_z)
+{
+  PB_DS_DBG_ASSERT(m_size > 0);
+  --m_size;
+
+  PB_DS_DBG_ONLY(erase_existing(PB_DS_V2F(p_z->m_value)));
+
+  p_z->~node();
+
+  s_node_allocator.deallocate(p_z, 1);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+update_min_max_for_erased_node(node_pointer p_z)
+{
+  if (m_size == 1)
+    {
+      m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
+
+      return;
+    }
+
+  if (m_p_head->m_p_left == p_z)
+    {
+      iterator it(p_z);
+
+      ++it;
+
+      m_p_head->m_p_left = it.m_p_nd;
+    }
+  else if (m_p_head->m_p_right == p_z)
+    {
+      iterator it(p_z);
+
+      --it;
+
+      m_p_head->m_p_right = it.m_p_nd;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  PB_DS_DBG_ONLY(assert_valid(true, true);)
+
+    clear_imp(m_p_head->m_p_parent);
+
+  m_size = 0;
+
+  initialize();
+
+  PB_DS_DBG_ONLY(map_debug_base::clear();)
+
+    PB_DS_DBG_ONLY(assert_valid(true, true);)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear_imp(node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return;
+
+  clear_imp(p_nd->m_p_left);
+
+  clear_imp(p_nd->m_p_right);
+
+  p_nd->~Node();
+
+  s_node_allocator.deallocate(p_nd, 1);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
new file mode 100644
index 000000000000..a88ba0fad8b1
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
@@ -0,0 +1,165 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file rotate_fn_imps.hpp
+ * Contains imps for rotating nodes.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+rotate_left(node_pointer p_x)
+{
+  node_pointer p_y = p_x->m_p_right;
+
+  p_x->m_p_right = p_y->m_p_left;
+
+  if (p_y->m_p_left != NULL)
+    p_y->m_p_left->m_p_parent = p_x;
+
+  p_y->m_p_parent = p_x->m_p_parent;
+
+  if (p_x == m_p_head->m_p_parent)
+    m_p_head->m_p_parent = p_y;
+  else if (p_x == p_x->m_p_parent->m_p_left)
+    p_x->m_p_parent->m_p_left = p_y;
+  else
+    p_x->m_p_parent->m_p_right = p_y;
+
+  p_y->m_p_left = p_x;
+  p_x->m_p_parent = p_y;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_x);)
+    PB_DS_DBG_ONLY(assert_node_consistent(p_y);)
+
+    apply_update(p_x, (Node_Update* )this);
+  apply_update(p_x->m_p_parent, (Node_Update* )this);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+rotate_right(node_pointer p_x)
+{
+  node_pointer p_y = p_x->m_p_left;
+
+  p_x->m_p_left = p_y->m_p_right;
+
+  if (p_y->m_p_right != NULL)
+    p_y->m_p_right->m_p_parent = p_x;
+
+  p_y->m_p_parent = p_x->m_p_parent;
+
+  if (p_x == m_p_head->m_p_parent)
+    m_p_head->m_p_parent = p_y;
+  else if (p_x == p_x->m_p_parent->m_p_right)
+    p_x->m_p_parent->m_p_right = p_y;
+  else
+    p_x->m_p_parent->m_p_left = p_y;
+
+  p_y->m_p_right = p_x;
+  p_x->m_p_parent = p_y;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_x);)
+    PB_DS_DBG_ONLY(assert_node_consistent(p_y);)
+
+    apply_update(p_x, (Node_Update* )this);
+  apply_update(p_x->m_p_parent, (Node_Update* )this);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+rotate_parent(node_pointer p_nd)
+{
+  node_pointer p_parent = p_nd->m_p_parent;
+
+  if (p_nd == p_parent->m_p_left)
+    rotate_right(p_parent);
+  else
+    rotate_left(p_parent);
+
+  PB_DS_DBG_ASSERT(p_parent->m_p_parent = p_nd);
+  PB_DS_DBG_ASSERT(p_nd->m_p_left == p_parent ||
+		   p_nd->m_p_right == p_parent);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+apply_update(node_pointer /*p_nd*/, pb_ds::null_node_update*  /*p_update*/)
+{ }
+
+PB_DS_CLASS_T_DEC
+template<typename Node_Update_>
+inline void
+PB_DS_CLASS_C_DEC::
+apply_update(node_pointer p_nd, Node_Update_* p_update)
+{
+  p_update->operator()(
+			& PB_DS_V2F(p_nd->m_value),(p_nd->m_p_left == NULL)?
+			NULL :
+			& PB_DS_V2F(p_nd->m_p_left->m_value),(p_nd->m_p_right == NULL)?
+			NULL :
+			& PB_DS_V2F(p_nd->m_p_right->m_value));
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Node_Update_>
+inline void
+PB_DS_CLASS_C_DEC::
+update_to_top(node_pointer p_nd, Node_Update_* p_update)
+{
+  while (p_nd != m_p_head)
+    {
+      apply_update(p_nd, p_update);
+
+      p_nd = p_nd->m_p_parent;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+update_to_top(node_pointer /*p_nd*/, pb_ds::null_node_update*  /*p_update*/)
+{ }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
new file mode 100644
index 000000000000..12d27b3b1741
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
@@ -0,0 +1,336 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_fn_imps.hpp
+ * Contains an implementation class for bin_search_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid(););
+  PB_DS_DBG_ONLY(other.assert_valid(););
+
+  split_join_branch_bag bag;
+
+  leaf_pointer p_split_lf = split_prep(r_key, other, bag);
+
+  if (p_split_lf == NULL)
+    {
+      PB_DS_DBG_ASSERT(bag.empty());
+
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return;
+    }
+
+  PB_DS_DBG_ASSERT(!bag.empty());
+
+  other.clear();
+
+  m_p_head->m_p_parent = rec_split(
+				   m_p_head->m_p_parent,
+				   pref_begin(p_split_lf),
+				   pref_end(p_split_lf),
+				   other,
+				   bag);
+
+  m_p_head->m_p_parent->m_p_parent = m_p_head;
+
+  other.m_p_head->m_p_max = m_p_head->m_p_max;
+  m_p_head->m_p_max = rightmost_descendant(m_p_head->m_p_parent);
+  other.m_p_head->m_p_min =
+    other.leftmost_descendant(other.m_p_head->m_p_parent);
+
+  other.m_size = std::distance(
+			       other.PB_DS_CLASS_C_DEC::begin(),
+			       other.PB_DS_CLASS_C_DEC::end());
+  m_size -= other.m_size;
+
+  PB_DS_DBG_ONLY(assert_valid(););
+  PB_DS_DBG_ONLY(other.assert_valid(););
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::leaf_pointer
+PB_DS_CLASS_C_DEC::
+split_prep(const_key_reference r_key, PB_DS_CLASS_C_DEC& other, split_join_branch_bag& r_bag)
+{
+  PB_DS_DBG_ASSERT(r_bag.empty());
+
+  if (m_size == 0)
+    {
+      other.clear();
+
+      PB_DS_DBG_ONLY(assert_valid(););
+      PB_DS_DBG_ONLY(other.assert_valid(););
+
+      return (NULL);
+    }
+
+  if (synth_e_access_traits::cmp_keys(
+				      r_key,
+				      PB_DS_V2F(static_cast<const_leaf_pointer>(m_p_head->m_p_min)->value())))
+    {
+      other.clear();
+
+      value_swap(other);
+
+      PB_DS_DBG_ONLY(assert_valid(););
+      PB_DS_DBG_ONLY(other.assert_valid(););
+
+      return (NULL);
+    }
+
+  if (!synth_e_access_traits::cmp_keys(
+				       r_key,
+				       PB_DS_V2F(static_cast<const_leaf_pointer>(m_p_head->m_p_max)->value())))
+    {
+      PB_DS_DBG_ONLY(assert_valid(););
+      PB_DS_DBG_ONLY(other.assert_valid(););
+
+      return (NULL);
+    }
+
+  iterator it = lower_bound(r_key);
+
+  if (!synth_e_access_traits::equal_keys(
+					 PB_DS_V2F(*it),
+					 r_key))
+    --it;
+
+  node_pointer p_nd = it.m_p_nd;
+
+  PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_leaf_node_type);
+
+  leaf_pointer p_ret_l = static_cast<leaf_pointer>(p_nd);
+
+  while (p_nd->m_type != pat_trie_head_node_type)
+    {
+      r_bag.add_branch();
+
+      p_nd = p_nd->m_p_parent;
+    }
+
+  PB_DS_DBG_ONLY(map_debug_base::split(
+				       r_key,(synth_e_access_traits& )(*this),
+				       other);)
+
+    return (p_ret_l);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+rec_split(node_pointer p_nd, const_e_iterator b_it, const_e_iterator e_it, PB_DS_CLASS_C_DEC& other, split_join_branch_bag& r_bag)
+{
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    {
+      PB_DS_DBG_ASSERT(other.m_p_head->m_p_parent == NULL);
+
+      return (p_nd);
+    }
+
+  PB_DS_DBG_ASSERT(p_nd->m_type == pat_trie_internal_node_type);
+
+  internal_node_pointer p_internal_nd =
+    static_cast<internal_node_pointer>(p_nd);
+
+  node_pointer p_child_ret = rec_split(
+				       p_internal_nd->get_child_node(b_it, e_it, this),
+				       b_it,
+				       e_it,
+				       other,
+				       r_bag);
+
+  PB_DS_DBG_ONLY(p_child_ret->assert_valid(this);)
+
+    p_internal_nd->replace_child(        p_child_ret, b_it, e_it, this);
+
+  apply_update(p_internal_nd, (node_update* )this);
+
+  typename internal_node::iterator child_it    =
+    p_internal_nd->get_child_it(b_it, e_it, this);
+
+  const size_type lhs_num_children =
+    std::distance(p_internal_nd->begin(), child_it) + 1;
+
+  PB_DS_DBG_ASSERT(lhs_num_children > 0);
+
+  size_type rhs_num_children =
+    std::distance(p_internal_nd->begin(), p_internal_nd->end()) -
+    lhs_num_children;
+
+  if (rhs_num_children == 0)
+    {
+      apply_update(p_internal_nd, (node_update* )this);
+
+      return (p_internal_nd);
+    }
+
+  ++child_it;
+
+  other.split_insert_branch(p_internal_nd->get_e_ind(),
+			    b_it,
+			    child_it,
+			    rhs_num_children,
+			    r_bag);
+
+  child_it    =
+    p_internal_nd->get_child_it(b_it, e_it, this);
+
+  ++child_it;
+
+  while (rhs_num_children != 0)
+    {
+      child_it = p_internal_nd->remove_child(child_it);
+
+      --rhs_num_children;
+    }
+
+  apply_update(p_internal_nd, (node_update* )this);
+
+  PB_DS_DBG_ASSERT(std::distance(
+				 p_internal_nd->begin(),
+				 p_internal_nd->end()) >= 1);
+
+  if (std::distance(p_internal_nd->begin(), p_internal_nd->end()) > 1)
+    {
+      p_internal_nd->update_prefixes(this);
+
+      PB_DS_DBG_ONLY(p_internal_nd->assert_valid(this);)
+
+        apply_update(p_internal_nd, (node_update* )this);
+
+      return (p_internal_nd);
+    }
+
+  node_pointer p_ret =* p_internal_nd->begin();
+
+  p_internal_nd->~internal_node();
+
+  s_internal_node_allocator.deallocate(p_internal_nd, 1);
+
+  apply_update(p_ret, (node_update* )this);
+
+  return (p_ret);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+split_insert_branch(size_type e_ind, const_e_iterator b_it, typename internal_node::iterator child_b_it, size_type num_children, split_join_branch_bag& r_bag)
+{
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+  if (m_p_head->m_p_parent != NULL)
+    m_p_head->m_p_parent->assert_valid(this);
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+  const size_type total_num_children =((m_p_head->m_p_parent == NULL)? 0 : 1) + num_children;
+
+  if (total_num_children == 0)
+    {
+      PB_DS_DBG_ASSERT(m_p_head->m_p_parent == NULL);
+
+      return;
+    }
+
+  if (total_num_children == 1)
+    {
+      if (m_p_head->m_p_parent != NULL)
+        {
+	  PB_DS_DBG_ONLY(m_p_head->m_p_parent->assert_valid(this);)
+
+            return;
+        }
+
+      PB_DS_DBG_ASSERT(m_p_head->m_p_parent == NULL);
+      m_p_head->m_p_parent =* child_b_it;
+
+      m_p_head->m_p_parent->m_p_parent = m_p_head;
+
+      apply_update(m_p_head->m_p_parent, (node_update* )this);
+
+      PB_DS_DBG_ONLY(m_p_head->m_p_parent->assert_valid(this);)
+
+        return;
+    }
+
+  PB_DS_DBG_ASSERT(total_num_children > 1);
+
+  internal_node_pointer p_new_root = r_bag.get_branch();
+
+  new (p_new_root) internal_node(e_ind, b_it);
+
+  size_type num_inserted = 0;
+
+  while (num_inserted++ < num_children)
+    {
+      PB_DS_DBG_ONLY((*child_b_it)->assert_valid(this);)
+
+        p_new_root->add_child(
+			      * child_b_it,
+			      pref_begin(*child_b_it),
+			      pref_end(*child_b_it),
+			      this);
+
+      ++child_b_it;
+    }
+
+  if (m_p_head->m_p_parent != NULL)
+    p_new_root->add_child(
+			  m_p_head->m_p_parent,
+			  pref_begin(m_p_head->m_p_parent),
+			  pref_end(m_p_head->m_p_parent),
+			  this);
+
+  m_p_head->m_p_parent = p_new_root;
+
+  p_new_root->m_p_parent = m_p_head;
+
+  apply_update(m_p_head->m_p_parent, (node_update* )this);
+
+  PB_DS_DBG_ONLY(m_p_head->m_p_parent->assert_valid(this);)
+    }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp
new file mode 100644
index 000000000000..3448de10e8f7
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp
@@ -0,0 +1,108 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_branch_bag.hpp
+ * Contains an implementation class for pat_trie_.
+ */
+
+class split_join_branch_bag
+{
+private:
+  typedef
+  std::list<
+  internal_node_pointer,
+  typename Allocator::template rebind<
+  internal_node_pointer>::other>
+  bag_t;
+
+public:
+
+  void
+  add_branch()
+  {
+    internal_node_pointer p_nd = s_internal_node_allocator.allocate(1);
+
+    try
+      {
+	m_bag.push_back(p_nd);
+      }
+    catch(...)
+      {
+	s_internal_node_allocator.deallocate(p_nd, 1);
+
+	throw;
+      }
+  }
+
+  internal_node_pointer
+  get_branch()
+  {
+    PB_DS_DBG_ASSERT(!m_bag.empty());
+
+    internal_node_pointer p_nd =* m_bag.begin();
+
+    m_bag.pop_front();
+
+    return (p_nd);
+  }
+
+  ~split_join_branch_bag()
+  {
+    while (!m_bag.empty())
+      {
+	internal_node_pointer p_nd =* m_bag.begin();
+
+	s_internal_node_allocator.deallocate(p_nd, 1);
+
+	m_bag.pop_front();
+      }
+  }
+
+  inline bool
+  empty() const
+  {
+    return (m_bag.empty());
+  }
+
+private:
+  bag_t m_bag;
+};
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp
new file mode 100644
index 000000000000..68f3473e6d41
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp
@@ -0,0 +1,243 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file synth_e_access_traits.hpp
+ * Contains an implementation class for a patricia tree.
+ */
+
+#ifndef PB_DS_SYNTH_E_ACCESS_TRAITS_HPP
+#define PB_DS_SYNTH_E_ACCESS_TRAITS_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC				\
+    template<typename Type_Traits, bool Set, class E_Access_Traits>
+
+#define PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC				\
+    synth_e_access_traits<						\
+						Type_Traits,		\
+						Set,			\
+						E_Access_Traits>
+
+    template<typename Type_Traits, bool Set, class E_Access_Traits>
+    struct synth_e_access_traits : public E_Access_Traits
+    {
+
+    private:
+      typedef E_Access_Traits base_type;
+
+      typedef Type_Traits type_traits;
+
+      typedef typename type_traits::const_key_reference const_key_reference;
+
+      typedef typename type_traits::const_reference const_reference;
+
+    public:
+      synth_e_access_traits();
+
+      synth_e_access_traits(const E_Access_Traits& r_traits);
+
+      inline bool
+      equal_prefixes(typename base_type::const_iterator b_l, typename base_type::const_iterator e_l, typename base_type::const_iterator b_r, typename base_type::const_iterator e_r, bool compare_after = true) const;
+
+      bool
+      equal_keys(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const;
+
+      bool
+      cmp_prefixes(typename base_type::const_iterator b_l, typename base_type::const_iterator e_l, typename base_type::const_iterator b_r, typename base_type::const_iterator e_r, bool compare_after = false) const;
+
+      bool
+      cmp_keys(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const;
+
+      inline static const_key_reference
+      extract_key(const_reference r_val);
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+      bool
+      operator()(const_key_reference r_lhs, const_key_reference r_rhs);
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+    private:
+      inline static const_key_reference
+      extract_key(const_reference r_val, true_type);
+
+      inline static const_key_reference
+      extract_key(const_reference r_val, false_type);
+
+    private:
+      static integral_constant<int,Set> s_set_ind;
+    };
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    integral_constant<int,Set>
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::s_set_ind;
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    synth_e_access_traits()
+    { }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    synth_e_access_traits(const E_Access_Traits& r_traits) :
+      E_Access_Traits(r_traits)
+    { }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    inline bool
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    equal_prefixes(typename base_type::const_iterator b_l, typename base_type::const_iterator e_l, typename base_type::const_iterator b_r, typename base_type::const_iterator e_r, bool compare_after /*= false */) const
+    {
+      while (b_l != e_l)
+	{
+	  if (b_r == e_r)
+	    return (false);
+
+	  if (base_type::e_pos(*b_l) != base_type::e_pos(*b_r))
+	    return (false);
+
+	  ++b_l;
+	  ++b_r;
+	}
+
+      return (!compare_after || b_r == e_r);
+    }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    bool
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    equal_keys(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const
+    {
+      return (equal_prefixes(base_type::begin(r_lhs_key),
+			     base_type::end(r_lhs_key),
+			     base_type::begin(r_rhs_key),
+			     base_type::end(r_rhs_key),
+			     true));
+    }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    bool
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    cmp_prefixes(typename base_type::const_iterator b_l, typename base_type::const_iterator e_l, typename base_type::const_iterator b_r, typename base_type::const_iterator e_r, bool compare_after /* = false*/) const
+    {
+      while (b_l != e_l)
+	{
+	  if (b_r == e_r)
+	    return (false);
+
+	  const typename base_type::size_type l_pos =
+	    base_type::e_pos(*b_l);
+	  const typename base_type::size_type r_pos =
+	    base_type::e_pos(*b_r);
+
+	  if (l_pos != r_pos)
+	    return (l_pos < r_pos);
+
+	  ++b_l;
+	  ++b_r;
+	}
+
+      if (!compare_after)
+	return (false);
+
+      return (b_r != e_r);
+    }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    bool
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    cmp_keys(const_key_reference r_lhs_key, const_key_reference r_rhs_key) const
+    {
+      return (cmp_prefixes(base_type::begin(r_lhs_key),
+			   base_type::end(r_lhs_key),
+			   base_type::begin(r_rhs_key),
+			   base_type::end(r_rhs_key),
+			   true));
+    }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    inline typename PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::const_key_reference
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    extract_key(const_reference r_val)
+    {
+      return (extract_key(r_val, s_set_ind));
+    }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    inline typename PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::const_key_reference
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    extract_key(const_reference r_val, true_type)
+    {
+      return (r_val);
+    }
+
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    inline typename PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::const_key_reference
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    extract_key(const_reference r_val, false_type)
+    {
+      return (r_val.first);
+    }
+
+#ifdef PB_DS_PAT_TRIE_DEBUG_
+    PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+    bool
+    PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC::
+    operator()(const_key_reference r_lhs, const_key_reference r_rhs)
+    {
+      return (cmp_keys(r_lhs, r_rhs));
+    }
+#endif // #ifdef PB_DS_PAT_TRIE_DEBUG_
+
+#undef PB_DS_SYNTH_E_ACCESS_TRAITS_T_DEC
+
+#undef PB_DS_SYNTH_E_ACCESS_TRAITS_C_DEC
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SYNTH_E_ACCESS_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..7623a88253f4
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
@@ -0,0 +1,134 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains an implementation class for pat_trie_.
+ */
+
+#ifdef PB_DS_PAT_TRIE_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  std::cerr << std::endl;
+
+  if (m_p_head->m_p_parent == NULL)
+    return;
+
+  trace_node(m_p_head->m_p_parent, 0);
+
+  std::cerr << std::endl;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace_node(const_node_pointer p_nd, size_type level)
+{
+  for (size_type i = 0; i < level; ++i)
+    std::cerr << ' ';
+
+  std::cerr << p_nd << " ";
+
+  std::cerr << ((p_nd->m_type == pat_trie_leaf_node_type)?
+		"l " :
+		"i ");
+
+  trace_node_metadata(p_nd, type_to_type<typename node::metadata_type>());
+
+  typename e_access_traits::const_iterator el_it =
+    pref_begin(p_nd);
+
+  while (el_it != pref_end(p_nd))
+    {
+      std::cerr <<* el_it;
+
+      ++el_it;
+    }
+
+  if (p_nd->m_type == pat_trie_leaf_node_type)
+    {
+      std::cerr << std::endl;
+
+      return;
+    }
+
+  const_internal_node_pointer p_internal =
+    static_cast<const_internal_node_pointer>(p_nd);
+
+  std::cerr << " " <<
+    static_cast<unsigned long>(p_internal->get_e_ind()) << std::endl;
+
+  const size_type num_children = std::distance(
+					       p_internal->begin(),
+					       p_internal->end());
+
+  for (size_type child_i = 0; child_i < num_children; ++child_i)
+    {
+      typename internal_node::const_iterator child_it =
+	p_internal->begin();
+      std::advance(child_it, num_children - child_i - 1);
+
+      trace_node(*child_it, level + 1);
+    }
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Metadata_>
+void
+PB_DS_CLASS_C_DEC::
+trace_node_metadata(const_node_pointer p_nd, type_to_type<Metadata_>)
+{
+  std::cerr << "(" <<
+    static_cast<unsigned long>(p_nd->get_metadata()) << ") ";
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace_node_metadata(const_node_pointer, type_to_type<null_node_metadata>)
+{ }
+
+#endif // #ifdef PB_DS_PAT_TRIE_TRACE_
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
new file mode 100644
index 000000000000..b10380937bc7
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/traits.hpp
@@ -0,0 +1,356 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file traits.hpp
+ * Contains an implementation class for pat_trie_.
+ */
+
+#ifndef PB_DS_PAT_TRIE_NODE_AND_IT_TRAITS_HPP
+#define PB_DS_PAT_TRIE_NODE_AND_IT_TRAITS_HPP
+
+#include <ext/pb_ds/detail/pat_trie_/node_base.hpp>
+#include <ext/pb_ds/detail/pat_trie_/head.hpp>
+#include <ext/pb_ds/detail/pat_trie_/leaf.hpp>
+#include <ext/pb_ds/detail/pat_trie_/internal_node.hpp>
+#include <ext/pb_ds/detail/pat_trie_/point_iterators.hpp>
+#include <ext/pb_ds/detail/pat_trie_/node_iterators.hpp>
+#include <ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key,
+	     typename Mapped,
+	     class E_Access_Traits,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct trie_traits<
+      Key,
+      Mapped,
+      E_Access_Traits,
+      Node_Update,
+      pat_trie_tag,
+      Allocator>
+    {
+    private:
+      typedef types_traits< Key, Mapped, Allocator, false> type_traits;
+
+    public:
+      typedef
+      typename trie_node_metadata_selector<
+      Key,
+      Mapped,
+      E_Access_Traits,
+      Node_Update,
+      Allocator>::type
+      metadata_type;
+
+      typedef E_Access_Traits e_access_traits;
+
+      typedef
+      synth_e_access_traits<
+	type_traits,
+	false,
+	e_access_traits>
+      synth_e_access_traits;
+
+      typedef
+      pat_trie_node_base<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      node;
+
+      typedef
+      pat_trie_leaf<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      leaf;
+
+      typedef
+      pat_trie_head<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      head;
+
+      typedef
+      pat_trie_internal_node<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      internal_node;
+
+      typedef
+      pat_trie_const_it_<
+	type_traits,
+	node,
+	leaf,
+	head,
+	internal_node,
+	true,
+	Allocator>
+      const_iterator;
+
+      typedef
+      pat_trie_it_<
+	type_traits,
+	node,
+	leaf,
+	head,
+	internal_node,
+	true,
+	Allocator>
+      iterator;
+
+      typedef
+      pat_trie_const_it_<
+	type_traits,
+	node,
+	leaf,
+	head,
+	internal_node,
+	false,
+	Allocator>
+      const_reverse_iterator;
+
+      typedef
+      pat_trie_it_<
+	type_traits,
+	node,
+	leaf,
+	head,
+	internal_node,
+	false,
+	Allocator>
+      reverse_iterator;
+
+      typedef
+      pat_trie_const_node_it_<
+	node,
+	leaf,
+	head,
+	internal_node,
+	const_iterator,
+	iterator,
+	synth_e_access_traits,
+	Allocator>
+      const_node_iterator;
+
+      typedef
+      pat_trie_node_it_<
+	node,
+	leaf,
+	head,
+	internal_node,
+	const_iterator,
+	iterator,
+	synth_e_access_traits,
+	Allocator>
+      node_iterator;
+
+      typedef
+      Node_Update<
+	const_node_iterator,
+	node_iterator,
+	E_Access_Traits,
+	Allocator>
+      node_update;
+
+      typedef
+      pb_ds::null_trie_node_update<
+	const_node_iterator,
+	node_iterator,
+	E_Access_Traits,
+	Allocator>* 
+      null_node_update_pointer;
+    };
+
+    template<typename Key,
+	     class E_Access_Traits,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct trie_traits<
+      Key,
+      null_mapped_type,
+      E_Access_Traits,
+      Node_Update,
+      pat_trie_tag,
+      Allocator>
+    {
+    private:
+      typedef
+      types_traits<
+      Key,
+      null_mapped_type,
+      Allocator,
+      false>
+      type_traits;
+
+    public:
+      typedef
+      typename trie_node_metadata_selector<
+      Key,
+      null_mapped_type,
+      E_Access_Traits,
+      Node_Update,
+      Allocator>::type
+      metadata_type;
+
+      typedef E_Access_Traits e_access_traits;
+
+      typedef
+      synth_e_access_traits<
+	type_traits,
+	true,
+	e_access_traits>
+      synth_e_access_traits;
+
+      typedef
+      pat_trie_node_base<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      node;
+
+      typedef
+      pat_trie_leaf<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      leaf;
+
+      typedef
+      pat_trie_head<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      head;
+
+      typedef
+      pat_trie_internal_node<
+	type_traits,
+	synth_e_access_traits,
+	metadata_type,
+	Allocator>
+      internal_node;
+
+      typedef
+      pat_trie_const_it_<
+	type_traits,
+	node,
+	leaf,
+	head,
+	internal_node,
+	true,
+	Allocator>
+      const_iterator;
+
+      typedef const_iterator iterator;
+
+      typedef
+      pat_trie_const_it_<
+	type_traits,
+	node,
+	leaf,
+	head,
+	internal_node,
+	false,
+	Allocator>
+      const_reverse_iterator;
+
+      typedef const_reverse_iterator reverse_iterator;
+
+      typedef
+      pat_trie_const_node_it_<
+	node,
+	leaf,
+	head,
+	internal_node,
+	const_iterator,
+	iterator,
+	synth_e_access_traits,
+	Allocator>
+      const_node_iterator;
+
+      typedef const_node_iterator node_iterator;
+
+      typedef
+      Node_Update<
+	const_node_iterator,
+	node_iterator,
+	E_Access_Traits,
+	Allocator>
+      node_update;
+
+      typedef
+      pb_ds::null_trie_node_update<
+	const_node_iterator,
+	const_node_iterator,
+	E_Access_Traits,
+	Allocator>* 
+      null_node_update_pointer;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PAT_TRIE_NODE_AND_IT_TRAITS_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
new file mode 100644
index 000000000000..d27acf91e9d5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
@@ -0,0 +1,62 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file update_fn_imps.hpp
+ * Contains an implementation class for pat_trie_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+apply_update(node_pointer /*p_nd*/, null_node_update_pointer)
+{ }
+
+PB_DS_CLASS_T_DEC
+template<typename Node_Update_>
+inline void
+PB_DS_CLASS_C_DEC::
+apply_update(node_pointer p_nd, Node_Update_*  /*p_update*/)
+{
+  Node_Update_::operator()(
+			    node_iterator(p_nd, this),
+			    const_node_iterator(NULL, this));
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp b/libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
new file mode 100644
index 000000000000..67a705213d54
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
@@ -0,0 +1,97 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_base_dispatch.hpp
+ * Contains an pqiative container dispatching base.
+ */
+
+#ifndef PB_DS_PRIORITY_QUEUE_BASE_DS_DISPATCHER_HPP
+#define PB_DS_PRIORITY_QUEUE_BASE_DS_DISPATCHER_HPP
+
+#include <ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp>
+#include <ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp>
+#include <ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp>
+#include <ext/pb_ds/detail/binary_heap_/binary_heap_.hpp>
+#include <ext/pb_ds/detail/thin_heap_/thin_heap_.hpp>
+
+namespace pb_ds
+{
+    namespace detail
+    {
+
+      template<typename Value_Type, typename Cmp_Fn, typename Tag, typename Allocator>
+      struct priority_queue_base_dispatch;
+
+      template<typename Value_Type, typename Cmp_Fn, typename Allocator>
+      struct priority_queue_base_dispatch<Value_Type, Cmp_Fn, pairing_heap_tag, Allocator>
+      {
+	typedef pairing_heap_< Value_Type, Cmp_Fn, Allocator> type;
+      };
+
+      template<typename Value_Type, typename Cmp_Fn, typename Allocator>
+      struct priority_queue_base_dispatch<Value_Type, Cmp_Fn, binomial_heap_tag, Allocator>
+      {
+	typedef binomial_heap_< Value_Type, Cmp_Fn, Allocator> type;
+      };
+
+      template<typename Value_Type, typename Cmp_Fn, typename Allocator>
+      struct priority_queue_base_dispatch<Value_Type, Cmp_Fn, rc_binomial_heap_tag, Allocator>
+      {
+	typedef rc_binomial_heap_< Value_Type, Cmp_Fn, Allocator> type;
+      };
+
+      template<typename Value_Type, typename Cmp_Fn, typename Allocator>
+      struct priority_queue_base_dispatch<Value_Type, Cmp_Fn, binary_heap_tag, Allocator>
+      {
+	typedef binary_heap_< Value_Type, Cmp_Fn, Allocator> type;
+      };
+
+      template<typename Value_Type, typename Cmp_Fn, typename Allocator>
+      struct priority_queue_base_dispatch<Value_Type, Cmp_Fn, thin_heap_tag, Allocator>
+      {
+	typedef thin_heap_< Value_Type, Cmp_Fn, Allocator> type;
+      };
+
+    } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PRIORITY_QUEUE_BASE_DS_DISPATCHER_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..58290bfd160c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,114 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    insert(*(first_it++));
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME()
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
+  PB_DS_BASE_C_DEC(r_cmp_fn)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update) :
+  PB_DS_BASE_C_DEC(r_cmp_fn, r_node_update)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+  PB_DS_BASE_C_DEC(other)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    PB_DS_BASE_C_DEC::swap(other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize()
+{
+  PB_DS_BASE_C_DEC::m_p_head->m_red = true;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..13e93cae75ac
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+#ifdef PB_DS_RB_TREE_DEBUG_
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+assert_node_consistent(const node_pointer p_nd) const
+{
+  if (p_nd == NULL)
+    return (1);
+
+  const size_type l_height = assert_node_consistent(p_nd->m_p_left);
+  const size_type r_height = assert_node_consistent(p_nd->m_p_right);
+
+  if (p_nd->m_red)
+    {
+      PB_DS_DBG_ASSERT(is_effectively_black(p_nd->m_p_left));
+
+      PB_DS_DBG_ASSERT(is_effectively_black(p_nd->m_p_right));
+    }
+
+  PB_DS_DBG_ASSERT(l_height == r_height);
+
+  return ((p_nd->m_red? 0 : 1) + l_height);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  PB_DS_BASE_C_DEC::assert_valid();
+
+  const node_pointer p_head = PB_DS_BASE_C_DEC::m_p_head;
+
+  PB_DS_DBG_ASSERT(p_head->m_red);
+
+  if (p_head->m_p_parent != NULL)
+    {
+      PB_DS_DBG_ASSERT(!p_head->m_p_parent->m_red);
+
+      assert_node_consistent(p_head->m_p_parent);
+    }
+}
+
+#endif // #ifdef PB_DS_RB_TREE_DEBUG_
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..e3aadc5515db
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
@@ -0,0 +1,354 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase(const_key_reference r_key)
+{
+  point_iterator it = find(r_key);
+
+  if (it == PB_DS_BASE_C_DEC::end())
+    return (false);
+
+  erase(it);
+
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+erase(iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it == PB_DS_BASE_C_DEC::end())
+    return (it);
+
+  iterator ret_it = it;
+
+  ++ret_it;
+
+  erase_node(it.m_p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::reverse_iterator
+PB_DS_CLASS_C_DEC::
+erase(reverse_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it.m_p_nd == PB_DS_BASE_C_DEC::m_p_head)
+    return (it);
+
+  reverse_iterator ret_it = it;
+
+  ++ret_it;
+
+  erase_node(it.m_p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    size_type num_ersd = 0;
+
+  iterator it = PB_DS_BASE_C_DEC::begin();
+
+  while (it != PB_DS_BASE_C_DEC::end())
+    {
+      if (pred(*it))
+        {
+	  ++num_ersd;
+
+	  it = erase(it);
+        }
+      else
+	++it;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (num_ersd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_node(node_pointer p_nd)
+{
+  remove_node(p_nd);
+
+  PB_DS_BASE_C_DEC::actual_erase_node(p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+remove_node(node_pointer p_z)
+{
+  update_min_max_for_erased_node(p_z);
+
+  node_pointer p_y = p_z;
+
+  node_pointer p_x = NULL;
+
+  node_pointer p_new_x_parent = NULL;
+
+  if (p_y->m_p_left == NULL)
+    p_x = p_y->m_p_right;
+  else if (p_y->m_p_right == NULL)
+    p_x = p_y->m_p_left;
+  else
+    {
+      p_y = p_y->m_p_right;
+
+      while (p_y->m_p_left != NULL)
+	p_y = p_y->m_p_left;
+
+      p_x = p_y->m_p_right;
+    }
+
+  if (p_y == p_z)
+    {
+      p_new_x_parent = p_y->m_p_parent;
+
+      if (p_x != NULL)
+	p_x->m_p_parent = p_y->m_p_parent;
+
+      if (PB_DS_BASE_C_DEC::m_p_head->m_p_parent == p_z)
+	PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_x;
+      else if (p_z->m_p_parent->m_p_left == p_z)
+        {
+	  p_y->m_p_left = p_z->m_p_parent;
+
+	  p_z->m_p_parent->m_p_left = p_x;
+        }
+      else
+        {
+	  p_y->m_p_left = NULL;
+
+	  p_z->m_p_parent->m_p_right = p_x;
+        }
+    }
+  else
+    {
+      p_z->m_p_left->m_p_parent = p_y;
+
+      p_y->m_p_left = p_z->m_p_left;
+
+      if (p_y != p_z->m_p_right)
+        {
+	  p_new_x_parent = p_y->m_p_parent;
+
+	  if (p_x != NULL)
+	    p_x->m_p_parent = p_y->m_p_parent;
+
+	  p_y->m_p_parent->m_p_left = p_x;
+
+	  p_y->m_p_right = p_z->m_p_right;
+
+	  p_z->m_p_right->m_p_parent = p_y;
+        }
+      else
+	p_new_x_parent = p_y;
+
+      if (PB_DS_BASE_C_DEC::m_p_head->m_p_parent == p_z)
+	PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_y;
+      else if (p_z->m_p_parent->m_p_left == p_z)
+	p_z->m_p_parent->m_p_left = p_y;
+      else
+	p_z->m_p_parent->m_p_right = p_y;
+
+      p_y->m_p_parent = p_z->m_p_parent;
+
+      std::swap(p_y->m_red, p_z->m_red);
+
+      p_y = p_z;
+    }
+
+  update_to_top(p_new_x_parent, (node_update* )this);
+
+  if (p_y->m_red)
+    return;
+
+  remove_fixup(p_x, p_new_x_parent);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+remove_fixup(node_pointer p_x, node_pointer p_new_x_parent)
+{
+  PB_DS_DBG_ASSERT(p_x == NULL || p_x->m_p_parent == p_new_x_parent);
+
+  while (p_x != PB_DS_BASE_C_DEC::m_p_head->m_p_parent&& 
+	 is_effectively_black(p_x))
+    if (p_x == p_new_x_parent->m_p_left)
+      {
+	node_pointer p_w = p_new_x_parent->m_p_right;
+
+	if (p_w->m_red)
+	  {
+	    p_w->m_red = false;
+
+	    p_new_x_parent->m_red = true;
+
+	    PB_DS_BASE_C_DEC::rotate_left(p_new_x_parent);
+
+	    p_w = p_new_x_parent->m_p_right;
+	  }
+
+	if (is_effectively_black(p_w->m_p_left)&& 
+	    is_effectively_black(p_w->m_p_right))
+	  {
+	    p_w->m_red = true;
+
+	    p_x = p_new_x_parent;
+
+	    p_new_x_parent = p_new_x_parent->m_p_parent;
+	  }
+	else
+	  {
+	    if (is_effectively_black(p_w->m_p_right))
+	      {
+		if (p_w->m_p_left != NULL)
+		  p_w->m_p_left->m_red = false;
+
+		p_w->m_red = true;
+
+		PB_DS_BASE_C_DEC::rotate_right(p_w);
+
+		p_w = p_new_x_parent->m_p_right;
+	      }
+
+	    p_w->m_red = p_new_x_parent->m_red;
+
+	    p_new_x_parent->m_red = false;
+
+	    if (p_w->m_p_right != NULL)
+	      p_w->m_p_right->m_red = false;
+
+	    PB_DS_BASE_C_DEC::rotate_left(p_new_x_parent);
+
+	    update_to_top(p_new_x_parent, (node_update* )this);
+
+	    break;
+	  }
+      }
+    else
+      {
+	node_pointer p_w = p_new_x_parent->m_p_left;
+
+	if (p_w->m_red == true)
+	  {
+	    p_w->m_red = false;
+
+	    p_new_x_parent->m_red = true;
+
+	    PB_DS_BASE_C_DEC::rotate_right(p_new_x_parent);
+
+	    p_w = p_new_x_parent->m_p_left;
+	  }
+
+	if (is_effectively_black(p_w->m_p_right)&& 
+	    is_effectively_black(p_w->m_p_left))
+	  {
+	    p_w->m_red = true;
+
+	    p_x = p_new_x_parent;
+
+	    p_new_x_parent = p_new_x_parent->m_p_parent;
+	  }
+	else
+	  {
+	    if (is_effectively_black(p_w->m_p_left))
+	      {
+		if (p_w->m_p_right != NULL)
+		  p_w->m_p_right->m_red = false;
+
+		p_w->m_red = true;
+
+		PB_DS_BASE_C_DEC::rotate_left(p_w);
+
+		p_w = p_new_x_parent->m_p_left;
+	      }
+
+	    p_w->m_red = p_new_x_parent->m_red;
+
+	    p_new_x_parent->m_red = false;
+
+	    if (p_w->m_p_left != NULL)
+	      p_w->m_p_left->m_red = false;
+
+	    PB_DS_BASE_C_DEC::rotate_right(p_new_x_parent);
+
+	    update_to_top(p_new_x_parent, (node_update* )this);
+
+	    break;
+	  }
+      }
+
+  if (p_x != NULL)
+    p_x->m_red = false;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
new file mode 100644
index 000000000000..25938ae47a80
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
@@ -0,0 +1,45 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation for rb_tree_.
+ */
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
new file mode 100644
index 000000000000..ca00830db900
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
@@ -0,0 +1,54 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+is_effectively_black(const node_pointer p_nd)
+{
+  return (p_nd == NULL || !p_nd->m_red);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..891c43b63323
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
@@ -0,0 +1,148 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool>
+PB_DS_CLASS_C_DEC::
+insert(const_reference r_value)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    std::pair<point_iterator, bool> ins_pair =
+    PB_DS_BASE_C_DEC::insert_leaf(r_value);
+
+  if (ins_pair.second == true)
+    {
+      ins_pair.first.m_p_nd->m_red = true;
+
+      PB_DS_DBG_ONLY(this->structure_only_assert_valid();)
+
+        insert_fixup(ins_pair.first.m_p_nd);
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (ins_pair);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+insert_fixup(node_pointer p_nd)
+{
+  PB_DS_DBG_ASSERT(p_nd->m_red == true);
+
+  while (p_nd != PB_DS_BASE_C_DEC::m_p_head->m_p_parent&& 
+	 p_nd->m_p_parent->m_red)
+    {
+      if (p_nd->m_p_parent == p_nd->m_p_parent->m_p_parent->m_p_left)
+        {
+	  node_pointer p_y = p_nd->m_p_parent->m_p_parent->m_p_right;
+
+	  if (p_y != NULL&&  p_y->m_red)
+            {
+	      p_nd->m_p_parent->m_red = false;
+
+	      p_y->m_red = false;
+
+	      p_nd->m_p_parent->m_p_parent->m_red = true;
+
+	      p_nd = p_nd->m_p_parent->m_p_parent;
+            }
+	  else
+            {
+	      if (p_nd == p_nd->m_p_parent->m_p_right)
+                {
+		  p_nd = p_nd->m_p_parent;
+
+		  PB_DS_BASE_C_DEC::rotate_left(p_nd);
+                }
+
+	      p_nd->m_p_parent->m_red = false;
+
+	      p_nd->m_p_parent->m_p_parent->m_red = true;
+
+	      PB_DS_BASE_C_DEC::rotate_right(
+					     p_nd->m_p_parent->m_p_parent);
+            }
+        }
+      else
+        {
+	  node_pointer p_y = p_nd->m_p_parent->m_p_parent->m_p_left;
+
+	  if (p_y != NULL&&  p_y->m_red)
+            {
+	      p_nd->m_p_parent->m_red = false;
+
+	      p_y->m_red = false;
+
+	      p_nd->m_p_parent->m_p_parent->m_red = true;
+
+	      p_nd = p_nd->m_p_parent->m_p_parent;
+            }
+	  else
+            {
+	      if (p_nd == p_nd->m_p_parent->m_p_left)
+                {
+		  p_nd = p_nd->m_p_parent;
+
+		  PB_DS_BASE_C_DEC::rotate_right(p_nd);
+                }
+
+	      p_nd->m_p_parent->m_red = false;
+
+	      p_nd->m_p_parent->m_p_parent->m_red = true;
+
+	      PB_DS_BASE_C_DEC::rotate_left(
+					    p_nd->m_p_parent->m_p_parent);
+            }
+        }
+    }
+
+  PB_DS_BASE_C_DEC::update_to_top(p_nd, (node_update* )this);
+
+  PB_DS_BASE_C_DEC::m_p_head->m_p_parent->m_red = false;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
new file mode 100644
index 000000000000..179e80e6c3d7
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/node.hpp
@@ -0,0 +1,174 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+#ifndef PB_DS_RB_TREE_NODE_HPP
+#define PB_DS_RB_TREE_NODE_HPP
+
+#include <ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Value_Type, class Metadata, class Allocator>
+    struct rb_tree_node_
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<
+      rb_tree_node_<
+      Value_Type,
+      Metadata,
+      Allocator> >::other::pointer
+      node_pointer;
+
+      typedef Value_Type value_type;
+
+      typedef Metadata metadata_type;
+
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::reference
+      metadata_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::const_reference
+      const_metadata_reference;
+
+    public:
+      inline bool
+      special() const
+      {
+	return (m_red);
+      }
+
+      inline const_metadata_reference
+      get_metadata() const
+      {
+	return (m_metadata);
+      }
+
+      inline metadata_reference
+      get_metadata()
+      {
+	return (m_metadata);
+      }
+
+#ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+      void
+      trace() const
+      {
+	std::cout << PB_DS_V2F(m_value) <<(m_red? " <r> " : " <b> ") <<
+	  "(" << m_metadata << ")";
+
+      }
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+
+    public:
+      node_pointer m_p_left;
+      node_pointer m_p_right;
+
+      node_pointer m_p_parent;
+
+      value_type m_value;
+
+      bool m_red;
+
+      metadata_type m_metadata;
+    };
+
+    template<typename Value_Type, class Allocator>
+    struct rb_tree_node_<
+      Value_Type,
+      null_node_metadata,
+      Allocator>
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<
+      rb_tree_node_<
+      Value_Type,
+      null_node_metadata,
+      Allocator> >::other::pointer
+      node_pointer;
+
+      typedef Value_Type value_type;
+
+      typedef null_node_metadata metadata_type;
+
+    public:
+      inline bool
+      special() const
+      {
+	return (m_red);
+      }
+
+#ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+      void
+      trace() const
+      {
+	std::cout << PB_DS_V2F(m_value) <<(m_red? " <r> " : " <b> ");
+
+      }
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+
+    public:
+      node_pointer m_p_left;
+      node_pointer m_p_right;
+
+      node_pointer m_p_parent;
+
+      value_type m_value;
+
+      bool m_red;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RB_TREE_NODE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
new file mode 100644
index 000000000000..c4cc743cfa51
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
@@ -0,0 +1,372 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file rb_tree_.hpp
+ * Contains an implementation for rb_tree_.
+ */
+/*
+ * This implementation uses an idea from the SGI STL (using a "header" node
+ *    which is needed for efficient iteration).
+ */
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#ifndef PB_DS_BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
+#define PB_DS_BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp>
+#endif // #ifndef PB_DS_BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#ifndef PB_DS_BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
+#define PB_DS_BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp>
+#endif // #ifndef PB_DS_BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <ext/pb_ds/detail/basic_types.hpp>
+#include <utility>
+#include <vector>
+#include <assert.h>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_RB_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_RB_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_RB_TREE_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Cmp_Fn,		\
+						class Node_And_It_Traits, \
+						class Allocator>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    rb_tree_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    rb_tree_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_BASE_CLASS_NAME			\
+    bin_search_tree_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_BASE_CLASS_NAME			\
+    bin_search_tree_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC						\
+    PB_DS_CLASS_NAME<							\
+						Key,			\
+						Mapped,			\
+						Cmp_Fn,			\
+						Node_And_It_Traits,	\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    PB_DS_BASE_CLASS_NAME<						\
+							Key,		\
+							Mapped,		\
+							Cmp_Fn,		\
+							Node_And_It_Traits, \
+							Allocator>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#define PB_DS_EP2VP(X)& ((X)->m_value)
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped_Data()
+#define PB_DS_EP2VP(X)& ((X)->m_value.first)
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     class Node_And_It_Traits,
+	     class Allocator>
+    class PB_DS_CLASS_NAME : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef typename PB_DS_BASE_C_DEC::node_pointer node_pointer;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef typename PB_DS_BASE_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_BASE_C_DEC::key_pointer key_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::const_key_pointer const_key_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_key_reference
+      const_key_reference;
+
+      typedef typename PB_DS_BASE_C_DEC::mapped_type mapped_type;
+
+      typedef typename PB_DS_BASE_C_DEC::mapped_pointer mapped_pointer;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::mapped_reference mapped_reference;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+      typedef typename PB_DS_BASE_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_BASE_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::reference reference;
+
+      typedef typename PB_DS_BASE_C_DEC::const_reference const_reference;
+
+      typedef typename PB_DS_BASE_C_DEC::point_iterator point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::iterator iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::reverse_iterator reverse_iterator;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_reverse_iterator
+      const_reverse_iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+      typedef typename PB_DS_BASE_C_DEC::node_update node_update;
+
+    public:
+
+      PB_DS_CLASS_NAME();
+
+      PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
+
+      PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update);
+
+      PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+      inline std::pair<
+	point_iterator,
+	bool>
+      insert(const_reference r_value);
+
+      inline mapped_reference
+      operator[](const_key_reference r_key)
+      {
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  std::pair<point_iterator, bool> ins_pair =
+	  PB_DS_BASE_C_DEC::insert_leaf(
+					value_type(
+						   r_key,
+						   mapped_type()));
+
+	if (ins_pair.second == true)
+	  {
+	    ins_pair.first.m_p_nd->m_red = true;
+
+	    PB_DS_DBG_ONLY(this->structure_only_assert_valid();)
+
+	      insert_fixup(ins_pair.first.m_p_nd);
+	  }
+
+	PB_DS_DBG_ONLY(assert_valid();)
+
+	  return (ins_pair.first.m_p_nd->m_value.second);
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+	insert(r_key);
+
+	return (PB_DS_BASE_C_DEC::s_null_mapped);
+#endif // #ifdef PB_DS_DATA_TRUE
+      }
+
+      inline bool
+      erase(const_key_reference r_key);
+
+      inline iterator
+      erase(iterator it);
+
+      inline reverse_iterator
+      erase(reverse_iterator it);
+
+      template<typename Pred>
+      inline size_type
+      erase_if(Pred pred);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+      void
+      split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other);
+
+    protected:
+
+    private:
+
+#ifdef PB_DS_RB_TREE_DEBUG_
+
+      void
+      assert_valid() const;
+
+      size_type
+      assert_node_consistent(const node_pointer p_nd) const;
+
+#endif // #ifdef PB_DS_RB_TREE_DEBUG_
+
+      inline static bool
+      is_effectively_black(const node_pointer p_nd);
+
+      void
+      initialize();
+
+      void
+      insert_fixup(node_pointer p_nd);
+
+      void
+      erase_node(node_pointer p_nd);
+
+      void
+      remove_node(node_pointer p_nd);
+
+      void
+      remove_fixup(node_pointer p_x, node_pointer p_new_x_parent);
+
+      void
+      split_imp(node_pointer p_nd, PB_DS_CLASS_C_DEC& other);
+
+      inline node_pointer
+      split_min();
+
+      std::pair<node_pointer, node_pointer>
+      split_min_imp();
+
+      void
+      join_imp(node_pointer p_x, node_pointer p_r);
+
+      std::pair<node_pointer, node_pointer>
+      find_join_pos_right(node_pointer p_l, size_type h_l, size_type h_r);
+
+      std::pair<node_pointer, node_pointer>
+      find_join_pos_left(node_pointer p_r, size_type h_l, size_type h_r);
+
+      inline size_type
+      black_height(node_pointer p_nd);
+
+      void
+      split_at_node(node_pointer p_nd, PB_DS_CLASS_C_DEC& other);
+
+    };
+
+#include <ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp>
+#include <ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_NAME
+
+#undef PB_DS_BASE_CLASS_NAME
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+#undef PB_DS_V2F
+#undef PB_DS_EP2VP
+#undef PB_DS_V2S
+
+  } // namespace detail
+} // namespace pb_ds
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..633f027a7bae
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
@@ -0,0 +1,374 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    PB_DS_DBG_ONLY(other.PB_DS_BASE_C_DEC::assert_valid();)
+
+    if (PB_DS_BASE_C_DEC::join_prep(other) == false)
+      {
+        PB_DS_DBG_ONLY(assert_valid();)
+	  PB_DS_DBG_ONLY(other.assert_valid();)
+
+	  return;
+      }
+
+  const node_pointer p_x = other.split_min();
+
+  join_imp(p_x, other.m_p_head->m_p_parent);
+
+  PB_DS_BASE_C_DEC::join_finish(other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_valid();)
+
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    PB_DS_DBG_ONLY(other.PB_DS_BASE_C_DEC::assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+join_imp(node_pointer p_x, node_pointer p_r)
+{
+  PB_DS_DBG_ASSERT(p_x != NULL);
+
+  if (p_r != NULL)
+    p_r->m_red = false;
+
+  const size_type h =
+    black_height(PB_DS_BASE_C_DEC::m_p_head->m_p_parent);
+  const size_type other_h = black_height(p_r);
+
+  node_pointer p_x_l;
+  node_pointer p_x_r;
+
+  std::pair<node_pointer, node_pointer> join_pos;
+
+  const bool right_join = h >= other_h;
+
+  if (right_join)
+    {
+      join_pos = find_join_pos_right(            PB_DS_BASE_C_DEC::m_p_head->m_p_parent, h, other_h);
+
+      p_x_l = join_pos.first;
+      p_x_r = p_r;
+    }
+  else
+    {
+      p_x_l = PB_DS_BASE_C_DEC::m_p_head->m_p_parent;
+
+      PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_r;
+      if (p_r != NULL)
+	p_r->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+      join_pos = find_join_pos_left(            PB_DS_BASE_C_DEC::m_p_head->m_p_parent, h, other_h);
+
+      p_x_r = join_pos.first;
+    }
+
+  node_pointer p_parent = join_pos.second;
+
+  if (p_parent == PB_DS_BASE_C_DEC::m_p_head)
+    {
+      PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_x;
+
+      p_x->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+    }
+  else
+    {
+      p_x->m_p_parent = p_parent;
+
+      if (right_join)
+	p_x->m_p_parent->m_p_right = p_x;
+      else
+	p_x->m_p_parent->m_p_left = p_x;
+    }
+
+  p_x->m_p_left = p_x_l;
+  if (p_x_l != NULL)
+    p_x_l->m_p_parent = p_x;
+
+  p_x->m_p_right = p_x_r;
+  if (p_x_r != NULL)
+    p_x_r->m_p_parent = p_x;
+
+  p_x->m_red = true;
+
+  PB_DS_BASE_C_DEC::initialize_min_max();
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::structure_only_assert_valid();)
+
+    PB_DS_BASE_C_DEC::update_to_top(p_x, (node_update* )this);
+
+  insert_fixup(p_x);
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::structure_only_assert_valid());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+split_min()
+{
+  node_pointer p_min = PB_DS_BASE_C_DEC::m_p_head->m_p_left;
+
+#ifdef PB_DS_RB_TREE_DEBUG_
+  const node_pointer p_head = PB_DS_BASE_C_DEC::m_p_head;
+
+  PB_DS_DBG_ASSERT(p_min != p_head);
+#endif // #ifdef PB_DS_RB_TREE_DEBUG_
+
+  remove_node(p_min);
+
+  return (p_min);
+}
+
+PB_DS_CLASS_T_DEC
+std::pair<
+  typename PB_DS_CLASS_C_DEC::node_pointer,
+  typename PB_DS_CLASS_C_DEC::node_pointer>
+PB_DS_CLASS_C_DEC::
+find_join_pos_right(node_pointer p_l, size_type h_l, size_type h_r)
+{
+  PB_DS_DBG_ASSERT(h_l >= h_r);
+
+  if (PB_DS_BASE_C_DEC::m_p_head->m_p_parent == NULL)
+    return (std::make_pair((node_pointer)NULL,
+			   PB_DS_BASE_C_DEC::m_p_head));
+
+  node_pointer p_l_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+  while (h_l > h_r)
+    {
+      if (p_l->m_red == false)
+        {
+	  PB_DS_DBG_ASSERT(h_l > 0);
+
+	  --h_l;
+        }
+
+      p_l_parent = p_l;
+
+      p_l = p_l->m_p_right;
+    }
+
+  if (!is_effectively_black(p_l))
+    {
+      p_l_parent = p_l;
+
+      p_l = p_l->m_p_right;
+    }
+
+  PB_DS_DBG_ASSERT(is_effectively_black(p_l));
+  PB_DS_DBG_ASSERT(black_height(p_l) == h_r);
+  PB_DS_DBG_ASSERT(p_l == NULL || p_l->m_p_parent == p_l_parent);
+
+  return (std::make_pair(p_l, p_l_parent));
+}
+
+PB_DS_CLASS_T_DEC
+std::pair<
+  typename PB_DS_CLASS_C_DEC::node_pointer,
+  typename PB_DS_CLASS_C_DEC::node_pointer>
+PB_DS_CLASS_C_DEC::
+find_join_pos_left(node_pointer p_r, size_type h_l, size_type h_r)
+{
+  PB_DS_DBG_ASSERT(h_r > h_l);
+
+  if (PB_DS_BASE_C_DEC::m_p_head->m_p_parent == NULL)
+    return (std::make_pair((node_pointer)NULL,
+			   PB_DS_BASE_C_DEC::m_p_head));
+
+  node_pointer p_r_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+  while (h_r > h_l)
+    {
+      if (p_r->m_red == false)
+        {
+	  PB_DS_DBG_ASSERT(h_r > 0);
+
+	  --h_r;
+        }
+
+      p_r_parent = p_r;
+
+      p_r = p_r->m_p_left;
+    }
+
+  if (!is_effectively_black(p_r))
+    {
+      p_r_parent = p_r;
+
+      p_r = p_r->m_p_left;
+    }
+
+  PB_DS_DBG_ASSERT(is_effectively_black(p_r));
+  PB_DS_DBG_ASSERT(black_height(p_r) == h_l);
+  PB_DS_DBG_ASSERT(p_r == NULL || p_r->m_p_parent == p_r_parent);
+
+  return (std::make_pair(p_r, p_r_parent));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+black_height(node_pointer p_nd)
+{
+  size_type h = 1;
+
+  while (p_nd != NULL)
+    {
+      if (p_nd->m_red == false)
+	++h;
+
+      p_nd = p_nd->m_p_left;
+    }
+
+  return (h);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_valid();)
+
+    PB_DS_DBG_ONLY(other.assert_valid());
+  PB_DS_DBG_ONLY(other.PB_DS_BASE_C_DEC::assert_valid();)
+
+    if (PB_DS_BASE_C_DEC::split_prep(r_key, other) == false)
+      {
+        PB_DS_DBG_ONLY(assert_valid());
+        PB_DS_DBG_ONLY(other.assert_valid());
+
+        return;
+      }
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::structure_only_assert_valid();)
+
+    PB_DS_DBG_ONLY(other.PB_DS_BASE_C_DEC::structure_only_assert_valid();)
+
+    node_pointer p_nd = upper_bound(r_key).m_p_nd;
+
+  do
+    {
+      node_pointer p_next_nd = p_nd->m_p_parent;
+
+      if (Cmp_Fn::operator()(
+			     r_key,
+			     PB_DS_V2F(p_nd->m_value)))
+	split_at_node(p_nd, other);
+
+      PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::structure_only_assert_valid();)
+        PB_DS_DBG_ONLY(other.PB_DS_BASE_C_DEC::structure_only_assert_valid();)
+
+        p_nd = p_next_nd;
+    }
+  while (p_nd != PB_DS_BASE_C_DEC::m_p_head);
+
+  PB_DS_BASE_C_DEC::split_finish(other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+split_at_node(node_pointer p_nd, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+
+  node_pointer p_l = p_nd->m_p_left;
+  node_pointer p_r = p_nd->m_p_right;
+
+  node_pointer p_parent = p_nd->m_p_parent;
+
+  if (p_parent == PB_DS_BASE_C_DEC::m_p_head)
+    {
+      PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_l;
+
+      if (p_l != NULL)
+        {
+	  p_l->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+	  p_l->m_red = false;
+        }
+    }
+  else
+    {
+      if (p_parent->m_p_left == p_nd)
+	p_parent->m_p_left = p_l;
+      else
+	p_parent->m_p_right = p_l;
+
+      if (p_l != NULL)
+	p_l->m_p_parent = p_parent;
+
+      update_to_top(p_parent, (node_update* )this);
+
+      if (!p_nd->m_red)
+	remove_fixup(p_l, p_parent);
+    }
+
+  PB_DS_BASE_C_DEC::initialize_min_max();
+
+  other.join_imp(p_nd, p_r);
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::structure_only_assert_valid());
+
+  PB_DS_DBG_ONLY(other.PB_DS_BASE_C_DEC::structure_only_assert_valid());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
new file mode 100644
index 000000000000..77db8ddab045
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/traits.hpp
@@ -0,0 +1,131 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file traits.hpp
+ * Contains an implementation for rb_tree_.
+ */
+
+#ifndef PB_DS_RB_TREE_NODE_AND_IT_TRAITS_HPP
+#define PB_DS_RB_TREE_NODE_AND_IT_TRAITS_HPP
+
+#include <ext/pb_ds/detail/rb_tree_map_/node.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct tree_traits<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      rb_tree_tag,
+      Allocator> : public bin_search_tree_traits<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      rb_tree_node_<
+      typename types_traits<
+      Key,
+      Mapped,
+      Allocator,
+      false>::value_type,
+      typename tree_node_metadata_selector<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      Allocator>::type,
+      Allocator>,
+      Allocator>
+    { };
+
+    template<typename Key,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct tree_traits<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      rb_tree_tag,
+      Allocator> : public bin_search_tree_traits<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      rb_tree_node_<
+      typename types_traits<
+      Key,
+      null_mapped_type,
+      Allocator,
+      false>::value_type,
+      typename tree_node_metadata_selector<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      Allocator>::type,
+      Allocator>,
+      Allocator>
+    { };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RB_TREE_NODE_AND_IT_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..5b3b1b16fd11
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,94 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation for rc_binomial_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+rc_binomial_heap_()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+rc_binomial_heap_(const Cmp_Fn& r_cmp_fn) :
+  PB_DS_BASE_C_DEC(r_cmp_fn)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+rc_binomial_heap_(const PB_DS_CLASS_C_DEC& other) :
+  PB_DS_BASE_C_DEC(other)
+{
+  make_binomial_heap();
+
+  base_type::find_max();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~rc_binomial_heap_()
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    base_type::swap(other);
+
+  m_rc.swap(other.m_rc);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..ffeb9bba4eb1
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
@@ -0,0 +1,138 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation for rc_binomial_heap_.
+ */
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  base_type::assert_valid(false);
+
+  if (!base_type::empty())
+    {
+      PB_DS_DBG_ASSERT(base_type::m_p_max != NULL);
+
+      base_type::assert_max();
+    }
+
+  m_rc.assert_valid();
+
+  if (m_rc.empty())
+    {
+      base_type::assert_valid(true);
+
+      PB_DS_DBG_ASSERT(next_2_pointer(base_type::m_p_root) == NULL);
+
+      return;
+    }
+
+  const_node_pointer p_nd = next_2_pointer(base_type::m_p_root);
+
+  typename rc_t::const_iterator it = m_rc.end();
+  --it;
+
+  while (p_nd != NULL)
+    {
+      PB_DS_DBG_ASSERT(*it == p_nd);
+
+      const_node_pointer p_next = p_nd->m_p_next_sibling;
+
+      PB_DS_DBG_ASSERT(p_next != NULL);
+
+      PB_DS_DBG_ASSERT(p_nd->m_metadata == p_next->m_metadata);
+
+      PB_DS_DBG_ASSERT(p_next->m_p_next_sibling == NULL ||
+		       p_next->m_metadata < p_next->m_p_next_sibling->m_metadata);
+
+      --it;
+
+      p_nd = next_2_pointer(next_after_0_pointer(p_nd));
+    }
+
+  PB_DS_DBG_ASSERT(it + 1 == m_rc.begin());
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::const_node_pointer
+PB_DS_CLASS_C_DEC::
+next_2_pointer(const_node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return NULL;
+
+  node_pointer p_next = p_nd->m_p_next_sibling;
+
+  if (p_next == NULL)
+    return NULL;
+
+  if (p_nd->m_metadata == p_next->m_metadata)
+    return p_nd;
+
+  return next_2_pointer(p_next);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::const_node_pointer
+PB_DS_CLASS_C_DEC::
+next_after_0_pointer(const_node_pointer p_nd)
+{
+  if (p_nd == NULL)
+    return NULL;
+
+  node_pointer p_next = p_nd->m_p_next_sibling;
+
+  if (p_next == NULL)
+    return NULL;
+
+  if (p_nd->m_metadata < p_next->m_metadata)
+    return p_next;
+
+  return next_after_0_pointer(p_next);
+}
+
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP__DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..2e6bc3dd91f3
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
@@ -0,0 +1,125 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation for rc_binomial_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+pop()
+{
+  make_binomial_heap();
+
+  PB_DS_DBG_ASSERT(!base_type::empty());
+
+  base_type::pop();
+
+  base_type::find_max();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  base_type::clear();
+
+  m_rc.clear();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+make_binomial_heap()
+{
+  node_pointer p_nd = base_type::m_p_root;
+
+  while (p_nd != NULL)
+    {
+      node_pointer p_next = p_nd->m_p_next_sibling;
+
+      if (p_next == NULL)
+	p_nd = p_next;
+      else if (p_nd->m_metadata == p_next->m_metadata)
+	p_nd = link_with_next_sibling(p_nd);
+      else if (p_nd->m_metadata < p_next->m_metadata)
+	p_nd = p_next;
+#ifdef PB_DS_RC_BINOMIAL_HEAP__DEBUG_
+      else
+	PB_DS_DBG_ASSERT(0);
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP__DEBUG_
+    }
+
+  m_rc.clear();
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  make_binomial_heap();
+
+  const size_type ersd = base_type::erase_if(pred);
+
+  base_type::find_max();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return ersd;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase(point_iterator it)
+{
+  make_binomial_heap();
+
+  base_type::erase(it);
+
+  base_type::find_max();
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..5a9ae2f1fdcc
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
@@ -0,0 +1,160 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation for rc_binomial_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+push(const_reference r_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    make_0_exposed();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    node_pointer p_nd = base_type::get_new_node_for_insert(r_val);
+
+  p_nd->m_p_l_child = p_nd->m_p_prev_or_parent = NULL;
+  p_nd->m_metadata = 0;
+
+  if (base_type::m_p_max == NULL || Cmp_Fn::operator()(base_type::m_p_max->m_value, r_val))
+    base_type::m_p_max = p_nd;
+
+  p_nd->m_p_next_sibling = base_type::m_p_root;
+
+  if (base_type::m_p_root != NULL)
+    base_type::m_p_root->m_p_prev_or_parent = p_nd;
+
+  base_type::m_p_root = p_nd;
+
+  if (p_nd->m_p_next_sibling != NULL&&  p_nd->m_p_next_sibling->m_metadata == 0)
+    m_rc.push(p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return point_iterator(p_nd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+modify(point_iterator it, const_reference r_new_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    make_binomial_heap();
+
+  base_type::modify(it, r_new_val);
+
+  base_type::find_max();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+link_with_next_sibling(node_pointer p_nd)
+{
+  node_pointer p_next = p_nd->m_p_next_sibling;
+
+  PB_DS_DBG_ASSERT(p_next != NULL);
+  PB_DS_DBG_ASSERT(p_next->m_p_prev_or_parent == p_nd);
+
+  if (Cmp_Fn::operator()(p_nd->m_value, p_next->m_value))
+    {
+      p_next->m_p_prev_or_parent = p_nd->m_p_prev_or_parent;
+
+      if (p_next->m_p_prev_or_parent == NULL)
+	base_type::m_p_root = p_next;
+      else
+	p_next->m_p_prev_or_parent->m_p_next_sibling = p_next;
+
+      if (base_type::m_p_max == p_nd)
+	base_type::m_p_max = p_next;
+
+      base_type::make_child_of(p_nd, p_next);
+
+      ++p_next->m_metadata;
+
+      return p_next;
+    }
+
+  p_nd->m_p_next_sibling = p_next->m_p_next_sibling;
+
+  if (p_nd->m_p_next_sibling != NULL)
+    p_nd->m_p_next_sibling->m_p_prev_or_parent = p_nd;
+
+  if (base_type::m_p_max == p_next)
+    base_type::m_p_max = p_nd;
+
+  base_type::make_child_of(p_next, p_nd);
+
+  ++p_nd->m_metadata;
+
+  return p_nd;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+make_0_exposed()
+{
+  if (m_rc.empty())
+    return;
+
+  node_pointer p_nd = m_rc.top();
+
+  m_rc.pop();
+
+  PB_DS_DBG_ASSERT(p_nd->m_p_next_sibling != NULL);
+  PB_DS_DBG_ASSERT(p_nd->m_metadata == p_nd->m_p_next_sibling->m_metadata);
+
+  node_pointer p_res = link_with_next_sibling(p_nd);
+
+  if (p_res->m_p_next_sibling != NULL&&  p_res->m_metadata == p_res->m_p_next_sibling->m_metadata)
+    m_rc.push(p_res);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
new file mode 100644
index 000000000000..437e5224c163
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
@@ -0,0 +1,313 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file rc.hpp
+ * Contains a redundant (binary counter).
+ */
+
+#ifndef PB_DS_RC_HPP
+#define PB_DS_RC_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Node, class Allocator>
+
+#define PB_DS_CLASS_C_DEC				\
+    rc<							\
+					Node,		\
+					Allocator>
+
+    template<typename Node, class Allocator>
+    class rc
+    {
+    private:
+      typedef Allocator allocator;
+
+      typedef typename allocator::size_type size_type;
+
+      typedef Node node;
+
+      typedef
+      typename allocator::template rebind<
+	node>::other::pointer
+      node_pointer;
+
+      typedef
+      typename allocator::template rebind<
+	node_pointer>::other::pointer
+      entry_pointer;
+
+      typedef
+      typename allocator::template rebind<
+	node_pointer>::other::const_pointer
+      const_entry_pointer;
+
+      enum
+	{
+	  max_entries = sizeof(size_type) << 3
+	};
+
+    public:
+      typedef node_pointer entry;
+
+      typedef const_entry_pointer const_iterator;
+
+    public:
+      rc();
+
+      rc(const PB_DS_CLASS_C_DEC& other);
+
+      inline void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      inline void
+      push(entry p_nd);
+
+      inline node_pointer
+      top() const;
+
+      inline void
+      pop();
+
+      inline bool
+      empty() const;
+
+      inline size_type
+      size() const;
+
+      void
+      clear();
+
+      const const_iterator
+      begin() const;
+
+      const const_iterator
+      end() const;
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+      void
+      assert_valid() const;
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
+
+    private:
+      node_pointer m_a_entries[max_entries];
+
+      size_type m_over_top;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    rc() :
+      m_over_top(0)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    rc(const PB_DS_CLASS_C_DEC& other) :
+      m_over_top(0)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	PB_DS_DBG_ONLY(other.assert_valid();)
+
+	const size_type over_top =
+	std::max(m_over_top, other.m_over_top);
+
+      for (size_type i = 0; i < over_top; ++i)
+	std::swap(m_a_entries[i], other.m_a_entries[i]);
+
+      std::swap(m_over_top, other.m_over_top);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	PB_DS_DBG_ONLY(other.assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    push(entry p_nd)
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	PB_DS_DBG_ASSERT(m_over_top < max_entries);
+
+      m_a_entries[m_over_top++] = p_nd;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    pop()
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	PB_DS_DBG_ASSERT(!empty());
+
+      --m_over_top;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::node_pointer
+    PB_DS_CLASS_C_DEC::
+    top() const
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+	PB_DS_DBG_ASSERT(!empty());
+
+      return* (m_a_entries + m_over_top - 1);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline bool
+    PB_DS_CLASS_C_DEC::
+    empty() const
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	return m_over_top == 0;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    size() const
+    {
+      return m_over_top;
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    clear()
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+
+	m_over_top = 0;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+	}
+
+    PB_DS_CLASS_T_DEC
+    const typename PB_DS_CLASS_C_DEC::const_iterator
+    PB_DS_CLASS_C_DEC::
+    begin() const
+    {
+      return& m_a_entries[0];
+    }
+
+    PB_DS_CLASS_T_DEC
+    const typename PB_DS_CLASS_C_DEC::const_iterator
+    PB_DS_CLASS_C_DEC::
+    end() const
+    {
+      return& m_a_entries[m_over_top];
+    }
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    assert_valid() const
+    {
+      PB_DS_DBG_ASSERT(m_over_top < max_entries);
+    }
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    trace() const
+    {
+      std::cout << "rc" << std::endl;
+
+      for (size_type i = 0; i < m_over_top; ++i)
+	std::cerr << m_a_entries[i] << std::endl;
+
+      std::cout << std::endl;
+    }
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RC_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
new file mode 100644
index 000000000000..dbab1e98e2dc
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
@@ -0,0 +1,236 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file rc_binomial_heap_.hpp
+ * Contains an implementation for rc_binomial_heap_.
+ */
+
+/*
+ * Redundant-counter binomial heap.
+ */
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp>
+#include <ext/pb_ds/detail/rc_binomial_heap_/rc.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC				\
+    rc_binomial_heap_<					\
+					Value_Type,	\
+					Cmp_Fn,		\
+					Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    binomial_heap_base_<					\
+							Value_Type,	\
+							Cmp_Fn,		\
+							Allocator>
+
+#define PB_DS_RC_C_DEC							\
+    rc<							\
+							typename PB_DS_BASE_C_DEC::node, \
+							Allocator>
+
+    /**
+     * class description = "8y|\|0|\/|i41 h34p 74813">
+     **/
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+    class rc_binomial_heap_ : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+      typedef typename base_type::node_pointer node_pointer;
+
+      typedef typename base_type::const_node_pointer const_node_pointer;
+
+      typedef PB_DS_RC_C_DEC rc_t;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef typename base_type::pointer pointer;
+
+      typedef typename base_type::const_pointer const_pointer;
+
+      typedef typename base_type::reference reference;
+
+      typedef typename base_type::const_reference const_reference;
+
+      typedef typename base_type::const_point_iterator const_point_iterator;
+
+      typedef typename base_type::point_iterator point_iterator;
+
+      typedef typename base_type::const_iterator const_iterator;
+
+      typedef typename base_type::iterator iterator;
+
+      typedef typename base_type::cmp_fn cmp_fn;
+
+      typedef typename base_type::allocator allocator;
+
+    public:
+
+      rc_binomial_heap_();
+
+      rc_binomial_heap_(const Cmp_Fn& r_cmp_fn);
+
+      rc_binomial_heap_(const PB_DS_CLASS_C_DEC& other);
+
+      ~rc_binomial_heap_();
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      inline point_iterator
+      push(const_reference r_val);
+
+      void
+      modify(point_iterator it, const_reference r_new_val);
+
+      inline void
+      pop();
+
+      void
+      erase(point_iterator it);
+
+      inline void
+      clear();
+
+      template<typename Pred>
+      size_type
+      erase_if(Pred pred);
+
+      template<typename Pred>
+      void
+      split(Pred pred, PB_DS_CLASS_C_DEC& other);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+      void
+      assert_valid() const;
+
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
+
+    private:
+
+      inline node_pointer
+      link_with_next_sibling(node_pointer p_nd);
+
+      void
+      make_0_exposed();
+
+      void
+      make_binomial_heap();
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+      static const_node_pointer
+      next_2_pointer(const_node_pointer p_nd);
+
+      static const_node_pointer
+      next_after_0_pointer(const_node_pointer p_nd);
+
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_DEBUG_
+
+    private:
+      rc_t m_rc;
+    };
+
+#include <ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp>
+#include <ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_RC_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..d83b322a022c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation for rc_binomial_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+void
+PB_DS_CLASS_C_DEC::
+split(Pred pred, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    make_binomial_heap();
+  other.make_binomial_heap();
+
+  base_type::split(pred, other);
+
+  base_type::find_max();
+  other.find_max();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    make_binomial_heap();
+  other.make_binomial_heap();
+
+  base_type::join(other);
+
+  base_type::find_max();
+  other.find_max();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..48c2e526c4b9
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
@@ -0,0 +1,59 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains an implementation for rc_binomial_heap_.
+ */
+
+#ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  base_type::trace();
+
+  m_rc.trace();
+}
+
+#endif // #ifdef PB_DS_RC_BINOMIAL_HEAP_TRACE_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
new file mode 100644
index 000000000000..63656723f7bd
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
@@ -0,0 +1,253 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cc_hash_max_collision_check_resize_trigger_imp.hpp
+ * Contains a resize trigger implementation.
+ */
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+  typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> \
+  UNIQUE##static_assert_type
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+cc_hash_max_collision_check_resize_trigger(float load) :
+  m_load(load),
+  m_size(0),
+  m_num_col(0),
+  m_max_col(0),
+  m_resize_needed(false)
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_start()
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_collision()
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_end()
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_start()
+{
+  m_num_col = 0;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_collision()
+{
+  ++m_num_col;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_end()
+{
+  calc_resize_needed();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_start()
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_collision()
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_end()
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_inserted(size_type /*num_e*/)
+{ }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erased(size_type /*num_e*/)
+{
+  m_resize_needed = true;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_cleared()
+{
+  m_resize_needed = false;
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+is_resize_needed() const
+{
+  return (m_resize_needed);
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+is_grow_needed(size_type /*size*/, size_type /*num_used_e*/) const
+{
+  return (m_num_col >= m_max_col);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_resized(size_type new_size)
+{
+  m_size = new_size;
+
+#ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+  std::cerr << "chmccrt::notify_resized " <<
+    static_cast<unsigned long>(new_size) << std::endl;
+#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+
+  calc_max_num_coll();
+
+  calc_resize_needed();
+
+  m_num_col = 0;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+calc_max_num_coll()
+{
+  // max_col <-- \sqrt{2 load \ln( 2 m \ln( m ) ) }
+
+  const double ln_arg = 2*  m_size*  ::log( (double)m_size);
+
+  m_max_col =(size_type)::ceil(    ::sqrt(2*     m_load*  ::log(ln_arg) ) );
+
+#ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+  std::cerr << "chmccrt::calc_max_num_coll " <<
+    static_cast<unsigned long>(m_size) <<    "    " <<
+    static_cast<unsigned long>(m_max_col) << std::endl;
+#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_externally_resized(size_type new_size)
+{
+  notify_resized(new_size);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  std::swap(m_load, other.m_load);
+
+  std::swap(m_size, other.m_size);
+
+  std::swap(m_num_col, other.m_num_col);
+
+  std::swap(m_max_col, other.m_max_col);
+
+  std::swap(m_resize_needed, other.m_resize_needed);
+}
+
+PB_DS_CLASS_T_DEC
+inline float
+PB_DS_CLASS_C_DEC::
+get_load() const
+{
+  PB_DS_STATIC_ASSERT(access, external_load_access);
+
+  return (m_load);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+calc_resize_needed()
+{
+  m_resize_needed =
+    m_resize_needed || m_num_col >= m_max_col;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+set_load(float load)
+{
+  PB_DS_STATIC_ASSERT(access, external_load_access);
+
+  m_load = load;
+
+  calc_max_num_coll();
+
+  calc_resize_needed();
+}
+
+#undef PB_DS_STATIC_ASSERT
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
new file mode 100644
index 000000000000..ca98d9b50866
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
@@ -0,0 +1,106 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_exponential_size_policy_imp.hpp
+ * Contains a resize size policy implementation.
+ */
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+hash_exponential_size_policy(size_type start_size, size_type grow_factor) :
+  m_start_size(start_size),
+  m_grow_factor(grow_factor)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  std::swap(m_start_size, other.m_start_size);
+
+  std::swap(m_grow_factor, other.m_grow_factor);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+get_nearest_larger_size(size_type size) const
+{
+  size_type ret = m_start_size;
+
+  while (ret <= size)
+    {
+      const size_type next_ret = ret*  m_grow_factor;
+
+      if (next_ret < ret)
+	throw insert_error();
+
+      ret = next_ret;
+    }
+
+  return (ret);
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+get_nearest_smaller_size(size_type size) const
+{
+  size_type ret = m_start_size;
+
+  while (true)
+    {
+      const size_type next_ret = ret*  m_grow_factor;
+
+      if (next_ret < ret)
+	throw resize_error();
+
+      if (next_ret >= size)
+	return (ret);
+
+      ret = next_ret;
+    }
+
+  return (ret);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
new file mode 100644
index 000000000000..2b05dd1d176b
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
@@ -0,0 +1,359 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_load_check_resize_trigger_imp.hpp
+ * Contains a resize trigger implementation.
+ */
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+  typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> \
+  UNIQUE##static_assert_type
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+hash_load_check_resize_trigger(float load_min, float load_max) :
+  m_load_min(load_min),
+  m_load_max(load_max),
+  m_next_shrink_size(0),
+  m_next_grow_size(0),
+  m_resize_needed(false)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_start()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_collision()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_end()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_start()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_collision()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_end()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_start()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_collision()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_end()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_inserted(size_type num_entries)
+{
+  m_resize_needed = (num_entries >= m_next_grow_size);
+
+  size_base::set_size(num_entries);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erased(size_type num_entries)
+{
+  size_base::set_size(num_entries);
+
+  m_resize_needed =
+    num_entries <= m_next_shrink_size;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+is_resize_needed() const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (m_resize_needed);
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+is_grow_needed(size_type /*size*/, size_type num_entries) const
+{
+  PB_DS_DBG_ASSERT(m_resize_needed);
+
+  return (num_entries >= m_next_grow_size);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~hash_load_check_resize_trigger()
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_resized(size_type new_size)
+{
+  m_resize_needed = false;
+
+  m_next_grow_size =
+    size_type(m_load_max*  new_size - 1);
+
+  m_next_shrink_size =
+    size_type(m_load_min*  new_size);
+
+#ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+  std::cerr << "hlcrt::notify_resized " <<
+    static_cast<unsigned long>(new_size) <<    "    " <<
+    static_cast<unsigned long>(m_load_min) <<    "    " <<
+    static_cast<unsigned long>(m_load_max) <<    "    " <<
+    static_cast<unsigned long>(m_next_shrink_size) << " " <<
+    static_cast<unsigned long>(m_next_grow_size) <<    "    " << std::endl;
+#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_externally_resized(size_type new_size)
+{
+  m_resize_needed = false;
+
+  size_type new_grow_size =
+    size_type(m_load_max*  new_size - 1);
+
+  size_type new_shrink_size =
+    size_type(m_load_min*  new_size );
+
+  if (new_grow_size >= m_next_grow_size)
+    {
+      PB_DS_DBG_ASSERT(new_shrink_size > m_next_shrink_size);
+
+      m_next_grow_size = new_grow_size;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+#ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+	std::cerr << "hlcrt::notify_externally_resized1 " <<
+        static_cast<unsigned long>(new_size) <<    "    " <<
+        static_cast<unsigned long>(m_load_min) <<    "    " <<
+        static_cast<unsigned long>(m_load_max) <<    "    " <<
+        static_cast<unsigned long>(m_next_shrink_size) << " " <<
+        static_cast<unsigned long>(m_next_grow_size) <<    "    " << std::endl;
+#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(new_shrink_size <= m_next_shrink_size);
+
+  m_next_shrink_size = new_shrink_size;
+
+#ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+  std::cerr << "hlcrt::notify_externally_resized2 " <<
+    static_cast<unsigned long>(new_size) <<    "    " <<
+    static_cast<unsigned long>(m_load_min) <<    "    " <<
+    static_cast<unsigned long>(m_load_max) <<    "    " <<
+    static_cast<unsigned long>(m_next_shrink_size) << " " <<
+    static_cast<unsigned long>(m_next_grow_size) <<    "    " << std::endl;
+#endif // #ifdef PB_DS_HT_MAP_RESIZE_TRACE_
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_cleared()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    size_base::set_size(0);
+
+  m_resize_needed = (0 < m_next_shrink_size);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    size_base::swap(other);
+
+  std::swap(m_load_min, other.m_load_min);
+  std::swap(m_load_max, other.m_load_max);
+
+  std::swap(m_resize_needed, other.m_resize_needed);
+
+  std::swap(m_next_grow_size, other.m_next_grow_size);
+  std::swap(m_next_shrink_size, other.m_next_shrink_size);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline std::pair<float, float>
+PB_DS_CLASS_C_DEC::
+get_loads() const
+{
+  PB_DS_STATIC_ASSERT(access, external_load_access);
+
+  return (std::make_pair(m_load_min, m_load_max));
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+set_loads(std::pair<float, float> load_pair)
+{
+  PB_DS_STATIC_ASSERT(access, external_load_access);
+
+  const float old_load_min = m_load_min;
+  const float old_load_max = m_load_max;
+  const size_type old_next_shrink_size = m_next_shrink_size;
+  const size_type old_next_grow_size = m_next_grow_size;
+  const bool old_resize_needed = m_resize_needed;
+
+  try
+    {
+      m_load_min = load_pair.first;
+      m_load_max = load_pair.second;
+
+      do_resize(static_cast<size_type>(
+				       size_base::get_size() / ((m_load_min + m_load_max) / 2)));
+    }
+  catch(...)
+    {
+      m_load_min = old_load_min;
+      m_load_max = old_load_max;
+      m_next_shrink_size = old_next_shrink_size;
+      m_next_grow_size = old_next_grow_size;
+      m_resize_needed = old_resize_needed;
+
+      throw;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+do_resize(size_type /*new_size*/)
+{
+  abort();
+}
+
+#ifdef PB_DS_HASH_POLICY_DEBUG
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  PB_DS_DBG_ASSERT(m_load_max > m_load_min);
+
+  PB_DS_DBG_ASSERT(m_next_grow_size >= m_next_shrink_size);
+}
+#endif // #ifdef PB_DS_HASH_POLICY_DEBUG
+
+#undef PB_DS_STATIC_ASSERT
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
new file mode 100644
index 000000000000..488f4c521e6c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
@@ -0,0 +1,172 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_load_check_resize_trigger_size_base.hpp
+ * Contains an base holding size for some resize policies.
+ */
+
+#ifndef PB_DS_HASH_LOAD_CHECK_RESIZE_TRIGGER_SIZE_BASE_HPP
+#define PB_DS_HASH_LOAD_CHECK_RESIZE_TRIGGER_SIZE_BASE_HPP
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+    template<typename Size_Type, bool Hold_Size>
+    class hash_load_check_resize_trigger_size_base;
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Size_Type>
+
+#define PB_DS_CLASS_C_DEC						\
+    hash_load_check_resize_trigger_size_base<				\
+								Size_Type, \
+								true>
+
+    template<typename Size_Type>
+    class hash_load_check_resize_trigger_size_base<
+      Size_Type,
+      true>
+    {
+    protected:
+      typedef Size_Type size_type;
+
+    protected:
+      inline
+      hash_load_check_resize_trigger_size_base();
+
+      inline void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      inline void
+      set_size(size_type size);
+
+      inline size_type
+      get_size() const;
+
+    private:
+      size_type m_size;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    hash_load_check_resize_trigger_size_base() :
+      m_size(0)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    set_size(size_type size)
+    {
+      m_size = size;
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    get_size() const
+    {
+      return (m_size);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& other)
+    {
+      std::swap(m_size, other.m_size);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename Size_Type>
+
+#define PB_DS_CLASS_C_DEC						\
+    hash_load_check_resize_trigger_size_base<				\
+								Size_Type, \
+								false>
+
+    template<typename Size_Type>
+    class hash_load_check_resize_trigger_size_base<
+      Size_Type,
+      false>
+    {
+    protected:
+      typedef Size_Type size_type;
+
+    protected:
+      inline void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      inline void
+      set_size(size_type size);
+    };
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    swap(PB_DS_CLASS_C_DEC& /*other*/)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    inline void
+    PB_DS_CLASS_C_DEC::
+    set_size(size_type /*size*/)
+    {
+      // Do nothing
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_HASH_LOAD_CHECK_RESIZE_TRIGGER_SIZE_BASE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
new file mode 100644
index 000000000000..3d262ad67301
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
@@ -0,0 +1,142 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_prime_size_policy_imp.hpp
+ * Contains a resize size policy implementation.
+ */
+
+namespace detail
+{
+
+  enum
+    {
+      num_distinct_sizes = 31
+    };
+
+  // Taken from the SGI implementation; acknowledged in the docs.
+
+  static const std::size_t g_a_sizes[num_distinct_sizes] =
+    {
+      /* Dealing cards... */
+      /* 0    */ 5ul,
+      /* 1    */ 11ul,
+      /* 2    */ 23ul,
+      /* 3    */ 53ul,
+      /* 4    */ 97ul,
+      /* 5    */ 193ul,
+      /* 6    */ 389ul,
+      /* 7    */ 769ul,
+      /* 8    */ 1543ul,
+      /* 9    */ 3079ul,
+      /* 10    */ 6151ul,
+      /* 11     */ 12289ul,
+      /* 12     */ 24593ul,
+      /* 13    */ 49157ul,
+      /* 14    */ 98317ul,
+      /* 15    */ 196613ul,
+      /* 16    */ 393241ul,
+      /* 17    */ 786433ul,
+      /* 18    */ 1572869ul,
+      /* 19    */ 3145739ul,
+      /* 20    */ 6291469ul,
+      /* 21    */ 12582917ul,
+      /* 22    */ 25165843ul,
+      /* 23    */ 50331653ul,
+      /* 24    */ 100663319ul,
+      /* 25    */ 201326611ul,
+      /* 26    */ 402653189ul,
+      /* 27    */ 805306457ul,
+      /* 28    */ 1610612741,
+      /* 29    */ 3221225473ul,
+      /* 30    */ 4294967291ul
+      /* Pot's good, let's play */
+    };
+
+} // namespace detail
+
+PB_DS_CLASS_T_DEC
+inline
+PB_DS_CLASS_C_DEC::
+hash_prime_size_policy(size_type start_size) :
+  m_start_size(start_size)
+{
+  m_start_size =
+    get_nearest_larger_size(start_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  std::swap(m_start_size, other.m_start_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+get_nearest_larger_size(size_type size) const
+{
+  const std::size_t* const p_upper =
+    std::upper_bound(            detail::g_a_sizes, detail::g_a_sizes + detail::num_distinct_sizes, size);
+
+  if (p_upper == detail::g_a_sizes + detail::num_distinct_sizes)
+    throw resize_error();
+
+  return (*p_upper);
+}
+
+PB_DS_CLASS_T_DEC
+inline PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+get_nearest_smaller_size(size_type size) const
+{
+  const size_t* p_lower = std::lower_bound(        detail::g_a_sizes, detail::g_a_sizes + detail::num_distinct_sizes, size);
+
+  if (*p_lower >= size&&  p_lower != detail::g_a_sizes)
+    --p_lower;
+
+  if (*p_lower < m_start_size)
+    return (m_start_size);
+
+  return (*p_lower);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
new file mode 100644
index 000000000000..460528a0dc12
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
@@ -0,0 +1,314 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_standard_resize_policy_imp.hpp
+ * Contains a resize policy implementation.
+ */
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+  typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> \
+  UNIQUE##static_assert_type
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+hash_standard_resize_policy() :
+  m_size(Size_Policy::get_nearest_larger_size(1))
+{
+  trigger_policy_base::notify_externally_resized(m_size);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+hash_standard_resize_policy(const Size_Policy& r_size_policy) :
+  Size_Policy(r_size_policy),
+  m_size(Size_Policy::get_nearest_larger_size(1))
+{
+  trigger_policy_base::notify_externally_resized(m_size);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+hash_standard_resize_policy(const Size_Policy& r_size_policy, const Trigger_Policy& r_trigger_policy) :
+  Size_Policy(r_size_policy),
+  Trigger_Policy(r_trigger_policy),
+  m_size(Size_Policy::get_nearest_larger_size(1))
+{
+  trigger_policy_base::notify_externally_resized(m_size);
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~hash_standard_resize_policy()
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  trigger_policy_base::swap(other);
+
+  size_policy_base::swap(other);
+
+  std::swap(m_size, other.m_size);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_start()
+{
+  trigger_policy_base::notify_find_search_start();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_collision()
+{
+  trigger_policy_base::notify_find_search_collision();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_find_search_end()
+{
+  trigger_policy_base::notify_find_search_end();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_start()
+{
+  trigger_policy_base::notify_insert_search_start();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_collision()
+{
+  trigger_policy_base::notify_insert_search_collision();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_insert_search_end()
+{
+  trigger_policy_base::notify_insert_search_end();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_start()
+{
+  trigger_policy_base::notify_erase_search_start();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_collision()
+{
+  trigger_policy_base::notify_erase_search_collision();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erase_search_end()
+{
+  trigger_policy_base::notify_erase_search_end();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_inserted(size_type num_e)
+{
+  trigger_policy_base::notify_inserted(num_e);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+notify_erased(size_type num_e)
+{
+  trigger_policy_base::notify_erased(num_e);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_cleared()
+{
+  trigger_policy_base::notify_cleared();
+}
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+is_resize_needed() const
+{
+  return (trigger_policy_base::is_resize_needed());
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+get_new_size(size_type size, size_type num_used_e) const
+{
+  if (trigger_policy_base::
+      is_grow_needed(size, num_used_e))
+    return (size_policy_base::get_nearest_larger_size(size));
+
+  return (size_policy_base::get_nearest_smaller_size(size));
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+notify_resized(size_type new_size)
+{
+  trigger_policy_base::notify_resized(new_size);
+
+  m_size = new_size;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+get_actual_size() const
+{
+  PB_DS_STATIC_ASSERT(access, external_size_access);
+
+  return (m_size);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+resize(size_type new_size)
+{
+  PB_DS_STATIC_ASSERT(access, external_size_access);
+
+  size_type actual_new_size = size_policy_base::get_nearest_larger_size(1);
+  while (actual_new_size < new_size)
+    {
+      const size_type pot =
+	size_policy_base::get_nearest_larger_size(actual_new_size);
+
+      if (pot == actual_new_size&&  pot < new_size)
+	throw resize_error();
+
+      actual_new_size = pot;
+    }
+
+  if (actual_new_size > 0)
+    --actual_new_size;
+
+  const size_type old_size = m_size;
+
+  try
+    {
+      do_resize(actual_new_size - 1);
+    }
+  catch(insert_error& )
+    {
+      m_size = old_size;
+
+      throw resize_error();
+    }
+  catch(...)
+    {
+      m_size = old_size;
+
+      throw;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+do_resize(size_type /*new_size*/)
+{
+  // Do nothing
+}
+
+PB_DS_CLASS_T_DEC
+Trigger_Policy& 
+PB_DS_CLASS_C_DEC::
+get_trigger_policy()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Trigger_Policy& 
+PB_DS_CLASS_C_DEC::
+get_trigger_policy() const
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+Size_Policy& 
+PB_DS_CLASS_C_DEC::
+get_size_policy()
+{
+  return (*this);
+}
+
+PB_DS_CLASS_T_DEC
+const Size_Policy& 
+PB_DS_CLASS_C_DEC::
+get_size_policy() const
+{
+  return (*this);
+}
+
+#undef PB_DS_STATIC_ASSERT
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
new file mode 100644
index 000000000000..371ce31975b3
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
@@ -0,0 +1,135 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_resize_policy.hpp
+ * Contains a sample resize policy for hash tables.
+ */
+
+#ifndef PB_DS_SAMPLE_RESIZE_POLICY_HPP
+#define PB_DS_SAMPLE_RESIZE_POLICY_HPP
+
+// A sample resize policy.
+class sample_resize_policy
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+public:
+
+  // Default constructor.
+  sample_resize_policy();
+
+  // Copy constructor.
+  sample_range_hashing(const sample_resize_policy& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_resize_policy& other);
+
+protected:
+
+  // Notifies a search started.
+  inline void
+  notify_insert_search_start();
+
+  // Notifies a search encountered a collision.
+  inline void
+  notify_insert_search_collision();
+
+  // Notifies a search ended.
+  inline void
+  notify_insert_search_end();
+
+  // Notifies a search started.
+  inline void
+  notify_find_search_start();
+
+  // Notifies a search encountered a collision.
+  inline void
+  notify_find_search_collision();
+
+  // Notifies a search ended.
+  inline void
+  notify_find_search_end();
+
+  // Notifies a search started.
+  inline void
+  notify_erase_search_start();
+
+  // Notifies a search encountered a collision.
+  inline void
+  notify_erase_search_collision();
+
+  // Notifies a search ended.
+  inline void
+  notify_erase_search_end();
+
+  // Notifies an element was inserted.
+  inline void
+  notify_inserted(size_type num_e);
+
+  // Notifies an element was erased.
+  inline void
+  notify_erased(size_type num_e);
+
+  // Notifies the table was cleared.
+  void
+  notify_cleared();
+
+  // Notifies the table was resized to new_size.
+  void
+  notify_resized(size_type new_size);
+
+  // Queries whether a resize is needed.
+  inline bool
+  is_resize_needed() const;
+
+  // Queries what the new size should be.
+  size_type
+  get_new_size(size_type size, size_type num_used_e) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_RESIZE_POLICY_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
new file mode 100644
index 000000000000..f85fe231f3e8
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
@@ -0,0 +1,147 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_resize_trigger.hpp
+ * Contains a sample resize trigger policy class.
+ */
+
+#ifndef PB_DS_SAMPLE_RESIZE_TRIGGER_HPP
+#define PB_DS_SAMPLE_RESIZE_TRIGGER_HPP
+
+// A sample resize trigger policy.
+class sample_resize_trigger
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+public:
+
+  // Default constructor.
+  sample_resize_trigger();
+
+  // Copy constructor.
+  sample_range_hashing(const sample_resize_trigger& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_resize_trigger& other);
+
+protected:
+
+  // Notifies a search started.
+  inline void
+  notify_insert_search_start();
+
+  // Notifies a search encountered a collision.
+  inline void
+  notify_insert_search_collision();
+
+  // Notifies a search ended.
+  inline void
+  notify_insert_search_end();
+
+  // Notifies a search started.
+  inline void
+  notify_find_search_start();
+
+  // Notifies a search encountered a collision.
+  inline void
+  notify_find_search_collision();
+
+  // Notifies a search ended.
+  inline void
+  notify_find_search_end();
+
+  // Notifies a search started.
+  inline void
+  notify_erase_search_start();
+
+  // Notifies a search encountered a collision.
+  inline void
+  notify_erase_search_collision();
+
+  // Notifies a search ended.
+  inline void
+  notify_erase_search_end();
+
+  // Notifies an element was inserted. the total number of entries in the table is num_entries.
+  inline void
+  notify_inserted(size_type num_entries);
+
+  // Notifies an element was erased.
+  inline void
+  notify_erased(size_type num_entries);
+
+  // Notifies the table was cleared.
+  void
+  notify_cleared();
+
+  // Notifies the table was resized as a result of this object's signifying that a resize is needed.
+  void
+  notify_resized(size_type new_size);
+
+  // Notifies the table was resized externally.
+  void
+  notify_externally_resized(size_type new_size);
+
+  // Queries whether a resize is needed.
+  inline bool
+  is_resize_needed() const;
+
+  // Queries whether a grow is needed.
+  inline bool
+  is_grow_needed(size_type size, size_type num_entries) const;
+
+private:
+
+  // Resizes to new_size.
+  virtual void
+  do_resize(size_type new_size);
+
+};
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SAMPLE_RESIZE_TRIGGER_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
new file mode 100644
index 000000000000..9681c872e0d8
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_size_policy.hpp
+ * Contains a sample size resize-policy.
+ */
+
+#ifndef PB_DS_SAMPLE_SIZE_POLICY_HPP
+#define PB_DS_SAMPLE_SIZE_POLICY_HPP
+
+// A sample size policy.
+class sample_size_policy
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+public:
+
+  // Default constructor.
+  sample_size_policy();
+
+  // Copy constructor.
+  sample_range_hashing(const sample_size_policy& other);
+
+  // Swaps content.
+  inline void
+  swap(sample_size_policy& other);
+
+protected:
+
+  // Given a __size size, returns a __size that is larger.
+  inline size_type
+  get_nearest_larger_size(size_type size) const;
+
+  // Given a __size size, returns a __size that is smaller.
+  inline size_type
+  get_nearest_smaller_size(size_type size) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_SIZE_POLICY_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..07ba7cf3ca2a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,116 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    insert(*(first_it++));
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME()
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn) :
+  PB_DS_BASE_C_DEC(r_cmp_fn)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update) :
+  PB_DS_BASE_C_DEC(r_cmp_fn, r_node_update)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) :
+  PB_DS_BASE_C_DEC(other)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    PB_DS_BASE_C_DEC::swap(other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize()
+{
+  PB_DS_BASE_C_DEC::m_p_head->m_special = true;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..dc5bb05f4306
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
@@ -0,0 +1,86 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+
+#ifdef PB_DS_SPLAY_TREE_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  PB_DS_BASE_C_DEC::assert_valid();
+
+  const node_pointer p_head = PB_DS_BASE_C_DEC::m_p_head;
+
+  assert_special_imp(p_head);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_special_imp(const node_pointer p_nd) const
+{
+  if (p_nd == NULL)
+    return;
+
+  if (p_nd == PB_DS_BASE_C_DEC::m_p_head)
+    {
+      PB_DS_DBG_ASSERT(p_nd->m_special);
+
+      assert_special_imp(p_nd->m_p_parent);
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(!p_nd->m_special);
+
+  assert_special_imp(p_nd->m_p_left);
+
+  assert_special_imp(p_nd->m_p_right);
+}
+
+#endif // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..015eb783c4cb
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
@@ -0,0 +1,202 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline bool
+PB_DS_CLASS_C_DEC::
+erase(const_key_reference r_key)
+{
+  point_iterator it = find(r_key);
+
+  if (it == PB_DS_BASE_C_DEC::end())
+    return (false);
+
+  erase(it);
+
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+erase(iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it == PB_DS_BASE_C_DEC::end())
+    return (it);
+
+  iterator ret_it = it;
+
+  ++ret_it;
+
+  erase_node(it.m_p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::reverse_iterator
+PB_DS_CLASS_C_DEC::
+erase(reverse_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+
+  if (it.m_p_nd == PB_DS_BASE_C_DEC::m_p_head)
+    return (it);
+
+  reverse_iterator ret_it = it;
+
+  ++ret_it;
+
+  erase_node(it.m_p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ret_it);
+}
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    size_type num_ersd = 0;
+
+  iterator it = PB_DS_BASE_C_DEC::begin();
+
+  while (it != PB_DS_BASE_C_DEC::end())
+    {
+      if (pred(*it))
+        {
+	  ++num_ersd;
+
+	  it = erase(it);
+        }
+      else
+	++it;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return (num_ersd);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase_node(node_pointer p_nd)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+
+  splay(p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(p_nd == this->m_p_head->m_p_parent);
+
+  node_pointer p_l = p_nd->m_p_left;
+  node_pointer p_r = p_nd->m_p_right;
+
+  PB_DS_BASE_C_DEC::update_min_max_for_erased_node(p_nd);
+
+  PB_DS_BASE_C_DEC::actual_erase_node(p_nd);
+
+  if (p_r == NULL)
+    {
+      PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_l;
+
+      if (p_l != NULL)
+	p_l->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return;
+    }
+
+  node_pointer p_target_r = leftmost(p_r);
+
+  PB_DS_DBG_ASSERT(p_target_r != NULL);
+
+  p_r->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+  PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_r;
+
+  splay(p_target_r);
+
+  PB_DS_DBG_ONLY(p_target_r->m_p_left = NULL);
+
+  PB_DS_DBG_ASSERT(p_target_r->m_p_parent == this->m_p_head);
+
+  PB_DS_DBG_ASSERT(this->m_p_head->m_p_parent ==
+		   p_target_r);
+
+  p_target_r->m_p_left = p_l;
+
+  if (p_l != NULL)
+    p_l->m_p_parent = p_target_r;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    apply_update(p_target_r, (node_update* )this);
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+leftmost(node_pointer p_nd)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+
+  while (p_nd->m_p_left != NULL)
+    p_nd = p_nd->m_p_left;
+
+  return (p_nd);
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
new file mode 100644
index 000000000000..a0f9cc1cb68e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
@@ -0,0 +1,117 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key)
+{
+  node_pointer p_found = find_imp(r_key);
+
+  if (p_found != PB_DS_BASE_C_DEC::m_p_head)
+    splay(p_found);
+
+  return (point_iterator(p_found));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_point_iterator
+PB_DS_CLASS_C_DEC::
+find(const_key_reference r_key) const
+{
+  const node_pointer p_found = find_imp(r_key);
+
+  if (p_found != PB_DS_BASE_C_DEC::m_p_head)
+    const_cast<PB_DS_CLASS_C_DEC* >(this)->splay(p_found);
+
+  return (point_iterator(p_found));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+find_imp(const_key_reference r_key)
+{
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::structure_only_assert_valid();)
+
+    node_pointer p_nd = PB_DS_BASE_C_DEC::m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
+      {
+	if (!Cmp_Fn::operator()(r_key, PB_DS_V2F(p_nd->m_value)))
+	  return (p_nd);
+
+	p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  return PB_DS_BASE_C_DEC::m_p_head;
+}
+
+PB_DS_CLASS_T_DEC
+inline const typename PB_DS_CLASS_C_DEC::node_pointer
+PB_DS_CLASS_C_DEC::
+find_imp(const_key_reference r_key) const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    node_pointer p_nd = PB_DS_BASE_C_DEC::m_p_head->m_p_parent;
+
+  while (p_nd != NULL)
+    if (!Cmp_Fn::operator()(PB_DS_V2F(p_nd->m_value), r_key))
+      {
+	if (!Cmp_Fn::operator()(r_key, PB_DS_V2F(p_nd->m_value)))
+	  return (p_nd);
+
+	p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  return PB_DS_BASE_C_DEC::m_p_head;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
new file mode 100644
index 000000000000..0d0736298dc7
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
@@ -0,0 +1,45 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file info_fn_imps.hpp
+ * Contains an implementation.
+ */
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..a9af7ddb16f0
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
@@ -0,0 +1,124 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool>
+PB_DS_CLASS_C_DEC::
+insert(const_reference r_value)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    std::pair<point_iterator, bool> ins_pair =
+    insert_leaf_imp(r_value);
+
+  ins_pair.first.m_p_nd->m_special = false;
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  splay(ins_pair.first.m_p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid());
+
+  return (ins_pair);
+}
+
+PB_DS_CLASS_T_DEC
+inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool>
+PB_DS_CLASS_C_DEC::
+insert_leaf_imp(const_reference r_value)
+{
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::structure_only_assert_valid();)
+
+    if (PB_DS_BASE_C_DEC::m_size == 0)
+      return (std::make_pair(
+			     PB_DS_BASE_C_DEC::insert_imp_empty(r_value),
+			     true));
+
+  node_pointer p_nd = PB_DS_BASE_C_DEC::m_p_head->m_p_parent;
+  node_pointer p_pot = PB_DS_BASE_C_DEC::m_p_head;
+
+  while (p_nd != NULL)
+    if (!Cmp_Fn::operator()(
+			    PB_DS_V2F(p_nd->m_value),
+			    PB_DS_V2F(r_value)))
+      {
+	if (!Cmp_Fn::operator()(
+				PB_DS_V2F(r_value),
+				PB_DS_V2F(p_nd->m_value)))
+	  {
+	    return std::make_pair(
+				  point_iterator(p_nd),
+				  false);
+	  }
+
+	p_pot = p_nd;
+
+	p_nd = p_nd->m_p_left;
+      }
+    else
+      p_nd = p_nd->m_p_right;
+
+  if (p_pot == PB_DS_BASE_C_DEC::m_p_head)
+    return (std::make_pair(
+			   PB_DS_BASE_C_DEC::insert_leaf_new(r_value,  PB_DS_BASE_C_DEC::m_p_head->m_p_right, false),
+			   true));
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::check_key_does_not_exist(
+							    PB_DS_V2F(r_value)));
+
+  p_nd = p_pot->m_p_left;
+  if (p_nd == NULL)
+    return (std::make_pair(
+			   PB_DS_BASE_C_DEC::insert_leaf_new(                r_value, p_pot, true),
+			   true));
+
+  while (p_nd->m_p_right != NULL)
+    p_nd = p_nd->m_p_right;
+
+  return (std::make_pair(
+			 insert_leaf_new(r_value, p_nd, false),
+			 true));
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
new file mode 100644
index 000000000000..2e3bb304784e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/node.hpp
@@ -0,0 +1,171 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node.hpp
+ * Contains an implementation struct for splay_tree_'s node.
+ */
+
+#ifndef PB_DS_SPLAY_TREE_NODE_HPP
+#define PB_DS_SPLAY_TREE_NODE_HPP
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Value_Type, class Metadata, class Allocator>
+    struct splay_tree_node_
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<
+      splay_tree_node_<
+      Value_Type,
+      Metadata,
+      Allocator> >::other::pointer
+      node_pointer;
+
+      typedef Metadata metadata_type;
+
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::reference
+      metadata_reference;
+
+      typedef
+      typename Allocator::template rebind<
+	metadata_type>::other::const_reference
+      const_metadata_reference;
+
+#ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+      void
+      trace() const
+      {
+	std::cout << PB_DS_V2F(m_value) <<
+	  "(" << m_metadata << ")";
+      }
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+
+    public:
+      inline bool
+      special() const
+      {
+	return (m_special);
+      }
+
+      inline const_metadata_reference
+      get_metadata() const
+      {
+	return (m_metadata);
+      }
+
+      inline metadata_reference
+      get_metadata()
+      {
+	return (m_metadata);
+      }
+
+    public:
+      typedef Value_Type value_type;
+
+      value_type m_value;
+
+      bool m_special;
+
+      node_pointer m_p_left;
+      node_pointer m_p_right;
+
+      node_pointer m_p_parent;
+
+      metadata_type m_metadata;
+    };
+
+    template<typename Value_Type, class Allocator>
+    struct splay_tree_node_<
+      Value_Type,
+      null_node_metadata,
+      Allocator>
+    {
+    public:
+      typedef
+      typename Allocator::template rebind<
+      splay_tree_node_<
+      Value_Type,
+      null_node_metadata,
+      Allocator> >::other::pointer
+      node_pointer;
+
+      typedef Value_Type value_type;
+
+      typedef null_node_metadata metadata_type;
+
+    public:
+      inline bool
+      special() const
+      {
+	return (m_special);
+      }
+
+#ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+      void
+      trace() const
+      {
+	std::cout << PB_DS_V2F(m_value);
+
+      }
+#endif // #ifdef PB_DS_BIN_SEARCH_TREE_TRACE_
+
+    public:
+      node_pointer m_p_left;
+      node_pointer m_p_right;
+
+      node_pointer m_p_parent;
+
+      value_type m_value;
+
+      bool m_special;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SPLAY_TREE_NODE_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
new file mode 100644
index 000000000000..4006159b06ab
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
@@ -0,0 +1,297 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file splay_fn_imps.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+splay(node_pointer p_nd)
+{
+  while (p_nd->m_p_parent != PB_DS_BASE_C_DEC::m_p_head)
+    {
+#ifdef PB_DS_SPLAY_TREE_DEBUG_
+      {
+	node_pointer p_head = PB_DS_BASE_C_DEC::m_p_head;
+
+	assert_special_imp(p_head);
+      }
+#endif // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+
+      PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_node_consistent(p_nd);)
+
+        if (p_nd->m_p_parent->m_p_parent ==
+            PB_DS_BASE_C_DEC::m_p_head)
+	  {
+            PB_DS_BASE_C_DEC::rotate_parent(p_nd);
+
+            PB_DS_DBG_ASSERT(p_nd == this->m_p_head->m_p_parent);
+	  }
+        else
+	  {
+            const node_pointer p_parent = p_nd->m_p_parent;
+            const node_pointer p_grandparent = p_parent->m_p_parent;
+
+#ifdef PB_DS_SPLAY_TREE_DEBUG_
+            const size_type total =
+	      PB_DS_BASE_C_DEC::recursive_count(p_grandparent);
+
+            PB_DS_DBG_ASSERT(total >= 3);
+#endif // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+
+            if (p_parent->m_p_left == p_nd&& 
+		p_grandparent->m_p_right == p_parent)
+	      splay_zig_zag_left(p_nd, p_parent, p_grandparent);
+            else if (p_parent->m_p_right == p_nd&& 
+		     p_grandparent->m_p_left == p_parent)
+	      splay_zig_zag_right(p_nd, p_parent, p_grandparent);
+            else if (p_parent->m_p_left == p_nd&& 
+		     p_grandparent->m_p_left == p_parent)
+	      splay_zig_zig_left(p_nd, p_parent, p_grandparent);
+            else
+	      splay_zig_zig_right(p_nd, p_parent, p_grandparent);
+
+            PB_DS_DBG_ASSERT(total ==this->recursive_count(p_nd));
+	  }
+
+      PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_node_consistent(p_nd);)
+	}
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+splay_zig_zag_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
+{
+  PB_DS_DBG_ASSERT(p_parent == p_nd->m_p_parent);
+  PB_DS_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_node_consistent(p_grandparent);)
+
+    PB_DS_DBG_ASSERT(p_parent->m_p_left == p_nd&& 
+		     p_grandparent->m_p_right == p_parent);
+
+  splay_zz_start(p_nd, p_parent, p_grandparent);
+
+  node_pointer p_b = p_nd->m_p_right;
+  node_pointer p_c = p_nd->m_p_left;
+
+  p_nd->m_p_right = p_parent;
+  p_parent->m_p_parent = p_nd;
+
+  p_nd->m_p_left = p_grandparent;
+  p_grandparent->m_p_parent = p_nd;
+
+  p_parent->m_p_left = p_b;
+  if (p_b != NULL)
+    p_b->m_p_parent = p_parent;
+
+  p_grandparent->m_p_right = p_c;
+  if (p_c != NULL)
+    p_c->m_p_parent = p_grandparent;
+
+  splay_zz_end(p_nd, p_parent, p_grandparent);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+splay_zig_zag_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
+{
+  PB_DS_DBG_ASSERT(p_parent == p_nd->m_p_parent);
+  PB_DS_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_node_consistent(p_grandparent);)
+
+    PB_DS_DBG_ASSERT(p_parent->m_p_right == p_nd&& 
+		     p_grandparent->m_p_left == p_parent);
+
+  splay_zz_start(p_nd, p_parent, p_grandparent);
+
+  node_pointer p_b = p_nd->m_p_left;
+  node_pointer p_c = p_nd->m_p_right;
+
+  p_nd->m_p_left = p_parent;
+  p_parent->m_p_parent = p_nd;
+
+  p_nd->m_p_right = p_grandparent;
+  p_grandparent->m_p_parent = p_nd;
+
+  p_parent->m_p_right = p_b;
+  if (p_b != NULL)
+    p_b->m_p_parent = p_parent;
+
+  p_grandparent->m_p_left = p_c;
+  if (p_c != NULL)
+    p_c->m_p_parent = p_grandparent;
+
+  splay_zz_end(p_nd, p_parent, p_grandparent);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+splay_zig_zig_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
+{
+  PB_DS_DBG_ASSERT(p_parent == p_nd->m_p_parent);
+  PB_DS_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_node_consistent(p_grandparent);)
+
+    PB_DS_DBG_ASSERT(p_parent->m_p_left == p_nd&& 
+		     p_nd->m_p_parent->m_p_parent->m_p_left == p_nd->m_p_parent);
+
+  splay_zz_start(p_nd, p_parent, p_grandparent);
+
+  node_pointer p_b = p_nd->m_p_right;
+  node_pointer p_c = p_parent->m_p_right;
+
+  p_nd->m_p_right = p_parent;
+  p_parent->m_p_parent = p_nd;
+
+  p_parent->m_p_right = p_grandparent;
+  p_grandparent->m_p_parent = p_parent;
+
+  p_parent->m_p_left = p_b;
+  if (p_b != NULL)
+    p_b->m_p_parent = p_parent;
+
+  p_grandparent->m_p_left = p_c;
+  if (p_c != NULL)
+    p_c->m_p_parent = p_grandparent;
+
+  splay_zz_end(p_nd, p_parent, p_grandparent);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+splay_zig_zig_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
+{
+  PB_DS_DBG_ASSERT(p_parent == p_nd->m_p_parent);
+  PB_DS_DBG_ASSERT(p_grandparent == p_parent->m_p_parent);
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_node_consistent(p_grandparent);)
+
+    PB_DS_DBG_ASSERT(p_parent->m_p_right == p_nd&& 
+		     p_nd->m_p_parent->m_p_parent->m_p_right == p_nd->m_p_parent);
+
+  splay_zz_start(p_nd, p_parent, p_grandparent);
+
+  node_pointer p_b = p_nd->m_p_left;
+  node_pointer p_c = p_parent->m_p_left;
+
+  p_nd->m_p_left = p_parent;
+  p_parent->m_p_parent = p_nd;
+
+  p_parent->m_p_left = p_grandparent;
+  p_grandparent->m_p_parent = p_parent;
+
+  p_parent->m_p_right = p_b;
+  if (p_b != NULL)
+    p_b->m_p_parent = p_parent;
+
+  p_grandparent->m_p_right = p_c;
+  if (p_c != NULL)
+    p_c->m_p_parent = p_grandparent;
+
+  PB_DS_BASE_C_DEC::update_to_top(
+				  p_grandparent, (node_update* )this);
+
+  splay_zz_end(p_nd, p_parent, p_grandparent);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+splay_zz_start(node_pointer p_nd,
+#ifdef PB_DS_SPLAY_TREE_DEBUG_
+	       node_pointer p_parent,
+#else // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+	       node_pointer /*p_parent*/,
+#endif // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+	       node_pointer p_grandparent)
+{
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+  PB_DS_DBG_ASSERT(p_parent != NULL);
+  PB_DS_DBG_ASSERT(p_grandparent != NULL);
+
+  const bool grandparent_head =
+    p_grandparent->m_p_parent == PB_DS_BASE_C_DEC::m_p_head;
+
+  if (grandparent_head)
+    {
+      PB_DS_BASE_C_DEC::m_p_head->m_p_parent =
+	PB_DS_BASE_C_DEC::m_p_head->m_p_parent;
+
+      p_nd->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+      return;
+    }
+
+  node_pointer p_greatgrandparent = p_grandparent->m_p_parent;
+
+  p_nd->m_p_parent = p_greatgrandparent;
+
+  if (p_grandparent == p_greatgrandparent->m_p_left)
+    p_greatgrandparent->m_p_left = p_nd;
+  else
+    p_greatgrandparent->m_p_right = p_nd;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+splay_zz_end(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent)
+{
+  if (p_nd->m_p_parent == PB_DS_BASE_C_DEC::m_p_head)
+    PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_nd;
+
+  apply_update(p_grandparent, (node_update* )this);
+  apply_update(p_parent, (node_update* )this);
+  apply_update(p_nd, (node_update* )this);
+
+  PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_node_consistent(p_nd);)
+    }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
new file mode 100644
index 000000000000..9a36582ade06
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
@@ -0,0 +1,396 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file splay_tree_.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+/*
+ * This implementation uses an idea from the SGI STL (using a "header" node
+ *    which is needed for efficient iteration). Following is the SGI STL
+ *    copyright.
+ *
+ * Copyright (c) 1996,1997
+ * Silicon Graphics Computer Systems, Inc.
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation.    Silicon Graphics makes no
+ * representations about the suitability of this software for any
+ * purpose.    It is provided "as is" without express or implied warranty.
+ *
+ *
+ * Copyright (c) 1994
+ * Hewlett-Packard Company
+ *
+ * Permission to use, copy, modify, distribute and sell this software
+ * and its documentation for any purpose is hereby granted without fee,
+ * provided that the above copyright notice appear in all copies and
+ * that both that copyright notice and this permission notice appear
+ * in supporting documentation.    Hewlett-Packard Company makes no
+ * representations about the suitability of this software for any
+ * purpose.    It is provided "as is" without express or implied warranty.
+ *
+ *
+ */
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#ifndef PB_DS_BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
+#define PB_DS_BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
+#include <ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp>
+#endif // #ifndef BIN_SEARCH_TREE_HPP__DATA_TRUE_INDICATOR
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#ifndef PB_DS_BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
+#define PB_DS_BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
+#include <ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp>
+#endif // #ifndef BIN_SEARCH_TREE_HPP__DATA_FALSE_INDICATOR
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#include <utility>
+#include <vector>
+#include <assert.h>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_SPLAY_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Mapped,	\
+						class Cmp_Fn,		\
+						class Node_And_It_Traits, \
+						class Allocator>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    splay_tree_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_CLASS_NAME			\
+    splay_tree_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_BASE_CLASS_NAME			\
+    bin_search_tree_data_
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_BASE_CLASS_NAME			\
+    bin_search_tree_no_data_
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+#define PB_DS_CLASS_C_DEC						\
+    PB_DS_CLASS_NAME<							\
+						Key,			\
+						Mapped,			\
+						Cmp_Fn,			\
+						Node_And_It_Traits,	\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    PB_DS_BASE_CLASS_NAME<						\
+							Key,		\
+							Mapped,		\
+							Cmp_Fn,		\
+							Node_And_It_Traits, \
+							Allocator>
+
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+#define PB_DS_V2F(X) (X).first
+#define PB_DS_V2S(X) (X).second
+#define PB_DS_EP2VP(X)& ((X)->m_value)
+#endif // #ifdef PB_DS_DATA_TRUE_INDICATOR
+
+#ifdef PB_DS_DATA_FALSE_INDICATOR
+#define PB_DS_V2F(X) (X)
+#define PB_DS_V2S(X) Mapped_Data()
+#define PB_DS_EP2VP(X)& ((X)->m_value.first)
+#endif // #ifdef PB_DS_DATA_FALSE_INDICATOR
+
+    // $p14y 7r33 7481.
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     class Node_And_It_Traits,
+	     class Allocator>
+    class PB_DS_CLASS_NAME : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef typename PB_DS_BASE_C_DEC::node_pointer node_pointer;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef typename PB_DS_BASE_C_DEC::key_type key_type;
+
+      typedef typename PB_DS_BASE_C_DEC::key_pointer key_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::const_key_pointer const_key_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::key_reference key_reference;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_key_reference
+      const_key_reference;
+
+      typedef typename PB_DS_BASE_C_DEC::mapped_type mapped_type;
+
+      typedef typename PB_DS_BASE_C_DEC::mapped_pointer mapped_pointer;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_mapped_pointer
+      const_mapped_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::mapped_reference mapped_reference;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_mapped_reference
+      const_mapped_reference;
+
+      typedef typename PB_DS_BASE_C_DEC::value_type value_type;
+
+      typedef typename PB_DS_BASE_C_DEC::pointer pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::const_pointer const_pointer;
+
+      typedef typename PB_DS_BASE_C_DEC::reference reference;
+
+      typedef typename PB_DS_BASE_C_DEC::const_reference const_reference;
+
+      typedef typename PB_DS_BASE_C_DEC::point_iterator point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::iterator iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::reverse_iterator reverse_iterator;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_reverse_iterator
+      const_reverse_iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+      typedef typename PB_DS_BASE_C_DEC::node_update node_update;
+
+    public:
+
+      PB_DS_CLASS_NAME();
+
+      PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn);
+
+      PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update);
+
+      PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+      void
+      initialize();
+
+      inline std::pair<
+	point_iterator,
+	bool>
+      insert(const_reference r_value);
+
+      inline mapped_reference
+      operator[](const_key_reference r_key)
+      {
+#ifdef PB_DS_DATA_TRUE_INDICATOR
+	PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+	  std::pair<point_iterator, bool> ins_pair =
+	  insert_leaf_imp(
+			  value_type(
+				     r_key,
+				     mapped_type()));
+
+	ins_pair.first.m_p_nd->m_special = false;
+
+	PB_DS_DBG_ONLY(PB_DS_BASE_C_DEC::assert_valid());
+
+	splay(ins_pair.first.m_p_nd);
+
+	PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();)
+
+	  return (ins_pair.first.m_p_nd->m_value.second);
+#else // #ifdef PB_DS_DATA_TRUE_INDICATOR
+	insert(r_key);
+
+	return (PB_DS_BASE_C_DEC::s_null_mapped);
+#endif // #ifdef PB_DS_DATA_TRUE
+      }
+
+      inline point_iterator
+      find(const_key_reference r_key);
+
+      inline const_point_iterator
+      find(const_key_reference r_key) const;
+
+      inline bool
+      erase(const_key_reference r_key);
+
+      inline iterator
+      erase(iterator it);
+
+      inline reverse_iterator
+      erase(reverse_iterator it);
+
+      template<typename Pred>
+      inline size_type
+      erase_if(Pred pred);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+      void
+      split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other);
+
+    private:
+
+      inline std::pair<point_iterator, bool>
+      insert_leaf_imp(const_reference r_mapped_value);
+
+      inline node_pointer
+      find_imp(const_key_reference r_key);
+
+      inline const node_pointer
+      find_imp(const_key_reference r_key) const;
+
+#ifdef PB_DS_SPLAY_TREE_DEBUG_
+
+      void
+      assert_valid() const;
+
+      void
+      assert_special_imp(const node_pointer p_nd) const;
+
+#endif // #ifdef PB_DS_SPLAY_TREE_DEBUG_
+
+      void
+      splay(node_pointer p_nd);
+
+      inline void
+      splay_zig_zag_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
+
+      inline void
+      splay_zig_zag_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
+
+      inline void
+      splay_zig_zig_left(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
+
+      inline void
+      splay_zig_zig_right(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
+
+      inline void
+      splay_zz_start(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
+
+      inline void
+      splay_zz_end(node_pointer p_nd, node_pointer p_parent, node_pointer p_grandparent);
+
+      inline node_pointer
+      leftmost(node_pointer p_nd);
+
+      void
+      erase_node(node_pointer p_nd);
+
+    };
+
+#include <ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp>
+#include <ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_NAME
+
+#undef PB_DS_BASE_CLASS_NAME
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_V2F
+#undef PB_DS_EP2VP
+#undef PB_DS_V2S
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..78606a8aafcf
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation class for splay_tree_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    if (PB_DS_BASE_C_DEC::join_prep(other) == false)
+      {
+        PB_DS_DBG_ONLY(assert_valid();)
+	  PB_DS_DBG_ONLY(other.assert_valid();)
+
+	  return;
+      }
+
+  node_pointer p_target_r = other.leftmost(other.m_p_head);
+
+  PB_DS_DBG_ASSERT(p_target_r != NULL);
+
+  other.splay(p_target_r);
+
+  PB_DS_DBG_ASSERT(p_target_r == other.m_p_head->m_p_parent);
+  PB_DS_DBG_ASSERT(p_target_r->m_p_left == NULL);
+
+  p_target_r->m_p_left = PB_DS_BASE_C_DEC::m_p_head->m_p_parent;
+
+  PB_DS_DBG_ASSERT(p_target_r->m_p_left != NULL);
+  p_target_r->m_p_left->m_p_parent = p_target_r;
+
+  PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_target_r;
+  p_target_r->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+  apply_update(p_target_r, (node_update* )this);
+
+  PB_DS_BASE_C_DEC::join_finish(other);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid());
+  PB_DS_DBG_ONLY(other.assert_valid());
+
+  if (PB_DS_BASE_C_DEC::split_prep(r_key, other) == false)
+    {
+      PB_DS_DBG_ONLY(assert_valid());
+      PB_DS_DBG_ONLY(other.assert_valid());
+
+      return;
+    }
+
+  node_pointer p_upper_bound = upper_bound(r_key).m_p_nd;
+  PB_DS_DBG_ASSERT(p_upper_bound != NULL);
+
+  splay(p_upper_bound);
+  PB_DS_DBG_ASSERT(p_upper_bound->m_p_parent == this->m_p_head);
+
+  node_pointer p_new_root = p_upper_bound->m_p_left;
+  PB_DS_DBG_ASSERT(p_new_root != NULL);
+
+  PB_DS_BASE_C_DEC::m_p_head->m_p_parent = p_new_root;
+  p_new_root->m_p_parent = PB_DS_BASE_C_DEC::m_p_head;
+
+  other.m_p_head->m_p_parent = p_upper_bound;
+  p_upper_bound->m_p_parent = other.m_p_head;
+  p_upper_bound->m_p_left = NULL;
+
+  apply_update(p_upper_bound, (node_update* )this);
+
+  PB_DS_BASE_C_DEC::split_finish(other);
+
+  PB_DS_DBG_ONLY(assert_valid());
+  PB_DS_DBG_ONLY(other.assert_valid());
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
new file mode 100644
index 000000000000..2cdb733fd638
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/splay_tree_/traits.hpp
@@ -0,0 +1,131 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file traits.hpp
+ * Contains an implementation for splay_tree_.
+ */
+
+#ifndef PB_DS_SPLAY_TREE_NODE_AND_IT_TRAITS_HPP
+#define PB_DS_SPLAY_TREE_NODE_AND_IT_TRAITS_HPP
+
+#include <ext/pb_ds/detail/splay_tree_/node.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key,
+	     typename Mapped,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct tree_traits<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      splay_tree_tag,
+      Allocator> : public bin_search_tree_traits<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      splay_tree_node_<
+      typename types_traits<
+      Key,
+      Mapped,
+      Allocator,
+      false>::value_type,
+      typename tree_node_metadata_selector<
+      Key,
+      Mapped,
+      Cmp_Fn,
+      Node_Update,
+      Allocator>::type,
+      Allocator>,
+      Allocator>
+    { };
+
+    template<typename Key,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct tree_traits<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      splay_tree_tag,
+      Allocator> : public bin_search_tree_traits<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      splay_tree_node_<
+      typename types_traits<
+      Key,
+      null_mapped_type,
+      Allocator,
+      false>::value_type,
+      typename tree_node_metadata_selector<
+      Key,
+      null_mapped_type,
+      Cmp_Fn,
+      Node_Update,
+      Allocator>::type,
+      Allocator>,
+      Allocator>
+    { };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SPLAY_TREE_NODE_AND_IT_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp b/libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
new file mode 100644
index 000000000000..3371388a5619
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/standard_policies.hpp
@@ -0,0 +1,163 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file standard_policies.hpp
+ * Contains standard policies for containers.
+ */
+
+#ifndef PB_DS_STANDARD_POLICIES_HPP
+#define PB_DS_STANDARD_POLICIES_HPP
+
+#include <memory>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/hash_map>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+    template<typename Key>
+    struct default_hash_fn
+    {
+      typedef __gnu_cxx::hash< Key> type;
+    };
+
+    template<typename Key>
+    struct default_eq_fn
+    {
+      typedef std::equal_to< Key> type;
+    };
+
+    enum
+      {
+	default_store_hash = false
+      };
+
+    struct default_comb_hash_fn
+    {
+      typedef pb_ds::direct_mask_range_hashing<> type;
+    };
+
+    template<typename Comb_Hash_Fn>
+    struct default_resize_policy
+    {
+    private:
+      typedef typename Comb_Hash_Fn::size_type size_type;
+
+      typedef
+      typename conditional_type<
+	is_same<
+	pb_ds::direct_mask_range_hashing<
+	size_type>,
+	Comb_Hash_Fn>::value,
+	pb_ds::hash_exponential_size_policy<
+	size_type>,
+	pb_ds::hash_prime_size_policy>::type
+      size_policy_type;
+
+    public:
+      typedef
+      pb_ds::hash_standard_resize_policy<
+      size_policy_type,
+      pb_ds::hash_load_check_resize_trigger<
+      false,
+      size_type>,
+      false,
+      size_type>
+      type;
+    };
+
+    struct default_update_policy
+    {
+      typedef pb_ds::move_to_front_lu_policy<> type;
+    };
+
+    template<typename Comb_Probe_Fn>
+    struct default_probe_fn
+    {
+    private:
+      typedef typename Comb_Probe_Fn::size_type size_type;
+
+    public:
+      typedef
+      typename conditional_type<
+      is_same<
+      pb_ds::direct_mask_range_hashing<size_t>,
+      Comb_Probe_Fn>::value,
+      pb_ds::linear_probe_fn<
+      size_type>,
+      pb_ds::quadratic_probe_fn<
+      size_type> >::type
+      type;
+    };
+
+    template<typename Key>
+    struct default_trie_e_access_traits;
+
+    template<typename Char, class Char_Traits>
+    struct default_trie_e_access_traits<
+      std::basic_string<
+      Char,
+      Char_Traits,
+      std::allocator<
+      char> > >
+    {
+      typedef
+      pb_ds::string_trie_e_access_traits<
+	std::basic_string<
+	Char,
+	Char_Traits,
+	std::allocator<
+	char> > >
+      type;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_STANDARD_POLICIES_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..783711269d96
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
@@ -0,0 +1,122 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructors_destructor_fn_imps.hpp
+ * Contains an implementation for thin_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename It>
+void
+PB_DS_CLASS_C_DEC::
+copy_from_range(It first_it, It last_it)
+{
+  while (first_it != last_it)
+    push(*(first_it++));
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+thin_heap_() :
+  m_p_max(NULL)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+thin_heap_(const Cmp_Fn& r_cmp_fn) :
+  PB_DS_BASE_C_DEC(r_cmp_fn),
+  m_p_max(NULL)
+{
+  initialize();
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+thin_heap_(const PB_DS_CLASS_C_DEC& other) :
+  PB_DS_BASE_C_DEC(other)
+{
+  initialize();
+
+  m_p_max = base_type::m_p_root;
+
+  for (node_pointer p_nd = base_type::m_p_root; p_nd != NULL; p_nd = p_nd->m_p_next_sibling)
+    if (Cmp_Fn::operator()(m_p_max->m_value, p_nd->m_value))
+      m_p_max = p_nd;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    base_type::swap(other);
+
+  std::swap(m_p_max, other.m_p_max);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~thin_heap_()
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+initialize()
+{
+  std::fill(m_a_aux, m_a_aux + max_rank, static_cast<node_pointer>(NULL));
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
new file mode 100644
index 000000000000..e6d89db3683a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file debug_fn_imps.hpp
+ * Contains an implementation for thin_heap_.
+ */
+
+#ifdef PB_DS_THIN_HEAP_DEBUG_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_valid() const
+{
+  base_type::assert_valid();
+
+  assert_node_consistent(base_type::m_p_root, true);
+
+  assert_max();
+
+  assert_aux_null();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_aux_null() const
+{
+  for (size_type i = 0; i < max_rank; ++i)
+    PB_DS_DBG_ASSERT(m_a_aux[i] == NULL);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_max() const
+{
+  if (m_p_max == NULL)
+    {
+      PB_DS_DBG_ASSERT(base_type::empty());
+
+      return;
+    }
+
+  PB_DS_DBG_ASSERT(!base_type::empty());
+
+  PB_DS_DBG_ASSERT(base_type::parent(m_p_max) == NULL);
+  PB_DS_DBG_ASSERT(m_p_max->m_p_prev_or_parent == NULL);
+
+  for (const_iterator it = base_type::begin(); it != base_type::end(); ++it)
+    PB_DS_DBG_ASSERT(!Cmp_Fn::operator()(m_p_max->m_value, it.m_p_nd->m_value));
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+assert_node_consistent(const_node_pointer p_nd, bool root) const
+{
+  base_type::assert_node_consistent(p_nd, root);
+
+  if (p_nd == NULL)
+    return;
+
+  assert_node_consistent(p_nd->m_p_next_sibling, root);
+  assert_node_consistent(p_nd->m_p_l_child, false);
+
+  if (!root)
+    {
+      if (p_nd->m_metadata == 0)
+	PB_DS_DBG_ASSERT(p_nd->m_p_next_sibling == NULL);
+      else
+	PB_DS_DBG_ASSERT(p_nd->m_metadata == p_nd->m_p_next_sibling->m_metadata + 1);
+    }
+
+  if (p_nd->m_p_l_child != NULL)
+    PB_DS_DBG_ASSERT(p_nd->m_p_l_child->m_metadata + 1 == base_type::degree(p_nd));
+
+  const bool unmarked_valid =(p_nd->m_p_l_child == NULL&&  p_nd->m_metadata == 0) ||(p_nd->m_p_l_child != NULL&&  p_nd->m_metadata == p_nd->m_p_l_child->m_metadata + 1);
+
+  const bool marked_valid =(p_nd->m_p_l_child == NULL&&  p_nd->m_metadata == 1) ||(p_nd->m_p_l_child != NULL&&  p_nd->m_metadata == p_nd->m_p_l_child->m_metadata + 2);
+
+  PB_DS_DBG_ASSERT(unmarked_valid || marked_valid);
+
+  if (root)
+    PB_DS_DBG_ASSERT(unmarked_valid);
+}
+
+#endif // #ifdef PB_DS_THIN_HEAP_DEBUG_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
new file mode 100644
index 000000000000..9fd81f75d03f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
@@ -0,0 +1,302 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Contains an implementation for thin_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+pop()
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  PB_DS_DBG_ASSERT(m_p_max != NULL);
+
+  node_pointer p_nd = m_p_max;
+
+  remove_max_node();
+
+  base_type::actual_erase_node(p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+remove_max_node()
+{
+  to_aux_except_max();
+
+  make_from_aux();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+to_aux_except_max()
+{
+  node_pointer p_add = base_type::m_p_root;
+
+  while (p_add != m_p_max)
+    {
+      node_pointer p_next_add = p_add->m_p_next_sibling;
+
+      add_to_aux(p_add);
+
+      p_add = p_next_add;
+    }
+
+  p_add = m_p_max->m_p_l_child;
+
+  while (p_add != NULL)
+    {
+      node_pointer p_next_add = p_add->m_p_next_sibling;
+
+      p_add->m_metadata = p_add->m_p_l_child == NULL?
+	0 :
+	p_add->m_p_l_child->m_metadata + 1;
+
+      add_to_aux(p_add);
+
+      p_add = p_next_add;
+    }
+
+  p_add = m_p_max->m_p_next_sibling;
+
+  while (p_add != NULL)
+    {
+      node_pointer p_next_add = p_add->m_p_next_sibling;
+
+      add_to_aux(p_add);
+
+      p_add = p_next_add;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+add_to_aux(node_pointer p_nd)
+{
+  size_type r = p_nd->m_metadata;
+
+  while (m_a_aux[r] != NULL)
+    {
+      PB_DS_DBG_ASSERT(p_nd->m_metadata < rank_bound());
+
+      if (Cmp_Fn::operator()(m_a_aux[r]->m_value, p_nd->m_value))
+	make_child_of(m_a_aux[r], p_nd);
+      else
+        {
+	  make_child_of(p_nd, m_a_aux[r]);
+
+	  p_nd = m_a_aux[r];
+        }
+
+      m_a_aux[r] = NULL;
+
+      ++r;
+    }
+
+  PB_DS_DBG_ASSERT(p_nd->m_metadata < rank_bound());
+
+  m_a_aux[r] = p_nd;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+make_child_of(node_pointer p_nd, node_pointer p_new_parent)
+{
+  PB_DS_DBG_ASSERT(p_nd->m_metadata == p_new_parent->m_metadata);
+  PB_DS_DBG_ASSERT(m_a_aux[p_nd->m_metadata] == p_nd ||
+		   m_a_aux[p_nd->m_metadata] == p_new_parent);
+
+  ++p_new_parent->m_metadata;
+
+  base_type::make_child_of(p_nd, p_new_parent);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+make_from_aux()
+{
+  base_type::m_p_root = m_p_max = NULL;
+
+  const size_type rnk_bnd = rank_bound();
+
+  size_type i = 0;
+
+  while (i < rnk_bnd)
+    {
+      if (m_a_aux[i] != NULL)
+        {
+	  make_root_and_link(m_a_aux[i]);
+
+	  m_a_aux[i] = NULL;
+        }
+
+      ++i;
+    }
+
+  PB_DS_DBG_ONLY(assert_aux_null();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+remove_node(node_pointer p_nd)
+{
+  node_pointer p_parent = p_nd;
+  while (base_type::parent(p_parent) != NULL)
+    p_parent = base_type::parent(p_parent);
+
+  base_type::bubble_to_top(p_nd);
+
+  m_p_max = p_nd;
+
+  node_pointer p_fix = base_type::m_p_root;
+  while (p_fix != NULL&&  p_fix->m_p_next_sibling != p_parent)
+    p_fix = p_fix->m_p_next_sibling;
+
+  if (p_fix != NULL)
+    p_fix->m_p_next_sibling = p_nd;
+
+  remove_max_node();
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  base_type::clear();
+
+  m_p_max = NULL;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+erase(point_iterator it)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  node_pointer p_nd = it.m_p_nd;
+
+  remove_node(p_nd);
+
+  base_type::actual_erase_node(p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+erase_if(Pred pred)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    if (base_type::empty())
+      {
+        PB_DS_DBG_ONLY(assert_valid();)
+
+	  return 0;
+      }
+
+  base_type::to_linked_list();
+
+  node_pointer p_out = base_type::prune(pred);
+
+  size_type ersd = 0;
+
+  while (p_out != NULL)
+    {
+      ++ersd;
+
+      node_pointer p_next = p_out->m_p_next_sibling;
+
+      base_type::actual_erase_node(p_out);
+
+      p_out = p_next;
+    }
+
+  node_pointer p_cur = base_type::m_p_root;
+
+  m_p_max = base_type::m_p_root = NULL;
+
+  while (p_cur != NULL)
+    {
+      node_pointer p_next = p_cur->m_p_next_sibling;
+
+      make_root_and_link(p_cur);
+
+      p_cur = p_next;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return ersd;
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+rank_bound()
+{
+  const std::size_t* const p_upper =
+    std::upper_bound(            g_a_rank_bounds, g_a_rank_bounds + num_distinct_rank_bounds, base_type::m_size);
+
+  if (p_upper == g_a_rank_bounds + num_distinct_rank_bounds)
+    return max_rank;
+
+  return (p_upper - g_a_rank_bounds);
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
new file mode 100644
index 000000000000..9a3fb87be15f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
@@ -0,0 +1,57 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_fn_imps.hpp
+ * Contains an implementation for thin_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_reference
+PB_DS_CLASS_C_DEC::
+top() const
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ASSERT(!base_type::empty());
+
+  PB_DS_DBG_ASSERT(m_p_max != NULL);
+  return m_p_max->m_value;
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
new file mode 100644
index 000000000000..3eacd78e7b0e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
@@ -0,0 +1,332 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Contains an implementation for thin_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::point_iterator
+PB_DS_CLASS_C_DEC::
+push(const_reference r_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    node_pointer p_nd = base_type::get_new_node_for_insert(r_val);
+
+  p_nd->m_metadata = 0;
+
+  p_nd->m_p_prev_or_parent = p_nd->m_p_l_child = NULL;
+
+  if (base_type::m_p_root == NULL)
+    {
+      p_nd->m_p_next_sibling = NULL;
+
+      m_p_max = base_type::m_p_root = p_nd;
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return point_iterator(p_nd);
+    }
+
+  p_nd->m_p_next_sibling = base_type::m_p_root;
+
+  base_type::m_p_root->m_p_prev_or_parent = NULL;
+
+  base_type::m_p_root = p_nd;
+
+  update_max(p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+
+    return point_iterator(p_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+make_root(node_pointer p_nd)
+{
+  p_nd->m_metadata =
+    p_nd->m_p_l_child == NULL?
+    0 :
+    1 + p_nd->m_p_l_child->m_metadata;
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+make_root_and_link(node_pointer p_nd)
+{
+  make_root(p_nd);
+
+  p_nd->m_p_prev_or_parent = NULL;
+
+  p_nd->m_p_next_sibling = base_type::m_p_root;
+
+  if (base_type::m_p_root != NULL)
+    base_type::m_p_root->m_p_prev_or_parent = NULL;
+
+  base_type::m_p_root = p_nd;
+
+  update_max(p_nd);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+fix(node_pointer p_y)
+{
+  while (true)
+    {
+      if (p_y->m_p_prev_or_parent == NULL)
+        {
+	  fix_root(p_y);
+
+	  return;
+        }
+      else if (p_y->m_metadata == 1&&  p_y->m_p_next_sibling == NULL)
+        {
+	  if (p_y->m_p_l_child != NULL)
+            {
+	      fix_sibling_rank_1_unmarked(p_y);
+
+	      return;
+            }
+
+	  fix_sibling_rank_1_marked(p_y);
+
+	  p_y = p_y->m_p_prev_or_parent;
+        }
+      else if (p_y->m_metadata > p_y->m_p_next_sibling->m_metadata + 1)
+        {
+	  PB_DS_DBG_ASSERT(p_y->m_p_l_child != NULL);
+
+	  if (p_y->m_metadata != p_y->m_p_l_child->m_metadata + 2)
+            {
+	      fix_sibling_general_unmarked(p_y);
+
+	      return;
+            }
+
+	  fix_sibling_general_marked(p_y);
+
+	  p_y = p_y->m_p_prev_or_parent;
+        }
+      else if ((p_y->m_p_l_child == NULL&& 
+                p_y->m_metadata == 2) ||(p_y->m_p_l_child != NULL&& 
+					 p_y->m_metadata == p_y->m_p_l_child->m_metadata + 3))
+        {
+	  node_pointer p_z = p_y->m_p_prev_or_parent;
+
+	  fix_child(p_y);
+
+	  p_y = p_z;
+        }
+      else
+	return;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+fix_root(node_pointer p_y)
+{
+  PB_DS_DBG_ASSERT(p_y->m_p_prev_or_parent == NULL);
+
+  make_root(p_y);
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_y, true);)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+fix_sibling_rank_1_unmarked(node_pointer p_y)
+{
+  PB_DS_DBG_ASSERT(p_y->m_p_prev_or_parent != NULL);
+
+  PB_DS_DBG_ONLY(node_pointer p_w = p_y->m_p_l_child;)
+    PB_DS_DBG_ASSERT(p_w != NULL);
+  PB_DS_DBG_ASSERT(p_w->m_p_next_sibling == NULL);
+  PB_DS_DBG_ASSERT(p_y->m_p_next_sibling == NULL);
+
+  p_y->m_p_next_sibling = p_y->m_p_l_child;
+
+  p_y->m_p_next_sibling->m_p_prev_or_parent = p_y;
+
+  p_y->m_p_l_child = NULL;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_y, false);)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+fix_sibling_rank_1_marked(node_pointer p_y)
+{
+  PB_DS_DBG_ASSERT(p_y->m_p_prev_or_parent != NULL);
+  PB_DS_DBG_ASSERT(p_y->m_p_l_child == NULL);
+
+  p_y->m_metadata = 0;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_y, false);)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+fix_sibling_general_unmarked(node_pointer p_y)
+{
+  PB_DS_DBG_ASSERT(p_y->m_p_prev_or_parent != NULL);
+
+  node_pointer p_w = p_y->m_p_l_child;
+  PB_DS_DBG_ASSERT(p_w != NULL);
+  PB_DS_DBG_ASSERT(p_w->m_p_next_sibling != NULL);
+
+  p_y->m_p_l_child = p_w->m_p_next_sibling;
+  p_w->m_p_next_sibling->m_p_prev_or_parent = p_y;
+
+  p_w->m_p_next_sibling = p_y->m_p_next_sibling;
+  PB_DS_DBG_ASSERT(p_w->m_p_next_sibling != NULL);
+  p_w->m_p_next_sibling->m_p_prev_or_parent = p_w;
+
+  p_y->m_p_next_sibling = p_w;
+  p_w->m_p_prev_or_parent = p_y;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_y, false);)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+fix_sibling_general_marked(node_pointer p_y)
+{
+  PB_DS_DBG_ASSERT(p_y->m_p_prev_or_parent != NULL);
+
+  --p_y->m_metadata;
+
+  PB_DS_DBG_ONLY(assert_node_consistent(p_y, false);)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+fix_child(node_pointer p_y)
+{
+  PB_DS_DBG_ASSERT(p_y->m_p_prev_or_parent != NULL);
+
+  if (p_y->m_p_next_sibling != NULL)
+    p_y->m_p_next_sibling->m_p_prev_or_parent = p_y->m_p_prev_or_parent;
+
+  if (p_y->m_p_prev_or_parent->m_p_l_child == p_y)
+    p_y->m_p_prev_or_parent->m_p_l_child = p_y->m_p_next_sibling;
+  else
+    p_y->m_p_prev_or_parent->m_p_next_sibling = p_y->m_p_next_sibling;
+
+  make_root_and_link(p_y);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+modify(point_iterator it, const_reference r_new_val)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    node_pointer p_nd = it.m_p_nd;
+
+  PB_DS_DBG_ASSERT(p_nd != NULL);
+
+  const bool smaller = Cmp_Fn::operator()(r_new_val, p_nd->m_value);
+
+  p_nd->m_value = r_new_val;
+
+  if (smaller)
+    {
+      remove_node(p_nd);
+
+      p_nd->m_p_l_child = NULL;
+
+      make_root_and_link(p_nd);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return;
+    }
+
+  if (p_nd->m_p_prev_or_parent == NULL)
+    {
+      update_max(p_nd);
+
+      PB_DS_DBG_ONLY(assert_valid();)
+
+        return;
+    }
+
+  node_pointer p_y = p_nd->m_p_prev_or_parent;
+  PB_DS_DBG_ASSERT(p_y != NULL);
+
+  if (p_nd->m_p_next_sibling != NULL)
+    p_nd->m_p_next_sibling->m_p_prev_or_parent = p_y;
+
+  if (p_y->m_p_l_child == p_nd)
+    p_y->m_p_l_child = p_nd->m_p_next_sibling;
+  else
+    p_y->m_p_next_sibling = p_nd->m_p_next_sibling;
+
+  fix(p_y);
+
+  make_root_and_link(p_nd);
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+update_max(node_pointer p_nd)
+{
+  if (m_p_max == NULL || Cmp_Fn::operator()(m_p_max->m_value, p_nd->m_value))
+    m_p_max = p_nd;
+}
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..58c7e18ad589
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
@@ -0,0 +1,132 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Contains an implementation for thin_heap_.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Pred>
+void
+PB_DS_CLASS_C_DEC::
+split(Pred pred, PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    other.clear();
+
+  if (base_type::empty())
+    {
+      PB_DS_DBG_ONLY(assert_valid();)
+        PB_DS_DBG_ONLY(other.assert_valid();)
+
+        return;
+    }
+
+  base_type::to_linked_list();
+
+  node_pointer p_out = base_type::prune(pred);
+
+  while (p_out != NULL)
+    {
+      PB_DS_DBG_ASSERT(base_type::m_size > 0);
+      --base_type::m_size;
+
+      ++other.m_size;
+
+      node_pointer p_next = p_out->m_p_next_sibling;
+
+      other.make_root_and_link(p_out);
+
+      p_out = p_next;
+    }
+
+  PB_DS_DBG_ONLY(other.assert_valid();)
+
+    node_pointer p_cur = base_type::m_p_root;
+
+  m_p_max = NULL;
+
+  base_type::m_p_root = NULL;
+
+  while (p_cur != NULL)
+    {
+      node_pointer p_next = p_cur->m_p_next_sibling;
+
+      make_root_and_link(p_cur);
+
+      p_cur = p_next;
+    }
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+join(PB_DS_CLASS_C_DEC& other)
+{
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+
+    node_pointer p_other = other.m_p_root;
+
+  while (p_other != NULL)
+    {
+      node_pointer p_next = p_other->m_p_next_sibling;
+
+      make_root_and_link(p_other);
+
+      p_other = p_next;
+    }
+
+  base_type::m_size += other.m_size;
+
+  other.m_p_root = NULL;
+  other.m_size = 0;
+  other.m_p_max = NULL;
+
+  PB_DS_DBG_ONLY(assert_valid();)
+    PB_DS_DBG_ONLY(other.assert_valid();)
+    }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
new file mode 100644
index 000000000000..4c4f423584d6
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
@@ -0,0 +1,392 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file thin_heap_.hpp
+ * Contains an implementation class for a thin heap.
+ */
+
+#ifndef PB_DS_THIN_HEAP_HPP
+#define PB_DS_THIN_HEAP_HPP
+
+/*
+ * Thin heaps.
+ * Tarjan and Kaplan.
+ */
+
+#ifdef PB_DS_THIN_HEAP_DEBUG_
+#include <cassert>
+#endif // #ifdef PB_DS_THIN_HEAP_DEBUG_
+#include <algorithm>
+#include <ext/pb_ds/detail/cond_dealtor.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp>
+#include <ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#ifdef PB_DS_THIN_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef PB_DS_THIN_HEAP_DEBUG_
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef PB_DS_THIN_HEAP_DEBUG_
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC				\
+    thin_heap_<						\
+					Value_Type,	\
+					Cmp_Fn,		\
+					Allocator>
+
+#ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_BASE_C_DEC						\
+    left_child_next_sibling_heap_<			\
+									Value_Type, \
+									Cmp_Fn,	\
+									typename Allocator::size_type, \
+									Allocator, \
+									true>
+#else // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+#define PB_DS_BASE_C_DEC						\
+    left_child_next_sibling_heap_<			\
+									Value_Type, \
+									Cmp_Fn,	\
+									typename Allocator::size_type, \
+									Allocator>
+#endif // #ifdef PB_DS_LC_NS_HEAP_DEBUG_
+
+    /**
+     * class description = "t|-|i|\| h34p">
+     **/
+    template<typename Value_Type, class Cmp_Fn, class Allocator>
+    class thin_heap_ : public PB_DS_BASE_C_DEC
+    {
+
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    protected:
+      typedef typename base_type::node node;
+
+      typedef typename base_type::node_pointer node_pointer;
+
+      typedef typename base_type::const_node_pointer const_node_pointer;
+
+    public:
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef typename Allocator::difference_type difference_type;
+
+      typedef Value_Type value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::pointer
+      pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_pointer
+      const_pointer;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::reference
+      reference;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_point_iterator
+      const_point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::point_iterator point_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator;
+
+      typedef typename PB_DS_BASE_C_DEC::iterator iterator;
+
+      typedef Cmp_Fn cmp_fn;
+
+      typedef Allocator allocator;
+
+    public:
+
+      inline point_iterator
+      push(const_reference r_val);
+
+      void
+      modify(point_iterator it, const_reference r_new_val);
+
+      inline const_reference
+      top() const;
+
+      void
+      pop();
+
+      void
+      erase(point_iterator it);
+
+      inline void
+      clear();
+
+      template<typename Pred>
+      size_type
+      erase_if(Pred pred);
+
+      template<typename Pred>
+      void
+      split(Pred pred, PB_DS_CLASS_C_DEC& other);
+
+      void
+      join(PB_DS_CLASS_C_DEC& other);
+
+    protected:
+
+      thin_heap_();
+
+      thin_heap_(const Cmp_Fn& r_cmp_fn);
+
+      thin_heap_(const PB_DS_CLASS_C_DEC& other);
+
+      void
+      swap(PB_DS_CLASS_C_DEC& other);
+
+      ~thin_heap_();
+
+      template<typename It>
+      void
+      copy_from_range(It first_it, It last_it);
+
+#ifdef PB_DS_THIN_HEAP_DEBUG_
+
+      void
+      assert_valid() const;
+
+      void
+      assert_max() const;
+
+#endif // #ifdef PB_DS_THIN_HEAP_DEBUG_
+
+#ifdef PB_DS_THIN_HEAP_TRACE_
+
+      void
+      trace() const;
+
+#endif // #ifdef PB_DS_THIN_HEAP_TRACE_
+
+    private:
+      enum
+	{
+	  max_rank = (sizeof(size_type) << 4) + 2
+	};
+
+    private:
+
+      void
+      initialize();
+
+      inline void
+      update_max(node_pointer p_nd);
+
+      inline void
+      fix(node_pointer p_nd);
+
+      inline void
+      fix_root(node_pointer p_y);
+
+      inline void
+      fix_sibling_rank_1_unmarked(node_pointer p_y);
+
+      inline void
+      fix_sibling_rank_1_marked(node_pointer p_y);
+
+      inline void
+      fix_sibling_general_unmarked(node_pointer p_y);
+
+      inline void
+      fix_sibling_general_marked(node_pointer p_y);
+
+      inline void
+      fix_child(node_pointer p_y);
+
+      inline static void
+      make_root(node_pointer p_nd);
+
+      inline void
+      make_root_and_link(node_pointer p_nd);
+
+      inline void
+      remove_max_node();
+
+      void
+      to_aux_except_max();
+
+      inline void
+      add_to_aux(node_pointer p_nd);
+
+      inline void
+      make_from_aux();
+
+      inline size_type
+      rank_bound();
+
+      inline void
+      make_child_of(node_pointer p_nd, node_pointer p_new_parent);
+
+      inline void
+      remove_node(node_pointer p_nd);
+
+      inline node_pointer
+      join(node_pointer p_lhs, node_pointer p_rhs) const;
+
+#ifdef PB_DS_THIN_HEAP_DEBUG_
+
+      void
+      assert_node_consistent(const_node_pointer p_nd, bool root) const;
+
+      void
+      assert_aux_null() const;
+
+#endif // #ifdef PB_DS_THIN_HEAP_DEBUG_
+
+    private:
+      node_pointer m_p_max;
+
+      node_pointer m_a_aux[max_rank];
+    };
+
+    enum
+      {
+	num_distinct_rank_bounds = 48
+      };
+
+    // Taken from the SGI implementation; acknowledged in the docs.
+
+    static const std::size_t g_a_rank_bounds[num_distinct_rank_bounds] =
+      {
+	/* Dealing cards... */
+	/* 0     */ 0ul,
+	/* 1     */ 1ul,
+	/* 2     */ 1ul,
+	/* 3     */ 2ul,
+	/* 4     */ 4ul,
+	/* 5     */ 6ul,
+	/* 6     */ 11ul,
+	/* 7     */ 17ul,
+	/* 8     */ 29ul,
+	/* 9     */ 46ul,
+	/* 10    */ 76ul,
+	/* 11    */ 122ul,
+	/* 12    */ 199ul,
+	/* 13    */ 321ul,
+	/* 14    */ 521ul,
+	/* 15    */ 842ul,
+	/* 16    */ 1364ul,
+	/* 17    */ 2206ul,
+	/* 18    */ 3571ul,
+	/* 19    */ 5777ul,
+	/* 20    */ 9349ul,
+	/* 21    */ 15126ul,
+	/* 22    */ 24476ul,
+	/* 23    */ 39602ul,
+	/* 24    */ 64079ul,
+	/* 25    */ 103681ul,
+	/* 26    */ 167761ul,
+	/* 27    */ 271442ul,
+	/* 28    */ 439204ul,
+	/* 29    */ 710646ul,
+	/* 30    */ 1149851ul,
+	/* 31    */ 1860497ul,
+	/* 32    */ 3010349ul,
+	/* 33    */ 4870846ul,
+	/* 34    */ 7881196ul,
+	/* 35    */ 12752042ul,
+	/* 36    */ 20633239ul,
+	/* 37    */ 33385282ul,
+	/* 38    */ 54018521ul,
+	/* 39    */ 87403803ul,
+	/* 40    */ 141422324ul,
+	/* 41    */ 228826127ul,
+	/* 42    */ 370248451ul,
+	/* 43    */ 599074578ul,
+	/* 44    */ 969323029ul,
+	/* 45    */ 1568397607ul,
+	/* 46    */ 2537720636ul,
+	/* 47    */ 4106118243ul
+	/* Pot's good, let's play */
+      };
+
+#include <ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp>
+#include <ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp>
+#include <ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp>
+#include <ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp>
+#include <ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp>
+#include <ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp>
+#include <ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_THIN_HEAP_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
new file mode 100644
index 000000000000..a4f9c8784ff3
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
@@ -0,0 +1,61 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trace_fn_imps.hpp
+ * Contains an implementation class for left_child_next_sibling_heap_.
+ */
+
+#ifdef PB_DS_THIN_HEAP_TRACE_
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+trace() const
+{
+  std::cerr << std::endl;
+
+  std::cerr << "m_p_max " << m_p_max << std::endl;
+
+  base_type::trace();
+}
+
+#endif // #ifdef PB_DS_THIN_HEAP_TRACE_
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
new file mode 100644
index 000000000000..3fd7dc9ac881
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
@@ -0,0 +1,122 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_metadata_selector.hpp
+ * Contains an implementation class for trees.
+ */
+
+#ifndef PB_DS_TREE_NODE_METADATA_SELECTOR_HPP
+#define PB_DS_TREE_NODE_METADATA_SELECTOR_HPP
+
+#include <ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Node_Update, bool Null>
+    struct tree_metadata_helper
+    {
+      typedef typename Node_Update::metadata_type type;
+    };
+
+    template<typename Node_Update>
+    struct tree_metadata_helper<
+      Node_Update,
+      true>
+    {
+      typedef null_node_metadata type;
+    };
+
+    template<typename Key,
+	     typename Data,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Const_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct tree_node_metadata_selector
+    {
+    private:
+      typedef
+      dumconst_node_iterator<
+      Key,
+      Data,
+      Allocator>
+      dumconst_node_it;
+
+      enum
+	{
+	  null_update =
+	  is_same<
+	  Node_Update<
+	  dumconst_node_it,
+	  dumconst_node_it,
+	  Cmp_Fn,
+	  Allocator>,
+	  null_tree_node_update<
+	  dumconst_node_it,
+	  dumconst_node_it,
+	  Cmp_Fn,
+	  Allocator> >::value
+	};
+
+    public:
+      typedef
+      typename tree_metadata_helper<
+      Node_Update<
+      dumconst_node_it,
+      dumconst_node_it,
+      Cmp_Fn,
+      Allocator>,
+      null_update>::type
+      type;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TREE_NODE_METADATA_SELECTOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp
new file mode 100644
index 000000000000..d9c596798c18
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file null_node_update_imp.hpp
+ * Contains an implementation of null_node_update.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Const_Node_Iterator_,
+	 typename Node_Iterator_,
+	 class    Cmp_Fn_,
+	 typename Allocator_>
+inline void
+PB_DS_CLASS_C_DEC::
+swap(null_tree_node_update<            Const_Node_Iterator_, Node_Iterator_, Cmp_Fn_, Allocator_>& /*other*/)
+{ }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
new file mode 100644
index 000000000000..85f4d166a56a
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
@@ -0,0 +1,147 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file order_statistics_imp.hpp
+ * Contains forward declarations for order_statistics_key
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+find_by_order(size_type order)
+{
+  node_iterator it = node_begin();
+
+  node_iterator end_it = node_end();
+
+  while (it != end_it)
+    {
+      node_iterator l_it = it.get_l_child();
+
+      const size_type o = (l_it == end_it)?
+	0 :
+	l_it.get_metadata();
+
+      if (order == o)
+	return (*it);
+      else if (order < o)
+	it = l_it;
+      else
+        {
+	  order -= o + 1;
+
+	  it = it.get_r_child();
+        }
+    }
+
+  return (PB_DS_BASE_C_DEC::end_iterator());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+find_by_order(size_type order) const
+{
+  return (const_cast<PB_DS_CLASS_C_DEC* >(this)->find_by_order(order));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+order_of_key(const_key_reference r_key) const
+{
+  const_node_iterator it = node_begin();
+
+  const_node_iterator end_it = node_end();
+
+  const cmp_fn& r_cmp_fn =
+    const_cast<PB_DS_CLASS_C_DEC* >(this)->get_cmp_fn();
+
+  size_type ord = 0;
+
+  while (it != end_it)
+    {
+      const_node_iterator l_it = it.get_l_child();
+
+      if (r_cmp_fn(r_key, extract_key(*(*it))))
+	it = l_it;
+      else if (r_cmp_fn(extract_key(*(*it)), r_key))
+        {
+
+	  ord += (l_it == end_it)?
+	    1 :
+	    1 + l_it.get_metadata();
+
+	  it = it.get_r_child();
+        }
+      else
+        {
+	  ord += (l_it == end_it)?
+	    0 :
+	    l_it.get_metadata();
+
+	  it = end_it;
+        }
+    }
+
+  return (ord);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+operator()(node_iterator node_it, const_node_iterator end_nd_it) const
+{
+  node_iterator l_child_it = node_it.get_l_child();
+  const size_type l_rank =(l_child_it == end_nd_it)? 0 : l_child_it.get_metadata();
+
+  node_iterator r_child_it = node_it.get_r_child();
+  const size_type r_rank =(r_child_it == end_nd_it)? 0 : r_child_it.get_metadata();
+
+  const_cast<metadata_reference>(node_it.get_metadata())=
+    1 + l_rank + r_rank;
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~tree_order_statistics_node_update()
+{ }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
new file mode 100644
index 000000000000..5b7d7c51aace
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_tree_node_update.hpp
+ * Contains a samle node update functor.
+ */
+
+#ifndef PB_DS_SAMPLE_TREE_NODE_UPDATOR_HPP
+#define PB_DS_SAMPLE_TREE_NODE_UPDATOR_HPP
+
+// A sample node updator.
+template<typename Const_Node_Iterator,
+
+	 class Node_Iterator,
+
+	 class Cmp_Fn,
+
+	 class Allocator
+	 >
+class sample_tree_node_update
+{
+
+public:
+
+  // Metadata type.
+  typedef size_t metadata_type;
+
+protected:
+
+  // Default constructor.
+  sample_tree_node_update();
+
+  // Updates the rank of a node through a node_iterator node_it; end_nd_it is the end node iterator.
+  inline void
+  operator()(node_iterator node_it, const_node_iterator end_nd_it) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_TREE_NODE_UPDATOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
new file mode 100644
index 000000000000..791f2fc6f2d2
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/tree_trace_base.hpp
@@ -0,0 +1,215 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_trace_base.hpp
+ * Contains tree-related policies.
+ */
+
+#ifndef PB_DS_TREE_TRACE_BASE_HPP
+#define PB_DS_TREE_TRACE_BASE_HPP
+
+#ifdef PB_DS_TREE_TRACE
+
+#include <ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp>
+#include <ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp>
+
+namespace pb_ds
+{
+
+  namespace detail
+  {
+
+#ifdef PB_DS_TREE_TRACE
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						class Const_Node_Iterator, \
+						class Node_Iterator,	\
+						class Cmp_Fn,		\
+						bool Node_Based,	\
+						class Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    tree_trace_base<							\
+						Const_Node_Iterator,	\
+						Node_Iterator,		\
+						Cmp_Fn,			\
+						Node_Based,		\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    basic_tree_policy_base<				\
+								Const_Node_Iterator, \
+								Node_Iterator, \
+								Allocator>
+
+    template<typename Const_Node_Iterator,
+	     class Node_Iterator,
+	     class Cmp_Fn,
+	     bool Node_Based,
+	     class Allocator>
+    class tree_trace_base : private PB_DS_BASE_C_DEC
+    {
+    public:
+      void
+      trace() const;
+
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+      typedef Const_Node_Iterator const_node_iterator;
+
+      typedef typename Allocator::size_type size_type;
+
+    private:
+      void
+      trace_node(const_node_iterator nd_it, size_type level) const;
+
+      virtual bool
+      empty() const = 0;
+
+      virtual const_node_iterator
+      node_begin() const = 0;
+
+      virtual const_node_iterator
+      node_end() const = 0;
+
+      static void
+      print_node_pointer(Const_Node_Iterator nd_it, integral_constant<int,true>);
+
+      static void
+      print_node_pointer(Const_Node_Iterator nd_it, integral_constant<int,false>);
+
+      template<typename Metadata_>
+      static void
+      trace_it_metadata(Const_Node_Iterator nd_it, type_to_type<Metadata_>);
+
+      static void
+      trace_it_metadata(Const_Node_Iterator, type_to_type<null_node_metadata>);
+    };
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    trace() const
+    {
+      if (empty())
+        return;
+
+      trace_node(node_begin(), 0);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    trace_node(const_node_iterator nd_it, size_type level) const
+    {
+      if (nd_it.get_r_child() != node_end())
+        trace_node(nd_it.get_r_child(), level + 1);
+
+      for (size_type i = 0; i < level; ++i)
+        std::cerr << ' ';
+
+      print_node_pointer(nd_it, integral_constant<int,Node_Based>());
+      std::cerr << base_type::extract_key(*(*nd_it));
+
+      typedef
+        type_to_type<
+	typename const_node_iterator::metadata_type>
+        m_type_ind_t;
+
+      trace_it_metadata(nd_it, m_type_ind_t());
+
+      std::cerr << std::endl;
+
+      if (nd_it.get_l_child() != node_end())
+        trace_node(nd_it.get_l_child(), level + 1);
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Metadata_>
+    void
+    PB_DS_CLASS_C_DEC::
+    trace_it_metadata(Const_Node_Iterator nd_it, type_to_type<Metadata_>)
+    {
+      std::cerr << " (" <<
+        static_cast<unsigned long>(nd_it.get_metadata()) << ") ";
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    trace_it_metadata(Const_Node_Iterator, type_to_type<null_node_metadata>)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    print_node_pointer(Const_Node_Iterator nd_it, integral_constant<int,true>)
+    {
+      std::cerr << nd_it.m_p_nd << " ";
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    print_node_pointer(Const_Node_Iterator nd_it, integral_constant<int,false>)
+    {
+      std::cerr <<* nd_it << " ";
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#endif // #ifdef    PB_DS_TREE_TRACE
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifdef PB_DS_TREE_TRACE
+
+#endif // #ifndef PB_DS_TREE_TRACE_BASE_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
new file mode 100644
index 000000000000..ed9e1aac6e00
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
@@ -0,0 +1,122 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_metadata_selector.hpp
+ * Contains an implementation class for tries.
+ */
+
+#ifndef PB_DS_TRIE_NODE_METADATA_SELECTOR_HPP
+#define PB_DS_TRIE_NODE_METADATA_SELECTOR_HPP
+
+#include <ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp>
+#include <ext/pb_ds/detail/types_traits.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Node_Update, bool Null>
+    struct trie_metadata_helper
+    {
+      typedef typename Node_Update::metadata_type type;
+    };
+
+    template<typename Node_Update>
+    struct trie_metadata_helper<
+      Node_Update,
+      true>
+    {
+      typedef null_node_metadata type;
+    };
+
+    template<typename Key,
+	     typename Data,
+	     class Cmp_Fn,
+	     template<typename Const_Node_Iterator,
+		      class Const_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update,
+	     class Allocator>
+    struct trie_node_metadata_selector
+    {
+    private:
+      typedef
+      dumconst_node_iterator<
+      Key,
+      Data,
+      Allocator>
+      dumconst_node_it;
+
+      enum
+	{
+	  null_update =
+	  is_same<
+	  Node_Update<
+	  dumconst_node_it,
+	  dumconst_node_it,
+	  Cmp_Fn,
+	  Allocator>,
+	  null_trie_node_update<
+	  dumconst_node_it,
+	  dumconst_node_it,
+	  Cmp_Fn,
+	  Allocator> >::value
+	};
+
+    public:
+      typedef
+      typename trie_metadata_helper<
+      Node_Update<
+      dumconst_node_it,
+      dumconst_node_it,
+      Cmp_Fn,
+      Allocator>,
+      null_update>::type
+      type;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TRIE_NODE_METADATA_SELECTOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp
new file mode 100644
index 000000000000..cb0b57fa7608
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp
@@ -0,0 +1,56 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file null_node_update_imp.hpp
+ * Contains an implementation of null_node_update.
+ */
+
+PB_DS_CLASS_T_DEC
+template<typename Const_Node_Iterator_,
+	 typename Node_Iterator_,
+	 class    E_Access_Traits_,
+	 typename Allocator_>
+inline void
+PB_DS_CLASS_C_DEC::
+swap(null_trie_node_update<            Const_Node_Iterator_, Node_Iterator_, E_Access_Traits_, Allocator_>& /*other*/)
+{ }
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
new file mode 100644
index 000000000000..9351217ed1dd
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
@@ -0,0 +1,189 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file order_statistics_imp.hpp
+ * Contains forward declarations for order_statistics_key
+ */
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::iterator
+PB_DS_CLASS_C_DEC::
+find_by_order(size_type order)
+{
+  if (empty())
+    return (end());
+
+  ++order;
+
+  node_iterator nd_it = node_begin();
+
+  node_iterator end_nd_it = node_end();
+
+  while (true)
+    {
+      if (order > nd_it.get_metadata())
+	return (++base_type::rightmost_it(nd_it));
+
+      const size_type num_children = nd_it.num_children();
+
+      if (num_children == 0)
+	return (*nd_it);
+
+      for (size_type i = 0; i < num_children; ++i)
+        {
+	  node_iterator child_nd_it = nd_it.get_child(i);
+
+	  if (order <= child_nd_it.get_metadata())
+            {
+	      i = num_children;
+
+	      nd_it = child_nd_it;
+            }
+	  else
+	    order -= child_nd_it.get_metadata();
+        }
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+find_by_order(size_type order) const
+{
+  return (const_cast<PB_DS_CLASS_C_DEC* >(this)->find_by_order(order));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+order_of_key(const_key_reference r_key) const
+{
+  const E_Access_Traits& r_traits =
+    const_cast<PB_DS_CLASS_C_DEC* >(this)->get_e_access_traits();
+
+  return (order_of_prefix(
+			  r_traits.begin(r_key),
+			  r_traits.end(r_key)));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+order_of_prefix(typename e_access_traits::const_iterator b, typename e_access_traits::const_iterator e) const
+{
+  if (empty())
+    return (0);
+
+  const E_Access_Traits& r_traits =
+    const_cast<PB_DS_CLASS_C_DEC* >(this)->get_e_access_traits();
+
+  const_node_iterator nd_it = node_begin();
+
+  const_node_iterator end_nd_it = node_end();
+
+  size_type ord = 0;
+
+  while (true)
+    {
+      const size_type num_children = nd_it.num_children();
+
+      if (num_children == 0)
+        {
+	  const_key_reference r_key =
+	    base_type::extract_key(*(*nd_it));
+
+	  typename e_access_traits::const_iterator key_b =
+	    r_traits.begin(r_key);
+
+	  typename e_access_traits::const_iterator key_e =
+	    r_traits.end(r_key);
+
+	  return ((base_type::less(                    key_b, key_e,  b, e,  r_traits))?
+		  ord + 1 :
+		  ord);
+        }
+
+      const_node_iterator next_nd_it = end_nd_it;
+
+      size_type i = num_children - 1;
+
+      do
+        {
+	  const_node_iterator child_nd_it = nd_it.get_child(i);
+
+	  if (next_nd_it != end_nd_it)
+	    ord += child_nd_it.get_metadata();
+	  else if (!base_type::less(
+				    b, e,
+				    child_nd_it.valid_prefix().first,
+				    child_nd_it.valid_prefix().second,
+				    r_traits))
+	    next_nd_it = child_nd_it;
+        }
+      while (i-- > 0);
+
+      if (next_nd_it == end_nd_it)
+	return (ord);
+
+      nd_it = next_nd_it;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+operator()(node_iterator nd_it, const_node_iterator /*end_nd_it*/) const
+{
+  const size_type num_children = nd_it.num_children();
+
+  size_type children_rank = 0;
+
+  for (size_type i = 0; i < num_children; ++i)
+    children_rank += nd_it.get_child(i).get_metadata();
+
+  const_cast<size_type& >(nd_it.get_metadata()) =(num_children == 0)? 1 : children_rank;
+}
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~trie_order_statistics_node_update()
+{ }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
new file mode 100644
index 000000000000..c74290ebf04c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
@@ -0,0 +1,157 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file prefix_search_node_update_imp.hpp
+ * Contains an implementation of prefix_search_node_update.
+ */
+
+PB_DS_CLASS_T_DEC
+std::pair<
+  typename PB_DS_CLASS_C_DEC::const_iterator,
+  typename PB_DS_CLASS_C_DEC::const_iterator>
+PB_DS_CLASS_C_DEC::
+prefix_range(const_key_reference r_key) const
+{
+  const e_access_traits& r_traits = get_e_access_traits();
+
+  return (prefix_range(
+		       r_traits.begin(r_key),
+		       r_traits.end(r_key)));
+}
+
+PB_DS_CLASS_T_DEC
+std::pair<
+  typename PB_DS_CLASS_C_DEC::iterator,
+  typename PB_DS_CLASS_C_DEC::iterator>
+PB_DS_CLASS_C_DEC::
+prefix_range(const_key_reference r_key)
+{
+  return (prefix_range(
+		       get_e_access_traits().begin(r_key),
+		       get_e_access_traits().end(r_key)));
+}
+
+PB_DS_CLASS_T_DEC
+std::pair<
+  typename PB_DS_CLASS_C_DEC::const_iterator,
+  typename PB_DS_CLASS_C_DEC::const_iterator>
+PB_DS_CLASS_C_DEC::
+prefix_range(typename e_access_traits::const_iterator b, typename e_access_traits::const_iterator e) const
+{
+  const std::pair<iterator, iterator> non_const_ret =
+    const_cast<PB_DS_CLASS_C_DEC* >(this)->prefix_range(b, e);
+
+  return (std::make_pair(
+			 const_iterator(non_const_ret.first),
+			 const_iterator(non_const_ret.second)));
+}
+
+PB_DS_CLASS_T_DEC
+std::pair<
+  typename PB_DS_CLASS_C_DEC::iterator,
+  typename PB_DS_CLASS_C_DEC::iterator>
+PB_DS_CLASS_C_DEC::
+prefix_range(typename e_access_traits::const_iterator b, typename e_access_traits::const_iterator e)
+{
+  Node_Iterator nd_it = node_begin();
+  Node_Iterator end_nd_it = node_end();
+
+  const e_access_traits& r_traits =
+    get_e_access_traits();
+
+  const size_type given_range_length = std::distance(b, e);
+
+  while (true)
+    {
+      if (nd_it == end_nd_it)
+	return (std::make_pair(end(), end()));
+
+      const size_type common_range_length =
+	PB_DS_BASE_C_DEC::common_prefix_len(nd_it, b, e, r_traits);
+
+      if (common_range_length >= given_range_length)
+        {
+	  iterator ret_b = leftmost_it(nd_it);
+
+	  iterator ret_e = rightmost_it(nd_it);
+
+	  return (std::make_pair(ret_b, ++ret_e));
+        }
+
+      nd_it = next_child(nd_it, b, e, end_nd_it, r_traits);
+    }
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::node_iterator
+PB_DS_CLASS_C_DEC::
+next_child(node_iterator nd_it, typename e_access_traits::const_iterator b, typename e_access_traits::const_iterator e, node_iterator end_nd_it, const e_access_traits& r_traits)
+{
+  const size_type num_children = nd_it.num_children();
+
+  node_iterator ret = end_nd_it;
+
+  size_type max_length = 0;
+
+  for (size_type i = 0; i < num_children; ++i)
+    {
+      node_iterator pot = nd_it.get_child(i);
+
+      const size_type common_range_length =
+	PB_DS_BASE_C_DEC::common_prefix_len(            pot, b, e, r_traits);
+
+      if (common_range_length > max_length)
+        {
+	  ret = pot;
+
+	  max_length = common_range_length;
+        }
+    }
+
+  return (ret);
+}
+
+PB_DS_CLASS_T_DEC
+inline void
+PB_DS_CLASS_C_DEC::
+operator()(node_iterator /*nd_it*/, const_node_iterator /*end_nd_it*/) const
+{ }
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp
new file mode 100644
index 000000000000..954f47995c53
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp
@@ -0,0 +1,95 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_trie_e_access_traits.hpp
+ * Contains a sample probe policy.
+ */
+
+#ifndef PB_DS_SAMPLE_TRIE_E_ACCESS_TRAITS_HPP
+#define PB_DS_SAMPLE_TRIE_E_ACCESS_TRAITS_HPP
+
+// A sample trie element-access traits.
+class sample_trie_e_access_traits
+{
+
+public:
+
+  // Size type.
+  typedef size_t size_type;
+
+  // Key type.
+  typedef std::string key_type;
+
+  // Const key reference type.
+  typedef
+  typename Allocator::template rebind<
+    key_type>::other::const_reference
+  const_key_reference;
+
+  // Element const iterator type.
+  typedef std::string::const_iterator const_iterator;
+
+  // Element type.
+  typedef char e_type;
+
+  enum
+    {
+      max_size = 4
+    };
+
+public:
+
+  // Returns a const_iterator to the first element of r_key.
+  inline static const_iterator
+  begin(const_key_reference r_key);
+
+  // Returns a const_iterator to the after-last element of r_key.
+  inline static const_iterator
+  end(const_key_reference r_key);
+
+  // Maps an element to a position.
+  inline static size_type
+  e_pos(e_type e);
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_TRIE_E_ACCESS_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
new file mode 100644
index 000000000000..8a884c410b5b
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_trie_node_update.hpp
+ * Contains a samle node update functor.
+ */
+
+#ifndef PB_DS_SAMPLE_TRIE_NODE_UPDATOR_HPP
+#define PB_DS_SAMPLE_TRIE_NODE_UPDATOR_HPP
+
+// A sample node updator.
+template<typename Const_Node_Iterator,
+
+	 class Node_Iterator,
+
+	 class E_Access_Traits,
+
+	 class Allocator
+	 >
+class sample_trie_node_update
+{
+
+public:
+
+  // Metadata type.
+  typedef size_t metadata_type;
+
+protected:
+
+  // Default constructor.
+  sample_trie_node_update();
+
+  // Updates the rank of a node through a node_iterator node_it; end_nd_it is the end node iterator.
+  inline void
+  operator()(node_iterator node_it, const_node_iterator end_nd_it) const;
+
+};
+
+#endif // #ifndef PB_DS_SAMPLE_TRIE_NODE_UPDATOR_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp
new file mode 100644
index 000000000000..c2fe1c6ca438
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp
@@ -0,0 +1,105 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file string_trie_e_access_traits_imp.hpp
+ * Contains a policy for extracting character positions from
+ *    a string for a vector-based PATRICIA tree
+ */
+
+PB_DS_CLASS_T_DEC
+detail::integral_constant<int, Reverse> PB_DS_CLASS_C_DEC::s_rev_ind;
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::size_type
+PB_DS_CLASS_C_DEC::
+e_pos(e_type e)
+{
+  return (static_cast<size_type>(e - min_e_val));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin(const_key_reference r_key)
+{
+  return (begin_imp(r_key, s_rev_ind));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end(const_key_reference r_key)
+{
+  return (end_imp(r_key, s_rev_ind));
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin_imp(const_key_reference r_key, detail::false_type)
+{
+  return (r_key.begin());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+begin_imp(const_key_reference r_key, detail::true_type)
+{
+  return (r_key.rbegin());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end_imp(const_key_reference r_key, detail::false_type)
+{
+  return (r_key.end());
+}
+
+PB_DS_CLASS_T_DEC
+inline typename PB_DS_CLASS_C_DEC::const_iterator
+PB_DS_CLASS_C_DEC::
+end_imp(const_key_reference r_key, detail::true_type)
+{
+  return (r_key.rend());
+}
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
new file mode 100644
index 000000000000..a8506ce68156
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
@@ -0,0 +1,255 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_policy_base.hpp
+ * Contains an implementation of trie_policy_base.
+ */
+
+#ifndef PB_DS_TRIE_POLICY_BASE_HPP
+#define PB_DS_TRIE_POLICY_BASE_HPP
+
+#include <ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						class Const_Node_Iterator, \
+						class Node_Iterator,	\
+						class E_Access_Traits,	\
+						typename Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+    trie_policy_base<							\
+						Const_Node_Iterator,	\
+						Node_Iterator,		\
+						E_Access_Traits,	\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    basic_tree_policy_base<				\
+								Const_Node_Iterator, \
+								Node_Iterator, \
+								Allocator>
+
+    template<typename Const_Node_Iterator,
+	     class Node_Iterator,
+	     class E_Access_Traits,
+	     class Allocator>
+    class trie_policy_base : public PB_DS_BASE_C_DEC
+    {
+
+    public:
+
+      typedef E_Access_Traits e_access_traits;
+
+      typedef Allocator allocator;
+
+      typedef typename allocator::size_type size_type;
+
+      typedef null_node_metadata metadata_type;
+
+      typedef Const_Node_Iterator const_node_iterator;
+
+      typedef Node_Iterator node_iterator;
+
+      typedef typename const_node_iterator::value_type const_iterator;
+
+      typedef typename node_iterator::value_type iterator;
+
+    public:
+
+      typedef typename PB_DS_BASE_C_DEC::key_type key_type;
+
+      typedef
+      typename PB_DS_BASE_C_DEC::const_key_reference
+      const_key_reference;
+
+    protected:
+
+      virtual const_iterator
+      end() const = 0;
+
+      virtual iterator
+      end() = 0;
+
+      virtual const_node_iterator
+      node_begin() const = 0;
+
+      virtual node_iterator
+      node_begin() = 0;
+
+      virtual const_node_iterator
+      node_end() const = 0;
+
+      virtual node_iterator
+      node_end() = 0;
+
+      virtual const e_access_traits& 
+      get_e_access_traits() const = 0;
+
+    private:
+      typedef
+      std::pair<
+      typename e_access_traits::const_iterator,
+      typename e_access_traits::const_iterator>
+      prefix_range_t;
+
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    protected:
+      static size_type
+      common_prefix_len(node_iterator nd_it, typename e_access_traits::const_iterator b_r, typename e_access_traits::const_iterator e_r, const e_access_traits& r_traits);
+
+      static iterator
+      leftmost_it(node_iterator nd_it);
+
+      static iterator
+      rightmost_it(node_iterator nd_it);
+
+      static bool
+      less(typename e_access_traits::const_iterator b_l, typename e_access_traits::const_iterator e_l, typename e_access_traits::const_iterator b_r, typename e_access_traits::const_iterator e_r, const e_access_traits& r_traits);
+    };
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    common_prefix_len(node_iterator nd_it, typename e_access_traits::const_iterator b_r, typename e_access_traits::const_iterator e_r, const e_access_traits& r_traits)
+    {
+      prefix_range_t pref_range = nd_it.valid_prefix();
+
+      typename e_access_traits::const_iterator b_l = pref_range.first;
+      typename e_access_traits::const_iterator e_l = pref_range.second;
+
+      const size_type range_length_l =
+	std::distance(b_l, e_l);
+
+      const size_type range_length_r =
+	std::distance(b_r, e_r);
+
+      if (range_length_r < range_length_l)
+	{
+	  std::swap(b_l, b_r);
+
+	  std::swap(e_l, e_r);
+	}
+
+      size_type ret = 0;
+
+      while (b_l != e_l)
+	{
+	  if (r_traits.e_pos(*b_l) != r_traits.e_pos(*b_r))
+	    return (ret);
+
+	  ++ret;
+
+	  ++b_l;
+
+	  ++b_r;
+	}
+
+      return (ret);
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::iterator
+    PB_DS_CLASS_C_DEC::
+    leftmost_it(node_iterator nd_it)
+    {
+      if (nd_it.num_children() == 0)
+	return (*nd_it);
+
+      return (leftmost_it(nd_it.get_child(0)));
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::iterator
+    PB_DS_CLASS_C_DEC::
+    rightmost_it(node_iterator nd_it)
+    {
+      const size_type num_children = nd_it.num_children();
+
+      if (num_children == 0)
+	return (*nd_it);
+
+      return (rightmost_it(nd_it.get_child(num_children - 1)));
+    }
+
+    PB_DS_CLASS_T_DEC
+    bool
+    PB_DS_CLASS_C_DEC::
+    less(typename e_access_traits::const_iterator b_l, typename e_access_traits::const_iterator e_l, typename e_access_traits::const_iterator b_r, typename e_access_traits::const_iterator e_r, const e_access_traits& r_traits)
+    {
+      while (b_l != e_l)
+	{
+	  if (b_r == e_r)
+	    return (false);
+
+	  size_type l_pos =
+	    r_traits.e_pos(*b_l);
+	  size_type r_pos =
+	    r_traits.e_pos(*b_r);
+
+	  if (l_pos != r_pos)
+	    return (l_pos < r_pos);
+
+	  ++b_l;
+	  ++b_r;
+	}
+
+      return (b_r != e_r);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TRIE_POLICY_BASE_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp b/libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
new file mode 100644
index 000000000000..3316c4dd44c7
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/type_utils.hpp
@@ -0,0 +1,177 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file type_utils.hpp
+ * Contains utilities for handnling types. All of these classes are based on
+ *    "Modern C++" by Andrei Alxandrescu.
+ */
+
+#ifndef PB_DS_TYPE_UTILS_HPP
+#define PB_DS_TYPE_UTILS_HPP
+
+#include <cstddef>
+#include <utility>
+#include <tr1/type_traits>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+    using std::tr1::is_same;
+    using std::tr1::is_const;
+    using std::tr1::is_pointer;
+    using std::tr1::is_reference;
+    using std::tr1::is_fundamental;
+    using std::tr1::is_member_object_pointer;
+    using std::tr1::is_member_pointer;
+    using std::tr1::is_base_of;
+    using std::tr1::remove_const;
+    using std::tr1::remove_reference;
+
+    // Need integral_const<bool, true> <-> integral_const<int, 1>, so
+    // because of this use the following typedefs instead of importing
+    // std::tr1's.
+    using std::tr1::integral_constant;
+    typedef std::tr1::integral_constant<int, 1> true_type;
+    typedef std::tr1::integral_constant<int, 0> false_type;
+
+    template<typename T>
+    struct is_const_pointer
+    {
+      enum
+	{
+	  value = is_const<T>::value && is_pointer<T>::value
+	};
+    };
+
+    template<typename T>
+    struct is_const_reference
+    {
+      enum
+	{
+	  value = is_const<T>::value && is_reference<T>::value
+	};
+    };
+
+    template<typename T>
+    struct is_simple
+    {
+      enum
+	{
+	  value = is_fundamental<typename remove_const<T>::type>::value 
+	  || is_pointer<typename remove_const<T>::type>::value 
+	  || is_member_pointer<T>::value 
+	};
+    };
+
+    template<typename T>
+    class is_pair
+    {
+    private:
+      template<typename U>
+      struct is_pair_imp
+      {
+	enum
+	  {
+	    value = 0
+	  };
+      };
+
+      template<typename U, typename V>
+      struct is_pair_imp<std::pair<U,V> >
+      {
+	enum
+	  {
+	    value = 1
+	  };
+      };
+
+    public:
+      enum
+	{
+	  value = is_pair_imp<T>::value
+	};
+    };
+
+
+    template<bool>
+    struct static_assert;
+
+    template<>
+    struct static_assert<true>
+    { };
+
+    template<int>
+    struct static_assert_dumclass
+    {
+      enum
+	{
+	  v = 1
+	};
+    };
+
+
+    template<typename Type>
+    struct type_to_type
+    {
+      typedef Type type;
+    };
+
+
+    template<bool Cond, class A, class B>
+    struct conditional_type;
+
+    template<typename A, class B>
+    struct conditional_type<true, A, B>
+    {
+      typedef A type;
+    };
+
+    template<typename A, class B>
+    struct conditional_type<false, A, B>
+    {
+      typedef B type;
+    };
+  } // namespace detail
+} // namespace pb_ds
+
+#endif 
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp
new file mode 100644
index 000000000000..267db809153b
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist.hpp
@@ -0,0 +1,296 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist.hpp
+ * Contains typelist_chain definitions.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_HPP
+#define PB_DS_TYPELIST_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+    struct null_type
+    { };
+
+    template<typename Hd, typename Tl>
+    struct typelist_chain
+    {
+      typedef Hd head;
+      typedef Tl tail;
+    };
+
+    template<typename Root>
+    struct typelist
+    {
+      typedef Root root;
+    };
+
+#define PB_DS_TYPELIST_CHAIN1(X0) typelist_chain<X0, null_type>
+#define PB_DS_TYPELIST_CHAIN2(X0, X1) typelist_chain<X0, PB_DS_TYPELIST_CHAIN1(X1) >
+#define PB_DS_TYPELIST_CHAIN3(X0, X1, X2) typelist_chain<X0, PB_DS_TYPELIST_CHAIN2(X1, X2) >
+#define PB_DS_TYPELIST_CHAIN4(X0, X1, X2, X3) typelist_chain<X0, PB_DS_TYPELIST_CHAIN3(X1, X2, X3) >
+#define PB_DS_TYPELIST_CHAIN5(X0, X1, X2, X3, X4) typelist_chain<X0, PB_DS_TYPELIST_CHAIN4(X1, X2, X3, X4) >
+#define PB_DS_TYPELIST_CHAIN6(X0, X1, X2, X3, X4, X5) typelist_chain<X0, PB_DS_TYPELIST_CHAIN5(X1, X2, X3, X4, X5) >
+#define PB_DS_TYPELIST_CHAIN7(X0, X1, X2, X3, X4, X5, X6) typelist_chain<X0, PB_DS_TYPELIST_CHAIN6(X1, X2, X3, X4, X5, X6) >
+#define PB_DS_TYPELIST_CHAIN8(X0, X1, X2, X3, X4, X5, X6, X7) typelist_chain<X0, PB_DS_TYPELIST_CHAIN7(X1, X2, X3, X4, X5, X6, X7) >
+#define PB_DS_TYPELIST_CHAIN9(X0, X1, X2, X3, X4, X5, X6, X7, X8) typelist_chain<X0, PB_DS_TYPELIST_CHAIN8(X1, X2, X3, X4, X5, X6, X7, X8) >
+#define PB_DS_TYPELIST_CHAIN10(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9) typelist_chain<X0, PB_DS_TYPELIST_CHAIN9(X1, X2, X3, X4, X5, X6, X7, X8, X9) >
+#define PB_DS_TYPELIST_CHAIN11(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) typelist_chain<X0, PB_DS_TYPELIST_CHAIN10(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10) >
+#define PB_DS_TYPELIST_CHAIN12(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) typelist_chain<X0, PB_DS_TYPELIST_CHAIN11(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11) >
+#define PB_DS_TYPELIST_CHAIN13(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) typelist_chain<X0, PB_DS_TYPELIST_CHAIN12(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12) >
+#define PB_DS_TYPELIST_CHAIN14(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) typelist_chain<X0, PB_DS_TYPELIST_CHAIN13(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13) >
+#define PB_DS_TYPELIST_CHAIN15(X0, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) typelist_chain<X0, PB_DS_TYPELIST_CHAIN14(X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14) >
+
+#include <ext/pb_ds/detail/typelist/typelist_apply.hpp>
+
+    template<typename Fn, class Typelist>
+    void
+    typelist_apply(Fn& r_fn, Typelist)
+    {
+      detail::apply_<Fn, typename Typelist::root> a;
+      a(r_fn);
+    }
+
+#include <ext/pb_ds/detail/typelist/typelist_append.hpp>
+
+    template<typename Typelist0, class Typelist1>
+    struct typelist_append
+    {
+    private:
+      typedef
+      typename detail::typelist_append_<
+      typename Typelist0::root,
+      typename Typelist1::root>::type
+      res_hd;
+
+    public:
+      typedef typelist< res_hd> type;
+    };
+
+#include <ext/pb_ds/detail/typelist/typelist_typelist_append.hpp>
+
+    template<typename Typelist_Typelist>
+    struct typelist_typelist_append
+    {
+    private:
+      typedef
+      typename detail::typelist_typelist_append_<
+      typename Typelist_Typelist::root>::type
+      res_hd;
+
+    public:
+      typedef typelist< res_hd> type;
+    };
+
+#include <ext/pb_ds/detail/typelist/typelist_contains.hpp>
+
+    template<typename Typelist, typename T>
+    struct typelist_contains
+    {
+      enum
+	{
+	  value =
+	  detail::typelist_contains_<
+	  typename Typelist::root,
+	  T>::value
+	};
+    };
+
+#include <ext/pb_ds/detail/typelist/typelist_filter.hpp>
+
+    template<typename Typelist, template<typename T>
+    class Pred>
+    struct typelist_filter
+    {
+    private:
+      typedef
+      typename detail::typelist_chain_filter_<
+      typename Typelist::root,
+      Pred>::type
+      root_type;
+
+    public:
+      typedef typelist< root_type> type;
+    };
+
+#include <ext/pb_ds/detail/typelist/typelist_at_index.hpp>
+
+    template<typename Typelist, int i>
+    struct typelist_at_index
+    {
+      typedef
+      typename detail::typelist_chain_at_index_<
+	typename Typelist::root,
+	i>::type
+      type;
+    };
+
+#include <ext/pb_ds/detail/typelist/typelist_transform.hpp>
+
+    template<typename Typelist, template<typename T>
+    class Transform>
+    struct typelist_transform
+    {
+    private:
+      typedef
+      typename detail::typelist_chain_transform_<
+      typename Typelist::root,
+      Transform>::type
+      root_type;
+
+    public:
+      typedef typelist< root_type> type;
+    };
+
+#include <ext/pb_ds/detail/typelist/typelist_flatten.hpp>
+
+    template<typename Typelist_Typelist>
+    struct typelist_flatten
+    {
+    private:
+      typedef
+      typename detail::typelist_chain_flatten_<
+      typename Typelist_Typelist::root>::type
+      root_type;
+
+    public:
+      typedef typelist< root_type> type;
+    };
+
+    template<typename Typelist>
+    struct typelist_from_first
+    {
+    private:
+      typedef typename typelist_at_index< Typelist, 0>::type first_type;
+
+    public:
+      typedef typelist< typelist_chain< first_type, null_type> > type;
+    };
+
+    template<typename T0>
+    struct typelist1
+    {
+      typedef typelist< PB_DS_TYPELIST_CHAIN1( T0)> type;
+    };
+
+    template<typename T0, typename T1>
+    struct typelist2
+    {
+      typedef
+      typelist<
+	PB_DS_TYPELIST_CHAIN2(                T0,  T1)>
+      type;
+    };
+
+    template<typename T0, typename T1, typename T2>
+    struct typelist3
+    {
+      typedef
+      typelist<
+	PB_DS_TYPELIST_CHAIN3(                T0,  T1,  T2)>
+      type;
+    };
+
+    template<typename T0, typename T1, typename T2, typename T3>
+    struct typelist4
+    {
+      typedef
+      typelist<
+	PB_DS_TYPELIST_CHAIN4(                T0,  T1,  T2,  T3)>
+      type;
+    };
+
+    template<typename T0,
+	     typename T1,
+	     typename T2,
+	     typename T3,
+	     typename T4>
+    struct typelist5
+    {
+      typedef
+      typelist<
+	PB_DS_TYPELIST_CHAIN5(                T0,  T1,  T2,  T3,  T4)>
+      type;
+    };
+
+    template<typename T0,
+	     typename T1,
+	     typename T2,
+	     typename T3,
+	     typename T4,
+	     typename T5>
+    struct typelist6
+    {
+      typedef
+      typelist<
+	PB_DS_TYPELIST_CHAIN6(                T0,  T1,  T2,  T3,  T4,  T5)>
+      type;
+    };
+
+#undef PB_DS_TYPELIST_CHAIN1
+#undef PB_DS_TYPELIST_CHAIN2
+#undef PB_DS_TYPELIST_CHAIN3
+#undef PB_DS_TYPELIST_CHAIN4
+#undef PB_DS_TYPELIST_CHAIN5
+#undef PB_DS_TYPELIST_CHAIN6
+#undef PB_DS_TYPELIST_CHAIN7
+#undef PB_DS_TYPELIST_CHAIN8
+#undef PB_DS_TYPELIST_CHAIN9
+#undef PB_DS_TYPELIST_CHAIN10
+#undef PB_DS_TYPELIST_CHAIN11
+#undef PB_DS_TYPELIST_CHAIN12
+#undef PB_DS_TYPELIST_CHAIN13
+#undef PB_DS_TYPELIST_CHAIN14
+#undef PB_DS_TYPELIST_CHAIN15
+
+  } // namespace detail
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TYPELIST_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp
new file mode 100644
index 000000000000..2498628bd593
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_append.hpp
@@ -0,0 +1,84 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_append.hpp
+ * Contains typelist_chain utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_APPEND_HPP
+#define PB_DS_TYPELIST_APPEND_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Typelist_Chain0, class Typelist_Chain1>
+  struct typelist_append_;
+
+  template<typename Hd, typename Tl, class Typelist_Chain1>
+  struct typelist_append_<typelist_chain<Hd, Tl>, Typelist_Chain1>
+  {
+    typedef typelist_chain<Hd, typename typelist_append_<Tl, Typelist_Chain1>::type> type;
+  };
+
+  template<typename Typelist_Chain1>
+  struct typelist_append_< null_type, Typelist_Chain1>
+  {
+    typedef Typelist_Chain1 type;
+  };
+
+  template<typename Typelist_Chain0>
+  struct typelist_append_<Typelist_Chain0, null_type>
+  {
+    typedef Typelist_Chain0 type;
+  };
+
+  template<>
+  struct typelist_append_<null_type, null_type>
+  {
+    typedef null_type type;
+  };
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_APPEND_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp
new file mode 100644
index 000000000000..311301c94d62
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_apply.hpp
@@ -0,0 +1,79 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_apply.hpp
+ * Contains typelist utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_APPLY_HPP
+#define PB_DS_TYPELIST_APPLY_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Fn, class Typelist_Chain>
+  struct apply_;
+
+  template<typename Fn, class Hd, class Tl>
+  struct apply_<Fn, typelist_chain<Hd, Tl> >
+  {
+    void
+    operator()(Fn& r_fn)
+    {
+      r_fn(type_to_type<Hd>());
+      apply_<Fn, Tl> next;
+      next(r_fn);
+    }
+  };
+
+  template<typename Fn>
+  struct apply_<Fn, null_type>
+  {
+    void
+    operator()(Fn&) { }
+  };
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_APPLY_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp
new file mode 100644
index 000000000000..68b7e8b8d35f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp
@@ -0,0 +1,74 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_assoc_container_find.hpp
+ * Contains typelist utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_ASSOC_CNTNR_FIND_HPP
+#define PB_DS_TYPELIST_ASSOC_CNTNR_FIND_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Tl, typename Key>
+  struct typelist_assoc_container_find_;
+
+  template<typename Now_Key, typename Now_Data, typename Rest_Tl, typename Key>
+  struct typelist_assoc_container_find_<
+    typelist_chain<std::pair<Now_Key, Now_Data>, Rest_Tl>, Key>
+  {
+    typedef typename typelist_assoc_container_find_< Rest_Tl, Key>::type type;
+  };
+
+  template<typename Now_Key, typename Now_Data, typename Rest_Tl>
+  struct typelist_assoc_container_find_<
+    typelist_chain<std::pair<Now_Key, Now_Data>, Rest_Tl>, Now_Key>
+  {
+    typedef Now_Data type;
+  };
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_ASSOC_CNTNR_FIND_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp
new file mode 100644
index 000000000000..a392d12edf17
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_at_index.hpp
@@ -0,0 +1,72 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_at_index.hpp
+ * Contains typelist utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_AT_INDEX_HPP
+#define PB_DS_TYPELIST_AT_INDEX_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Typelist_Chain, int i>
+  struct typelist_chain_at_index_;
+
+  template<typename Hd, class Tl>
+  struct typelist_chain_at_index_<typelist_chain<Hd, Tl>, 0>
+  {
+    typedef Hd type;
+  };
+
+  template<typename Hd, class Tl, int i>
+  struct typelist_chain_at_index_<typelist_chain<Hd, Tl>, i>
+  {
+    typedef typename typelist_chain_at_index_< Tl, i - 1>::type type;
+  };
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_AT_INDEX_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp
new file mode 100644
index 000000000000..dc8a347afa5e
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_contains.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_contains.hpp
+ * Contains typelist utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_CONTAINS_HPP
+#define PB_DS_TYPELIST_CONTAINS_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Typelist_Chain, class T>
+  struct typelist_contains_;
+
+  template<typename T>
+  struct typelist_contains_<null_type, T>
+  {
+    enum
+      {
+        value = false
+      };
+  };
+
+  template<typename Hd, class Tl, class T>
+  struct typelist_contains_<typelist_chain<Hd, Tl>, T>
+  {
+    enum
+      {
+        value = typelist_contains_<Tl, T>::value
+      };
+  };
+
+  template<typename Tl, class T>
+  struct typelist_contains_<typelist_chain<T, Tl>, T>
+  {
+    enum
+      {
+        value = true
+      };
+  };
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_CONTAINS_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp
new file mode 100644
index 000000000000..43e215307527
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_filter.hpp
@@ -0,0 +1,80 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_filter.hpp
+ * Contains typelist utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_FILTER_HPP
+#define PB_DS_TYPELIST_FILTER_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Typelist_Chain, template<typename T> class Pred>
+  struct typelist_chain_filter_;
+
+  template<template<typename T>
+  class Pred>
+  struct typelist_chain_filter_<null_type, Pred>
+  {
+    typedef null_type type;
+  };
+
+  template<typename Hd, class Tl, template<typename T> class Pred>
+  struct typelist_chain_filter_< typelist_chain<Hd, Tl>, Pred>
+  {
+    typedef typename typelist_chain_filter_< Tl, Pred>::type rest;
+
+    enum
+      {
+        include_hd = Pred<Hd>::value
+      };
+
+    typedef typename conditional_type<include_hd, typelist_chain<Hd, rest>, rest>::type type;
+  };
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_FILTER_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp
new file mode 100644
index 000000000000..5d8e49899131
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_flatten.hpp
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_flatten.hpp
+ * Contains typelist utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_FLATTEN_HPP
+#define PB_DS_TYPELIST_FLATTEN_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Typelist_Typelist_Chain>
+  struct typelist_chain_flatten_;
+
+  template<typename Hd_Tl>
+  struct typelist_chain_flatten_<typelist_chain<Hd_Tl, null_type> >
+  {
+    typedef typename Hd_Tl::root type;
+  };
+
+  template<typename Hd_Typelist, class Tl_Typelist>
+  struct typelist_chain_flatten_<typelist_chain<Hd_Typelist, Tl_Typelist> >
+  {
+    typedef typename typelist_chain_flatten_< Tl_Typelist>::type rest;
+    typedef typename typelist_append<Hd_Typelist, typelist<rest> >::type::root type;
+  };
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_FLATTEN_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp
new file mode 100644
index 000000000000..e62de8d6e44c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_transform.hpp
@@ -0,0 +1,75 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_transform.hpp
+ * Contains typelist utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_TRANSFORM_HPP
+#define PB_DS_TYPELIST_TRANSFORM_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+  template<typename Typelist_Chain, template<typename T> class Transform>
+  struct typelist_chain_transform_;
+
+  template<template<typename T> class Transform>
+  struct typelist_chain_transform_<null_type, Transform>
+  {
+    typedef null_type type;
+  };
+
+  template<typename Hd, class Tl, template<typename T> class Transform>
+  struct typelist_chain_transform_<typelist_chain<Hd, Tl>, Transform>
+  {
+    typedef typename typelist_chain_transform_< Tl, Transform>::type rest;
+    typedef typename Transform<Hd>::type transform_type;
+    typedef typelist_chain<transform_type, rest> type;
+  };
+
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_TRANSFORM_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp
new file mode 100644
index 000000000000..92ede86e9d57
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist/typelist_typelist_append.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_typelist_append.hpp
+ * Contains typelist_chain utilities.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_TYPELIST_APPEND_HPP
+#define PB_DS_TYPELIST_TYPELIST_APPEND_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace detail
+{
+
+  template<typename Typelist_Typelist_Chain>
+  struct typelist_typelist_append_;
+
+  template<typename Hd>
+  struct typelist_typelist_append_<
+    typelist_chain<Hd, null_type> >
+  {
+    typedef typelist_chain< Hd, null_type> type;
+  };
+
+  template<typename Hd, class Tl>
+  struct typelist_typelist_append_<
+    typelist_chain<
+    Hd,
+    Tl> >
+  {
+  private:
+    typedef typename typelist_typelist_append_< Tl>::type rest;
+
+  public:
+    typedef
+    typename typelist_append<
+    Hd,
+    typelist<
+    rest> >::type::root
+    type;
+  };
+
+} // namespace detail
+
+#endif // #ifndef PB_DS_TYPELIST_TYPELIST_APPEND_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp b/libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp
new file mode 100644
index 000000000000..19c703f9cb7f
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/typelist_assoc_container.hpp
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file typelist_assoc_container.hpp
+ * Contains an associative container based on typelists.
+ * Typelists are an idea by Andrei Alexandrescu.
+ */
+
+#ifndef PB_DS_TYPELIST_CHAIN_HPP
+#define PB_DS_TYPELIST_CHAIN_HPP
+
+#include <utility>
+#include <ext/pb_ds/detail/typelist.hpp>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+    template<typename Typelist = typelist<null_type> >
+    struct typelist_assoc_container
+    {
+      typedef Typelist tl;
+    };
+
+    template<typename Typelist_Assoc_Cntnr, typename Key, typename Data>
+    struct typelist_assoc_container_insert
+    {
+    private:
+      typedef typename Typelist_Assoc_Cntnr::tl already_tl;
+
+      typedef typelist<typelist_chain<std::pair<Key, Data>, null_type> > new_tl;
+
+      typedef typename typelist_append< new_tl, already_tl>::type so_happy_together;
+
+    public:
+      typedef typelist_assoc_container< so_happy_together> type;
+    };
+
+#include <ext/pb_ds/detail/typelist/typelist_assoc_container_find.hpp>
+
+    template<typename Typelist_Assoc_Cntnr, typename Key>
+    struct typelist_assoc_container_find
+    {
+    private:
+      typedef typename Typelist_Assoc_Cntnr::tl already;
+      typedef typename already::root already_root;
+    };
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TYPELIST_CHAIN_HPP
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp b/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
new file mode 100644
index 000000000000..58522c1c4021
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/types_traits.hpp
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file types_traits.hpp
+ * Contains a traits class of types used by containers.
+ */
+
+#ifndef PB_DS_TYPES_TRAITS_HPP
+#define PB_DS_TYPES_TRAITS_HPP
+
+#include <ext/pb_ds/detail/basic_types.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <utility>
+
+namespace pb_ds
+{
+  namespace detail
+  {
+
+    template<typename Key,
+	     typename Mapped,
+	     class Allocator,
+	     bool Store_Extra>
+    struct vt_base_selector
+    {
+      typedef value_type_base< Key, Mapped, Allocator, Store_Extra> type;
+    };
+
+    template<typename Key,
+	     typename Mapped,
+	     class Allocator,
+	     bool Store_Extra>
+    struct types_traits : public vt_base_selector<
+      Key,
+      Mapped,
+      Allocator,
+      Store_Extra>::type
+    {
+
+      typedef typename Allocator::template rebind< Key>::other key_allocator;
+
+      typedef typename key_allocator::value_type key_type;
+
+      typedef typename key_allocator::pointer key_pointer;
+
+      typedef typename key_allocator::const_pointer const_key_pointer;
+
+      typedef typename key_allocator::reference key_reference;
+
+      typedef typename key_allocator::const_reference const_key_reference;
+
+      typedef typename Allocator::size_type size_type;
+
+      typedef false_type store_extra_false_type;
+
+      typedef true_type store_extra_true_type;
+
+      integral_constant<int,Store_Extra> m_store_extra_indicator;
+
+      typedef false_type no_throw_copies_false_type;
+
+      typedef true_type no_throw_copies_true_type;
+
+      typename no_throw_copies<Key, Mapped>::indicator
+      m_no_throw_copies_indicator;
+
+      // Extra value (used when the extra value is stored with each value).
+      typedef typename comp_hash_< size_type>::comp_hash comp_hash;
+    };
+
+  } // namespace detail
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TYPES_TRAITS_HPP
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
new file mode 100644
index 000000000000..84419e59a5eb
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
@@ -0,0 +1,135 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file const_iterator.hpp
+ * Contains an iterator class used for const ranging over the elements of the
+ *     table.
+ */
+
+// Const range-type iterator.
+class const_iterator_ : 
+  public const_point_iterator_
+
+{
+
+public:
+
+  // Category.
+  typedef std::forward_iterator_tag iterator_category;
+
+  // Difference type.
+  typedef typename Allocator::difference_type difference_type;
+
+  // Iterator's value type.
+  typedef value_type_ value_type;
+
+  // Iterator's pointer type.
+  typedef pointer_ pointer;
+
+  // Iterator's const pointer type.
+  typedef const_pointer_ const_pointer;
+
+  // Iterator's reference type.
+  typedef reference_ reference;
+
+  // Iterator's const reference type.
+  typedef const_reference_ const_reference;
+
+public:
+
+  // Default constructor.
+  inline
+  const_iterator_()
+
+    : m_p_tbl(NULL)
+  { }
+
+  // Increments.
+  inline const_iterator_& 
+  operator++()
+  {
+    m_p_tbl->inc_it_state(base_type::m_p_value, m_pos);
+
+    return (*this);
+  }
+
+  // Increments.
+  inline const_iterator_
+  operator++(int)
+  {
+    const_iterator_ ret =* this;
+
+    m_p_tbl->inc_it_state(base_type::m_p_value, m_pos);
+
+    return (ret);
+  }
+
+protected:
+
+  typedef const_point_iterator_ base_type;
+
+protected:
+
+  /**
+   *  Constructor used by the table to initiate the generalized
+   *      pointer and position (e.g., this is called from within a find()
+   *      of a table.
+   * */
+  inline
+  const_iterator_(const_pointer_ p_value,  PB_DS_GEN_POS pos,  const PB_DS_CLASS_C_DEC* p_tbl) : const_point_iterator_(p_value),
+												 m_p_tbl(p_tbl),
+												 m_pos(pos)
+  { }
+
+protected:
+
+  /**
+   *  Pointer to the table object which created the iterator (used for
+   *      incrementing its position.
+   * */
+  const PB_DS_CLASS_C_DEC* m_p_tbl;
+
+  PB_DS_GEN_POS m_pos;
+
+  friend class PB_DS_CLASS_C_DEC;
+};
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp
new file mode 100644
index 000000000000..180cd4095877
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp
@@ -0,0 +1,157 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file const_point_iterator.hpp
+ * Contains an iterator class returned by the tables' const find and insert
+ *     methods.
+ */
+
+class point_iterator_;
+
+// Const point-type iterator.
+class const_point_iterator_
+{
+
+public:
+
+  // Category.
+  typedef trivial_iterator_tag iterator_category;
+
+  // Difference type.
+  typedef trivial_iterator_difference_type difference_type;
+
+  // Iterator's value type.
+  typedef value_type_ value_type;
+
+  // Iterator's pointer type.
+  typedef pointer_ pointer;
+
+  // Iterator's const pointer type.
+  typedef const_pointer_ const_pointer;
+
+  // Iterator's reference type.
+  typedef reference_ reference;
+
+  // Iterator's const reference type.
+  typedef const_reference_ const_reference;
+
+public:
+
+  inline
+  const_point_iterator_(const_pointer p_value) : m_p_value(p_value)
+  { }
+
+  // Default constructor.
+  inline
+  const_point_iterator_()
+
+    : m_p_value(NULL)
+  { }
+
+  // Copy constructor.
+  inline
+  const_point_iterator_(const const_point_iterator_& other)
+
+    : m_p_value(other.m_p_value)
+  { }
+
+  // Copy constructor.
+  inline
+  const_point_iterator_(const point_iterator_& other)
+
+    : m_p_value(other.m_p_value)
+  { }
+
+  // Access.
+  inline const_pointer
+  operator->() const
+  {
+    PB_DS_DBG_ASSERT(m_p_value != NULL);
+
+    return (m_p_value);
+  }
+
+  // Access.
+  inline const_reference
+  operator*() const
+  {
+    PB_DS_DBG_ASSERT(m_p_value != NULL);
+
+    return (*m_p_value);
+  }
+
+  // Compares content to a different iterator object.
+  inline bool
+  operator==(const point_iterator_& other) const
+  {
+    return (m_p_value == other.m_p_value);
+  }
+
+  // Compares content to a different iterator object.
+  inline bool
+  operator==(const const_point_iterator_& other) const
+  {
+    return (m_p_value == other.m_p_value);
+  }
+
+  // Compares content (negatively) to a different iterator object.
+  inline bool
+  operator!=(const point_iterator_& other) const
+  {
+    return (m_p_value != other.m_p_value);
+  }
+
+  // Compares content (negatively) to a different iterator object.
+  inline bool
+  operator!=(const const_point_iterator_& other) const
+  {
+    return (m_p_value != other.m_p_value);
+  }
+
+protected:
+  const_pointer m_p_value;
+
+  friend class point_iterator_;
+
+  friend class PB_DS_CLASS_C_DEC;
+};
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
new file mode 100644
index 000000000000..da13bde5f9cd
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/iterator.hpp
@@ -0,0 +1,156 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file iterator.hpp
+ * Contains an iterator_ class used for ranging over the elements of the
+ *    table.
+ */
+
+// Range-type iterator.
+class iterator_ : 
+  public const_iterator_
+
+{
+
+public:
+
+  // Category.
+  typedef std::forward_iterator_tag iterator_category;
+
+  // Difference type.
+  typedef typename Allocator::difference_type difference_type;
+
+  // Iterator's value type.
+  typedef value_type_ value_type;
+
+  // Iterator's pointer type.
+  typedef pointer_ pointer;
+
+  // Iterator's const pointer type.
+  typedef const_pointer_ const_pointer;
+
+  // Iterator's reference type.
+  typedef reference_ reference;
+
+  // Iterator's const reference type.
+  typedef const_reference_ const_reference;
+
+public:
+
+  // Default constructor.
+  inline
+  iterator_()
+
+    : const_iterator_(NULL, PB_DS_GEN_POS(), NULL)
+  { }
+
+  // Conversion to a point-type iterator.
+  inline
+  operator point_iterator_()
+  {
+    return (point_iterator_(
+			    const_cast<pointer>(const_iterator_::m_p_value)));
+  }
+
+  // Conversion to a point-type iterator.
+  inline
+  operator const point_iterator_() const
+  {
+    return (point_iterator_(
+			    const_cast<pointer>(const_iterator_::m_p_value)));
+  }
+
+  // Access.
+  inline pointer
+  operator->() const
+  {
+    PB_DS_DBG_ASSERT(base_type::m_p_value != NULL);
+
+    return (const_cast<pointer>(base_type::m_p_value));
+  }
+
+  // Access.
+  inline reference
+  operator*() const
+  {
+    PB_DS_DBG_ASSERT(base_type::m_p_value != NULL);
+
+    return (const_cast<reference>(*base_type::m_p_value));
+  }
+
+  // Increments.
+  inline iterator_& 
+  operator++()
+  {
+    base_type::m_p_tbl->inc_it_state(base_type::m_p_value, base_type::m_pos);
+
+    return (*this);
+  }
+
+  // Increments.
+  inline iterator_
+  operator++(int)
+  {
+    iterator_ ret =* this;
+
+    base_type::m_p_tbl->inc_it_state(base_type::m_p_value, base_type::m_pos);
+
+    return (ret);
+  }
+
+protected:
+  typedef const_iterator_ base_type;
+
+protected:
+
+  /**
+   *  Constructor used by the table to initiate the generalized
+   *      pointer and position (e.g., this is called from within a find()
+   *      of a table.
+   * */
+  inline
+  iterator_(pointer p_value, PB_DS_GEN_POS pos, PB_DS_CLASS_C_DEC* p_tbl) : const_iterator_(p_value, pos, p_tbl)
+  { }
+
+  friend class PB_DS_CLASS_C_DEC;
+};
+
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
new file mode 100644
index 000000000000..5ef1c9e8966b
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
@@ -0,0 +1,149 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file point_iterator.hpp
+ * Contains an iterator class returned by the tables' find and insert
+ *     methods.
+ */
+
+// Find type iterator.
+class point_iterator_
+{
+
+public:
+
+  // Category.
+  typedef trivial_iterator_tag iterator_category;
+
+  // Difference type.
+  typedef trivial_iterator_difference_type difference_type;
+
+  // Iterator's value type.
+  typedef value_type_ value_type;
+
+  // Iterator's pointer type.
+  typedef pointer_ pointer;
+
+  // Iterator's const pointer type.
+  typedef const_pointer_ const_pointer;
+
+  // Iterator's reference type.
+  typedef reference_ reference;
+
+  // Iterator's const reference type.
+  typedef const_reference_ const_reference;
+
+public:
+
+  // Default constructor.
+  inline
+  point_iterator_()
+
+    : m_p_value(NULL)
+  { }
+
+  // Copy constructor.
+  inline
+  point_iterator_(const point_iterator_& other)
+
+    : m_p_value(other.m_p_value)
+  { }
+
+  // Access.
+  inline pointer
+  operator->() const
+  {
+    PB_DS_DBG_ASSERT(m_p_value != NULL);
+
+    return (m_p_value);
+  }
+
+  // Access.
+  inline reference
+  operator*() const
+  {
+    PB_DS_DBG_ASSERT(m_p_value != NULL);
+
+    return (*m_p_value);
+  }
+
+  // Compares content to a different iterator object.
+  inline bool
+  operator==(const point_iterator_& other) const
+  {
+    return (m_p_value == other.m_p_value);
+  }
+
+  // Compares content to a different iterator object.
+  inline bool
+  operator==(const const_point_iterator_& other) const
+  {
+    return (m_p_value == other.m_p_value);
+  }
+
+  // Compares content to a different iterator object.
+  inline bool
+  operator!=(const point_iterator_& other) const
+  {
+    return (m_p_value != other.m_p_value);
+  }
+
+  // Compares content (negatively) to a different iterator object.
+  inline bool
+  operator!=(const const_point_iterator_& other) const
+  {
+    return (m_p_value != other.m_p_value);
+  }
+
+  inline
+  point_iterator_(pointer p_value) : m_p_value(p_value)
+  { }
+
+protected:
+  friend class const_point_iterator_;
+
+  friend class PB_DS_CLASS_C_DEC;
+
+protected:
+  pointer m_p_value;
+};
+
diff --git a/libstdc++-v3/include/ext/pb_ds/exception.hpp b/libstdc++-v3/include/ext/pb_ds/exception.hpp
new file mode 100644
index 000000000000..be61d21a55f6
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/exception.hpp
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file exception.hpp
+ * Contains exception classes.
+ */
+
+#ifndef PB_DS_EXCEPTION_HPP
+#define PB_DS_EXCEPTION_HPP
+
+#include <stdexcept>
+
+namespace pb_ds
+{
+  // Base class for exceptions.
+  struct container_error : public std::logic_error
+  {
+    container_error() : std::logic_error("data structure exception") { }
+  };
+
+  // An entry cannot be inserted into a container object for logical
+  // reasons (not, e.g., if memory is unabvailable, in which case
+  // the allocator's exception will be thrown).
+  struct insert_error : public container_error { };
+
+  // A join cannot be performed logical reasons (i.e., the ranges of
+  // the two container objects being joined overlaps.
+  struct join_error : public container_error { };
+
+  // A container cannot be resized.
+  struct resize_error : public container_error { };
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp b/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
new file mode 100644
index 000000000000..1451fa8c8476
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/hash_policy.hpp
@@ -0,0 +1,624 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_policy.hpp
+ * Contains hash-related policies.
+ */
+
+#ifndef PB_DS_HASH_POLICY_HPP
+#define PB_DS_HASH_POLICY_HPP
+
+#ifdef PB_DS_HASH_POLICY_DEBUG
+# include <cassert>
+# define PB_DS_DBG_ASSERT(X) assert(X)
+# define PB_DS_DBG_VERIFY(X) assert(X)
+# define PB_DS_DBG_ONLY(X) X
+#else 
+# define PB_DS_DBG_ASSERT(X)
+# define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+# define PB_DS_DBG_ONLY(X) ;
+#endif 
+
+#include <algorithm>
+#include <vector>
+#include <cmath>
+#include <ext/pb_ds/exception.hpp>
+#include <ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp>
+#include <ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp>
+#include <ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp>
+
+namespace pb_ds
+{
+  // A null hash function, indicating that the combining hash function
+  // is actually a ranged hash function.
+  struct null_hash_fn
+  { };
+
+  // A null probe function, indicating that the combining probe
+  // function is actually a ranged probe function.
+  struct null_probe_fn
+  { };
+
+#define PB_DS_CLASS_T_DEC template<typename Size_Type>
+#define PB_DS_CLASS_C_DEC linear_probe_fn<Size_Type>
+
+  // A probe sequence policy using fixed increments.
+  template<typename Size_Type = size_t>
+  class linear_probe_fn
+  {
+  public:
+    typedef Size_Type size_type;
+
+    void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+  protected:
+    // Returns the i-th offset from the hash value.
+    inline size_type
+    operator()(size_type i) const;
+  };
+
+#include <ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<typename Size_Type>
+#define PB_DS_CLASS_C_DEC quadratic_probe_fn<Size_Type>
+
+  // A probe sequence policy using square increments.
+  template<typename Size_Type = size_t>
+  class quadratic_probe_fn
+  {
+  public:
+    typedef Size_Type size_type;
+
+    void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+  protected:
+    // Returns the i-th offset from the hash value.
+    inline size_type
+    operator()(size_type i) const;
+  };
+
+#include <ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<typename Size_Type>
+#define PB_DS_CLASS_C_DEC direct_mask_range_hashing<Size_Type>
+
+  // A mask range-hashing class (uses a bit-mask).
+  template<typename Size_Type = size_t>
+  class direct_mask_range_hashing 
+  : public detail::mask_based_range_hashing<Size_Type>
+  {
+  private:
+    typedef detail::mask_based_range_hashing<Size_Type> mask_based_base;
+
+  public:
+    typedef Size_Type size_type;
+
+    void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+  protected:
+    void
+    notify_resized(size_type size);
+
+    // Transforms the __hash value hash into a ranged-hash value
+    // (using a bit-mask).
+    inline size_type
+    operator()(size_type hash) const;
+  };
+
+#include <ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<typename Size_Type>
+#define PB_DS_CLASS_C_DEC direct_mod_range_hashing<Size_Type>
+
+  // A mod range-hashing class (uses the modulo function).
+  template<typename Size_Type = size_t>
+  class direct_mod_range_hashing 
+  : public detail::mod_based_range_hashing<Size_Type>
+  {
+  public:
+    typedef Size_Type size_type;
+      
+    void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+  protected:
+    void
+    notify_resized(size_type size);
+      
+    // Transforms the __hash value hash into a ranged-hash value
+    // (using a modulo operation).
+    inline size_type
+    operator()(size_type hash) const;
+      
+  private:
+    typedef detail::mod_based_range_hashing<size_type> mod_based_base;
+  };
+
+#include <ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<bool External_Load_Access, typename Size_Type>
+#define PB_DS_CLASS_C_DEC hash_load_check_resize_trigger<External_Load_Access, Size_Type>
+#define PB_DS_SIZE_BASE_C_DEC detail::hash_load_check_resize_trigger_size_base<Size_Type, External_Load_Access>
+
+  // A resize trigger policy based on a load check. It keeps the
+  // load factor between some load factors load_min and load_max.
+  template<bool External_Load_Access = false, typename Size_Type = size_t>
+  class hash_load_check_resize_trigger : private PB_DS_SIZE_BASE_C_DEC
+  {
+  public:
+    typedef Size_Type size_type;
+
+    enum
+      {
+	external_load_access = External_Load_Access
+      };
+
+    // Default constructor, or constructor taking load_min and
+    // load_max load factors between which this policy will keep the
+    // actual load.
+    hash_load_check_resize_trigger(float load_min = 0.125,
+				   float load_max = 0.5);
+
+    void
+    swap(hash_load_check_resize_trigger& other);
+
+    virtual
+    ~hash_load_check_resize_trigger();
+
+    // Returns a pair of the minimal and maximal loads, respectively.
+    inline std::pair<float, float>
+    get_loads() const;
+
+    // Sets the loads through a pair of the minimal and maximal
+    // loads, respectively.
+    void
+    set_loads(std::pair<float, float> load_pair);
+
+  protected:
+    inline void
+    notify_insert_search_start();
+
+    inline void
+    notify_insert_search_collision();
+
+    inline void
+    notify_insert_search_end();
+
+    inline void
+    notify_find_search_start();
+
+    inline void
+    notify_find_search_collision();
+
+    inline void
+    notify_find_search_end();
+
+    inline void
+    notify_erase_search_start();
+
+    inline void
+    notify_erase_search_collision();
+
+    inline void
+    notify_erase_search_end();
+
+    // Notifies an element was inserted. The total number of entries
+    // in the table is num_entries.
+    inline void
+    notify_inserted(size_type num_entries);
+
+    inline void
+    notify_erased(size_type num_entries);
+
+    // Notifies the table was cleared.
+    void
+    notify_cleared();
+
+    // Notifies the table was resized as a result of this object's
+    // signifying that a resize is needed.
+    void
+    notify_resized(size_type new_size);
+
+    void
+    notify_externally_resized(size_type new_size);
+
+    inline bool
+    is_resize_needed() const;
+
+    inline bool
+    is_grow_needed(size_type size, size_type num_entries) const;
+
+  private:
+    virtual void
+    do_resize(size_type new_size);
+
+    typedef PB_DS_SIZE_BASE_C_DEC size_base;
+
+#ifdef PB_DS_HASH_POLICY_DEBUG
+    void
+    assert_valid() const;
+#endif 
+
+    float 	m_load_min;
+    float 	m_load_max;
+    size_type 	m_next_shrink_size;
+    size_type 	m_next_grow_size;
+    bool 	m_resize_needed;
+  };
+
+#include <ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+#undef PB_DS_SIZE_BASE_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<bool External_Load_Access, typename Size_Type>
+#define PB_DS_CLASS_C_DEC cc_hash_max_collision_check_resize_trigger<External_Load_Access, Size_Type>
+
+  // A resize trigger policy based on collision checks. It keeps the
+  // simulated load factor lower than some given load factor.
+  template<bool External_Load_Access = false, typename Size_Type = size_t>
+  class cc_hash_max_collision_check_resize_trigger
+  {
+  public:
+    typedef Size_Type size_type;
+
+    enum
+      {
+	external_load_access = External_Load_Access
+      };
+
+    // Default constructor, or constructor taking load, a __load
+    // factor which it will attempt to maintain.
+    cc_hash_max_collision_check_resize_trigger(float load = 0.5);
+
+    void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+    // Returns the current load.
+    inline float
+    get_load() const;
+
+    // Sets the load; does not resize the container.
+    void
+    set_load(float load);
+
+  protected:
+    inline void
+    notify_insert_search_start();
+
+    inline void
+    notify_insert_search_collision();
+
+    inline void
+    notify_insert_search_end();
+
+    inline void
+    notify_find_search_start();
+
+    inline void
+    notify_find_search_collision();
+
+    inline void
+    notify_find_search_end();
+
+    inline void
+    notify_erase_search_start();
+
+    inline void
+    notify_erase_search_collision();
+
+    inline void
+    notify_erase_search_end();
+
+    inline void
+    notify_inserted(size_type num_entries);
+
+    inline void
+    notify_erased(size_type num_entries);
+
+    void
+    notify_cleared();
+
+    // Notifies the table was resized as a result of this object's
+    // signifying that a resize is needed.
+    void
+    notify_resized(size_type new_size);
+
+    void
+    notify_externally_resized(size_type new_size);
+
+    inline bool
+    is_resize_needed() const;
+
+    inline bool
+    is_grow_needed(size_type size, size_type num_entries) const;
+
+  private:
+    void
+    calc_max_num_coll();
+
+    inline void
+    calc_resize_needed();
+
+    float 	m_load;
+    size_type 	m_size;
+    size_type 	m_num_col;
+    size_type 	m_max_col;
+    bool 	m_resize_needed;
+  };
+
+#include <ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<typename Size_Type>
+#define PB_DS_CLASS_C_DEC hash_exponential_size_policy<Size_Type>
+
+  // A size policy whose sequence of sizes form an exponential
+  // sequence (typically powers of 2.
+  template<typename Size_Type = size_t>
+  class hash_exponential_size_policy
+  {
+  public:
+    typedef Size_Type size_type;
+
+    // Default constructor, or onstructor taking a start_size, or
+    // constructor taking a start size and grow_factor. The policy
+    // will use the sequence of sizes start_size, start_size*
+    // grow_factor, start_size* grow_factor^2, ...
+    hash_exponential_size_policy(size_type start_size = 8,
+				 size_type grow_factor = 2);
+
+    void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+  protected:
+    size_type
+    get_nearest_larger_size(size_type size) const;
+
+    size_type
+    get_nearest_smaller_size(size_type size) const;
+
+  private:
+    size_type m_start_size;
+    size_type m_grow_factor;
+  };
+
+#include <ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC
+#define PB_DS_CLASS_C_DEC hash_prime_size_policy
+
+  // A size policy whose sequence of sizes form a nearly-exponential
+  // sequence of primes.
+  class hash_prime_size_policy
+  {
+  public:
+    // Size type.
+    typedef size_t size_type;
+
+    // Default constructor, or onstructor taking a start_size The
+    // policy will use the sequence of sizes approximately
+    // start_size, start_size* 2, start_size* 2^2, ...
+    hash_prime_size_policy(size_type start_size = 8);
+
+    inline void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+  protected:
+    size_type
+    get_nearest_larger_size(size_type size) const;
+
+    size_type
+    get_nearest_smaller_size(size_type size) const;
+
+  private:
+    size_type m_start_size;
+  };
+
+#include <ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<typename Size_Policy, typename Trigger_Policy, bool External_Size_Access, typename Size_Type>
+
+#define PB_DS_CLASS_C_DEC hash_standard_resize_policy<Size_Policy, Trigger_Policy, External_Size_Access, Size_Type>
+
+  // A resize policy which delegates operations to size and trigger policies.
+  template<typename Size_Policy = hash_exponential_size_policy<>,
+	   typename Trigger_Policy = hash_load_check_resize_trigger<>,
+	   bool External_Size_Access = false,
+	   typename Size_Type = size_t>
+  class hash_standard_resize_policy 
+  : public Size_Policy, public Trigger_Policy
+  {
+  public:
+    typedef Size_Type 		size_type;
+    typedef Trigger_Policy 	trigger_policy;
+    typedef Size_Policy 	size_policy;
+
+    enum
+      {
+	external_size_access = External_Size_Access
+      };
+
+    // Default constructor.
+    hash_standard_resize_policy();
+
+    // constructor taking some policies r_size_policy will be copied
+    // by the Size_Policy object of this object.
+    hash_standard_resize_policy(const Size_Policy& r_size_policy);
+
+    // constructor taking some policies. r_size_policy will be
+    // copied by the Size_Policy object of this
+    // object. r_trigger_policy will be copied by the Trigger_Policy
+    // object of this object.
+    hash_standard_resize_policy(const Size_Policy& r_size_policy, 
+				const Trigger_Policy& r_trigger_policy);
+
+    virtual
+    ~hash_standard_resize_policy();
+
+    inline void
+    swap(PB_DS_CLASS_C_DEC& other);
+
+    // Access to the Size_Policy object used.
+    Size_Policy& 
+    get_size_policy();
+
+    // Const access to the Size_Policy object used.
+    const Size_Policy& 
+    get_size_policy() const;
+
+    // Access to the Trigger_Policy object used.
+    Trigger_Policy& 
+    get_trigger_policy();
+
+    // Access to the Trigger_Policy object used.
+    const Trigger_Policy& 
+    get_trigger_policy() const;
+
+    // Returns the actual size of the container.
+    inline size_type
+    get_actual_size() const;
+
+    // Resizes the container to suggested_new_size, a suggested size
+    // (the actual size will be determined by the Size_Policy
+    // object).
+    void
+    resize(size_type suggested_new_size);
+
+  protected:
+    inline void
+    notify_insert_search_start();
+
+    inline void
+    notify_insert_search_collision();
+
+    inline void
+    notify_insert_search_end();
+
+    inline void
+    notify_find_search_start();
+
+    inline void
+    notify_find_search_collision();
+
+    inline void
+    notify_find_search_end();
+
+    inline void
+    notify_erase_search_start();
+
+    inline void
+    notify_erase_search_collision();
+
+    inline void
+    notify_erase_search_end();
+
+    inline void
+    notify_inserted(size_type num_e);
+
+    inline void
+    notify_erased(size_type num_e);
+
+    void
+    notify_cleared();
+
+    void
+    notify_resized(size_type new_size);
+
+    inline bool
+    is_resize_needed() const;
+
+    // Queries what the new size should be, when the container is
+    // resized naturally. The current __size of the container is
+    // size, and the number of used entries within the container is
+    // num_used_e.
+    size_type
+    get_new_size(size_type size, size_type num_used_e) const;
+
+  private:
+    // Resizes to new_size.
+    virtual void
+    do_resize(size_type new_size);
+
+    typedef Trigger_Policy trigger_policy_base;
+
+    typedef Size_Policy size_policy_base;
+
+    size_type m_size;
+  };
+
+#include <ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+} // namespace pb_ds
+
+#endif 
diff --git a/libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp b/libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
new file mode 100644
index 000000000000..0ddd1af71f32
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/list_update_policy.hpp
@@ -0,0 +1,138 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file list_update_policy.hpp
+ * Contains policies for list update containers.
+ */
+
+#ifndef PB_DS_LU_POLICY_HPP
+#define PB_DS_LU_POLICY_HPP
+
+#include <ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp>
+
+namespace pb_ds
+{
+  // A null type that means that each link in a list-based container
+  // does not actually need metadata.
+  struct null_lu_metadata
+  { };
+
+#define PB_DS_CLASS_T_DEC template<typename Allocator>
+#define PB_DS_CLASS_C_DEC move_to_front_lu_policy<Allocator>
+
+  // A list-update policy that unconditionally moves elements to the
+  // front of the list.
+  template<typename Allocator = std::allocator<char> >
+  class move_to_front_lu_policy
+  {
+  public:
+    typedef Allocator allocator;
+      
+    // Metadata on which this functor operates.
+    typedef null_lu_metadata metadata_type;
+      
+    // Reference to metadata on which this functor operates.
+    typedef typename allocator::template rebind<metadata_type>::other metadata_rebind;
+    typedef typename metadata_rebind::reference metadata_reference;
+      
+    // Creates a metadata object.
+    metadata_type
+    operator()() const;
+      
+    // Decides whether a metadata object should be moved to the front of the list.
+    inline bool
+    operator()(metadata_reference r_metadata) const;
+      
+  private:
+    static null_lu_metadata s_metadata;
+  };
+  
+#include <ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC template<size_t Max_Count, class Allocator>
+#define PB_DS_CLASS_C_DEC counter_lu_policy<Max_Count, Allocator>
+
+  // A list-update policy that moves elements to the front of the list based on the counter algorithm.
+  template<size_t Max_Count = 5, typename Allocator = std::allocator<char> >
+  class counter_lu_policy 
+  : private detail::counter_lu_policy_base<typename Allocator::size_type>
+  {
+  public:
+    typedef Allocator allocator;
+
+    enum
+      {
+	max_count = Max_Count
+      };
+
+    typedef typename allocator::size_type size_type;
+
+    // Metadata on which this functor operates.
+    typedef detail::counter_lu_metadata<size_type> metadata_type;
+
+    // Reference to metadata on which this functor operates.
+    typedef typename Allocator::template rebind<metadata_type>::other metadata_rebind;
+    typedef typename metadata_rebind::reference metadata_reference;
+
+    // Creates a metadata object.
+    metadata_type
+    operator()() const;
+
+    // Decides whether a metadata object should be moved to the front of the list.
+    bool
+    operator()(metadata_reference r_metadata) const;
+
+  private:
+    typedef detail::counter_lu_policy_base<typename Allocator::size_type> base_type;
+  };
+
+#include <ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/include/ext/pb_ds/priority_queue.hpp b/libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
new file mode 100644
index 000000000000..c6373c5d1c95
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/priority_queue.hpp
@@ -0,0 +1,131 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue.hpp
+ * Contains priority_queues.
+ */
+
+#ifndef PB_DS_PRIORITY_QUEUE_HPP
+#define PB_DS_PRIORITY_QUEUE_HPP
+
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <ext/pb_ds/detail/priority_queue_base_dispatch.hpp>
+#include <ext/pb_ds/detail/standard_policies.hpp>
+
+namespace pb_ds
+{
+  // A priority queue.
+  template<typename Value_Type, 
+	   typename Cmp_Fn = std::less<Value_Type>,
+	   typename Tag = pairing_heap_tag,
+	   typename Allocator = std::allocator<char> >
+  class priority_queue 
+    : public detail::priority_queue_base_dispatch<Value_Type,Cmp_Fn,Tag,Allocator>::type
+  {
+  private:
+    typedef typename detail::priority_queue_base_dispatch<Value_Type,Cmp_Fn,Tag,Allocator>::type base_type;
+
+  public:
+    typedef Value_Type 					value_type;
+    typedef Cmp_Fn 					cmp_fn;
+    typedef Tag 					container_category;
+    typedef Allocator 					allocator;
+    typedef typename allocator::size_type 		size_type;
+    typedef typename allocator::difference_type 	difference_type;
+
+    typedef typename allocator::template rebind<value_type>::other value_rebind;
+    typedef typename value_rebind::reference 		reference;
+    typedef typename value_rebind::const_reference 	const_reference;
+    typedef typename value_rebind::pointer 	   	pointer;
+    typedef typename value_rebind::const_pointer 	const_pointer;
+
+    typedef typename base_type::const_point_iterator const_point_iterator;
+    typedef typename base_type::point_iterator 		point_iterator;
+    typedef typename base_type::const_iterator 		const_iterator;
+    typedef typename base_type::iterator 		iterator;
+
+    priority_queue() { }
+
+    // Constructor taking some policy objects. r_cmp_fn will be copied
+    // by the Cmp_Fn object of the container object.
+    priority_queue(const cmp_fn& r_cmp_fn) : base_type(r_cmp_fn) { }
+
+    // Constructor taking __iterators to a range of value_types. The
+    // value_types between first_it and last_it will be inserted into
+    // the container object.
+    template<typename It>
+    priority_queue(It first_it, It last_it)
+    { base_type::copy_from_range(first_it, last_it); }
+
+    // Constructor taking __iterators to a range of value_types and
+    // some policy objects The value_types between first_it and
+    // last_it will be inserted into the container object. r_cmp_fn
+    // will be copied by the cmp_fn object of the container object.
+    template<typename It>
+    priority_queue(It first_it, It last_it, const cmp_fn& r_cmp_fn)
+    : base_type(r_cmp_fn)
+    { base_type::copy_from_range(first_it, last_it); }
+
+    priority_queue(const priority_queue& other)
+    : base_type((const base_type& )other) { }
+
+    virtual
+    ~priority_queue() { }
+
+    priority_queue& 
+    operator=(const priority_queue& other)
+    {
+      if (this !=& other)
+	{
+	  priority_queue tmp(other);
+	  swap(tmp);
+	}
+      return *this;
+    }
+
+    void
+    swap(priority_queue& other)
+    { base_type::swap(other); }
+  };
+} // namespace pb_ds
+
+#endif 
diff --git a/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp b/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
new file mode 100644
index 000000000000..94039af0d80c
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/tag_and_trait.hpp
@@ -0,0 +1,357 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tag_and_trait.hpp
+ * Contains tags and traits, e.g., ones describing underlying
+ *    data structures.
+ */
+
+#ifndef PB_DS_TAG_AND_TRAIT_HPP
+#define PB_DS_TAG_AND_TRAIT_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+
+namespace pb_ds
+{
+  // A trivial iterator tag. Signifies that the iterators has none of
+  // the STL's movement abilities.
+  struct trivial_iterator_tag
+  { };
+
+  // Prohibit moving trivial iterators.
+  typedef void trivial_iterator_difference_type;
+
+
+  // Signifies a basic invalidation guarantee that any iterator,
+  // pointer, or reference to a container object's mapped value type
+  // is valid as long as the container is not modified.
+  struct basic_invalidation_guarantee
+  { };
+
+  // Signifies an invalidation guarantee that includes all those of
+  // its base, and additionally, that any point-type iterator,
+  // pointer, or reference to a container object's mapped value type
+  // is valid as long as its corresponding entry has not be erased,
+  // regardless of modifications to the container object.
+  struct point_invalidation_guarantee : public basic_invalidation_guarantee
+  { };
+
+  // Signifies an invalidation guarantee that includes all those of
+  // its base, and additionally, that any range-type iterator
+  // (including the returns of begin() and end()) is in the correct
+  // relative positions to other range-type iterators as long as its
+  // corresponding entry has not be erased, regardless of
+  // modifications to the container object.
+  struct range_invalidation_guarantee : public point_invalidation_guarantee
+  { };
+
+
+  // A mapped-policy indicating that an associative container is a set.
+  // XXX should this be a trait of the form is_set<T> ??
+  struct null_mapped_type { };
+
+
+  // Base data structure tag.
+  struct container_tag
+  { };
+
+  // Basic associative-container.
+  struct associative_container_tag : public container_tag { };
+
+  // Basic hash.
+  struct basic_hash_tag : public associative_container_tag { };
+
+  // Collision-chaining hash.
+  struct cc_hash_tag : public basic_hash_tag { };
+
+  // General-probing hash.
+  struct gp_hash_tag : public basic_hash_tag { };
+
+  // Basic tree.
+  struct basic_tree_tag : public associative_container_tag { };
+
+  // tree.
+  struct tree_tag : public basic_tree_tag { };
+
+  // Red-black tree.
+  struct rb_tree_tag : public tree_tag { };
+
+  // Splay tree.
+  struct splay_tree_tag : public tree_tag { };
+
+  // Ordered-vector tree.
+  struct ov_tree_tag : public tree_tag { };
+
+  // trie.
+  struct trie_tag : public basic_tree_tag { };
+
+  // PATRICIA trie.
+  struct pat_trie_tag : public trie_tag { };
+
+  // List-update.
+  struct list_update_tag : public associative_container_tag { };
+
+  // Basic priority-queue.
+  struct priority_queue_tag : public container_tag { };
+
+  // Pairing-heap.
+  struct pairing_heap_tag : public priority_queue_tag { };
+
+  // Binomial-heap.
+  struct binomial_heap_tag : public priority_queue_tag { };
+
+  // Redundant-counter binomial-heap.
+  struct rc_binomial_heap_tag : public priority_queue_tag { };
+
+  // Binary-heap (array-based).
+  struct binary_heap_tag : public priority_queue_tag { };
+
+  // Thin heap.
+  struct thin_heap_tag : public priority_queue_tag { };
+
+
+  template<typename Tag>
+  struct container_traits_base;
+
+  template<>
+  struct container_traits_base<cc_hash_tag>
+  {
+    typedef cc_hash_tag container_category;
+    typedef point_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+        erase_can_throw = false,
+	split_join_can_throw = false,
+	reverse_iteration = false
+      };
+  };
+
+  template<>
+  struct container_traits_base<gp_hash_tag>
+  {
+    typedef gp_hash_tag container_category;
+    typedef basic_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+	erase_can_throw = false,
+	split_join_can_throw = false,
+	reverse_iteration = false
+      };
+  };
+
+  template<>
+  struct container_traits_base<rb_tree_tag>
+  {
+    typedef rb_tree_tag container_category;
+    typedef range_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = true,
+        erase_can_throw = false,
+	split_join_can_throw = false,
+        reverse_iteration = true
+      };
+  };
+
+  template<>
+  struct container_traits_base<splay_tree_tag>
+  {
+    typedef splay_tree_tag container_category;
+    typedef range_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = true,
+        erase_can_throw = false,
+        split_join_can_throw = false,
+        reverse_iteration = true
+      };
+  };
+
+  template<>
+  struct container_traits_base<ov_tree_tag>
+  {
+    typedef ov_tree_tag container_category;
+    typedef basic_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = true,
+        erase_can_throw = true,
+        split_join_can_throw = true,
+        reverse_iteration = false
+      };
+  };
+
+  template<>
+  struct container_traits_base<pat_trie_tag>
+  {
+    typedef pat_trie_tag container_category;
+    typedef range_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = true,
+        erase_can_throw = false,
+        split_join_can_throw = true,
+        reverse_iteration = true
+      };
+  };
+
+  template<>
+  struct container_traits_base<list_update_tag>
+  {
+    typedef list_update_tag container_category;
+    typedef point_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+        erase_can_throw = false,
+	split_join_can_throw = false,
+        reverse_iteration = false
+      };
+  };
+
+
+  template<>
+  struct container_traits_base<pairing_heap_tag>
+  {
+    typedef pairing_heap_tag container_category;
+    typedef point_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+        erase_can_throw = false,
+	split_join_can_throw = false,
+        reverse_iteration = false
+      };
+  };
+
+  template<>
+  struct container_traits_base<thin_heap_tag>
+  {
+    typedef thin_heap_tag container_category;
+    typedef point_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+        erase_can_throw = false,
+	split_join_can_throw = false,
+        reverse_iteration = false
+      };
+  };
+
+  template<>
+  struct container_traits_base<binomial_heap_tag>
+  {
+    typedef binomial_heap_tag container_category;
+    typedef point_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+        erase_can_throw = false,
+	split_join_can_throw = false,
+        reverse_iteration = false
+      };
+  };
+
+  template<>
+  struct container_traits_base<rc_binomial_heap_tag>
+  {
+    typedef rc_binomial_heap_tag container_category;
+    typedef point_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+        erase_can_throw = false,
+	split_join_can_throw = false,
+        reverse_iteration = false
+      };
+  };
+
+  template<>
+  struct container_traits_base<binary_heap_tag>
+  {
+    typedef binary_heap_tag container_category;
+    typedef basic_invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+        order_preserving = false,
+        erase_can_throw = false,
+	split_join_can_throw = true,
+        reverse_iteration = false
+      };
+  };
+
+  
+  // See Matt Austern for the name, S. Meyers MEFC++ #2, others.
+  template<typename Cntnr>
+  struct container_traits 
+  : public container_traits_base<typename Cntnr::container_category>
+  {
+    typedef Cntnr container_type;
+    typedef typename Cntnr::container_category container_category;
+    typedef container_traits_base<container_category> base_type;
+    typedef typename base_type::invalidation_guarantee invalidation_guarantee;
+
+    enum
+      {
+	order_preserving = base_type::order_preserving,
+	erase_can_throw = base_type::erase_can_throw,
+	split_join_can_throw = base_type::split_join_can_throw,
+	reverse_iteration = base_type::reverse_iteration
+      };
+  };
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/include/ext/pb_ds/tree_policy.hpp b/libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
new file mode 100644
index 000000000000..3c80fc6986a9
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/tree_policy.hpp
@@ -0,0 +1,168 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_policy.hpp
+ * Contains tree-related policies.
+ */
+
+#ifndef PB_DS_TREE_POLICY_HPP
+#define PB_DS_TREE_POLICY_HPP
+
+#include <iterator>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp>
+
+namespace pb_ds
+{
+  // A null node updator, indicating that no node updates are required.
+  template<typename Const_Node_Iterator,
+	   typename Node_Iterator,
+	   typename Cmp_Fn,
+	   typename Allocator>
+  struct null_tree_node_update
+  { };
+
+#define PB_DS_CLASS_T_DEC \
+  template<typename Const_Node_Iterator, class Node_Iterator, class Cmp_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC \
+  tree_order_statistics_node_update<Const_Node_Iterator, Node_Iterator, Cmp_Fn, Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+  detail::basic_tree_policy_base<Const_Node_Iterator, Node_Iterator, Allocator>
+
+  // Functor updating ranks of entrees.
+  template<typename Const_Node_Iterator, typename Node_Iterator, 
+	   typename Cmp_Fn, typename Allocator>
+  class tree_order_statistics_node_update : private PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC base_type;
+
+  public:
+    typedef Cmp_Fn cmp_fn;
+    typedef Allocator allocator;
+    typedef typename allocator::size_type size_type;
+    typedef typename base_type::key_type key_type;
+    typedef typename base_type::const_key_reference const_key_reference;
+
+    typedef size_type metadata_type;
+    typedef Const_Node_Iterator const_node_iterator;
+    typedef Node_Iterator node_iterator;
+    typedef typename const_node_iterator::value_type const_iterator;
+    typedef typename node_iterator::value_type iterator;
+
+    // Finds an entry by __order. Returns a const_iterator to the
+    // entry with the __order order, or a const_iterator to the
+    // container object's end if order is at least the size of the
+    // container object.
+    inline const_iterator
+    find_by_order(size_type order) const;
+
+    // Finds an entry by __order. Returns an iterator to the entry
+    // with the __order order, or an iterator to the container
+    // object's end if order is at least the size of the container
+    // object.
+    inline iterator
+    find_by_order(size_type order);
+
+    // Returns the order of a key within a sequence. For exapmle, if
+    // r_key is the smallest key, this method will return 0; if r_key
+    // is a key between the smallest and next key, this method will
+    // return 1; if r_key is a key larger than the largest key, this
+    // method will return the size of r_c.
+    inline size_type
+    order_of_key(const_key_reference r_key) const;
+
+  private:
+    // Const reference to the container's value-type.
+    typedef typename base_type::const_reference const_reference;
+
+    // Const pointer to the container's value-type.
+    typedef typename base_type::const_pointer const_pointer;
+
+    typedef typename allocator::template rebind<metadata_type>::other metadata_rebind;
+    // Const metadata reference.
+    typedef typename metadata_rebind::const_reference const_metadata_reference;
+
+    // Metadata reference.
+    typedef typename metadata_rebind::reference metadata_reference;
+
+    // Returns the const_node_iterator associated with the tree's root node.
+    virtual const_node_iterator
+    node_begin() const = 0;
+
+    // Returns the node_iterator associated with the tree's root node.
+    virtual node_iterator
+    node_begin() = 0;
+
+    // Returns the const_node_iterator associated with a just-after leaf node.
+    virtual const_node_iterator
+    node_end() const = 0;
+
+    // Returns the node_iterator associated with a just-after leaf node.
+    virtual node_iterator
+    node_end() = 0;
+
+    // Access to the cmp_fn object.
+    virtual cmp_fn& 
+    get_cmp_fn() = 0;
+
+  protected:
+    // Updates the rank of a node through a node_iterator node_it;
+    // end_nd_it is the end node iterator.
+    inline void
+    operator()(node_iterator node_it, const_node_iterator end_nd_it) const;
+
+    virtual
+    ~tree_order_statistics_node_update();
+  };
+
+#include <ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+#undef PB_DS_BASE_C_DEC
+
+} // namespace pb_ds
+
+#endif 
diff --git a/libstdc++-v3/include/ext/pb_ds/trie_policy.hpp b/libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
new file mode 100644
index 000000000000..adba0cb02db5
--- /dev/null
+++ b/libstdc++-v3/include/ext/pb_ds/trie_policy.hpp
@@ -0,0 +1,366 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_policy.hpp
+ * Contains trie-related policies.
+ */
+
+#ifndef PB_DS_TRIE_POLICY_HPP
+#define PB_DS_TRIE_POLICY_HPP
+
+#include <string>
+#include <climits>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/detail/trie_policy/trie_policy_base.hpp>
+
+namespace pb_ds
+{
+  // A null node updator, indicating that no node updates are required.
+  template<typename Const_Node_Iterator,
+	   typename Node_Iterator,
+	   typename E_Access_Traits,
+	   typename Allocator>
+  struct null_trie_node_update
+  { };
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+  typedef detail::static_assert_dumclass<sizeof(detail::static_assert<(bool)(E)>)> UNIQUE##static_assert_type
+
+#define PB_DS_CLASS_T_DEC						\
+  template<typename String, typename String::value_type Min_E_Val, typename String::value_type Max_E_Val, bool Reverse, typename Allocator>
+
+#define PB_DS_CLASS_C_DEC						\
+  string_trie_e_access_traits<String, Min_E_Val,Max_E_Val,Reverse,Allocator>
+
+  // Element access traits for string types.
+  template<typename String = std::string,
+	   typename String::value_type Min_E_Val = SCHAR_MIN,
+	   typename String::value_type Max_E_Val = SCHAR_MAX,
+	   bool Reverse = false,
+	   typename Allocator = std::allocator<char> >
+  struct string_trie_e_access_traits
+  {
+  public:
+    typedef typename Allocator::size_type size_type;
+    typedef String key_type;
+    typedef typename Allocator::template rebind<key_type>::other key_rebind;
+    typedef typename key_rebind::const_reference const_key_reference;
+
+    enum
+      {
+	reverse = Reverse
+      };
+
+    // Element const iterator type.
+    typedef typename detail::conditional_type<Reverse, typename String::const_reverse_iterator, typename String::const_iterator>::type const_iterator;
+
+    // Element type.
+    typedef typename std::iterator_traits<const_iterator>::value_type e_type;
+
+    enum
+      {
+	min_e_val = Min_E_Val,
+	max_e_val = Max_E_Val,
+	max_size = max_e_val - min_e_val + 1
+      };
+
+    // Returns a const_iterator to the first element of
+    // const_key_reference agumnet.
+    inline static const_iterator
+    begin(const_key_reference);
+
+    // Returns a const_iterator to the after-last element of
+    // const_key_reference argument.
+    inline static const_iterator
+    end(const_key_reference);
+
+    // Maps an element to a position.
+    inline static size_type
+    e_pos(e_type e);
+
+  private:
+    PB_DS_STATIC_ASSERT(min_max_size, max_size >= 2);
+
+    inline static const_iterator
+    begin_imp(const_key_reference, detail::false_type);
+
+    inline static const_iterator
+    begin_imp(const_key_reference, detail::true_type);
+
+    inline static const_iterator
+    end_imp(const_key_reference, detail::false_type);
+
+    inline static const_iterator
+    end_imp(const_key_reference, detail::true_type);
+
+    static detail::integral_constant<int,Reverse> s_rev_ind;
+  };
+
+#include <ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_T_DEC \
+  template<typename Const_Node_Iterator,typename Node_Iterator,class E_Access_Traits, typename Allocator>
+
+#define PB_DS_CLASS_C_DEC \
+  trie_prefix_search_node_update<Const_Node_Iterator, Node_Iterator, E_Access_Traits,Allocator>
+
+#define PB_DS_BASE_C_DEC \
+  detail::trie_policy_base<Const_Node_Iterator,Node_Iterator,E_Access_Traits, Allocator>
+
+  // A node updator that allows tries to be searched for the range of
+  // values that match a certain prefix.
+  template<typename Const_Node_Iterator,
+	   typename Node_Iterator,
+	   typename E_Access_Traits,
+	   typename Allocator>
+  class trie_prefix_search_node_update : private PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC base_type;
+
+  public:
+    typedef typename base_type::key_type key_type;
+    typedef typename base_type::const_key_reference const_key_reference;
+
+    // Element access traits.
+    typedef E_Access_Traits e_access_traits;
+
+    // Const element iterator.
+    typedef typename e_access_traits::const_iterator const_e_iterator;
+
+    // Allocator type.
+    typedef Allocator allocator;
+
+    // Size type.
+    typedef typename allocator::size_type size_type;
+    typedef detail::null_node_metadata metadata_type;
+    typedef Const_Node_Iterator const_node_iterator;
+    typedef Node_Iterator node_iterator;
+    typedef typename const_node_iterator::value_type const_iterator;
+    typedef typename node_iterator::value_type iterator;
+
+    // Finds the const iterator range corresponding to all values
+    // whose prefixes match r_key.
+    std::pair<const_iterator, const_iterator>
+    prefix_range(const_key_reference) const;
+
+    // Finds the iterator range corresponding to all values whose
+    // prefixes match r_key.
+    std::pair<iterator, iterator>
+    prefix_range(const_key_reference);
+
+    // Finds the const iterator range corresponding to all values
+    // whose prefixes match [b, e).
+    std::pair<const_iterator, const_iterator>
+    prefix_range(const_e_iterator, const_e_iterator) const;
+
+    // Finds the iterator range corresponding to all values whose
+    // prefixes match [b, e).
+    std::pair<iterator, iterator>
+    prefix_range(const_e_iterator, const_e_iterator);
+
+  protected:
+    // Called to update a node's metadata.
+    inline void
+    operator()(node_iterator node_it, const_node_iterator end_nd_it) const;
+
+  private:
+    // Returns the const iterator associated with the just-after last element.
+    virtual const_iterator
+    end() const = 0;
+
+    // Returns the iterator associated with the just-after last element.
+    virtual iterator
+    end() = 0;
+
+    // Returns the const_node_iterator associated with the trie's root node.
+    virtual const_node_iterator
+    node_begin() const = 0;
+
+    // Returns the node_iterator associated with the trie's root node.
+    virtual node_iterator
+    node_begin() = 0;
+
+    // Returns the const_node_iterator associated with a just-after leaf node.
+    virtual const_node_iterator
+    node_end() const = 0;
+
+    // Returns the node_iterator associated with a just-after leaf node.
+    virtual node_iterator
+    node_end() = 0;
+
+    // Access to the cmp_fn object.
+    virtual const e_access_traits& 
+    get_e_access_traits() const = 0;
+
+    node_iterator
+    next_child(node_iterator, const_e_iterator, const_e_iterator, 
+	       node_iterator, const e_access_traits&);
+  };
+
+#include <ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp>
+
+#undef PB_DS_CLASS_C_DEC
+
+#define PB_DS_CLASS_C_DEC \
+  trie_order_statistics_node_update<Const_Node_Iterator, Node_Iterator,E_Access_Traits, Allocator>
+
+  // Functor updating ranks of entrees.
+  template<typename Const_Node_Iterator,
+	   typename Node_Iterator,
+	   typename E_Access_Traits,
+	   typename Allocator>
+  class trie_order_statistics_node_update : private PB_DS_BASE_C_DEC
+  {
+  private:
+    typedef PB_DS_BASE_C_DEC base_type;
+
+  public:
+    typedef E_Access_Traits e_access_traits;
+    typedef typename e_access_traits::const_iterator const_e_iterator;
+    typedef Allocator allocator;
+    typedef typename allocator::size_type size_type;
+    typedef typename base_type::key_type key_type;
+    typedef typename base_type::const_key_reference const_key_reference;
+
+    typedef size_type metadata_type;
+    typedef Const_Node_Iterator const_node_iterator;
+    typedef Node_Iterator node_iterator;
+    typedef typename const_node_iterator::value_type const_iterator;
+    typedef typename node_iterator::value_type iterator;
+
+    // Finds an entry by __order. Returns a const_iterator to the
+    // entry with the __order order, or a const_iterator to the
+    // container object's end if order is at least the size of the
+    // container object.
+    inline const_iterator
+    find_by_order(size_type) const;
+
+    // Finds an entry by __order. Returns an iterator to the entry
+    // with the __order order, or an iterator to the container
+    // object's end if order is at least the size of the container
+    // object.
+    inline iterator
+    find_by_order(size_type);
+
+    // Returns the order of a key within a sequence. For exapmle, if
+    // r_key is the smallest key, this method will return 0; if r_key
+    // is a key between the smallest and next key, this method will
+    // return 1; if r_key is a key larger than the largest key, this
+    // method will return the size of r_c.
+    inline size_type
+    order_of_key(const_key_reference) const;
+
+    // Returns the order of a prefix within a sequence. For exapmle,
+    // if [b, e] is the smallest prefix, this method will return 0; if
+    // r_key is a key between the smallest and next key, this method
+    // will return 1; if r_key is a key larger than the largest key,
+    // this method will return the size of r_c.
+    inline size_type
+    order_of_prefix(const_e_iterator, const_e_iterator) const;
+
+  private:
+    typedef typename base_type::const_reference const_reference;
+    typedef typename base_type::const_pointer const_pointer;
+
+    typedef typename Allocator::template rebind<metadata_type>::other metadata_rebind;
+    typedef typename metadata_rebind::const_reference const_metadata_reference;
+    typedef typename metadata_rebind::reference metadata_reference;
+
+    // Returns true if the container is empty.
+    virtual bool
+    empty() const = 0;
+
+    // Returns the iterator associated with the trie's first element.
+    virtual iterator
+    begin() = 0;
+
+    // Returns the iterator associated with the trie's
+    // just-after-last element.
+    virtual iterator
+    end() = 0;
+
+    // Returns the const_node_iterator associated with the trie's root node.
+    virtual const_node_iterator
+    node_begin() const = 0;
+
+    // Returns the node_iterator associated with the trie's root node.
+    virtual node_iterator
+    node_begin() = 0;
+
+    // Returns the const_node_iterator associated with a just-after
+    // leaf node.
+    virtual const_node_iterator
+    node_end() const = 0;
+
+    // Returns the node_iterator associated with a just-after leaf node.
+    virtual node_iterator
+    node_end() = 0;
+
+    // Access to the cmp_fn object.
+    virtual e_access_traits& 
+    get_e_access_traits() = 0;
+
+  protected:
+    // Updates the rank of a node through a node_iterator node_it;
+    // end_nd_it is the end node iterator.
+    inline void
+    operator()(node_iterator, const_node_iterator) const;
+
+    // Destructor.
+    virtual
+    ~trie_order_statistics_node_update();
+  };
+
+#include <ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp>
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+#undef PB_DS_BASE_C_DEC
+#undef PB_DS_STATIC_ASSERT
+
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/scripts/check_performance b/libstdc++-v3/scripts/check_performance
index f5d2351d8374..ff5a44ba077e 100755
--- a/libstdc++-v3/scripts/check_performance
+++ b/libstdc++-v3/scripts/check_performance
@@ -33,36 +33,36 @@ SH_FLAG="-Wl,--rpath -Wl,$BUILD_DIR/../../gcc \
 ST_FLAG="-static"
 LINK=$SH_FLAG
 CXX="$COMPILER $INCLUDES $PCH_FLAGS $FLAGS $LINK"
+LIBS="./libtestc++.a"
 TESTS_FILE="testsuite_files_performance"
 
 for NAME in `cat $TESTS_FILE`
 do
   RUN=true
+  TESTNAME=$SRC_DIR/testsuite/$NAME
+  FILE_NAME="`basename $NAME`"
+  FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
 
   # TEST_S == single thread
   # TEST_B == do both single and multi-thread
   # TEST_T == multi-thread
-  for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME`
+  for CYCLE in `sed -n 's,.*\(TEST_[SB][0-9]*\)$,\1,p' $TESTNAME`
   do
     RUN=false
     echo $NAME $CYCLE
-    FILE_NAME="`basename $NAME`"
-    FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
     EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
-    $CXX -DNOTHREAD -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
+    $CXX -DNOTHREAD -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
     if [ -f $EXE_NAME ]; then
       ./$EXE_NAME
     fi
   done
 
-  for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $SRC_DIR/testsuite/$NAME`
+  for CYCLE in `sed -n 's,.*\(TEST_[TB][0-9]*\)$,\1,p' $TESTNAME`
   do
     RUN=false
     echo $NAME $CYCLE thread
-    FILE_NAME="`basename $NAME`"
-    FILE_NAME="`echo $FILE_NAME | sed 's/.cc//g'`"
     EXE_NAME="`echo $FILE_NAME-$CYCLE.exe`"
-    $CXX $THREAD_FLAG -D$CYCLE $SRC_DIR/testsuite/$NAME -o $EXE_NAME
+    $CXX $THREAD_FLAG -D$CYCLE $TESTNAME $LIBS -o $EXE_NAME
     if [ -f $EXE_NAME ]; then
       ./$EXE_NAME
     fi
@@ -70,11 +70,13 @@ do
 
   if $RUN; then
     echo $NAME
-    FILE_NAME="`basename $NAME`"
-    EXE_NAME="`echo $FILE_NAME | sed 's/cc$/exe/'`"
-    $CXX $SRC_DIR/testsuite/$NAME -o $EXE_NAME
+    EXE_NAME="`echo $FILE_NAME.exe`"
+    $CXX $TESTNAME $LIBS -o $EXE_NAME
     if [ -f $EXE_NAME ]; then
-      ./$EXE_NAME
+	./$EXE_NAME >& tmp.$FILE_NAME
+    fi
+    if [ -s tmp.$FILE_NAME ]; then
+	mv tmp.$FILE_NAME $FILE_NAME.xml
     fi
   fi
 done
diff --git a/libstdc++-v3/scripts/make_graph.py b/libstdc++-v3/scripts/make_graph.py
new file mode 100755
index 000000000000..61e18be47681
--- /dev/null
+++ b/libstdc++-v3/scripts/make_graph.py
@@ -0,0 +1,576 @@
+#!/usr/bin/python
+
+import string
+import sys
+import re
+import os
+import platform
+import commands
+from Numeric import *
+from pychart import *
+from xml.dom import minidom
+
+class exception:
+	pass
+
+
+def comp_platform_info(compiler):
+	ret = '<ul>\n'
+	so = commands.getstatusoutput('cat /proc/cpuinfo | grep \'cpu MHz\'')
+	if so[0] == 0:
+		ret += '<li>CPU speed - %s</li>\n' % so[1]
+	so = commands.getstatusoutput('cat /proc/meminfo | grep \'MemTotal\'')
+	if so[0] == 0:
+		ret += '<li>Memory - %s</li>\n' % so[1]
+	ret += '<li>Platform - %s</li>\n' % platform.platform()
+	so = commands.getstatusoutput(compiler + ' --version')
+	if so[0] == 0:
+		ret += '<li>Compiler - %s</li>\n' % so[1]
+	ret += '</ul>\n'
+	return ret
+
+
+class res:
+	"""
+	A 'structure' representing the results of a test.
+	"""
+	def __init__(self, x_label, y_label, cntnr_list, cntnr_descs, res_sets):
+		self.x_label = x_label
+		self.y_label = y_label
+		self.cntnr_list = cntnr_list
+		self.cntnr_descs = cntnr_descs
+		self.res_sets = res_sets
+
+
+class res_getter:
+	"""
+	This class returns a res object for some test.
+	"""
+	class __sorter:
+		def __accum(self, results):
+			total = 0
+			for result in results:
+				total = total + result[1]
+			return total
+
+		def sort(self, cntnr_list, res_sets):
+			cntnrs_and_totals = []
+			for cntnr in cntnr_list:
+				results = res_sets[cntnr]
+				total = self.__accum(results)
+				cntnrs_and_totals.append((cntnr, total))
+			by_total = lambda x,y: x[1] > y[1] and -1 or 1
+			cntnrs_and_totals.sort(by_total)
+			ret = []
+			for cntnr_and_total in cntnrs_and_totals:
+				cntnr = cntnr_and_total[0]
+				ret.append(cntnr)
+			return ret
+
+	def __init__(self, test_infos_f_name):
+		self.__test_to_container_res_sets = {}
+		self.__test_to_f_names = {}
+		tests_dat = minidom.parse(test_infos_f_name)
+		for test in tests_dat.getElementsByTagName('test'):
+			test_name = test.attributes['name'].value
+			self.__test_to_f_names[test_name] = test.getElementsByTagName('file')[0].attributes['name'].value
+			cntnr_list = []
+			for cntnr in test.getElementsByTagName('cntnr'):
+				cntnr_list.append(cntnr.attributes['name'].value)
+			self.__test_to_container_res_sets[test_name] = cntnr_list
+
+	def __get_label(self, tst_dat, label_name):
+		label = tst_dat.getElementsByTagName(label_name)[0].firstChild.data
+		label = string.strip(label, '\n')
+		label = string.strip(label)
+		return label
+
+	def __parse_res_sets(self, f_name, cntnr_list):	
+		tst_dat = minidom.parse(f_name)
+		x_label = self.__get_label(tst_dat, 'x_name')
+		y_label = self.__get_label(tst_dat, 'y_name')
+		parsed_container_list = tst_dat.getElementsByTagName('cntnr')
+		res_sets = {}
+		cntnr_descs = {}
+		for cntnr in parsed_container_list:
+			cntnr_name = cntnr.attributes["name"].value
+			res_sets[cntnr_name] = []
+		for cntnr in parsed_container_list:
+			cntnr_name = cntnr.attributes["name"].value
+			cntnr_desc = cntnr.getElementsByTagName('desc')
+			if res_sets.has_key(cntnr_name):
+				res_set = []
+				result_list = cntnr.getElementsByTagName('result')
+				for result in result_list:
+					x = string.atol(result.attributes["x"].value)
+					y = string.atof(result.attributes["y"].value)
+					res_set.append((x, y))
+				res_sets[cntnr_name] = res_set
+				cntnr_descs[cntnr_name] = cntnr_desc[0]
+		return (x_label, y_label, cntnr_descs, res_sets)
+
+	def get(self, res_dir, test_name):
+		cntnr_list = self.__test_to_container_res_sets[test_name]
+		f_name = res_dir + '/' + self.__test_to_f_names[test_name]
+		parsed = self.__parse_res_sets(f_name, cntnr_list)
+		x_label = parsed[0]
+		y_label = parsed[1]
+		cntnr_descs = parsed[2]
+		res_sets = parsed[3]
+		cntnr_list = self.__sorter().sort(cntnr_list, res_sets)
+		return res(x_label, y_label, cntnr_list, cntnr_descs, res_sets)
+
+
+class png_maker:
+	"""
+	This class creates a png file from a result set.
+	"""
+	class __style_chooser:
+		def __init__(self):
+			self.native_re = re.compile(r'n_(?:.*?)')
+
+			self.native_tick_mark_0 = tick_mark.Circle(size = 4)
+			self.native_tick_mark_1 = tick_mark.Square(size = 4)
+			self.native_line_style_0 = line_style.T(color = color.black, width=2)
+			self.native_line_style_1 = line_style.T(color = color.black, width=2)
+
+			self.mask_re = re.compile(r'mask(?:.*?)')
+			self.mod_re = re.compile(r'mod(?:.*?)')
+
+			self.rb_tree_mmap_rb_tree_set_re = re.compile(r'rb_tree_mmap_rb_tree_set(?:.*?)')
+			self.rb_tree_mmap_lu_mtf_set_re = re.compile(r'rb_tree_mmap_lu_mtf_set(?:.*?)')
+
+			self.splay_re = re.compile(r'splay(?:.*?)')
+			self.rb_tree_re = re.compile(r'rb_tree(?:.*?)')
+			self.ov_tree_re = re.compile(r'ov_tree(?:.*?)')
+			self.splay_tree_re = re.compile(r'splay_tree(?:.*?)')
+
+			self.pat_trie_re = re.compile(r'pat_trie(?:.*?)')
+
+			self.lc_1div8_1div2_re = re.compile(r'lc_1div8_1div2(?:.*?)')
+			self.lc_1div8_1div1_re = re.compile(r'lc_1div8_1div1(?:.*?)')
+			self.mcolc_1div2_re = re.compile(r'mcolc_1div2(?:.*?)')
+
+		def choose(self, cntnr):
+			if self.native_re.search(cntnr):
+				if cntnr == 'n_pq_vector':
+					return (self.native_tick_mark_1, self.native_line_style_1)
+
+				return (self.native_tick_mark_0, self.native_line_style_0)
+
+			# tick_mark predefined
+			# square, circle3, dia, tri, dtri, star, plus5, x5, gray70dia, blackdtri, blackdia
+			if self.mask_re.search(cntnr):
+				clr = color.navy
+			elif self.mod_re.search(cntnr):
+				clr = color.green4
+			elif self.rb_tree_mmap_rb_tree_set_re.search(cntnr):
+				clr = color.mediumblue
+				tm = tick_mark.square
+			elif self.rb_tree_mmap_lu_mtf_set_re.search(cntnr) or cntnr == 'rc_binomial_heap':
+				clr = color.gray50
+				tm = tick_mark.dia
+			elif self.splay_tree_re.search(cntnr) or cntnr == 'binomial_heap':
+				clr = color.gray58
+				tm = tick_mark.tri
+			elif self.rb_tree_re.search(cntnr) or cntnr == 'binary_heap':
+				clr = color.red3
+				tm = tick_mark.dtri
+			elif self.ov_tree_re.search(cntnr) or cntnr == 'thin_heap':
+				clr = color.orangered1
+				tm = tick_mark.star
+			elif self.pat_trie_re.search(cntnr) or cntnr == 'pairing_heap':
+				clr = color.blueviolet
+				tm = tick_mark.plus5
+			else:
+				sys.stderr.write(cntnr + '\n')
+				raise exception
+
+                        # mask / mod
+                        if cntnr.find('lc_1div8_1div') <> -1:
+				if cntnr.find('mask') <> -1:
+					# mask
+					if self.lc_1div8_1div2_re.search(cntnr):
+						if cntnr.find('nsth') <> -1:
+							tm = tick_mark.x5
+						else:
+							tm = tick_mark.gray70dia
+					if self.lc_1div8_1div1_re.search(cntnr):
+						if cntnr.find('nsth') <> -1:
+							tm = tick_mark.dia
+                                                else:
+							tm = tick_mark.circle3
+                                else:
+                                        # mod
+					if self.lc_1div8_1div2_re.search(cntnr):
+						if cntnr.find('nsth') <> -1:
+							tm = tick_mark.tri
+						else:
+                                                        tm = tick_mark.square
+					if self.lc_1div8_1div1_re.search(cntnr):
+						if cntnr.find('nsth') <> -1:
+                                                        tm = tick_mark.dtri
+                                                else:
+                                                        tm = tick_mark.star
+
+			if self.mcolc_1div2_re.search(cntnr):
+				tm = tick_mark.circle3
+				
+			return (tm, line_style.T(color = clr, width = 2))
+
+
+	def __init__(self):
+		self.__sc = self.__style_chooser()
+		self.__mmap_re = re.compile('mmap_')
+
+	def __container_label_name(self, cntnr):
+		return self.__mmap_re.sub('\nmmap_\n', cntnr)
+
+	def make(self, res, of_name):
+		theme.output_format = 'png'
+		theme.output_file = of_name
+		theme.scale_factor = 2
+#		theme.default_font_size = 5
+		theme.use_color = 1
+		theme.reinitialize()
+		y_tick_interval = self.__get_y_tics(res)
+		xaxis = axis.X(format = '/a90/hL%d',
+			       tic_interval = 200,
+			       label = res.x_label)
+		yaxis = axis.Y(format = '%.2e', 
+			       tic_interval = y_tick_interval,
+			       label = res.y_label)
+		legend_lines = len(res.cntnr_list)
+		legend_vloc = 50 + (legend_lines * 10)
+		ar = area.T(x_axis = xaxis, y_axis = yaxis,
+			    legend = legend.T(loc=(0,-legend_vloc),
+					      frame_line_style=None,
+					      inter_row_sep=2),
+			    size=(240,110))
+		plot_list = []
+		for cntnr in res.cntnr_list:
+			style = self.__sc.choose(cntnr)
+			print cntnr
+			pl = line_plot.T(label = self.__container_label_name(cntnr), 
+				data = res.res_sets[cntnr], 
+				tick_mark = style[0], 
+				line_style = style[1])
+			plot_list.append(pl)
+		for plot in plot_list:
+			ar.add_plot(plot)
+		ar.draw()
+
+
+	def __get_y_tics(self, res):
+		mx = 0
+		for cntnr in res.cntnr_list:
+			m = max(d[1] for d in res.res_sets[cntnr])
+			mx = max(m, mx)
+		return mx / 5 
+
+
+
+def make_tt(s):
+	return '<tt>' + s + '</tt>'
+
+def make_b(s):
+	return '<b>' + s + '</b>'
+
+def make_ttb(s):
+	return '<tt><b>' + s + '</b></tt>'
+
+def make_i(s):
+	return '<i>' + s + '</i>'
+
+def make_pb_ds_class_href(c_name):
+	return '<a href = "' + c_name + '.html">' + make_tt(c_name) + '</a>\n'
+
+def build_value_to_pb_ds_class_href(s_desc):
+	value = s_desc.attributes['value'].value
+	ret = make_pb_ds_class_href(value)
+	return ret
+
+class hash_desc_to_html_builder:
+	def build_specific_comb_hash_fn(self, s_desc):
+		comb_hash_fn_desc = s_desc.getElementsByTagName('Comb_Hash_Fn')[0]
+		ret = make_tt('Comb_Hash_Fn')
+		ret = ret + ' = '
+		ret = ret + build_value_to_pb_ds_class_href(comb_hash_fn_desc)
+		return ret
+
+	def __build_nom_denom(self, s_desc):
+		nom_denom = s_desc.attributes['nom'].value + '/' + s_desc.attributes['denom'].value
+		return make_i(nom_denom)
+
+	def __build_lc_trigger_desc(self, s_desc):
+		ret = build_value_to_pb_ds_class_href(s_desc)
+		ret = ret + ' with ' + make_i('&alpha;<sub>min</sub>')
+		ret = ret + ' = '  + self.__build_nom_denom(s_desc.getElementsByTagName('alpha_min')[0])
+		ret = ret + ' and ' + make_i('&alpha;<sub>max</sub>')
+		ret = ret + ' = '  + self.__build_nom_denom(s_desc.getElementsByTagName('alpha_max')[0])
+		return ret
+
+	def build_specific_resize_policy(self, s_desc):
+		ret = make_tt('Resize_Policy')
+		ret = ret + ' = '
+		resize_policy_desc = s_desc.getElementsByTagName('Resize_Policy')[0]
+		ret = ret + build_value_to_pb_ds_class_href(resize_policy_desc)
+		ret = ret + ' with ' + make_tt('Size_Policy')
+		ret = ret + ' = '
+		size_policy_desc = resize_policy_desc.getElementsByTagName('Size_Policy')[0]
+		ret = ret + build_value_to_pb_ds_class_href(size_policy_desc)
+		ret = ret + ', and ' + make_tt('Trigger_Policy')
+		ret = ret + ' = '
+		trigger_policy_desc = resize_policy_desc.getElementsByTagName('Trigger_Policy')[0]
+		if trigger_policy_desc.attributes['value'].value == 'hash_load_check_resize_trigger':
+			ret = ret + self.__build_lc_trigger_desc(trigger_policy_desc)
+		else:
+			raise exception
+		return ret
+
+
+class cc_hash_desc_to_html_builder:
+	def __init__(self):
+		self.__hash_builder = hash_desc_to_html_builder()			
+
+	def build(self, s_desc):
+		ret = build_value_to_pb_ds_class_href(s_desc)
+		ret = ret + 'with ' + self.__hash_builder.build_specific_comb_hash_fn(s_desc)
+		ret = ret + ', and ' + self.__hash_builder.build_specific_resize_policy(s_desc)
+		return ret
+
+
+class gp_hash_desc_to_html_builder:
+	def __init__(self):
+		self.__hash_builder = hash_desc_to_html_builder()			
+
+	def build(self, s_desc):
+		ret = build_value_to_pb_ds_class_href(s_desc)
+		ret = ret + ' with ' + self.__hash_builder.build_specific_comb_hash_fn(s_desc)
+		ret = ret + ', ' + self.__hash_builder.build_specific_resize_policy(s_desc)
+		ret = ret + ', and ' + make_tt('Probe_Fn')
+		ret = ret + ' = '		
+		probe_fn = s_desc.getElementsByTagName('Probe_Fn')[0].attributes['value'].value
+		ret = ret + make_pb_ds_class_href(probe_fn)
+		return ret
+
+
+class basic_tree_like_desc_to_html_builder:
+	def build_tag(self, s_desc):
+		ret = make_tt('Tag')
+		ret = ret + ' = '
+		tag_desc = s_desc.getElementsByTagName('Tag')[0]
+		ret = ret + build_value_to_pb_ds_class_href(tag_desc)
+		return ret
+
+	def build_node_update(self, s_desc):
+		ret = make_tt('Node_Update')
+		ret = ret + ' = '
+		node_update_desc = s_desc.getElementsByTagName('Node_Update')[0]
+		ret = ret + build_value_to_pb_ds_class_href(node_update_desc)
+		return ret
+
+
+class basic_tree_desc_to_html_builder:
+	def __init__(self):
+		self.__tree_like_builder = basic_tree_like_desc_to_html_builder()
+
+	def build(self, s_desc):
+		ret = build_value_to_pb_ds_class_href(s_desc)
+		ret = ret + ' with ' + self.__tree_like_builder.build_tag(s_desc)
+		ret = ret + ', and ' + self.__tree_like_builder.build_node_update(s_desc)
+		return ret
+
+
+class basic_trie_desc_to_html_builder:
+	def __init__(self):
+		self.__tree_like_builder = basic_tree_like_desc_to_html_builder()
+
+	def build(self, s_desc):
+		ret = build_value_to_pb_ds_class_href(s_desc)
+		ret = ret + ' with ' + self.__tree_like_builder.build_tag(s_desc)
+		ret = ret + ', and ' + self.__tree_like_builder.build_node_update(s_desc)
+		return ret
+
+class lu_desc_to_html_builder:
+	def build(self, s_desc):
+		ret = build_value_to_pb_ds_class_href(s_desc)
+		ret = ret + ' with ' + make_tt('Update_Policy') 
+		ret = ret + ' = ' 
+		update_policy_desc = s_desc.getElementsByTagName('Update_Policy')[0]
+		ret = ret + build_value_to_pb_ds_class_href(update_policy_desc)
+		return ret
+
+
+class std_desc_to_html_builder:
+	def build(self, s_desc):
+		value = s_desc.attributes['value'].value
+		return make_tt(value.replace('std_', 'std::'))
+
+
+class std_tr1_desc_to_html_builder:
+	def build(self, s_desc):
+		value = s_desc.attributes['value'].value
+		ret =  make_tt(value.replace('std_tr1_', 'std::tr1::'))
+		ret = ret + ' with ' + make_tt('cache_hash_code')
+		ret = ret + ' = '
+		cache_hash_code = s_desc.getElementsByTagName('cache_hash_code')[0].attributes['value'].value
+		ret = ret + make_ttb(cache_hash_code)
+		return ret
+
+class gnucxx_desc_to_html_builder:
+	def build(self, s_desc):
+		value = s_desc.attributes['value'].value
+		return make_tt(value.replace('__gnucxx_', '__gnucxx::'))
+
+class stdext_desc_to_html_builder:
+	def build(self, s_desc):
+		value = s_desc.attributes['value'].value
+		return make_tt(value.replace('stdext_', 'stdext::'))
+
+class npq_desc_to_html_builder:
+	def build(self, vector):
+		if vector:
+			under = make_tt('std::vector')
+		else:
+			under = make_tt('std::deque')
+
+		return make_tt('std::priority_queue') + ' adapting ' + under
+
+class binary_heap_desc_to_html_builder:
+	def build(self, s_desc):
+		ret = make_pb_ds_class_href('priority_queue')
+		ret = ret + ' with ' + make_tt('Tag')
+		ret = ret + ' = ' + make_pb_ds_class_href('binary_heap_tag')
+		return ret
+
+class thin_heap_desc_to_html_builder:
+	def build(self, s_desc):
+		ret = make_pb_ds_class_href('priority_queue')
+		ret = ret + ' with ' + make_tt('Tag')
+		ret = ret + ' = ' + make_pb_ds_class_href('thin_heap_tag')
+		return ret
+
+class binomial_heap_desc_to_html_builder:
+	def build(self, s_desc):
+		ret = make_pb_ds_class_href('priority_queue')
+		ret = ret + ' with ' + make_tt('Tag')
+		ret = ret + ' = ' + make_pb_ds_class_href('binomial_heap_tag')
+		return ret
+
+class rc_binomial_heap_desc_to_html_builder:
+	def build(self, s_desc):
+		ret = make_pb_ds_class_href('priority_queue')
+		ret = ret + ' with ' + make_tt('Tag')
+		ret = ret + ' = ' + make_pb_ds_class_href('rc_binomial_heap_tag')
+		return ret
+
+class pairing_heap_desc_to_html_builder:
+	def build(self, s_desc):
+		ret = make_pb_ds_class_href('priority_queue')
+		ret = ret + ' with ' + make_tt('Tag')
+		ret = ret + ' = ' + make_pb_ds_class_href('pairing_heap_tag')
+		return ret
+
+class legend_desc_builder:
+	"""
+	Returns a string corresponding to a specific container type.
+	"""
+	def __init__(self):
+		self.__cc_hash_builder = cc_hash_desc_to_html_builder()
+		self.__gp_hash_builder = gp_hash_desc_to_html_builder()	       
+		self.__basic_tree_builder = basic_tree_desc_to_html_builder()
+		self.__basic_trie_builder = basic_trie_desc_to_html_builder()
+		self.__lu_builder = lu_desc_to_html_builder()
+		self.__std_builder = std_desc_to_html_builder()
+		self.__std_tr1_builder = std_tr1_desc_to_html_builder()
+		self.__gnucxx_builder = gnucxx_desc_to_html_builder()
+		self.__stdext_builder = stdext_desc_to_html_builder()
+		self.__npq_builder = npq_desc_to_html_builder()
+		self.__thin_heap_builder = thin_heap_desc_to_html_builder()
+		self.__thin_heap_builder = thin_heap_desc_to_html_builder()
+		self.__binary_heap_builder = binary_heap_desc_to_html_builder()
+		self.__binomial_heap_builder = binomial_heap_desc_to_html_builder()
+		self.__rc_binomial_heap_builder = rc_binomial_heap_desc_to_html_builder()
+		self.__pairing_heap_builder = pairing_heap_desc_to_html_builder()
+
+	def __build_specific(self, s_desc):
+		type = s_desc.attributes['value'].value
+
+		if type == 'thin_heap':
+			return self.__thin_heap_builder.build(s_desc)
+		if type == 'binary_heap':
+			return self.__binary_heap_builder.build(s_desc)
+		if type == 'binomial_heap':
+			return self.__binomial_heap_builder.build(s_desc)
+		if type == 'rc_binomial_heap':
+			return self.__rc_binomial_heap_builder.build(s_desc)
+		if type == 'pairing_heap':
+			return self.__pairing_heap_builder.build(s_desc)
+		if type == 'cc_hash_table':
+			ret = self.__cc_hash_builder.build(s_desc)
+		elif type == 'gp_hash_table':
+			ret = self.__gp_hash_builder.build(s_desc)
+		elif type == 'tree':
+			ret = self.__basic_tree_builder.build(s_desc)
+		elif type == 'trie':
+			ret = self.__basic_trie_builder.build(s_desc)
+		elif type == 'list_update':
+			ret = self.__lu_builder.build(s_desc)
+		elif type == 'std::priority_queue_vector':
+			return self.__npq_builder.build(True)
+		elif type == 'std::priority_queue_deque':
+			return self.__npq_builder.build(False)
+		elif type == 'std_set' or type == 'std_map' or type == 'std_multimap':
+			return self.__std_builder.build(s_desc)
+		elif type == 'std_tr1_unordered_set' or type == 'std_tr1_unordered_map':
+			return self.__std_tr1_builder.build(s_desc)
+		elif type == 'stdext_hash_set' or type == 'stdext_hash_map' or type == 'stdext_hash_multimap':
+			return self.__stdext_builder.build(s_desc)
+		elif type == '__gnucxx_hash_set' or type == '__gnucxx_hash_map' or type == '__gnucxx_hash_multimap':
+			return self.__gnucxx_builder.build(s_desc)
+		else:
+			sys.stderr.write('cannot recognize %s\n' % type)
+			raise exception
+		return ret
+
+
+	def build(self, desc):
+		s_descs = desc.getElementsByTagName('type')
+		if s_descs.length == 0:
+			print desc.toxml()
+			raise exception
+		ret = ''
+		count = 0
+		for s_desc in s_descs:
+			if count > 0:
+				ret = ret + ', mapping each key to '
+			ret = ret + self.__build_specific(s_desc)
+			count = count + 1
+		return ret
+
+
+def main(doc_dir, res_dir, test_infos_f_name, test_name, build_name):
+	res_gtr = res_getter(test_infos_f_name)
+	res = res_gtr.get(res_dir, test_name)
+	png_mkr = png_maker()
+	png_of_name = doc_dir + '/' + test_name + '_' + build_name + '.png'
+	print png_of_name
+	png_mkr.make(res, png_of_name)
+
+
+if __name__ == "__main__":
+	"""
+	This module takes 6 parameters from the command line:
+	Docs directory
+	Results directory
+	Tests info XML file name
+	Test name
+	Build name
+	Compiler name
+	"""
+	usg = "make_graph.py <doc_dir> <res_dir> <test_info_file> <test_name> <build_name>\n"
+	if len(sys.argv) != 6:
+		sys.stderr.write(usg)
+		raise exception
+	main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4], sys.argv[5])
diff --git a/libstdc++-v3/scripts/make_graphs.py b/libstdc++-v3/scripts/make_graphs.py
new file mode 100755
index 000000000000..0b5daf24360c
--- /dev/null
+++ b/libstdc++-v3/scripts/make_graphs.py
@@ -0,0 +1,160 @@
+#!/usr/bin/python
+
+import sys
+import commands
+import re
+from xml.dom import minidom
+from BeautifulSoup import BeautifulSoup
+import make_graph
+
+class exception:
+	pass
+ 
+res_div_re = re.compile('(.*?)_res_div')
+settings_div_re = re.compile('(.*?)_settings_div')	
+
+
+gray_border_div_str = '<div style = "border-style: dotted; border-width: 1px; border-color: lightgray">'
+space_div_str = '<div style = "width: 100%; height: 20px">'
+
+
+
+def logical_build_from_build(build):
+	if build == 'gcc':
+		return 'g++'
+	if build == 'msvc':
+		return 'msvc++'
+	if build == 'local':
+		return 'local'
+	sys.stderr.write(build)
+	raise exception
+ 
+ 
+def img_title_from_origs(label, title, base_build_ref, build_name, logical_build_name):
+	title = title.replace('_tt_', '<tt>')
+	title = title.replace('_455tt_', '</tt>')
+	title = title.replace('_b_', '<b>')
+	title = title.replace('_455b_', '</b>')
+	title = title.replace('_456', ',')
+	title = title.replace('_457', '[]')
+	title = title.replace('_', ' ')
+	return '%s: %s - <a href = "%s_performance_tests.html#%s">%s</a>' % (
+		label, 
+		title, 
+		base_build_ref, 
+		build_name,
+		logical_build_name)
+
+
+def make_png(src_dir, doc_dir, res_dir, tests_info_xml_f_name, build_name, test_name):
+	cmd_str = '%s/scripts/make_graph.py %s %s %s %s %s' % (
+		src_dir, doc_dir,
+		res_dir, 
+		tests_info_xml_f_name, 
+		test_name, 
+		build_name)
+	# Must start a new process for pychart - otherwise pngs overlap.
+	so = commands.getstatusoutput(cmd_str)	
+	if(so[0] != 0):
+		sys.stderr.write(cmd_str + '\n')		
+		sys.stderr.write(so[1] + '\n')		
+		sys.exit(-1)	
+
+
+def make_png_str(label, test_name, build):
+	ret = '<h6 class="c1">'
+	ret += '<a name="%s" id= "%s">' % (label, label)
+	ret += '<img src="%s" ' % (test_name + '_' + build + '.png')
+	ret += 'alt="no image" />' 
+	ret += '</a></h6>'	
+	return ret
+
+def process_html(html_f_name, src_dir, build_dir, htmls_xml_f_name, tests_info_xml_f_name, build_name, compiler_name):
+	doc_dir = src_dir + "/docs/html/ext/pb_ds"
+	res_dir = build_dir 
+	html_f = open(doc_dir + '/' + html_f_name)	
+	soup = BeautifulSoup(html_f.read())			
+	html_f.close()	
+	platform_comp_re = re.compile('platform_comp_%s' % build_name)					
+	for d in soup('div'):
+		try:
+			settings_m = settings_div_re.match(d['id']) 
+			res_m = res_div_re.match(d['id']) 
+		except:
+			settings_m = None
+			res_m = None
+			
+		if settings_m:
+			build = settings_m.groups()[0]			
+			if build == build_name:
+				logical_build_name = logical_build_from_build(build)
+				info = gray_border_div_str
+				info += '<h3><a name = "%s"><u>%s</u></a></h3>' % (build, logical_build_name)
+				info += make_graph.comp_platform_info(compiler_name)
+				info += '</div>%s</div>' % space_div_str
+				d.contents = info
+		elif res_m:
+			label = res_m.groups()[0]
+			d = d.divTag
+			
+			build = d['id'].replace('%s_' % label, '')
+			
+			if build == build_name:
+				logical_build_name = logical_build_from_build(build)
+				d = d.divTag
+				test_name = d['id'].replace('%s_' % label, '')
+				d = d.divTag
+				base_build_ref = d['id'].replace('%s_' % label, '')
+				d = d.divTag
+				title = d['id'].replace('%s_' % label, '')
+				img_title = img_title_from_origs(label, title, base_build_ref, build, logical_build_name)
+					
+				make_png(src_dir, doc_dir, res_dir, tests_info_xml_f_name, build_name, test_name)
+				png_str = make_png_str(label, test_name, build)
+				content = gray_border_div_str
+				content += png_str
+				content += img_title
+#				content += make_graph.legend(doc_dir, res_dir, tests_info_xml_f_name, test_name, build_name)
+				content += '</div>%s</div>' % space_div_str
+				d.contents = content
+								
+	return soup
+			
+ 
+  
+if __name__ == "__main__":
+	"""
+	Doc dir
+	This module takes 6 parameters from the command line:
+	Source directory
+	Build directory
+	HTMLs XML file name
+	Tests info XML file name
+	Build name
+	Compiler name
+	"""
+	
+	usg = "make_graph.py <src_dir> <build_dir> <htmls_xml_f_name> <tests_info_xml_f_name> <build_name> <compiler_name>\n"
+		
+	if len(sys.argv) != 7:
+		sys.stderr.write(usg)
+		raise exception
+	
+	src_dir = sys.argv[1]
+	build_dir = sys.argv[2]
+	htmls_xml_f_name = sys.argv[3]
+	tests_info_xml_f_name = sys.argv[4]
+	build_name = sys.argv[5]
+	compiler_name = sys.argv[6]
+	doc_dir = src_dir + "/docs/html/ext/pb_ds"
+	htmls_dat = minidom.parse(htmls_xml_f_name)
+	for html in htmls_dat.getElementsByTagName('html'):
+		html_f_name = html.attributes['name'].value
+		
+		new_soup = process_html(html_f_name, src_dir, build_dir, htmls_xml_f_name, tests_info_xml_f_name, build_name, compiler_name)
+		
+		html_f = open(doc_dir + '/' + html_f_name, 'w')
+		html_f.write(str(new_soup))
+		html_f.close()
+		
+		
diff --git a/libstdc++-v3/scripts/testsuite_flags.in b/libstdc++-v3/scripts/testsuite_flags.in
index aa4466a5326b..83e10f7d6cc1 100755
--- a/libstdc++-v3/scripts/testsuite_flags.in
+++ b/libstdc++-v3/scripts/testsuite_flags.in
@@ -30,7 +30,7 @@ query=$1
 
 case ${query} in
     --install-includes)
-      INCLUDES="-I${SRC_DIR}/testsuite"
+      INCLUDES="-I${SRC_DIR}/testsuite/util"
       echo ${INCLUDES}
       ;;
     --build-includes)
diff --git a/libstdc++-v3/testsuite/Makefile.am b/libstdc++-v3/testsuite/Makefile.am
index 0fc66e5ab9f2..a881b9f1a2a3 100644
--- a/libstdc++-v3/testsuite/Makefile.am
+++ b/libstdc++-v3/testsuite/Makefile.am
@@ -91,7 +91,7 @@ new-abi-baseline:
 
 # Use 'new-abi-baseline' to create an initial symbol file.  Then run
 # 'check-abi' to test for changes against that file.
-check-abi: baseline_symbols site.exp
+check-abi: site.exp baseline_symbols 
 	-@runtest --tool libstdc++ abi.exp
 
 # Runs the testsuite, but in compile only mode.
@@ -108,10 +108,20 @@ check-compile: testsuite_files ${compile_script}
 # Some of these tests create large (~75MB) files, allocate huge
 # ammounts of memory, or otherwise tie up machine resources. Thus,
 # running this is off by default.
-performance_script=${glibcxx_srcdir}/scripts/check_performance
+# XXX Need to add dependency on libtestc++.a
+check_performance_script=${glibcxx_srcdir}/scripts/check_performance
 check-performance: testsuite_files_performance ${performance_script}
-	-@(chmod + ${performance_script}; \
-	  ${performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
+	-@(chmod + ${check_performance_script}; \
+	  ${check_performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
+
+# Generates the plots and graphs for performance testing.
+doc_performance_script=${glibcxx_srcdir}/scripts/make_graphs.py
+doc-performance:
+	-@(chmod + ${doc_performance_script}; \
+	${doc_performance_script} ${glibcxx_srcdir} \
+	${glibcxx_builddir}/testsuite \
+	${glibcxx_srcdir}/testsuite/data/make_graph_htmls.xml \
+	${glibcxx_srcdir}/testsuite/data/make_graph_test_infos.xml local g++)
 
 
 .PHONY: baseline_symbols new-abi-baseline \
@@ -120,4 +130,4 @@ check-performance: testsuite_files_performance ${performance_script}
 # By adding these files here, automake will remove them for 'make clean'
 CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
 	     testsuite_* site.exp abi_check baseline_symbols *TEST* *.dat \
-	     *.o *.cc
+	     *.o *.cc *.a *.so *.xml
diff --git a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
index 92c8a027639e..5b5994febbc1 100644
--- a/libstdc++-v3/testsuite/Makefile.in
+++ b/libstdc++-v3/testsuite/Makefile.in
@@ -272,12 +272,16 @@ compile_script = ${glibcxx_srcdir}/scripts/check_compile
 # Some of these tests create large (~75MB) files, allocate huge
 # ammounts of memory, or otherwise tie up machine resources. Thus,
 # running this is off by default.
-performance_script = ${glibcxx_srcdir}/scripts/check_performance
+# XXX Need to add dependency on libtestc++.a
+check_performance_script = ${glibcxx_srcdir}/scripts/check_performance
+
+# Generates the plots and graphs for performance testing.
+doc_performance_script = ${glibcxx_srcdir}/scripts/make_graphs.py
 
 # By adding these files here, automake will remove them for 'make clean'
 CLEANFILES = *.txt *.tst *.exe core* filebuf_* tmp* ostream_* *.log *.sum \
 	     testsuite_* site.exp abi_check baseline_symbols *TEST* *.dat \
-	     *.o *.cc
+	     *.o *.cc *.a *.so *.xml
 
 all: all-am
 
@@ -513,14 +517,20 @@ new-abi-baseline:
 
 # Use 'new-abi-baseline' to create an initial symbol file.  Then run
 # 'check-abi' to test for changes against that file.
-check-abi: baseline_symbols site.exp
+check-abi: site.exp baseline_symbols 
 	-@runtest --tool libstdc++ abi.exp
 check-compile: testsuite_files ${compile_script}
 	-@(chmod + ${compile_script}; \
 	  ${compile_script} ${glibcxx_srcdir} ${glibcxx_builddir})
 check-performance: testsuite_files_performance ${performance_script}
-	-@(chmod + ${performance_script}; \
-	  ${performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
+	-@(chmod + ${check_performance_script}; \
+	  ${check_performance_script} ${glibcxx_srcdir} ${glibcxx_builddir})
+doc-performance:
+	-@(chmod + ${doc_performance_script}; \
+	${doc_performance_script} ${glibcxx_srcdir} \
+	${glibcxx_builddir}/testsuite \
+	${glibcxx_srcdir}/testsuite/data/make_graph_htmls.xml \
+	${glibcxx_srcdir}/testsuite/data/make_graph_test_infos.xml local g++)
 
 .PHONY: baseline_symbols new-abi-baseline \
 	check-abi check-compile check-performance
diff --git a/libstdc++-v3/testsuite/data/make_graph_htmls.xml b/libstdc++-v3/testsuite/data/make_graph_htmls.xml
new file mode 100644
index 000000000000..1eb87cf2df73
--- /dev/null
+++ b/libstdc++-v3/testsuite/data/make_graph_htmls.xml
@@ -0,0 +1,60 @@
+<?xml version = "1.0"?>
+<htmls>
+	<html name = "tree_random_int_find_find_timing_test.html">
+	</html>
+	<html name = "assoc_performance_tests.html">
+	</html>
+	<html name = "pq_performance_tests.html">
+	</html>
+	<html name = "hash_text_find_find_timing_test.html">
+	</html>
+	<html name = "hash_random_int_find_find_timing_test.html">
+	</html>
+	<html name = "hash_random_int_subscript_find_timing_test.html">
+	</html>
+	<html name = "hash_random_int_subscript_insert_timing_test.html">
+	</html>
+	<html name = "hash_zlob_random_int_find_find_timing_test.html">
+	</html>
+	<html name = "hash_random_int_erase_mem_usage_test.html">
+	</html>
+	<html name = "tree_text_insert_timing_test.html">
+	</html>
+	<html name = "tree_text_find_find_timing_test.html">
+	</html>
+	<html name = "tree_text_lor_find_find_timing_test.html">
+	</html>
+	<html name = "tree_split_join_timing_test.html">
+	</html>
+	<html name = "tree_order_statistics_timing_test.html">
+	</html>
+	<html name = "priority_queue_text_push_timing_test.html">
+	</html>
+	<html name = "priority_queue_text_push_pop_timing_test.html">
+	</html>
+	<html name = "priority_queue_random_int_push_timing_test.html">
+	</html>
+	<html name = "priority_queue_random_int_push_pop_timing_test.html">
+	</html>
+	<html name = "priority_queue_text_pop_mem_usage_test.html">
+	</html>
+	<html name = "priority_queue_text_join_timing_test.html">
+	</html>
+	<html name = "priority_queue_text_modify_up_timing_test.html">
+	</html>
+	<html name = "priority_queue_text_modify_down_timing_test.html">
+	</html>
+	<html name = "multimap_text_insert_mem_usage_test_small.html">
+	</html>
+	<html name = "multimap_text_insert_timing_test_small.html">
+	</html>
+	<html name = "multimap_text_find_timing_test_small.html">
+	</html>
+	<html name = "multimap_text_insert_mem_usage_test_large.html">
+	</html>
+	<html name = "multimap_text_insert_timing_test_large.html">
+	</html>
+	<html name = "multimap_text_find_timing_test_large.html">
+	</html>
+</htmls>
+		
diff --git a/libstdc++-v3/testsuite/data/make_graph_test_infos.xml b/libstdc++-v3/testsuite/data/make_graph_test_infos.xml
new file mode 100644
index 000000000000..cffc3a039370
--- /dev/null
+++ b/libstdc++-v3/testsuite/data/make_graph_test_infos.xml
@@ -0,0 +1,313 @@
+<?xml version = "1.0"?>
+<tests>
+	<test name = "random_int_find_find_timing_test_tree">
+		<file name = "random_int_find_timing.xml"></file>
+		<cntnr name = "n_map"></cntnr>
+		<cntnr name = "splay_tree_map"></cntnr>
+		<cntnr name = "ov_tree_map"></cntnr>
+		<cntnr name = "rb_tree_map"></cntnr>
+	</test>   
+	<test name = "tree_split_join_timing_test">
+		<file name = "tree_split_join_timing.xml"></file>
+		<cntnr name = "n_set"></cntnr>
+		<cntnr name = "splay_tree_set"></cntnr>
+		<cntnr name = "ov_tree_set"></cntnr>
+		<cntnr name = "rb_tree_set"></cntnr>
+	</test>
+	<test name = "tree_order_statistics_timing_test">
+		<file name = "tree_order_statistics_timing.xml"></file>
+		<cntnr name = "n_set"></cntnr>
+		<cntnr name = "splay_tree_ost_set"></cntnr>
+		<cntnr name = "rb_tree_ost_set"></cntnr>
+	</test>
+	<test name = "hash_random_int_erase_mem_usage_test">
+		<file name = "hash_random_int_erase_mem_usage.xml"></file>
+		<cntnr name = "n_hash_set_ncah"></cntnr>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_set"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+	</test>
+	<test name = "cc_hash_random_int_subscript_timing_test_insert">
+		<file name = "random_int_subscript_insert_timing.xml"></file>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "cc_hash_random_int_subscript_timing_test_find">
+		<file name = "random_int_subscript_find_timing.xml"></file>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "gp_hash_random_int_subscript_timing_test_insert">
+		<file name = "random_int_subscript_insert_timing.xml"></file>
+		<cntnr name = "gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "gp_hash_random_int_subscript_timing_test_find">
+		<file name = "random_int_subscript_find_timing.xml"></file>
+		<cntnr name = "gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "ccgp_hash_random_int_subscript_timing_test_insert">
+		<file name = "random_int_subscript_insert_timing.xml"></file>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "cc_hash_random_int_find_timing_test">
+		<file name = "random_int_find_timing.xml"></file>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "gp_hash_random_int_find_timing_test">
+		<file name = "random_int_find_timing.xml"></file>
+		<cntnr name = "gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "gp_hash_mask_linp_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "hash_zlob_random_int_find_timing_test">
+		<file name = "hash_zlob_random_int_find_timing.xml"></file>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "gp_hash_mod_quadp_prime_nea_lc_1div8_1div2_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map"></cntnr>
+	</test>
+	<test name = "text_find_timing_test_hash">
+		<file name = "text_find_timing.xml"></file>
+		<cntnr name = "n_hash_map_ncah"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mod_prime_nea_lc_1div8_1div1_nsth_map"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_sth_map"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_map"></cntnr>
+	</test>
+	<test name = "text_find_timing_test_tree_like">
+		<file name = "text_find_timing.xml"></file>
+		<cntnr name = "n_map"></cntnr>
+		<cntnr name = "rb_tree_map"></cntnr>
+		<cntnr name = "splay_tree_map"></cntnr>
+		<cntnr name = "ov_tree_map"></cntnr>
+		<cntnr name = "pat_trie_map"></cntnr>
+	</test>
+	<test name = "tree_text_insert_timing_test_node_tree">
+		<file name = "tree_text_insert_timing.xml"></file>
+		<cntnr name = "n_map"></cntnr>
+		<cntnr name = "rb_tree_map"></cntnr>
+		<cntnr name = "splay_tree_map"></cntnr>
+	</test>
+	<test name = "tree_text_insert_timing_test_vector_tree">
+		<file name = "tree_text_insert_timing.xml"></file>
+		<cntnr name = "n_map"></cntnr>
+		<cntnr name = "ov_tree_map"></cntnr>
+	</test>
+	<test name = "tree_text_insert_timing_test_pat_trie">
+		<file name = "tree_text_insert_timing.xml"></file>
+		<cntnr name = "n_map"></cntnr>
+		<cntnr name = "pat_trie_map"></cntnr>
+	</test>
+	<test name = "tree_text_lor_find_timing_test">
+		<file name = "tree_text_lor_find_timing.xml"></file>
+		<cntnr name = "n_map"></cntnr>
+		<cntnr name = "rb_tree_map"></cntnr>
+		<cntnr name = "splay_tree_map"></cntnr>
+		<cntnr name = "ov_tree_map"></cntnr>
+	</test>
+	<test name = "priority_queue_random_int_push_timing_test">
+		<file name = "priority_queue_random_int_push_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "binary_priority_queue_random_int_push_timing_test">
+		<file name = "priority_queue_random_int_push_timing.xml"></file>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "priority_queue_random_int_push_pop_timing_test">
+		<file name = "priority_queue_random_int_push_pop_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "binary_priority_queue_random_int_push_pop_timing_test">
+		<file name = "priority_queue_random_int_push_pop_timing.xml"></file>
+		
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "priority_queue_text_push_timing_test">
+		<file name = "priority_queue_text_push_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "pairing_priority_queue_text_push_timing_test">
+		<file name = "priority_queue_text_push_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "priority_queue_text_push_pop_timing_test">
+		<file name = "priority_queue_text_push_pop_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "pairing_priority_queue_text_push_pop_timing_test">
+		<file name = "priority_queue_text_push_pop_timing.xml"></file>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "priority_queue_text_modify_up_timing_test">
+		<file name = "priority_queue_text_modify_up_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "priority_queue_text_modify_down_timing_test">
+		<file name = "priority_queue_text_modify_down_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "priority_queue_text_modify_up_timing_test_pairing_thin">
+		<file name = "priority_queue_text_modify_up_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+	</test>
+	<test name = "priority_queue_text_modify_down_timing_test_pairing_thin">
+		<file name = "priority_queue_text_modify_down_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+	</test>
+	<test name = "priority_queue_text_join_timing_test">
+		<file name = "priority_queue_text_join_timing.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "priority_queue_text_pop_mem_usage_test">
+		<file name = "priority_queue_text_pop_mem_usage.xml"></file>
+		<cntnr name = "thin_heap"></cntnr>
+		<cntnr name = "pairing_heap"></cntnr>
+		<cntnr name = "binomial_heap"></cntnr>
+		<cntnr name = "rc_binomial_heap"></cntnr>
+		<cntnr name = "binary_heap"></cntnr>
+		<cntnr name = "n_pq_vector"></cntnr>
+		<cntnr name = "n_pq_deque"></cntnr>
+	</test>
+	<test name = "multimap_text_insert_mem_usage_test_small_s2p_hash">
+		<file name = "multimap_text_insert_mem_usage_small.xml"></file>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_hash_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_insert_timing_test_small_s2p_hash">
+		<file name = "multimap_text_insert_timing_small.xml"></file>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_hash_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_find_timing_test_small_s2p_hash">
+		<file name = "multimap_text_find_timing_small.xml"></file>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_hash_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_insert_mem_usage_test_large_s2p_tree">
+		<file name = "multimap_text_insert_mem_usage_large.xml"></file>
+		<cntnr name = "rb_tree_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>		
+		<cntnr name = "n_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_insert_timing_test_large_s2p_tree">
+		<file name = "multimap_text_insert_timing_large.xml"></file>
+		<cntnr name = "rb_tree_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>		
+		<cntnr name = "n_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_find_timing_test_large_s2p_tree">
+		<file name = "multimap_text_find_timing_large.xml"></file>
+		<cntnr name = "rb_tree_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>		
+		<cntnr name = "n_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_insert_mem_usage_test_large_s2p_hash">
+		<file name = "multimap_text_insert_mem_usage_large.xml"></file>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_hash_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_insert_timing_test_large_s2p_hash">
+		<file name = "multimap_text_insert_timing_large.xml"></file>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_hash_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_find_timing_test_large_s2p_hash">
+		<file name = "multimap_text_find_timing_large.xml"></file>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_hash_mmap"></cntnr>
+	</test>	
+	<test name = "multimap_text_insert_mem_usage_test_small_s2p_tree">
+		<file name = "multimap_text_insert_mem_usage_small.xml"></file>
+		<cntnr name = "rb_tree_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>	
+		<cntnr name = "n_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_insert_timing_test_small_s2p_tree">
+		<file name = "multimap_text_insert_timing_small.xml"></file>
+		<cntnr name = "rb_tree_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_mmap"></cntnr>
+	</test>
+	<test name = "multimap_text_find_timing_test_small_s2p_tree">
+		<file name = "multimap_text_find_timing_small.xml"></file>
+		<cntnr name = "rb_tree_mmap_lu_mtf_set"></cntnr>
+		<cntnr name = "rb_tree_mmap_cc_hash_mask_exp_nea_lc_1div8_1div2_nsth_set"></cntnr>
+		<cntnr name = "n_mmap"></cntnr>
+	</test>
+</tests>
diff --git a/libstdc++-v3/testsuite/data/thirty_years_among_the_dead_preproc.txt b/libstdc++-v3/testsuite/data/thirty_years_among_the_dead_preproc.txt
new file mode 100644
index 000000000000..cec143958527
--- /dev/null
+++ b/libstdc++-v3/testsuite/data/thirty_years_among_the_dead_preproc.txt
@@ -0,0 +1,187586 @@
+Thirty
+Years
+Among
+the
+Dead
+Dr
+Carl
+Wickland
+I
+INTER
+RELATIONSHIP
+OF
+THE
+TWO
+WORLDS
+II
+PSYCHICAL
+RESEARCH
+III
+SUBCONSCIOUS
+MIND
+AND
+AUTO
+SUGGESTION
+HYPOTHESES
+UNTENABLE
+IV
+EARTH
+SPHERE
+CONDITIONS
+AND
+MAGNETIC
+AURA
+V
+TORMENTING
+SPIRITS
+MARRIAGE
+DISTURBANCES
+VI
+SPIRITS
+AND
+CRIME
+VII
+SPIRITS
+AND
+SUICIDE
+VIII
+SPIRITS
+AND
+NARCOTICS
+INEBRIETY
+AMNESIA
+IX
+PSYCHIC
+INVALIDISM
+X
+ORPHANS
+XI
+MATERIALISM
+AND
+INDIFFERENCE
+XII
+SELFISHNESS
+XIII
+ORTHODOXY
+XIV
+CHRISTIAN
+SCIENCE
+XV
+THEOSOPHY
+XVI
+PHILOSOPHY
+XVII
+CONCLUSION
+CHAPTER
+I
+Inter
+Relationship
+of
+the
+Two
+Worlds
+THE
+reality
+of
+an
+invisible
+world
+surrounding
+the
+physical
+world
+is
+for
+many
+difficult
+to
+comprehend
+since
+the
+mind
+sphere
+is
+often
+limited
+to
+the
+visible
+and
+tangible
+however
+it
+requires
+but
+little
+thought
+to
+realize
+the
+constant
+change
+of
+matter
+as
+it
+occurs
+in
+three
+forms
+solid
+liquid
+and
+gaseous
+in
+its
+range
+back
+and
+forth
+between
+the
+visible
+and
+invisible
+Visible
+nature
+is
+but
+the
+invisible
+the
+Real
+made
+manifest
+through
+a
+combination
+of
+its
+elements
+science
+informs
+us
+that
+fully
+ninety
+five
+per
+cent
+of
+vegetation
+is
+derived
+out
+of
+the
+air
+or
+atmosphere
+Is
+not
+mankind
+living
+at
+the
+bottom
+of
+an
+invisible
+ocean
+the
+atmosphere
+which
+is
+even
+more
+important
+to
+physical
+existence
+than
+any
+of
+the
+visible
+physical
+substances
+since
+life
+can
+continue
+but
+a
+few
+moments
+out
+of
+it
+Nitrogen
+gas
+constituting
+the
+greater
+bulk
+of
+the
+atmosphere
+enters
+vitally
+into
+vegetable
+and
+animal
+growth
+and
+existence
+Hydrogen
+and
+oxygen
+gases
+are
+constantly
+changing
+from
+a
+state
+of
+invisible
+vapor
+to
+visible
+and
+solid
+form
+Carbon
+offers
+another
+example
+of
+similar
+transformation
+Sounds
+odors
+the
+thermic
+law
+of
+heat
+and
+cold
+and
+multitudes
+of
+other
+phenomena
+ranging
+from
+the
+infinitesimal
+electron
+to
+the
+energy
+which
+moves
+the
+planets
+and
+suns
+are
+all
+intangible
+invisible
+factors
+All
+activities
+whether
+chemical
+vital
+or
+mental
+operate
+invisibly
+as
+observed
+in
+chemical
+affinity
+in
+energy
+in
+plant
+life
+in
+animal
+life
+in
+intelligence
+and
+mentalization
+So
+in
+every
+department
+of
+our
+manifest
+physical
+nature
+it
+is
+evident
+that
+all
+elements
+have
+their
+root
+and
+permanence
+in
+the
+invisible
+The
+invisible
+is
+the
+source
+of
+the
+visible
+Thus
+when
+we
+realize
+that
+the
+objective
+is
+only
+a
+combination
+of
+invisible
+substances
+and
+forces
+the
+existence
+of
+an
+unseen
+world
+is
+readily
+comprehensible
+Considering
+the
+wonderful
+advancement
+of
+science
+into
+the
+field
+of
+nature
+s
+finer
+forces
+it
+is
+inconceivable
+that
+any
+thinking
+mind
+can
+fail
+to
+recognize
+the
+rationale
+of
+the
+independent
+existence
+of
+the
+human
+spirit
+apart
+for
+the
+physical
+body
+No
+subject
+has
+been
+better
+authenticated
+through
+the
+ages
+and
+in
+all
+literature
+than
+that
+of
+spirit
+existence
+and
+a
+future
+life
+Fiske
+the
+historian
+says
+Among
+all
+races
+of
+men
+as
+far
+as
+can
+now
+be
+determined
+ancestor
+worship
+contact
+with
+the
+spirits
+of
+the
+departed
+was
+the
+earliest
+form
+of
+worship
+prevailing
+in
+Africa
+Asia
+China
+Japan
+among
+the
+Aryans
+of
+Europe
+and
+the
+American
+Indian
+tribes
+Allen
+in
+his
+History
+of
+Civilization
+writes
+Rude
+tribes
+the
+world
+over
+are
+found
+to
+have
+ideas
+of
+a
+human
+soul
+a
+spirit
+world
+and
+generally
+a
+belief
+in
+immortality
+Savages
+consider
+the
+next
+life
+simply
+a
+continuation
+of
+this
+they
+also
+recognize
+an
+other
+self
+which
+has
+mysterious
+powers
+Death
+is
+the
+abandoning
+of
+the
+body
+by
+this
+mysterious
+other
+self
+which
+is
+conceived
+of
+as
+still
+existing
+in
+the
+near
+neighborhood
+The
+loves
+and
+hates
+of
+this
+world
+are
+transferred
+to
+the
+spirit
+world
+Confucius
+said
+Bemoan
+not
+the
+departed
+with
+excessive
+grief
+The
+dead
+are
+devoted
+and
+faithful
+friends
+they
+are
+ever
+associated
+with
+us
+The
+writers
+of
+classic
+times
+Socrates
+Herodotus
+Sophocles
+Euripides
+Plato
+Aristotle
+Horace
+Virgil
+Plutarch
+Josephus
+Maximus
+of
+Tyre
+repeatedly
+refer
+to
+spirit
+existence
+as
+a
+well
+known
+fact
+Cicero
+wrote
+Is
+not
+almost
+all
+heaven
+filled
+with
+the
+human
+Those
+very
+gods
+themselves
+had
+their
+original
+here
+below
+and
+ascended
+from
+hence
+into
+heaven
+That
+early
+Christianity
+recognized
+spirits
+is
+too
+well
+authenticated
+in
+the
+writings
+of
+St
+Anthony
+Tertullian
+Origen
+and
+their
+contemporaries
+to
+require
+emphasis
+The
+Bible
+is
+replete
+with
+references
+to
+spirit
+existence
+We
+also
+are
+compassed
+about
+with
+so
+great
+a
+cloud
+of
+witnesses
+Heb
+Beloved
+believe
+not
+every
+spirit
+but
+try
+the
+spirits
+whether
+they
+are
+of
+God
+John
+The
+spirits
+of
+just
+men
+made
+perfect
+Heb
+There
+is
+a
+natural
+body
+and
+there
+is
+a
+spiritual
+body
+First
+that
+which
+is
+natural
+and
+afterward
+that
+which
+is
+spiritual
+Cor
+Many
+other
+similar
+biblical
+citations
+might
+be
+given
+Swedenborg
+contributed
+volumes
+on
+this
+subject
+Dr
+Samuel
+Johnson
+said
+I
+do
+not
+believe
+in
+spirits
+I
+have
+seen
+too
+many
+of
+them
+John
+Wesley
+wrote
+in
+The
+Invisible
+World
+It
+is
+true
+that
+the
+English
+in
+general
+indeed
+most
+of
+the
+men
+of
+learning
+in
+Europe
+have
+given
+up
+all
+accounts
+of
+witches
+and
+apparitions
+as
+mere
+old
+wives
+fables
+I
+am
+sorry
+for
+it
+and
+I
+willingly
+take
+this
+opportunity
+to
+offer
+my
+solemn
+protest
+against
+this
+violent
+compliment
+which
+so
+many
+that
+believe
+in
+the
+Bible
+pay
+to
+those
+who
+do
+not
+believe
+it
+Such
+belief
+is
+in
+direct
+opposition
+not
+only
+to
+the
+Bible
+but
+to
+the
+suffrage
+of
+the
+wisest
+and
+best
+of
+men
+in
+all
+ages
+and
+nations
+They
+well
+know
+that
+the
+giving
+up
+of
+witchcraft
+is
+in
+effect
+giving
+up
+the
+Bible
+That
+psychic
+phenomena
+occurred
+at
+the
+house
+of
+Mr
+Samuel
+Wesley
+father
+of
+Rev
+John
+Wesley
+at
+Epworth
+and
+continued
+with
+noises
+and
+disturbances
+of
+various
+kinds
+for
+many
+months
+is
+well
+known
+Shakespeare
+Milton
+Wordsworth
+Tennyson
+Longfellow
+and
+many
+other
+poets
+wrote
+with
+profound
+understanding
+of
+the
+continued
+existence
+of
+man
+We
+are
+all
+familiar
+with
+the
+convincing
+results
+of
+the
+psychical
+research
+work
+of
+modern
+scientists
+philosophers
+ministers
+physicians
+psychologists
+and
+other
+investigators
+Prof
+Crookes
+Alfred
+Wallace
+Sir
+Oliver
+Lodge
+Sir
+Arthur
+Conan
+Doyle
+Rev
+R
+J
+Campbell
+Archdeacon
+Colley
+Rev
+Newton
+Rev
+Savage
+W
+T
+Stead
+Camille
+Flammarion
+Dr
+Baraduc
+Dr
+Janet
+Prof
+Richet
+Cesare
+Lombroso
+Dr
+Hodgson
+Dr
+I
+K
+Funk
+Prof
+James
+Prof
+Hyslop
+Dr
+Carrington
+and
+many
+others
+Dr
+Thomas
+J
+Hudson
+author
+of
+The
+Law
+of
+Psychic
+Phenomena
+wrote
+The
+man
+who
+denies
+the
+phenomena
+of
+spiritualism
+today
+is
+not
+entitled
+to
+be
+called
+a
+skeptic
+he
+is
+simply
+ignorant
+The
+Rev
+Dr
+George
+M
+Searle
+Rector
+of
+the
+Catholic
+Church
+of
+St
+Paul
+the
+Apostle
+New
+York
+City
+said
+The
+reality
+of
+the
+existence
+of
+spirits
+in
+modern
+spiritism
+is
+no
+longer
+an
+open
+question
+even
+among
+scientific
+men
+who
+have
+examined
+the
+subject
+Any
+one
+who
+considers
+the
+manifestation
+of
+them
+as
+mere
+humbug
+trickery
+or
+delusion
+is
+simply
+not
+up
+to
+date
+In
+our
+times
+no
+one
+denies
+the
+real
+existence
+of
+spiritualistic
+facts
+except
+a
+few
+who
+live
+with
+their
+feet
+on
+the
+earth
+and
+their
+brains
+in
+the
+moon
+wrote
+G
+G
+Franco
+S
+J
+in
+Civilta
+Cattolica
+Spiritistic
+phenomena
+are
+external
+facts
+which
+fall
+within
+the
+range
+of
+the
+senses
+and
+can
+easily
+be
+observed
+by
+all
+and
+when
+such
+facts
+are
+attested
+by
+so
+many
+well
+informed
+and
+credible
+witnesses
+it
+is
+useless
+as
+well
+as
+foolish
+and
+ridiculous
+to
+fight
+against
+proved
+evidence
+The
+facts
+remain
+assured
+even
+for
+reasonable
+men
+The
+spiritual
+world
+and
+the
+physical
+world
+are
+constantly
+intermingling
+the
+spiritual
+plane
+is
+not
+a
+vague
+intangibility
+but
+is
+real
+and
+natural
+a
+vast
+zone
+of
+refined
+substance
+of
+activity
+and
+progress
+and
+life
+there
+is
+a
+continuation
+of
+life
+in
+the
+physical
+world
+On
+the
+physical
+plane
+of
+expression
+the
+soul
+obtains
+knowledge
+through
+experience
+and
+contact
+with
+objective
+things
+and
+intelligence
+finds
+itself
+by
+manifesting
+through
+physical
+organs
+in
+the
+spiritual
+plane
+progression
+of
+the
+individual
+continues
+the
+mind
+unfolding
+along
+lines
+of
+reason
+through
+spontaneity
+of
+service
+the
+attainment
+and
+appreciation
+of
+high
+ideals
+and
+an
+ever
+broadening
+conception
+of
+life
+s
+purpose
+The
+change
+called
+death
+the
+word
+is
+a
+misnomer
+universally
+regarded
+with
+gloomy
+fear
+occurs
+so
+naturally
+and
+simply
+that
+the
+greater
+number
+after
+passing
+out
+of
+the
+physical
+are
+not
+aware
+that
+the
+transition
+has
+been
+made
+and
+having
+no
+knowledge
+of
+a
+spiritual
+life
+they
+are
+totally
+unconscious
+of
+having
+passed
+into
+another
+state
+of
+being
+Deprived
+of
+their
+physical
+sense
+organs
+they
+are
+shut
+out
+from
+the
+physical
+light
+and
+lacking
+a
+mental
+perception
+of
+the
+high
+purpose
+of
+existence
+these
+individuals
+are
+spiritually
+blind
+and
+find
+themselves
+in
+a
+twilight
+condition
+the
+outer
+darkness
+mentioned
+in
+the
+Bible
+and
+linger
+in
+the
+realm
+known
+as
+the
+Earth
+Sphere
+Death
+does
+not
+make
+a
+saint
+of
+a
+sinner
+nor
+a
+sage
+of
+a
+fool
+The
+mentality
+is
+the
+same
+as
+before
+and
+individuals
+carry
+with
+them
+their
+old
+desires
+habits
+dogmas
+faulty
+teachings
+indifference
+or
+disbelief
+in
+a
+future
+life
+As
+a
+man
+thinketh
+in
+his
+heart
+so
+is
+he
+Prov
+Assuming
+spirit
+forms
+which
+are
+the
+result
+of
+their
+thought
+life
+on
+earth
+millions
+remain
+for
+a
+time
+in
+the
+earth
+sphere
+and
+often
+in
+the
+environment
+of
+their
+earth
+lives
+still
+held
+by
+their
+habits
+or
+interests
+Where
+your
+treasure
+is
+there
+will
+your
+heart
+be
+also
+Matt
+Those
+who
+have
+progressed
+to
+the
+higher
+spirit
+world
+ever
+endeavor
+to
+enlighten
+these
+earthbound
+spirits
+but
+the
+latter
+due
+to
+preconceptions
+concerning
+the
+hereafter
+labor
+under
+the
+delusion
+that
+the
+departed
+are
+dead
+or
+are
+ghosts
+and
+often
+refuse
+to
+recognize
+their
+friends
+or
+to
+realize
+their
+own
+condition
+Many
+are
+in
+a
+state
+of
+heavy
+sleep
+others
+are
+lost
+or
+confused
+troubled
+minds
+may
+be
+haunted
+by
+fear
+of
+the
+strange
+darkness
+those
+conscience
+stricken
+suffer
+in
+anguish
+or
+remorse
+for
+their
+earth
+conduct
+some
+impelled
+by
+selfish
+or
+evil
+inclinations
+seek
+an
+outlet
+for
+their
+tendencies
+remaining
+in
+this
+condition
+until
+these
+destructive
+desires
+are
+outgrown
+when
+the
+soul
+cries
+out
+for
+understanding
+and
+light
+and
+progressed
+spirits
+are
+able
+to
+reach
+them
+and
+aid
+them
+Lacking
+physical
+bodies
+through
+which
+to
+carry
+out
+earthly
+propensities
+many
+discarnated
+intelligences
+are
+attracted
+to
+the
+magnetic
+light
+which
+emanates
+from
+mortals
+and
+consciously
+or
+unconsciously
+attach
+themselves
+to
+these
+magnetic
+auras
+finding
+an
+avenue
+of
+expression
+through
+influencing
+obsessing
+or
+possessing
+human
+beings
+Such
+obtruding
+spirits
+influence
+susceptible
+sensitives
+with
+their
+thoughts
+impart
+their
+own
+emotions
+to
+them
+weaken
+their
+will
+power
+and
+often
+control
+their
+actions
+producing
+great
+distress
+mental
+confusion
+and
+suffering
+These
+earthbound
+spirits
+are
+the
+supposed
+devils
+of
+all
+ages
+devils
+of
+human
+origin
+by
+products
+of
+human
+selfishness
+false
+teachings
+and
+ignorance
+thrust
+blindly
+into
+a
+spirit
+existence
+and
+held
+there
+in
+a
+bondage
+of
+ignorance
+The
+influence
+of
+these
+discarnated
+entities
+is
+the
+cause
+of
+many
+of
+the
+inexplicable
+and
+obscure
+events
+of
+earth
+life
+and
+of
+a
+large
+part
+of
+the
+world
+s
+misery
+Purity
+of
+life
+and
+motive
+or
+high
+intellectuality
+do
+not
+necessarily
+offer
+protection
+from
+obsession
+recognition
+and
+knowledge
+of
+these
+problems
+are
+the
+only
+safeguards
+The
+physical
+conditions
+permitting
+this
+impingement
+are
+varied
+such
+encroachment
+is
+often
+due
+to
+a
+natural
+and
+prediposed
+susceptibility
+a
+depleted
+nervous
+system
+or
+sudden
+shock
+Physical
+derangements
+are
+conducive
+to
+obsession
+for
+when
+the
+vital
+forces
+are
+lowered
+less
+resistance
+is
+offered
+and
+intruding
+spirits
+are
+allowed
+easy
+access
+although
+often
+neither
+mortal
+nor
+spirit
+is
+conscious
+of
+the
+presence
+of
+the
+other
+This
+encroachment
+alters
+the
+characteristics
+of
+the
+sensitive
+resulting
+in
+a
+seemingly
+changed
+personality
+sometimes
+simulating
+multiple
+or
+dissociated
+personalities
+and
+frequently
+causes
+apparent
+insanity
+varying
+in
+degree
+from
+a
+simple
+mental
+aberration
+to
+and
+including
+all
+types
+of
+dementia
+hysteria
+epilepsy
+melancholia
+shell
+shock
+kleptomania
+idiocy
+religious
+and
+suicidal
+mania
+as
+well
+as
+amnesia
+psychic
+invalidism
+dipsomania
+immorality
+functional
+bestiality
+atrocities
+and
+other
+forms
+of
+criminality
+Humanity
+is
+surrounded
+by
+the
+thought
+influence
+of
+millions
+of
+discarnate
+beings
+who
+have
+not
+yet
+arrived
+at
+a
+full
+realization
+of
+life
+s
+higher
+purposes
+A
+recognition
+of
+this
+fact
+accounts
+for
+a
+great
+portion
+of
+unbidden
+thoughts
+emotions
+strange
+forebodings
+gloomy
+moods
+irritabilities
+unreasonable
+impulses
+irrational
+outbursts
+of
+temper
+uncontrollable
+infatuations
+and
+countless
+other
+mental
+vagaries
+The
+records
+of
+spirit
+obsession
+and
+possession
+extend
+from
+remotest
+antiquity
+to
+modern
+times
+Dr
+Tyler
+the
+noted
+English
+Anthropologist
+in
+his
+Primitive
+Culture
+says
+It
+is
+not
+too
+much
+to
+assert
+that
+the
+doctrine
+of
+demoniacal
+possession
+is
+kept
+up
+substantially
+the
+same
+theory
+to
+account
+for
+substantially
+the
+same
+facts
+by
+half
+the
+human
+race
+who
+thus
+stand
+as
+consistent
+representatives
+of
+their
+forefathers
+back
+in
+the
+primitive
+antiquity
+In
+Muller
+s
+Urreligionen
+we
+find
+The
+general
+belief
+of
+the
+barbaric
+world
+today
+is
+that
+such
+attacks
+as
+epilepsy
+hysteria
+delirium
+idiocy
+and
+madness
+are
+caused
+by
+some
+demon
+gaining
+control
+of
+the
+body
+Homer
+referred
+repeatedly
+to
+demons
+and
+said
+A
+sick
+man
+pining
+away
+is
+one
+upon
+whom
+an
+evil
+spirit
+has
+gazed
+Plato
+held
+that
+demons
+obsessed
+mortals
+Socrates
+speaks
+directly
+of
+demons
+influencing
+the
+possessed
+insane
+Plutarch
+wrote
+Certain
+tyrannical
+demons
+require
+for
+their
+enjoyment
+some
+soul
+still
+incarnate
+being
+unable
+to
+satisfy
+their
+passions
+in
+any
+other
+way
+incite
+to
+sedition
+lust
+wars
+of
+conquest
+and
+thus
+get
+what
+they
+lust
+for
+Josephus
+says
+Demons
+are
+the
+spirits
+of
+wicked
+men
+Obsessing
+or
+possessing
+spirits
+are
+frequently
+mentioned
+both
+in
+the
+Old
+and
+New
+Testaments
+In
+I
+Samuel
+we
+read
+David
+took
+an
+harp
+and
+played
+with
+his
+hand
+so
+Saul
+was
+refreshed
+and
+was
+well
+and
+the
+evil
+spirit
+departed
+from
+him
+So
+common
+was
+the
+belief
+in
+spirits
+and
+spirit
+obsession
+in
+the
+time
+of
+the
+apostles
+that
+the
+ability
+to
+cast
+out
+evil
+spirits
+was
+considered
+one
+of
+the
+most
+important
+signs
+of
+genuine
+discipleship
+and
+it
+must
+be
+admitted
+that
+a
+considerable
+portion
+of
+the
+work
+accredited
+to
+Jesus
+was
+the
+casting
+out
+of
+demons
+A
+few
+quotations
+from
+the
+New
+Testament
+will
+suffice
+Jesus
+gave
+his
+twelve
+disciples
+power
+against
+unclean
+spirits
+to
+cast
+them
+out
+Matt
+Jesus
+preached
+and
+cast
+out
+devils
+Mark
+A
+certain
+mad
+which
+had
+devils
+long
+time
+Jesus
+had
+commanded
+the
+unclean
+spirit
+to
+come
+out
+of
+the
+man
+He
+that
+was
+possessed
+of
+the
+devils
+was
+healed
+Luke
+Vexed
+with
+unclean
+spirits
+Luke
+The
+evil
+spirits
+went
+out
+of
+them
+Acts
+Master
+I
+have
+brought
+unto
+thee
+my
+son
+which
+hath
+a
+dumb
+spirit
+And
+he
+asked
+his
+father
+How
+long
+is
+it
+ago
+since
+this
+came
+unto
+him
+And
+he
+said
+Of
+a
+child
+Jesus
+rebuked
+the
+foul
+spirit
+saying
+unto
+him
+Thou
+deaf
+and
+dumb
+spirit
+I
+charge
+thee
+come
+out
+of
+him
+and
+enter
+no
+more
+into
+him
+And
+the
+spirit
+cried
+and
+rent
+him
+sore
+and
+came
+out
+of
+him
+and
+he
+was
+as
+one
+dead
+insomuch
+that
+many
+said
+He
+is
+dead
+But
+Jesus
+took
+him
+by
+the
+hand
+and
+lifted
+him
+up
+and
+he
+arose
+Mark
+Similar
+occurrences
+are
+not
+at
+all
+uncommon
+in
+psycho
+pathological
+research
+Among
+the
+writers
+of
+early
+Christianity
+we
+find
+that
+St
+Anthony
+says
+We
+walk
+in
+the
+midst
+of
+demons
+who
+give
+us
+evil
+thoughts
+and
+also
+in
+the
+midst
+of
+good
+angels
+When
+these
+latter
+are
+especially
+present
+there
+is
+no
+disturbance
+no
+contention
+no
+clamor
+but
+something
+so
+calm
+and
+gentle
+it
+fills
+the
+soul
+with
+gladness
+The
+Lord
+is
+my
+witness
+that
+after
+many
+tears
+and
+fastings
+I
+have
+been
+surrounded
+by
+a
+band
+of
+angels
+and
+joyfully
+joined
+in
+singing
+with
+them
+Tertullian
+with
+authority
+challenged
+the
+heathery
+to
+a
+trial
+of
+superiority
+in
+the
+matter
+of
+casting
+out
+demons
+Minucius
+Felix
+a
+Roman
+advocate
+and
+apologist
+wrote
+in
+Octavius
+There
+are
+some
+insincere
+and
+vagrant
+spirits
+degraded
+from
+their
+heavenly
+vigor
+who
+cease
+not
+now
+that
+they
+are
+ruined
+themselves
+to
+ruin
+others
+Dr
+Godfrey
+Raupert
+of
+London
+who
+several
+years
+ago
+was
+especially
+delegated
+by
+Pope
+Pius
+X
+to
+lecture
+to
+Catholic
+audiences
+in
+America
+on
+Spiritualism
+said
+in
+substance
+It
+is
+no
+longer
+possible
+to
+put
+the
+the
+subject
+of
+psychic
+phenomena
+aside
+The
+scientific
+men
+all
+over
+the
+world
+have
+recognized
+spiritism
+as
+a
+definite
+and
+real
+power
+and
+to
+shelve
+it
+is
+a
+dangerous
+policy
+Consequently
+the
+Pope
+has
+asked
+me
+to
+tell
+Catholics
+the
+attitude
+to
+take
+toward
+the
+subject
+The
+Church
+admits
+the
+reality
+of
+these
+spiritistic
+phenomena
+and
+their
+external
+intelligences
+in
+fact
+it
+has
+always
+admitted
+their
+reality
+The
+problem
+at
+present
+is
+to
+discover
+the
+nature
+of
+the
+intelligence
+We
+are
+now
+on
+the
+borderland
+of
+new
+discoveries
+which
+may
+revolutionize
+the
+world
+It
+is
+not
+the
+time
+yet
+for
+an
+explanation
+of
+all
+the
+phenomena
+We
+must
+suspend
+our
+judgment
+until
+the
+subject
+is
+better
+known
+The
+study
+of
+spiritism
+is
+a
+new
+one
+and
+therefore
+dangerous
+A
+partial
+knowledge
+of
+the
+subject
+may
+cause
+grave
+dangers
+Resulting
+in
+obsession
+or
+possession
+There
+is
+no
+doubt
+about
+the
+fact
+of
+diabolical
+obsessions
+in
+the
+olden
+time
+That
+the
+Church
+Catholic
+recognizes
+the
+possibilities
+is
+evidenced
+by
+the
+rules
+prepared
+for
+exorcising
+is
+the
+quoted
+statement
+of
+Monsignor
+Lavelle
+Rector
+of
+St
+Patrick
+s
+Cathedral
+New
+York
+Julian
+Hawthorne
+wrote
+in
+one
+of
+the
+leading
+newspapers
+Thousands
+of
+evil
+minded
+and
+evil
+acting
+men
+and
+women
+die
+every
+day
+What
+becomes
+of
+their
+souls
+or
+spirits
+They
+want
+to
+get
+back
+here
+the
+increasing
+boldness
+and
+frequency
+with
+which
+they
+take
+advantage
+of
+their
+opportunities
+is
+illustrated
+in
+many
+ways
+Two
+acts
+of
+defense
+are
+open
+to
+us
+We
+may
+stop
+the
+source
+of
+supply
+of
+these
+undesirable
+visitors
+and
+we
+may
+close
+the
+doors
+Dr
+Axel
+Gustafson
+who
+publicly
+acclaimed
+his
+views
+regarding
+the
+fact
+of
+spirit
+obsession
+in
+quoting
+cases
+which
+had
+come
+to
+his
+attention
+said
+The
+spirits
+of
+the
+revengeful
+have
+power
+after
+death
+to
+enter
+into
+and
+possess
+the
+living
+under
+certain
+conditions
+Prof
+Herbert
+L
+Stetson
+of
+Kalamazoo
+College
+Michigan
+stated
+in
+a
+lecture
+at
+the
+University
+of
+Chicago
+Demon
+obsession
+is
+no
+myth
+illness
+is
+often
+due
+to
+demoniacal
+possession
+Belief
+in
+demons
+is
+widespread
+I
+often
+see
+the
+spirits
+who
+cause
+insanity
+is
+the
+statement
+of
+Dr
+E
+N
+Webster
+of
+the
+mental
+section
+of
+the
+American
+Medical
+Association
+At
+times
+I
+even
+hear
+their
+voices
+Insane
+persons
+who
+are
+spoken
+of
+as
+hopelessly
+insane
+are
+frequently
+lost
+under
+the
+overwhelming
+control
+of
+a
+spirit
+or
+crowd
+of
+spirits
+We
+frequently
+find
+by
+post
+mortem
+examination
+that
+no
+physical
+disorder
+exists
+in
+the
+brain
+or
+nervous
+system
+of
+such
+persons
+Prof
+William
+James
+wrote
+in
+Proceedings
+S
+P
+R
+That
+the
+demon
+theory
+will
+have
+its
+innings
+again
+is
+to
+my
+mind
+absolutely
+certain
+One
+has
+to
+be
+scientific
+indeed
+to
+be
+blind
+and
+ignorant
+enough
+to
+suspect
+no
+such
+possibility
+Prof
+James
+H
+Hyslop
+while
+editor
+of
+the
+Journal
+of
+the
+American
+Society
+for
+Psychical
+Research
+wrote
+There
+is
+growing
+evidence
+of
+the
+fact
+of
+obsession
+which
+lies
+at
+the
+basis
+of
+much
+insanity
+and
+can
+be
+cured
+The
+medical
+world
+will
+have
+to
+wake
+up
+and
+give
+attention
+to
+this
+problem
+or
+materia
+medica
+will
+lose
+control
+of
+the
+subject
+In
+one
+of
+Prof
+Hyslop
+s
+latest
+books
+Contact
+with
+the
+Other
+World
+we
+find
+the
+following
+The
+existence
+of
+evil
+spirits
+affecting
+the
+living
+is
+as
+clearly
+taught
+in
+the
+New
+Testament
+and
+implied
+in
+the
+Old
+Testament
+as
+any
+doctrine
+there
+expounded
+The
+term
+obsession
+is
+employed
+by
+psychic
+researchers
+to
+denote
+the
+abnormal
+influence
+of
+spirits
+on
+the
+living
+The
+cures
+effected
+have
+required
+much
+time
+and
+patience
+the
+use
+of
+psychotherapeutics
+of
+an
+unusual
+kind
+and
+the
+employment
+of
+psychics
+to
+get
+into
+contact
+with
+the
+obsessing
+agents
+and
+thus
+to
+release
+the
+hold
+which
+such
+agents
+have
+or
+to
+educate
+them
+to
+voluntary
+abandonment
+of
+their
+persecutions
+Every
+single
+case
+of
+dissociation
+and
+paranoia
+to
+which
+I
+have
+applied
+cross
+reference
+has
+yielded
+to
+the
+method
+and
+proved
+the
+existence
+of
+foreign
+agencies
+complicated
+with
+the
+symptoms
+of
+mental
+or
+physical
+deterioration
+It
+is
+high
+time
+to
+prosecute
+experiments
+on
+a
+large
+scale
+in
+a
+field
+that
+promises
+to
+have
+as
+much
+practical
+value
+as
+any
+application
+of
+the
+scalpel
+and
+the
+microscope
+In
+Modern
+Psychical
+Phenomena
+Dr
+Hereward
+Carrington
+states
+It
+is
+evident
+that
+spiritual
+obsession
+is
+at
+least
+a
+possibility
+which
+modern
+science
+can
+no
+longer
+disregard
+while
+there
+are
+many
+striking
+facts
+in
+its
+support
+This
+being
+so
+its
+study
+becomes
+imperative
+not
+only
+from
+the
+academic
+viewpoint
+but
+also
+because
+of
+the
+fact
+that
+hundreds
+and
+perhaps
+thousands
+of
+individuals
+are
+at
+the
+present
+moment
+suffering
+in
+this
+manner
+and
+their
+relief
+demands
+some
+immediate
+investigation
+and
+cure
+Once
+grant
+the
+theoretical
+possibility
+of
+actual
+obsession
+and
+a
+whole
+vast
+field
+of
+research
+and
+investigations
+is
+opened
+up
+before
+us
+which
+demands
+all
+the
+care
+skill
+and
+patience
+which
+modern
+enlightenment
+and
+psychological
+understanding
+can
+furnish
+Never
+before
+in
+the
+history
+of
+medical
+science
+has
+there
+been
+such
+widespread
+interest
+by
+the
+public
+at
+large
+as
+well
+as
+by
+medical
+men
+and
+public
+officials
+in
+the
+subject
+of
+the
+cause
+treatment
+and
+cure
+of
+nervous
+and
+mental
+diseases
+Statistics
+show
+that
+insanity
+is
+increasing
+with
+alarming
+rapidity
+everywhere
+yet
+medical
+experts
+differ
+widely
+as
+to
+the
+causes
+of
+mental
+deterioration
+and
+science
+is
+not
+yet
+in
+possession
+of
+knowledge
+of
+the
+exact
+etiology
+of
+functional
+insanity
+The
+whole
+world
+will
+go
+mad
+before
+long
+declared
+Dr
+Winslow
+of
+England
+The
+greater
+number
+of
+neurologists
+and
+alienists
+entertain
+the
+belief
+that
+the
+active
+and
+underlying
+cause
+of
+insanity
+has
+its
+origin
+within
+the
+deranged
+nervous
+system
+but
+very
+little
+as
+yet
+is
+actually
+known
+of
+the
+true
+cause
+Dr
+W
+M
+L
+Coplin
+Director
+of
+the
+Bureau
+of
+Health
+and
+Charities
+Philadelphia
+Pennsylvania
+said
+Insanity
+in
+most
+cases
+is
+unaccompanied
+by
+any
+perceptible
+change
+in
+the
+brain
+structure
+The
+brain
+of
+the
+patient
+when
+examined
+under
+a
+microscope
+shows
+absolutely
+nothing
+which
+differs
+in
+any
+way
+from
+the
+appearance
+of
+the
+brain
+of
+the
+perfectly
+sane
+person
+It
+is
+therefore
+evident
+that
+the
+insanity
+might
+be
+due
+to
+toxemia
+the
+effect
+of
+some
+subtle
+organism
+in
+the
+nature
+of
+bacilla
+Something
+causes
+insanity
+but
+what
+it
+is
+we
+do
+not
+yet
+know
+Dr
+Britton
+D
+Evans
+Superintendent
+of
+the
+Morris
+Plains
+New
+Jersey
+Insane
+Asylum
+stated
+Brain
+tumor
+or
+brain
+fever
+may
+not
+affect
+the
+mind
+A
+man
+may
+have
+trouble
+of
+the
+brain
+and
+still
+have
+a
+normal
+mind
+Dr
+Th
+Ziehen
+a
+noted
+German
+alienist
+and
+an
+authority
+on
+hysteria
+wrote
+For
+many
+functional
+neuroses
+there
+is
+as
+yet
+no
+accurate
+limitation
+and
+definition
+As
+pathological
+anatomy
+does
+not
+aid
+us
+no
+uniform
+and
+exclusive
+cause
+for
+hysteria
+can
+be
+demonstrated
+Dr
+William
+Hanna
+Thomson
+physician
+to
+the
+Roosevelt
+Hospital
+and
+Professor
+of
+the
+Practice
+of
+Medicine
+and
+Diseases
+of
+the
+Nervous
+System
+New
+York
+University
+Medical
+College
+in
+referring
+to
+Tuke
+s
+Dictionary
+of
+Psychological
+Medicine
+asserted
+that
+The
+contributors
+to
+this
+great
+encyclopedia
+are
+from
+the
+most
+eminent
+professors
+experts
+and
+superintendents
+of
+insane
+asylums
+in
+Great
+Britain
+the
+United
+States
+France
+Germany
+Hungary
+Belgium
+Denmark
+Switzerland
+and
+Russia
+In
+the
+articles
+by
+the
+writers
+on
+kleptomania
+dipsomania
+chronic
+mania
+etc
+there
+is
+not
+a
+word
+about
+the
+pathological
+anatomy
+because
+none
+can
+be
+found
+Just
+so
+it
+is
+in
+the
+article
+on
+melancholia
+puerperal
+insanity
+katatonia
+circular
+insanity
+homicidal
+insanity
+or
+epileptic
+insanity
+in
+none
+of
+these
+is
+there
+a
+word
+about
+pathological
+anatomy
+for
+the
+sufficient
+reason
+that
+not
+one
+of
+these
+forms
+of
+insanity
+shows
+any
+pathological
+or
+diseased
+condition
+in
+the
+brain
+different
+from
+the
+sound
+brain
+of
+a
+healthy
+man
+killed
+in
+an
+accident
+He
+also
+said
+It
+is
+high
+time
+that
+we
+now
+look
+in
+the
+direction
+of
+toxemia
+or
+blood
+poisoning
+for
+the
+explanation
+of
+the
+insanities
+which
+produce
+no
+changes
+whatever
+in
+the
+brain
+Recent
+announcement
+was
+made
+that
+a
+large
+percentage
+of
+cures
+reported
+by
+the
+New
+Jersey
+State
+Hospital
+for
+the
+Insane
+at
+Trenton
+were
+effected
+by
+the
+removal
+of
+diseased
+teeth
+tonsils
+or
+affected
+organs
+In
+a
+resume
+of
+the
+Trenton
+method
+Dr
+R
+S
+Copeland
+wrote
+The
+hypothesis
+upon
+which
+this
+treatment
+is
+founded
+is
+that
+insanity
+is
+a
+toxemia
+or
+poisoning
+due
+to
+germ
+infection
+in
+some
+part
+of
+the
+body
+If
+this
+is
+true
+it
+follows
+that
+removal
+of
+the
+infected
+tissue
+when
+the
+case
+has
+not
+gone
+too
+far
+will
+be
+followed
+by
+disappearance
+of
+the
+mental
+disturbance
+When
+statistics
+compiled
+by
+the
+United
+States
+Government
+as
+well
+as
+by
+others
+show
+that
+the
+increase
+in
+the
+number
+of
+the
+insane
+is
+proportionately
+greater
+than
+the
+increase
+of
+the
+general
+population
+it
+seems
+incongruous
+to
+credit
+decayed
+teeth
+and
+diseased
+tonsils
+as
+being
+primary
+causes
+of
+mental
+unbalance
+at
+this
+time
+when
+dental
+and
+surgical
+attention
+is
+so
+general
+whereas
+the
+facts
+are
+that
+when
+dentistry
+was
+little
+known
+and
+practised
+and
+people
+went
+about
+with
+all
+conditions
+of
+decayed
+teeth
+insanity
+was
+less
+prevalent
+than
+now
+Without
+attempting
+to
+discredit
+the
+Trenton
+reports
+it
+may
+be
+stated
+that
+our
+experience
+has
+shown
+that
+in
+many
+cases
+of
+mental
+derangement
+although
+the
+patient
+bad
+badly
+decayed
+teeth
+mental
+balance
+was
+fully
+restored
+by
+dislodging
+the
+obsessing
+spirit
+before
+any
+attention
+was
+given
+to
+the
+teeth
+Since
+it
+has
+been
+found
+that
+obsessing
+spirits
+are
+sensitive
+to
+pain
+I
+am
+constrained
+to
+suggest
+that
+such
+cures
+as
+announced
+by
+the
+Trenton
+Hospital
+may
+at
+least
+in
+part
+be
+due
+to
+the
+fact
+that
+intruding
+spirits
+were
+dislodged
+by
+dental
+or
+surgical
+interference
+To
+the
+investigator
+in
+Abnormal
+Psychology
+on
+the
+spiritistic
+hypothesis
+much
+of
+the
+symptomatology
+of
+the
+War
+Neurosis
+or
+shell
+shock
+excepting
+cases
+of
+malingering
+as
+recorded
+by
+Dr
+F
+E
+Williams
+Acting
+Medical
+Director
+National
+Committee
+for
+Mental
+Hygiene
+New
+York
+City
+suggests
+obsession
+or
+possession
+by
+spirits
+of
+dead
+soldiers
+unconscious
+of
+their
+transition
+as
+the
+exciting
+cause
+This
+is
+indicated
+by
+delirium
+hallucinations
+anxiety
+states
+functional
+heart
+disorders
+paralysis
+tremors
+gait
+disturbances
+convulsive
+movements
+pain
+anesthesia
+hyperesthesia
+blindness
+disorders
+of
+speech
+etc
+The
+spirit
+hypothesis
+regarding
+War
+Neurosis
+is
+further
+evidenced
+by
+the
+rapid
+recovery
+of
+patients
+under
+severe
+electrical
+treatment
+driving
+out
+obsessing
+entities
+as
+instituted
+by
+Dr
+Vincent
+who
+Dr
+Williams
+stated
+would
+cure
+in
+a
+few
+hours
+Patients
+that
+had
+been
+in
+the
+care
+of
+other
+psychiatrists
+for
+months
+and
+would
+have
+them
+walking
+about
+and
+climbing
+ladders
+The
+above
+theory
+is
+also
+favored
+by
+Dr
+Williams
+further
+statements
+that
+This
+neurosis
+is
+rare
+among
+prisoners
+who
+have
+been
+exposed
+to
+mechanical
+shock
+as
+well
+as
+among
+See
+Chap
+Patient
+Mrs
+SI
+Page
+Chap
+Patient
+Mrs
+R
+Page
+wounded
+exposed
+to
+mechanical
+shock
+Severe
+injury
+to
+the
+central
+nervous
+system
+and
+brain
+is
+not
+accompanied
+by
+symptoms
+found
+in
+shell
+shock
+Success
+attends
+the
+therapeutic
+measures
+employed
+for
+the
+psychological
+rather
+than
+the
+mechanical
+side
+Diagnosis
+should
+be
+made
+and
+treatment
+begun
+at
+once
+before
+the
+shell
+shock
+obsession
+becomes
+a
+fixed
+psycho
+neurosis
+Newspapers
+recently
+reported
+the
+case
+of
+a
+young
+man
+Frank
+James
+a
+boy
+thug
+of
+New
+York
+City
+who
+after
+a
+fall
+from
+a
+motorcycle
+when
+ten
+years
+old
+changed
+from
+a
+cheerful
+affectionate
+and
+obedient
+child
+into
+a
+surly
+insolent
+boy
+developing
+into
+a
+confirmed
+robber
+and
+criminal
+After
+several
+terms
+in
+the
+reformatory
+and
+five
+years
+in
+Sing
+Sing
+prison
+he
+was
+declared
+hopelessly
+insane
+and
+sent
+to
+the
+State
+Insane
+Asylum
+Frank
+James
+however
+escaped
+and
+when
+pursuers
+attempted
+his
+capture
+was
+hit
+on
+the
+head
+with
+a
+club
+and
+falling
+unconscious
+was
+taken
+to
+a
+hospital
+The
+next
+morning
+the
+boy
+awoke
+extraordinarily
+changed
+he
+was
+gentle
+and
+deferential
+showing
+no
+further
+indications
+of
+an
+unbalanced
+mind
+and
+from
+that
+time
+exhibited
+not
+the
+slightest
+impulse
+to
+commit
+crime
+of
+any
+kind
+The
+article
+concludes
+Just
+what
+happened
+to
+the
+mechanism
+of
+the
+boy
+s
+brain
+is
+not
+entirely
+understood
+by
+medical
+men
+How
+explain
+such
+a
+case
+on
+the
+toxemia
+theory
+Could
+a
+blow
+on
+the
+head
+eradicate
+the
+supposed
+toxemia
+and
+restore
+mental
+balance
+The
+simple
+explanation
+from
+our
+viewpoint
+would
+be
+that
+following
+the
+shock
+of
+the
+boy
+s
+fall
+an
+obsessing
+spirit
+criminal
+had
+taken
+control
+of
+the
+boy
+and
+that
+the
+blow
+from
+the
+club
+on
+the
+man
+s
+head
+with
+its
+accompanying
+pain
+caused
+the
+obsessing
+entity
+to
+become
+dislodged
+The
+success
+credited
+to
+hydrotherapy
+as
+practiced
+in
+institutions
+for
+the
+insane
+especially
+when
+a
+strong
+stream
+of
+water
+or
+a
+continuous
+bath
+is
+used
+can
+also
+be
+accounted
+for
+by
+the
+dislodgment
+of
+obsessing
+entities
+who
+object
+to
+the
+discomforts
+incident
+to
+such
+treatment
+Dr
+Prince
+in
+the
+Journal
+of
+Abnormal
+Psychology
+wrote
+If
+we
+are
+to
+establish
+sound
+principles
+underlying
+the
+mechanism
+of
+the
+mind
+we
+must
+correlate
+the
+findings
+of
+all
+methods
+of
+research
+experimental
+as
+well
+as
+clinical
+and
+give
+due
+consideration
+to
+the
+results
+obtained
+by
+all
+competent
+investigators
+After
+careful
+elimination
+of
+all
+superstitious
+notions
+and
+absurdities
+adherent
+to
+the
+subject
+of
+Normal
+and
+Abnormal
+Psychology
+excluding
+also
+febrile
+and
+idiopathic
+psychoses
+or
+idiosyncrasies
+as
+well
+as
+all
+neuro
+pathogenic
+psychoses
+there
+still
+remains
+a
+residuum
+of
+abnormality
+in
+a
+majority
+of
+cases
+of
+mental
+aberrations
+That
+alienists
+of
+renown
+and
+the
+foremost
+authorities
+widely
+disagree
+as
+to
+the
+cause
+of
+insanity
+is
+sufficient
+reason
+for
+thinking
+men
+to
+investigate
+any
+theory
+which
+promises
+to
+lead
+to
+results
+regardless
+of
+personal
+or
+popular
+prejudice
+The
+situation
+which
+confronts
+us
+is
+a
+serious
+one
+and
+nothing
+but
+the
+broadest
+toleration
+and
+liberality
+can
+cope
+with
+it
+Since
+insanity
+is
+chiefly
+a
+manifestation
+of
+mental
+or
+psychological
+disturbance
+a
+Psychic
+neurosis
+the
+symptomatology
+therefore
+should
+offer
+a
+guidance
+in
+ascertaining
+the
+etiology
+and
+assist
+as
+well
+in
+arriving
+at
+a
+solution
+of
+the
+mental
+pathology
+This
+proposition
+however
+necessitates
+not
+only
+research
+and
+study
+of
+Normal
+and
+Abnormal
+Psychology
+but
+in
+order
+to
+have
+a
+complete
+premise
+also
+implies
+the
+recognition
+of
+the
+duality
+of
+man
+matter
+and
+spirit
+physical
+and
+spiritual
+Insanity
+is
+not
+a
+stigma
+the
+public
+attitude
+toward
+this
+affliction
+should
+be
+one
+not
+of
+aversion
+but
+of
+understanding
+and
+a
+realization
+of
+the
+close
+inter
+relationship
+of
+the
+visible
+and
+invisible
+worlds
+Spirit
+obsession
+is
+a
+fact
+a
+perversion
+of
+a
+natural
+law
+and
+is
+amply
+demonstrable
+This
+has
+been
+proven
+hundreds
+of
+times
+by
+causing
+the
+supposed
+insanity
+or
+aberration
+to
+be
+temporarily
+transferred
+from
+the
+victim
+to
+a
+psychic
+sensitive
+who
+is
+trained
+for
+the
+purpose
+and
+by
+this
+method
+ascertain
+the
+cause
+of
+the
+psychosis
+to
+be
+an
+ignorant
+or
+mischievous
+spirit
+whose
+identity
+may
+frequently
+be
+verified
+By
+this
+method
+and
+without
+detriment
+to
+the
+psychic
+it
+has
+also
+proven
+possible
+to
+relieve
+the
+victim
+as
+well
+as
+release
+the
+entity
+from
+its
+condition
+of
+spiritual
+darkness
+through
+an
+explanation
+of
+the
+laws
+governing
+the
+spirit
+world
+which
+the
+experiences
+to
+follow
+will
+demonstrate
+Inter
+communication
+between
+the
+visible
+and
+invisible
+worlds
+is
+a
+natural
+privilege
+and
+is
+established
+through
+a
+person
+of
+a
+certain
+psychic
+constitution
+capable
+of
+acting
+as
+an
+intermediary
+through
+whom
+discarnate
+intelligences
+can
+readily
+come
+en
+rapport
+with
+the
+physical
+plane
+Of
+the
+various
+phases
+of
+contact
+the
+most
+valuable
+for
+research
+purposes
+is
+that
+of
+unconscious
+trance
+whereby
+direct
+communication
+may
+be
+established
+with
+the
+invisible
+world
+and
+the
+mental
+condition
+of
+discarnate
+intelligences
+either
+advanced
+or
+ignorant
+may
+be
+ascertained
+Ignorant
+psychic
+experimentation
+may
+prove
+injurious
+when
+dabbled
+in
+by
+those
+who
+neglect
+the
+necessary
+precautions
+and
+lack
+understanding
+of
+the
+laws
+which
+govern
+the
+subject
+just
+as
+ignorance
+and
+disregard
+of
+the
+laws
+governing
+everyday
+life
+may
+prove
+dangerous
+The
+misuse
+of
+a
+thing
+is
+no
+argument
+against
+its
+use
+Psychical
+Research
+belongs
+especially
+to
+the
+domain
+of
+science
+common
+sense
+and
+discrimination
+are
+essentials
+in
+all
+such
+experimental
+work
+as
+well
+as
+a
+thorough
+mastery
+of
+the
+laws
+involved
+Under
+these
+conditions
+scientific
+research
+becomes
+an
+invaluable
+factor
+in
+the
+investigation
+of
+Spiritual
+Science
+CHAPTER
+II
+Psychical
+Research
+PSYCHICAL
+Research
+contains
+elements
+of
+the
+greatest
+importance
+to
+humanity
+and
+has
+already
+become
+a
+vital
+factor
+in
+the
+social
+life
+of
+the
+world
+at
+large
+It
+is
+undoubtedly
+true
+however
+that
+the
+various
+branches
+of
+research
+are
+endeavoring
+to
+classify
+their
+findings
+on
+purely
+psychophysiological
+bases
+The
+Psycho
+Analyst
+advances
+the
+theory
+that
+many
+of
+the
+psychoses
+have
+their
+seat
+or
+origin
+in
+some
+psychic
+lesion
+or
+trauma
+either
+concealed
+or
+forgotten
+The
+Analytical
+Pychologist
+by
+mental
+measurements
+and
+intelligence
+tests
+is
+making
+the
+segregation
+and
+classification
+of
+mental
+defectives
+possible
+So
+also
+the
+Neurologist
+and
+Psychiatrist
+are
+diligently
+seeking
+to
+isolate
+the
+etiological
+factors
+in
+the
+various
+neuroses
+mental
+aberrations
+and
+insanities
+and
+to
+ascertain
+the
+best
+methods
+of
+prevention
+and
+treatment
+While
+these
+branches
+of
+research
+are
+loath
+to
+accept
+the
+hypothesis
+of
+discarnate
+intelligences
+as
+contributing
+exciting
+factors
+in
+many
+of
+the
+psychoses
+and
+aberrations
+they
+are
+nevertheless
+rendering
+important
+service
+in
+uncovering
+and
+bringing
+to
+light
+the
+unstable
+qualities
+in
+the
+neurotic
+the
+susceptible
+and
+those
+predisposed
+to
+mental
+unbalance
+Psychical
+Research
+presents
+two
+general
+phases
+for
+investigation
+the
+Normal
+and
+the
+Abnormal
+The
+Normal
+phase
+from
+the
+standpoint
+of
+the
+physician
+as
+well
+as
+the
+minister
+deals
+among
+other
+issues
+with
+the
+question
+What
+becomes
+of
+the
+Dead
+This
+problem
+is
+of
+vital
+interest
+to
+the
+patient
+who
+lingers
+on
+the
+borderland
+of
+transition
+doubtful
+of
+the
+future
+or
+perhaps
+trembling
+in
+fear
+of
+his
+probable
+condition
+after
+the
+tomorrow
+of
+death
+Should
+it
+not
+be
+the
+noblest
+part
+of
+the
+physician
+s
+calling
+in
+such
+situations
+to
+be
+in
+a
+position
+to
+assure
+his
+patient
+from
+actual
+knowledge
+that
+there
+is
+no
+death
+but
+a
+birth
+into
+new
+fields
+of
+activity
+and
+opportunities
+in
+the
+higher
+mental
+spheres
+In
+the
+Abnormal
+phase
+of
+Psychical
+Research
+there
+is
+demand
+for
+broadest
+Possible
+knowledge
+on
+the
+part
+of
+the
+physician
+pertaining
+to
+the
+mysterious
+functioning
+of
+minds
+discarnated
+as
+well
+as
+incarnated
+Research
+in
+Abnormal
+as
+well
+as
+Normal
+psychology
+indubitably
+indicates
+not
+only
+the
+existence
+of
+spirits
+but
+also
+unquestionably
+demonstrates
+that
+such
+entities
+play
+an
+important
+role
+in
+the
+various
+psychoneuroses
+and
+insanities
+The
+physician
+undoubtedly
+comes
+in
+more
+intimate
+touch
+with
+the
+consequences
+of
+promiscuous
+dabbling
+in
+Psychical
+Research
+so
+frequently
+resulting
+in
+mental
+aberrations
+than
+any
+other
+person
+for
+he
+is
+usually
+the
+first
+one
+to
+be
+called
+into
+consultation
+and
+upon
+his
+decision
+depends
+largely
+the
+disposal
+of
+such
+an
+unfortunate
+victim
+For
+this
+reason
+if
+no
+other
+it
+should
+surely
+be
+not
+only
+the
+privilege
+but
+also
+the
+urgent
+duty
+of
+the
+physician
+to
+become
+thoroughly
+acquainted
+with
+the
+various
+phases
+of
+Psychical
+Research
+particularly
+its
+dangers
+in
+the
+hands
+of
+thoughtless
+investigators
+especially
+the
+predisposed
+psycho
+neurotic
+The
+alarming
+results
+often
+occurring
+in
+connection
+with
+Psychical
+Research
+prompted
+me
+to
+follow
+up
+a
+line
+of
+investigation
+to
+ascertain
+the
+underlying
+causes
+thereof
+for
+these
+also
+concern
+the
+physician
+The
+serious
+problem
+of
+alienation
+and
+mental
+derangement
+attending
+ignorant
+psychic
+experiments
+was
+first
+brought
+to
+my
+attention
+by
+the
+cases
+of
+several
+persons
+whose
+seemingly
+harmless
+experiences
+with
+automatic
+writing
+and
+the
+Ouija
+Board
+resulted
+in
+such
+wild
+insanity
+that
+committment
+to
+asylums
+was
+necessitated
+The
+first
+of
+these
+cases
+was
+that
+of
+Mrs
+Bl
+whose
+attempts
+at
+automatic
+writing
+led
+to
+mental
+derangement
+and
+altered
+personality
+Normally
+she
+was
+amiable
+pious
+quiet
+and
+refined
+but
+became
+boisterous
+and
+noisy
+romped
+about
+and
+danced
+used
+vile
+language
+and
+claiming
+she
+was
+an
+actress
+insisted
+upon
+dressing
+for
+the
+stage
+saying
+that
+she
+had
+to
+be
+at
+the
+theatre
+at
+a
+certain
+time
+or
+lose
+her
+position
+Finally
+she
+became
+so
+irresponsible
+that
+she
+was
+placed
+in
+an
+asylum
+Another
+case
+was
+Mrs
+Bn
+who
+through
+the
+practice
+of
+automatic
+writing
+changed
+from
+an
+artist
+and
+a
+lady
+of
+refinement
+to
+an
+altogether
+different
+and
+violent
+personality
+Screaming
+at
+the
+top
+of
+her
+voice
+she
+continually
+rubbed
+her
+temples
+and
+exclaimed
+God
+save
+me
+God
+save
+me
+Rushing
+into
+the
+street
+she
+knelt
+in
+the
+mud
+praying
+and
+refused
+food
+declaring
+that
+if
+she
+should
+eat
+before
+six
+o
+clock
+P
+M
+she
+would
+go
+to
+hell
+Mrs
+Sr
+who
+bad
+followed
+the
+same
+practices
+also
+became
+mentally
+deranged
+and
+violent
+necessitating
+police
+interference
+Rising
+in
+the
+night
+she
+posed
+in
+the
+window
+of
+her
+millinery
+shop
+as
+Napoleon
+whom
+she
+presumed
+herself
+to
+be
+and
+after
+committing
+many
+other
+irresponsible
+acts
+requiring
+restraint
+was
+sent
+to
+the
+Detention
+Hospital
+In
+like
+manner
+Mrs
+Wr
+became
+obsessed
+with
+hallucinations
+that
+God
+was
+constantly
+talking
+to
+her
+and
+condemning
+her
+for
+wrong
+acts
+of
+which
+he
+accused
+her
+after
+attempting
+suicide
+at
+the
+request
+of
+this
+so
+called
+God
+she
+was
+taken
+to
+the
+asylum
+Many
+other
+disastrous
+results
+which
+followed
+the
+use
+of
+the
+supposedly
+innocent
+Ouija
+Board
+came
+to
+my
+notice
+and
+my
+observations
+led
+me
+into
+research
+in
+psychic
+phenomena
+for
+a
+possible
+explanation
+of
+these
+strange
+occurrences
+My
+wife
+proved
+to
+be
+an
+excellent
+psychic
+intermediary
+and
+was
+easily
+controlled
+by
+discarnate
+intelligences
+In
+answer
+to
+her
+doubts
+concerning
+the
+right
+of
+disturbing
+the
+dead
+these
+intelligences
+asserted
+that
+a
+grievously
+wrong
+conception
+existed
+among
+mortals
+regarding
+the
+conditions
+prevailing
+after
+death
+They
+stated
+that
+there
+is
+in
+reality
+no
+death
+but
+a
+natural
+transition
+from
+the
+visible
+to
+the
+invisible
+world
+and
+that
+advanced
+spirits
+are
+ever
+striving
+to
+communicate
+with
+mortals
+to
+enlighten
+them
+concerning
+the
+higher
+possibilities
+which
+await
+the
+progressive
+spirit
+But
+death
+the
+freeing
+of
+the
+spirit
+from
+the
+body
+is
+so
+simple
+and
+natural
+that
+a
+great
+majority
+do
+not
+for
+a
+longer
+or
+shorter
+period
+realize
+the
+change
+and
+owing
+to
+a
+lack
+of
+education
+concerning
+the
+spiritual
+side
+of
+their
+natures
+they
+continue
+to
+remain
+in
+their
+earthly
+haunts
+They
+maintained
+that
+many
+such
+spirits
+were
+attracted
+to
+the
+magnetic
+aura
+of
+mortals
+although
+the
+spirit
+as
+well
+as
+the
+mortal
+might
+be
+unconscious
+of
+the
+intrusion
+and
+thus
+by
+obsessing
+or
+possessing
+their
+victims
+they
+ignorantly
+or
+maliciously
+became
+the
+cause
+of
+untold
+mischief
+often
+producing
+invalidism
+immorality
+crime
+and
+seeming
+insanity
+The
+risk
+of
+interference
+from
+this
+source
+constituted
+they
+said
+the
+gravest
+danger
+to
+the
+unwary
+novice
+in
+psychic
+research
+but
+to
+be
+in
+ignorance
+of
+these
+facts
+was
+an
+even
+greater
+risk
+especially
+in
+the
+case
+of
+the
+susceptible
+neurotic
+These
+intelligences
+also
+stated
+that
+by
+a
+system
+of
+transfer
+that
+is
+by
+attracting
+such
+obsessing
+entities
+from
+the
+victim
+to
+a
+psychic
+intermediary
+the
+correctness
+of
+the
+hypothesis
+could
+be
+demonstrated
+and
+conditions
+could
+be
+shown
+as
+they
+actually
+exist
+After
+this
+transference
+of
+psychoses
+the
+victims
+would
+be
+relieved
+and
+the
+obsessing
+spirits
+could
+then
+be
+reached
+by
+the
+advanced
+spirits
+who
+would
+care
+for
+them
+and
+instruct
+them
+regarding
+the
+higher
+laws
+of
+life
+They
+claimed
+they
+had
+found
+my
+wife
+to
+be
+a
+suitable
+instrument
+for
+such
+experimentation
+and
+proposed
+that
+if
+I
+would
+cooperate
+with
+them
+by
+caring
+for
+and
+instructing
+these
+ignorant
+spirits
+as
+they
+allowed
+them
+to
+take
+temporary
+but
+complete
+possession
+of
+my
+wife
+s
+body
+without
+any
+injury
+to
+her
+they
+would
+prove
+their
+assertions
+were
+correct
+Desirous
+of
+learning
+the
+truth
+or
+falsity
+of
+such
+important
+claims
+which
+if
+true
+would
+have
+a
+great
+bearing
+on
+the
+cause
+of
+much
+that
+is
+otherwise
+baffling
+in
+criminology
+as
+well
+as
+in
+psycho
+pathology
+we
+accepted
+what
+seemed
+a
+hazardous
+undertaking
+In
+order
+to
+carry
+out
+their
+purpose
+the
+Guiding
+Intelligences
+allowed
+many
+manifestations
+to
+take
+place
+often
+very
+unexpectedly
+and
+some
+of
+these
+occurred
+while
+I
+was
+pursuing
+my
+early
+medical
+studies
+One
+day
+I
+left
+home
+without
+any
+intention
+of
+immediately
+beginning
+my
+first
+dissecting
+work
+therefore
+my
+wife
+s
+subconscious
+mind
+could
+not
+possibly
+have
+taken
+any
+part
+in
+what
+transpired
+later
+The
+students
+were
+required
+to
+dissect
+a
+lateral
+half
+of
+a
+body
+the
+first
+subject
+was
+a
+man
+about
+sixty
+years
+of
+age
+and
+that
+afternoon
+I
+began
+dissecting
+on
+a
+lower
+limb
+I
+returned
+home
+at
+about
+five
+o
+clock
+and
+had
+scarcely
+entered
+the
+door
+when
+my
+wife
+was
+apparently
+taken
+with
+a
+sudden
+illness
+and
+complaining
+of
+feeling
+strange
+staggered
+as
+though
+about
+to
+fall
+As
+I
+placed
+my
+hand
+on
+her
+shoulder
+she
+drew
+herself
+up
+and
+became
+entranced
+by
+a
+foreign
+intelligence
+who
+said
+with
+threatening
+gesture
+What
+do
+you
+mean
+by
+cutting
+me
+I
+answered
+that
+I
+was
+not
+aware
+of
+cutting
+any
+one
+but
+the
+spirit
+angrily
+replied
+Of
+course
+you
+are
+You
+are
+cutting
+on
+my
+leg
+Realizing
+that
+the
+spirit
+owner
+of
+the
+body
+on
+which
+I
+had
+been
+operating
+had
+followed
+me
+home
+I
+began
+to
+parley
+with
+him
+first
+placing
+my
+wife
+in
+a
+chair
+To
+this
+the
+spirit
+vigorously
+objected
+saying
+that
+I
+had
+no
+business
+to
+touch
+him
+To
+my
+answer
+that
+I
+had
+a
+right
+to
+touch
+my
+own
+wife
+the
+entity
+retorted
+Your
+wife
+What
+are
+you
+talking
+about
+I
+am
+no
+woman
+I
+m
+a
+man
+I
+explained
+that
+he
+had
+passed
+out
+of
+his
+physical
+body
+and
+was
+controlling
+the
+body
+of
+my
+wife
+and
+that
+his
+spirit
+was
+here
+and
+his
+body
+at
+the
+college
+When
+he
+finally
+seemed
+to
+realize
+this
+I
+said
+Suppose
+I
+were
+now
+cutting
+on
+your
+body
+at
+the
+college
+that
+could
+not
+kill
+you
+since
+you
+yourself
+are
+here
+The
+spirit
+admitted
+that
+this
+seemed
+reasonable
+and
+said
+I
+guess
+I
+must
+be
+what
+they
+call
+dead
+so
+I
+won
+t
+have
+any
+more
+use
+for
+my
+old
+body
+If
+you
+can
+learn
+anything
+by
+cutting
+on
+it
+go
+ahead
+and
+cut
+away
+Then
+he
+added
+suddenly
+Say
+Mister
+give
+me
+a
+chew
+of
+tobacco
+I
+told
+him
+that
+I
+had
+none
+and
+then
+he
+begged
+for
+a
+pipe
+saying
+I
+m
+dying
+for
+a
+smoke
+This
+request
+was
+of
+course
+also
+refused
+The
+fact
+that
+Mrs
+Wickland
+has
+always
+abhorred
+the
+sight
+of
+any
+one
+chewing
+tobacco
+precludes
+the
+possibility
+of
+her
+subconscious
+mind
+playing
+any
+role
+in
+this
+episode
+After
+a
+more
+detailed
+explanation
+of
+the
+fact
+that
+he
+was
+actually
+so
+called
+dead
+the
+spirit
+realized
+his
+true
+condition
+and
+left
+Subsequent
+examination
+of
+the
+teeth
+of
+the
+cadaver
+indicated
+that
+the
+man
+had
+been
+an
+inveterate
+tobacco
+user
+in
+life
+Upon
+another
+occasion
+when
+I
+had
+been
+appointed
+assistant
+demonstrator
+for
+a
+class
+of
+students
+in
+dissecting
+the
+body
+of
+a
+colored
+man
+had
+been
+selected
+as
+a
+subject
+but
+the
+body
+had
+not
+yet
+been
+disturbed
+when
+one
+evening
+Mrs
+Wickland
+became
+entranced
+and
+a
+strange
+spirit
+speaking
+through
+her
+exclaimed
+You
+ain
+t
+goin
+to
+cut
+on
+dis
+colored
+man
+Boss
+I
+told
+him
+that
+the
+world
+called
+him
+dead
+that
+he
+was
+not
+in
+his
+old
+body
+but
+was
+now
+controlling
+a
+woman
+s
+body
+He
+would
+not
+believe
+this
+and
+when
+I
+showed
+him
+my
+wife
+s
+hands
+saying
+they
+were
+not
+colored
+but
+white
+he
+replied
+I
+se
+got
+whitewash
+on
+dem
+whitewashin
+is
+my
+business
+This
+spirit
+proved
+to
+be
+very
+obstinate
+offering
+a
+variety
+of
+excuses
+and
+explanations
+rather
+than
+accept
+the
+truth
+but
+he
+was
+finally
+convinced
+and
+departed
+Another
+incident
+will
+still
+further
+demonstrate
+to
+what
+a
+seemingly
+unbelievable
+degree
+spirits
+may
+cling
+to
+their
+earthly
+bodies
+through
+ignorance
+of
+their
+transition
+or
+so
+called
+death
+In
+the
+dissecting
+room
+was
+the
+body
+of
+a
+woman
+about
+forty
+years
+of
+age
+who
+had
+died
+at
+the
+Cook
+County
+Hospital
+Chicago
+the
+previous
+June
+In
+January
+seven
+months
+after
+her
+death
+a
+number
+of
+students
+myself
+included
+were
+assigned
+this
+subject
+for
+dissection
+I
+could
+not
+be
+present
+the
+first
+evening
+but
+the
+others
+began
+their
+work
+Nothing
+was
+ever
+said
+to
+me
+of
+what
+occurred
+during
+those
+few
+hours
+but
+for
+some
+reason
+unknown
+to
+me
+the
+other
+students
+never
+touched
+that
+subject
+again
+The
+next
+day
+there
+was
+no
+school
+in
+the
+afternoon
+so
+I
+began
+to
+dissect
+alone
+working
+on
+the
+arm
+and
+neck
+The
+dissecting
+room
+was
+in
+the
+rear
+of
+a
+long
+basement
+and
+very
+quiet
+but
+once
+I
+distinctly
+heard
+a
+voice
+say
+Don
+t
+murder
+me
+The
+voice
+sounded
+faintly
+as
+from
+a
+distance
+but
+since
+I
+am
+not
+in
+the
+least
+superstitious
+and
+not
+at
+all
+inclined
+to
+credit
+small
+incidents
+to
+the
+actions
+of
+spirits
+I
+concluded
+that
+it
+probably
+came
+from
+children
+in
+the
+street
+although
+I
+had
+not
+heard
+any
+playing
+nearby
+The
+following
+afternoon
+I
+was
+again
+working
+alone
+when
+I
+was
+rather
+startled
+by
+a
+rustling
+sound
+coming
+from
+a
+crumpled
+newspaper
+lying
+on
+the
+floor
+a
+sound
+something
+like
+that
+produced
+when
+a
+newspaper
+is
+crushed
+but
+I
+paid
+no
+particular
+attention
+to
+it
+and
+did
+not
+mention
+these
+occurrences
+to
+my
+wife
+The
+episodes
+had
+quite
+passed
+out
+of
+my
+mind
+until
+a
+few
+days
+later
+We
+were
+holding
+a
+psychic
+circle
+in
+our
+home
+and
+our
+invisible
+co
+workers
+had
+already
+departed
+when
+I
+noticed
+that
+my
+wife
+still
+remained
+in
+a
+semi
+comatose
+condition
+I
+stepped
+up
+to
+her
+to
+ascertain
+the
+reason
+when
+the
+controlling
+spirit
+rose
+suddenly
+struck
+at
+me
+angrily
+and
+said
+I
+have
+some
+bones
+to
+pick
+with
+you
+After
+a
+period
+of
+struggle
+with
+the
+stranger
+I
+asked
+what
+the
+trouble
+was
+Why
+do
+you
+want
+to
+kill
+me
+the
+entity
+demanded
+I
+am
+not
+killing
+any
+one
+I
+answered
+Yes
+you
+are
+you
+are
+cutting
+on
+my
+arm
+and
+neck
+I
+shouted
+at
+you
+not
+to
+murder
+me
+and
+I
+struck
+that
+paper
+on
+the
+floor
+to
+frighten
+you
+but
+you
+wouldn
+t
+pay
+any
+attention
+Then
+laughing
+boisterously
+the
+spirit
+added
+with
+great
+hilarity
+But
+I
+seared
+the
+other
+fellows
+It
+was
+necessary
+to
+explain
+at
+great
+length
+the
+actual
+situation
+of
+the
+spirit
+who
+said
+her
+name
+was
+Minnie
+Morgan
+but
+finally
+she
+understood
+and
+left
+promising
+to
+seek
+a
+higher
+life
+The
+ease
+with
+which
+spirits
+assume
+control
+of
+the
+psychic
+intermediary
+Mrs
+Wickland
+is
+so
+perfect
+that
+the
+majority
+of
+them
+at
+first
+fail
+to
+comprehend
+the
+fact
+that
+they
+are
+so
+called
+dead
+and
+are
+temporarily
+occupying
+the
+body
+of
+another
+Those
+intelligences
+whose
+reasoning
+faculties
+are
+alert
+can
+See
+Chapter
+Page
+Spirit
+Minnie
+Morgan
+generally
+be
+made
+to
+realize
+that
+their
+situation
+is
+unusual
+when
+attention
+is
+called
+to
+the
+dissimilarity
+between
+their
+own
+former
+bodily
+features
+hands
+and
+feet
+as
+well
+as
+clothes
+and
+those
+of
+the
+psychic
+This
+is
+especially
+so
+when
+the
+spirit
+is
+a
+man
+for
+the
+difference
+will
+then
+be
+more
+readily
+noticed
+Following
+the
+statement
+that
+the
+body
+which
+is
+being
+controlled
+belongs
+to
+my
+wife
+spirits
+usually
+retort
+I
+am
+not
+your
+wife
+and
+a
+great
+deal
+of
+explanation
+is
+required
+before
+they
+can
+be
+brought
+to
+a
+recognition
+of
+the
+fact
+that
+they
+are
+in
+temporary
+possession
+of
+another
+s
+body
+On
+the
+other
+hand
+there
+are
+spirits
+fixed
+and
+rooted
+in
+obstinate
+skepticism
+who
+stubbornly
+refuse
+to
+understand
+that
+they
+have
+made
+the
+transition
+out
+of
+the
+physical
+These
+will
+not
+listen
+to
+reason
+and
+fail
+to
+be
+convinced
+of
+their
+changed
+condition
+even
+when
+a
+mirror
+is
+held
+before
+them
+declaring
+that
+they
+have
+been
+hypnotized
+and
+prove
+so
+obdurate
+that
+they
+must
+be
+forced
+to
+leave
+and
+are
+taken
+in
+charge
+by
+the
+invisible
+co
+workers
+The
+transference
+of
+the
+mental
+aberration
+or
+psychosis
+from
+a
+patient
+to
+the
+psychic
+intermediary
+Mrs
+Wickland
+is
+facilitated
+by
+the
+use
+of
+static
+electricity
+which
+is
+applied
+to
+the
+patient
+frequently
+in
+the
+presence
+of
+the
+psychic
+Although
+this
+electricity
+is
+harmless
+to
+the
+patient
+it
+is
+exceedingly
+effective
+for
+the
+obsessing
+spirit
+cannot
+long
+resist
+such
+electrical
+treatment
+and
+is
+dislodged
+Induced
+by
+our
+invisible
+helpers
+the
+spirit
+may
+then
+entrance
+the
+psychic
+when
+it
+becomes
+possible
+to
+come
+into
+direct
+contact
+with
+the
+entity
+and
+an
+endeavor
+is
+made
+to
+bring
+him
+to
+a
+realization
+of
+his
+true
+condition
+and
+of
+his
+higher
+possibilities
+He
+is
+then
+removed
+and
+cared
+for
+by
+the
+advanced
+spirits
+and
+Mrs
+Wickland
+again
+returns
+to
+her
+normal
+self
+In
+many
+cases
+remarkable
+evidence
+that
+discarnated
+entities
+were
+the
+offending
+cause
+of
+aberration
+has
+been
+obtained
+by
+a
+system
+of
+experimental
+concentration
+in
+a
+psychic
+circle
+Obsessing
+spirits
+have
+been
+dislodged
+from
+victims
+frequently
+residing
+at
+a
+distance
+conveyed
+to
+the
+circle
+by
+the
+co
+operating
+intelligences
+and
+allowed
+to
+control
+the
+psychic
+Such
+spirits
+often
+complain
+of
+having
+been
+driven
+away
+yet
+are
+ignorant
+of
+being
+spirits
+or
+of
+having
+controlled
+or
+influenced
+anyone
+But
+the
+similarity
+between
+the
+actions
+of
+the
+controlling
+spirit
+and
+the
+symptoms
+of
+the
+patient
+as
+well
+as
+the
+relief
+obtained
+by
+the
+latter
+through
+this
+removal
+indubitably
+prove
+the
+spirit
+to
+have
+been
+the
+cause
+of
+the
+disturbance
+In
+many
+cases
+the
+identity
+of
+the
+spirit
+has
+been
+unquestionably
+authenticated
+After
+this
+transfer
+and
+permanent
+dislodgment
+of
+the
+obsessing
+spirit
+the
+patient
+gradually
+recovers
+although
+there
+may
+be
+a
+number
+of
+spirits
+requiring
+removal
+from
+the
+same
+patient
+It
+may
+be
+asked
+why
+advanced
+intelligences
+do
+not
+take
+charge
+of
+earthbound
+spirits
+and
+convert
+them
+without
+having
+them
+first
+control
+a
+psychic
+intermediary
+Many
+of
+these
+ignorant
+spirits
+cannot
+be
+reached
+by
+the
+intelligent
+spirits
+until
+they
+come
+in
+contact
+with
+physical
+conditions
+when
+they
+are
+compelled
+to
+realize
+their
+own
+situation
+and
+are
+then
+started
+on
+the
+road
+to
+progression
+While
+the
+control
+of
+the
+Psychic
+by
+an
+ignorant
+spirit
+in
+a
+circle
+generally
+brings
+the
+spirit
+to
+an
+understanding
+and
+is
+of
+interest
+to
+the
+investigator
+at
+the
+same
+time
+groups
+of
+other
+spirits
+in
+darkness
+are
+brought
+to
+profit
+by
+the
+lesson
+conveyed
+through
+the
+actions
+of
+the
+controlling
+spirit
+Many
+controlling
+spirits
+act
+as
+if
+demented
+and
+are
+difficult
+to
+reason
+with
+this
+condition
+being
+due
+to
+false
+doctrines
+fixed
+ideas
+and
+various
+notions
+imbibed
+in
+physical
+life
+They
+are
+often
+unruly
+and
+boisterous
+when
+it
+is
+necessary
+to
+control
+them
+by
+holding
+the
+hands
+of
+the
+psychic
+to
+keep
+them
+in
+restraint
+Upon
+realizing
+their
+true
+condition
+many
+spirits
+experience
+a
+sensation
+of
+dying
+which
+signifies
+that
+they
+are
+losing
+control
+of
+the
+psychic
+Other
+spirits
+again
+are
+in
+a
+sleepy
+stupor
+wishing
+to
+be
+left
+alone
+and
+severe
+language
+is
+at
+times
+required
+to
+arouse
+them
+as
+will
+be
+observed
+in
+the
+records
+following
+In
+these
+records
+reference
+is
+often
+made
+to
+a
+dungeon
+in
+which
+refractory
+spirits
+may
+be
+placed
+and
+controlling
+spirits
+sometimes
+complain
+of
+having
+been
+kept
+in
+a
+dungeon
+Due
+to
+a
+certain
+psychic
+law
+intelligent
+spirits
+have
+the
+faculty
+of
+placing
+about
+an
+ignorant
+spirit
+a
+condition
+simulating
+a
+prison
+an
+impenetrable
+cell
+like
+room
+from
+which
+there
+is
+no
+escape
+Herein
+stubborn
+spirits
+must
+stay
+seeing
+nothing
+but
+the
+reflection
+of
+their
+own
+personalities
+their
+past
+actions
+appearing
+before
+the
+mind
+s
+eye
+until
+they
+become
+repentant
+and
+show
+a
+willingness
+to
+adapt
+themselves
+to
+the
+new
+condition
+and
+to
+conform
+to
+the
+spiritual
+laws
+of
+progression
+The
+nature
+of
+Mrs
+Wickland
+s
+psychism
+is
+that
+of
+unconscious
+trance
+her
+eyes
+are
+closed
+and
+her
+own
+mentality
+is
+held
+in
+abeyance
+in
+a
+sleep
+state
+for
+the
+time
+being
+She
+herself
+has
+no
+recollection
+of
+anything
+that
+transpires
+during
+this
+period
+Mrs
+Wickland
+is
+not
+subject
+to
+any
+negativism
+between
+these
+experiences
+she
+is
+at
+all
+times
+her
+rational
+self
+clear
+minded
+and
+positive
+and
+after
+thirty
+five
+years
+of
+psychic
+work
+has
+not
+suffered
+impairment
+or
+detriment
+of
+any
+kind
+She
+is
+constantly
+protected
+from
+the
+invisible
+side
+by
+the
+supervision
+of
+a
+group
+of
+strong
+intelligences
+known
+as
+The
+Mercy
+Band
+which
+is
+guiding
+this
+work
+endeavoring
+to
+bring
+humanity
+to
+a
+realization
+of
+the
+simplicity
+of
+the
+transition
+called
+death
+and
+the
+importance
+of
+a
+rational
+understanding
+of
+what
+becomes
+of
+the
+spirits
+The
+purpose
+of
+our
+work
+has
+been
+to
+obtain
+reliable
+and
+incontestable
+evidence
+at
+first
+hand
+regarding
+after
+death
+conditions
+and
+detailed
+reports
+of
+hundreds
+of
+experiences
+have
+been
+stenographically
+made
+in
+order
+to
+record
+the
+exact
+situation
+of
+the
+communicating
+intelligences
+CHAPTER
+III
+Subconscious
+Mind
+and
+Auto
+Suggestion
+Hypotheses
+Untenable
+DURING
+thirty
+years
+of
+indefatigable
+research
+among
+the
+dead
+such
+startling
+conditions
+have
+been
+revealed
+that
+it
+seems
+incredible
+intelligent
+reasoners
+along
+other
+lines
+of
+thought
+could
+have
+so
+long
+ignored
+the
+simple
+facts
+which
+can
+so
+readily
+be
+verified
+There
+is
+utter
+impossibility
+of
+fraud
+in
+these
+experiences
+foreign
+languages
+totally
+unknown
+to
+Mrs
+Wickland
+are
+spoken
+expressions
+never
+heard
+by
+her
+are
+used
+while
+the
+identity
+of
+the
+controlling
+spirits
+has
+again
+and
+again
+been
+verified
+and
+corroborations
+innumerable
+have
+been
+made
+On
+one
+occasion
+I
+conversed
+with
+twenty
+one
+different
+spirits
+who
+spoke
+through
+my
+wife
+the
+majority
+giving
+me
+satisfactory
+evidence
+of
+being
+certain
+friends
+and
+relatives
+known
+to
+me
+while
+they
+were
+incarnated
+In
+all
+they
+spoke
+six
+different
+languages
+while
+my
+wife
+speaks
+only
+Swedish
+and
+English
+From
+one
+patient
+Mrs
+A
+who
+was
+brought
+to
+us
+from
+Chicago
+thirteen
+different
+spirits
+were
+dislodged
+and
+allowed
+to
+control
+Mrs
+Wickland
+and
+of
+these
+seven
+were
+recognized
+by
+the
+patient
+s
+mother
+Mrs
+H
+W
+as
+relatives
+or
+friends
+well
+known
+to
+her
+during
+their
+earth
+lives
+One
+was
+a
+minister
+formerly
+pastor
+of
+the
+Methodist
+church
+of
+which
+Mrs
+H
+W
+was
+a
+member
+who
+had
+been
+killed
+in
+a
+railroad
+accident
+nine
+years
+previous
+but
+was
+still
+unconscious
+of
+the
+fact
+another
+was
+her
+sister
+in
+law
+there
+were
+also
+three
+elderly
+women
+family
+friends
+for
+years
+a
+neighbor
+boy
+and
+the
+mother
+in
+law
+of
+the
+patient
+all
+entirely
+unknown
+to
+Mrs
+Wickland
+Mrs
+H
+W
+conversed
+at
+length
+with
+each
+one
+as
+they
+spoke
+through
+Mrs
+Wickland
+verifying
+innumerable
+statements
+made
+by
+the
+spirits
+and
+assisted
+in
+bringing
+them
+to
+a
+realization
+of
+their
+changed
+condition
+and
+of
+the
+fact
+that
+they
+had
+been
+obsessing
+her
+daughter
+This
+patient
+is
+today
+entirely
+well
+and
+actively
+occupied
+with
+social
+musical
+and
+family
+affairs
+Another
+case
+will
+show
+clearly
+the
+transfer
+of
+psychosis
+from
+patient
+to
+intermediary
+and
+the
+impossibility
+of
+either
+sub
+See
+Chap
+Materialism
+Page
+Spirit
+Frank
+Bergquist
+Patient
+Mrs
+A
+Chap
+Orthodoxy
+Page
+Spirit
+J
+Nelson
+Patient
+Mrs
+A
+conscious
+mind
+or
+multiple
+personalities
+playing
+any
+role
+as
+far
+as
+the
+psychic
+is
+concerned
+One
+summer
+evening
+we
+were
+called
+to
+the
+home
+of
+Mrs
+M
+a
+lady
+of
+culture
+and
+refinement
+she
+was
+a
+musician
+of
+high
+rank
+and
+when
+the
+social
+demands
+made
+upon
+her
+proved
+too
+great
+she
+suffered
+a
+nervous
+breakdown
+She
+had
+become
+intractable
+and
+for
+six
+weeks
+had
+been
+in
+such
+a
+raving
+condition
+that
+her
+physicians
+had
+been
+unable
+to
+relieve
+her
+and
+day
+and
+night
+nurses
+were
+in
+constant
+attendance
+We
+found
+the
+patient
+sitting
+up
+in
+her
+bed
+crying
+one
+minute
+like
+a
+forlorn
+child
+and
+again
+screaming
+in
+fear
+Matilla
+Matilla
+Then
+suddenly
+fighting
+and
+struggling
+she
+would
+talk
+a
+wild
+gibberish
+of
+English
+and
+Spanish
+the
+latter
+a
+language
+of
+which
+she
+had
+no
+knowledge
+Mrs
+Wickland
+immediately
+gave
+her
+psychic
+diagnosis
+saying
+the
+case
+was
+unquestionably
+one
+of
+obsession
+and
+this
+was
+unexpectedly
+confirmed
+when
+Mrs
+Wickland
+who
+was
+standing
+at
+the
+foot
+of
+the
+bed
+with
+wraps
+on
+ready
+to
+leave
+was
+found
+to
+be
+suddenly
+entranced
+We
+placed
+her
+on
+a
+davenport
+in
+the
+music
+room
+where
+for
+two
+hours
+I
+talked
+in
+turn
+with
+several
+spirits
+who
+had
+just
+been
+attracted
+from
+the
+patient
+There
+were
+three
+spirits
+a
+girl
+named
+Mary
+her
+suitor
+an
+American
+and
+his
+Mexican
+rival
+Matilla
+Both
+of
+the
+men
+had
+vehemently
+loved
+the
+girl
+and
+as
+fiercely
+hated
+each
+other
+In
+a
+jealous
+rage
+one
+had
+killed
+the
+girl
+and
+then
+in
+a
+desperate
+fight
+the
+two
+rivals
+had
+killed
+each
+other
+All
+were
+unaware
+of
+being
+dead
+although
+Mary
+said
+weeping
+wretchedly
+I
+thought
+they
+were
+going
+to
+kill
+each
+other
+but
+here
+they
+are
+still
+fighting
+This
+tragedy
+of
+love
+hatred
+and
+jealousy
+had
+not
+ended
+with
+physical
+death
+the
+group
+had
+unconsciously
+been
+drawn
+into
+the
+psychic
+atmosphere
+of
+the
+patient
+and
+the
+violent
+fighting
+had
+continued
+within
+her
+aura
+Since
+her
+nervous
+resistance
+was
+exceedingly
+low
+at
+this
+time
+one
+after
+the
+other
+had
+usurped
+her
+physical
+body
+with
+a
+resulting
+disturbance
+that
+was
+unexplainable
+by
+her
+attendants
+With
+great
+difficulty
+the
+three
+spirits
+were
+convinced
+that
+they
+had
+lost
+their
+physical
+bodies
+but
+at
+last
+they
+recognized
+the
+truth
+and
+were
+taken
+away
+by
+our
+invisible
+co
+workers
+Meanwhile
+the
+patient
+had
+arisen
+and
+speaking
+rationally
+to
+the
+astonished
+nurse
+walked
+quietly
+about
+her
+room
+Presently
+she
+said
+I
+am
+going
+to
+sleep
+well
+tonight
+and
+returning
+to
+bed
+fell
+asleep
+without
+the
+usual
+sedatives
+and
+rested
+quietly
+throughout
+the
+night
+The
+following
+day
+attended
+by
+a
+nurse
+she
+was
+brought
+to
+our
+home
+we
+dismissed
+the
+nurse
+discarded
+her
+medicines
+and
+after
+an
+electrical
+treatment
+the
+patient
+had
+her
+dinner
+in
+the
+general
+dining
+room
+with
+the
+other
+patients
+and
+that
+evening
+attended
+a
+function
+given
+in
+our
+social
+hall
+Another
+spirit
+was
+removed
+from
+her
+the
+next
+day
+this
+was
+a
+little
+girl
+who
+had
+been
+killed
+in
+the
+San
+Francisco
+earthquake
+and
+who
+cried
+constantly
+saying
+she
+was
+lost
+in
+the
+dark
+It
+is
+needless
+to
+add
+that
+she
+was
+comforted
+and
+promptly
+cared
+for
+by
+spirit
+friends
+who
+had
+been
+unable
+to
+reach
+her
+while
+she
+was
+enmeshed
+in
+the
+aura
+of
+a
+psychic
+sensitive
+After
+some
+months
+of
+treatment
+rest
+and
+recuperation
+the
+patient
+returned
+to
+her
+home
+and
+resumed
+her
+normal
+life
+again
+One
+of
+our
+early
+experiences
+in
+Chicago
+occurred
+on
+the
+of
+November
+During
+one
+of
+our
+psychic
+circles
+Mrs
+Wickland
+entranced
+by
+a
+strange
+entity
+fell
+prostrate
+to
+the
+floor
+and
+remained
+in
+a
+comatose
+condition
+for
+some
+time
+The
+spirit
+was
+at
+last
+brought
+to
+the
+front
+and
+acted
+as
+though
+in
+great
+pain
+repeatedly
+saying
+Why
+didn
+t
+I
+take
+more
+carbolic
+acid
+I
+want
+to
+die
+I
+m
+so
+tired
+of
+living
+In
+a
+weak
+voice
+the
+spirit
+complained
+of
+the
+dense
+darkness
+all
+about
+and
+was
+unable
+to
+see
+an
+electric
+light
+shining
+directly
+into
+her
+face
+She
+whispered
+faintly
+My
+poor
+son
+and
+when
+pressed
+for
+information
+said
+that
+her
+name
+was
+Mary
+Rose
+and
+that
+she
+lived
+at
+South
+Green
+Street
+a
+street
+entirely
+unknown
+to
+us
+at
+that
+time
+At
+first
+she
+could
+not
+remember
+any
+date
+but
+when
+asked
+Is
+it
+November
+she
+replied
+No
+that
+is
+next
+week
+Life
+had
+been
+a
+bitter
+disappointment
+to
+her
+she
+had
+suffered
+constantly
+from
+chronic
+abdominal
+ailments
+and
+finally
+resolving
+to
+end
+her
+miserable
+existence
+she
+had
+taken
+poison
+She
+could
+not
+at
+first
+realize
+that
+she
+had
+succeeded
+in
+destroying
+her
+physical
+body
+for
+like
+most
+suicides
+she
+was
+in
+total
+ignorance
+of
+the
+indestructibility
+of
+life
+and
+the
+reality
+of
+the
+hereafter
+When
+the
+real
+purpose
+of
+life
+experience
+and
+suffering
+had
+been
+made
+clearer
+to
+her
+she
+was
+overcome
+with
+repentance
+and
+offered
+a
+sincere
+prayer
+for
+forgiveness
+Then
+her
+spiritual
+sight
+opened
+slightly
+and
+she
+saw
+dimly
+the
+spirit
+figure
+of
+her
+grandmother
+who
+had
+come
+to
+take
+her
+to
+the
+spirit
+world
+Subsequent
+inquiry
+at
+the
+address
+given
+by
+the
+spirit
+proved
+her
+statements
+to
+be
+true
+a
+woman
+by
+the
+name
+given
+had
+lived
+at
+this
+house
+she
+still
+had
+a
+son
+living
+there
+and
+we
+were
+told
+that
+Mrs
+Rose
+had
+been
+taken
+to
+the
+Cook
+County
+Hospital
+and
+had
+died
+there
+the
+week
+before
+Upon
+investigation
+at
+the
+hospital
+we
+found
+further
+verification
+of
+the
+facts
+and
+were
+given
+a
+copy
+of
+the
+record
+of
+the
+case
+Cook
+County
+Hospital
+Chicago
+Ills
+Mary
+Rose
+Admitted
+November
+Died
+November
+Carbolic
+Acid
+poisoning
+No
+Another
+case
+will
+show
+that
+identification
+of
+a
+spirit
+is
+often
+possible
+Mrs
+Fl
+a
+patient
+who
+had
+been
+declared
+incurably
+insane
+by
+several
+physicians
+was
+a
+refined
+lady
+of
+gentle
+disposition
+who
+had
+become
+very
+wild
+and
+unmanageable
+swearing
+constantly
+and
+fighting
+with
+such
+violence
+that
+several
+persons
+were
+required
+to
+restrain
+her
+She
+was
+also
+subject
+to
+coma
+states
+again
+to
+fainting
+spells
+would
+refuse
+food
+announce
+that
+she
+had
+been
+married
+above
+by
+celestial
+powers
+and
+used
+extraordinarily
+vile
+language
+these
+various
+phases
+alternated
+constantly
+but
+no
+full
+proof
+of
+obsession
+was
+evidenced
+until
+one
+day
+when
+Mrs
+Fl
+lost
+all
+power
+of
+speech
+and
+mumbling
+idiotically
+simulated
+perfectly
+a
+deaf
+and
+dumb
+person
+At
+this
+time
+a
+gentleman
+from
+an
+adjoining
+state
+came
+to
+the
+house
+to
+visit
+a
+patient
+and
+shortly
+after
+his
+arrival
+the
+nurse
+who
+attended
+Mrs
+Fl
+reported
+that
+the
+patient
+had
+again
+changed
+and
+was
+talking
+like
+a
+little
+child
+So
+striking
+was
+this
+alteration
+that
+the
+gentleman
+was
+asked
+to
+step
+into
+the
+room
+to
+observe
+the
+patient
+He
+was
+a
+total
+stranger
+to
+her
+but
+as
+he
+entered
+the
+room
+she
+pointed
+to
+him
+and
+said
+in
+a
+high
+childish
+voice
+I
+know
+that
+man
+He
+used
+to
+put
+bows
+on
+my
+shoulders
+Arid
+he
+pulled
+my
+toofies
+He
+took
+me
+to
+a
+gypsy
+camp
+too
+He
+lived
+right
+across
+the
+street
+from
+me
+and
+he
+used
+to
+call
+me
+Rosebud
+I
+m
+four
+years
+old
+The
+astonished
+gentleman
+corroborated
+every
+statement
+saying
+that
+he
+had
+known
+such
+a
+child
+in
+his
+home
+town
+in
+Iowa
+but
+that
+she
+had
+died
+the
+year
+before
+He
+explained
+that
+he
+was
+very
+fond
+of
+children
+and
+had
+on
+several
+occasions
+taken
+the
+child
+to
+a
+gypsy
+camp
+and
+that
+whenever
+he
+bought
+taffy
+on
+a
+stick
+for
+the
+little
+girl
+he
+would
+tug
+at
+the
+stick
+while
+she
+was
+eating
+the
+candy
+and
+playfully
+threaten
+to
+pull
+her
+teeth
+It
+was
+evident
+that
+affection
+had
+attracted
+the
+spirit
+child
+to
+her
+friend
+and
+that
+she
+found
+in
+Mrs
+Fl
+a
+vehicle
+through
+which
+she
+could
+make
+her
+presence
+known
+to
+the
+gentleman
+The
+patient
+was
+relieved
+of
+this
+spirit
+and
+gradually
+of
+other
+obsessing
+influences
+and
+several
+months
+later
+was
+pronounced
+entirely
+competent
+to
+sign
+legal
+papers
+being
+declared
+normal
+and
+sane
+by
+a
+judge
+and
+jury
+Another
+case
+in
+point
+was
+that
+of
+Mrs
+who
+was
+a
+cook
+in
+a
+restaurant
+She
+had
+observed
+a
+waitress
+acting
+queerly
+laboring
+under
+delusions
+and
+hallucinations
+and
+brought
+her
+to
+my
+office
+After
+an
+electrical
+treatment
+the
+patient
+declared
+she
+felt
+greatly
+relieved
+and
+returned
+to
+her
+home
+But
+that
+night
+Mrs
+herself
+became
+disturbed
+by
+an
+unaccountable
+condition
+which
+prevented
+her
+from
+sleeping
+and
+her
+restlessness
+continued
+until
+ten
+o
+clock
+the
+following
+morning
+when
+in
+the
+midst
+of
+her
+preparations
+for
+dinner
+she
+suddenly
+became
+wild
+tore
+her
+hair
+and
+threatened
+to
+harm
+herself
+I
+was
+sent
+for
+and
+arriving
+found
+Mrs
+raving
+in
+a
+demented
+condition
+complaining
+of
+being
+chased
+here
+and
+there
+and
+being
+unable
+to
+find
+a
+resting
+place
+Suspecting
+the
+presence
+of
+an
+invisible
+entity
+I
+placed
+Mrs
+in
+a
+chair
+pinioned
+her
+arms
+to
+prevent
+a
+struggle
+and
+after
+several
+remarks
+the
+entity
+declared
+it
+was
+a
+man
+but
+denied
+being
+dead
+or
+obsessing
+a
+woman
+The
+spirit
+said
+his
+name
+was
+Jack
+that
+he
+was
+an
+uncle
+of
+the
+troubled
+waitress
+and
+that
+he
+had
+been
+a
+vagabond
+in
+life
+After
+reasoning
+with
+the
+intelligence
+he
+began
+to
+realize
+his
+situation
+and
+promising
+to
+cause
+no
+further
+annoyance
+left
+Mrs
+then
+immediately
+became
+her
+normal
+self
+and
+returned
+to
+her
+work
+without
+any
+further
+disturbance
+It
+was
+later
+ascertained
+from
+the
+waitress
+that
+she
+had
+bad
+an
+uncle
+named
+Jack
+who
+had
+been
+a
+vagabond
+and
+that
+he
+was
+dead
+In
+this
+experience
+Mrs
+had
+acted
+as
+the
+psychic
+intermediary
+to
+whom
+the
+spirit
+obsessing
+the
+waitress
+had
+been
+transferred
+A
+number
+of
+years
+ago
+Dr
+Lydston
+wrote
+in
+the
+Chicago
+papers
+of
+a
+patient
+who
+although
+having
+no
+knowledge
+of
+French
+or
+music
+sang
+well
+the
+Marseillaise
+in
+French
+when
+placed
+under
+the
+influence
+of
+an
+anesthetic
+Dr
+Lydston
+denying
+the
+continued
+existence
+of
+the
+ego
+explained
+this
+phenomenon
+as
+one
+of
+subliminal
+consciousness
+or
+unconscious
+memory
+comnparing
+it
+with
+the
+case
+of
+the
+uneducated
+domestic
+who
+in
+delirium
+recited
+classic
+Latin
+as
+perfectly
+as
+her
+former
+employer
+a
+Professor
+of
+Latin
+had
+done
+during
+his
+life
+I
+replied
+in
+a
+newspaper
+article
+that
+such
+phenomena
+were
+frequently
+met
+with
+in
+psychic
+research
+and
+stated
+that
+despite
+the
+classification
+of
+materialistic
+scientists
+these
+cases
+clearly
+proved
+the
+posthumous
+existence
+of
+spirits
+and
+their
+ability
+to
+communicate
+through
+mortals
+I
+added
+that
+if
+the
+truth
+were
+known
+about
+these
+two
+cases
+we
+would
+find
+that
+the
+man
+who
+sang
+French
+was
+a
+psychic
+sensitive
+and
+had
+at
+the
+time
+been
+controlled
+by
+some
+outside
+intelligence
+while
+in
+all
+probability
+the
+domestic
+who
+recited
+Latin
+was
+obsessed
+by
+the
+spirit
+of
+the
+former
+professor
+Shortly
+after
+this
+the
+gentleman
+alluded
+to
+by
+Dr
+Lydston
+called
+on
+me
+having
+read
+my
+article
+and
+said
+I
+don
+t
+know
+anything
+about
+French
+but
+I
+do
+know
+that
+I
+am
+bothered
+to
+death
+by
+spirits
+In
+the
+study
+of
+cases
+of
+Multiple
+Personalities
+Dissociated
+Personalities
+or
+Disintegrated
+States
+of
+Consciousness
+modern
+psychologists
+disclaim
+the
+possibility
+of
+foreign
+intelligences
+on
+the
+ground
+that
+these
+personalities
+give
+neither
+evidence
+of
+supernormal
+knowledge
+nor
+of
+being
+of
+spiritistic
+origin
+Our
+experience
+to
+the
+contrary
+has
+proven
+that
+the
+majority
+of
+these
+intelligences
+are
+oblivious
+of
+their
+transition
+and
+hence
+it
+does
+not
+enter
+their
+minds
+that
+they
+are
+spirits
+and
+they
+are
+loath
+to
+recognize
+the
+fact
+In
+the
+case
+of
+Miss
+Beauchamp
+as
+recorded
+by
+Dr
+Morton
+Prince
+in
+The
+Dissociation
+of
+a
+Personality
+reporting
+four
+alternating
+personalities
+no
+claim
+was
+made
+that
+any
+outside
+intelligences
+were
+responsible
+for
+the
+various
+personalities
+and
+yet
+Sally
+personality
+insisted
+that
+she
+herself
+was
+not
+the
+same
+as
+Miss
+Beauchamp
+Christine
+that
+her
+own
+consciousness
+was
+distinct
+from
+that
+of
+Miss
+Beauchamp
+and
+told
+of
+Miss
+Beauchamp
+s
+learning
+to
+walk
+and
+talk
+When
+she
+was
+a
+very
+little
+girl
+just
+learning
+to
+walk
+I
+remember
+her
+thoughts
+distinctly
+as
+separate
+from
+mine
+Similarly
+in
+the
+case
+of
+Bernice
+Redick
+of
+Ohio
+the
+young
+school
+girl
+who
+constantly
+changed
+from
+her
+normal
+self
+to
+the
+personality
+of
+Polly
+an
+unruly
+child
+every
+indication
+is
+given
+of
+the
+influence
+of
+a
+discarnate
+spirit
+probably
+ignorant
+of
+being
+dead
+controlling
+Miss
+Redick
+That
+such
+personalities
+are
+independent
+entities
+could
+easily
+be
+proven
+under
+proper
+conditions
+by
+transference
+of
+the
+same
+to
+a
+psychic
+intermediary
+as
+similar
+experiments
+have
+so
+abundantly
+demonstrated
+Any
+attempt
+to
+explain
+our
+experiences
+on
+the
+theory
+of
+the
+Subconscious
+Mind
+and
+Auto
+Suggestion
+or
+Multiple
+Personalities
+would
+be
+untenable
+since
+it
+is
+manifestly
+impossible
+that
+Mrs
+Wickland
+should
+have
+a
+thousand
+personalities
+and
+since
+it
+is
+so
+readily
+possible
+to
+cause
+transference
+of
+psychosis
+from
+a
+supposedly
+insane
+person
+to
+Mrs
+Wickland
+relieving
+the
+victim
+and
+in
+this
+way
+discovering
+that
+the
+disturbance
+was
+due
+to
+a
+discarnate
+entity
+whose
+identity
+can
+often
+be
+verified
+Individuals
+who
+are
+clairaudient
+suffer
+greatly
+from
+the
+constant
+annoyance
+of
+hearing
+the
+voices
+of
+obsessing
+entities
+the
+auditory
+hallucinations
+frequently
+observed
+by
+alienists
+and
+when
+such
+a
+person
+is
+present
+in
+a
+psychic
+circle
+where
+the
+spirits
+are
+dislodged
+and
+transferred
+to
+the
+psychic
+intermediary
+interesting
+developments
+occur
+An
+illustration
+is
+the
+case
+of
+Mrs
+Burton
+a
+clairaudient
+patient
+who
+was
+constantly
+combatting
+obsessing
+spirits
+and
+who
+while
+attending
+our
+circle
+was
+relieved
+of
+her
+unwelcome
+companions
+In
+the
+following
+records
+the
+conversation
+of
+the
+spirits
+through
+the
+psychic
+Mrs
+Wickland
+will
+elucidate
+the
+characteristics
+of
+the
+several
+entities
+Spirit
+CARRIE
+HUNTINGTON
+Patient
+MRS
+BURTON
+Doctor
+Tell
+us
+who
+you
+are
+Spirit
+I
+do
+not
+wish
+you
+to
+hold
+my
+hands
+Dr
+You
+must
+sit
+still
+Sp
+Why
+do
+you
+treat
+me
+like
+this
+Dr
+Who
+are
+you
+Sp
+Why
+do
+you
+want
+to
+know
+Dr
+You
+have
+come
+here
+as
+a
+stranger
+and
+we
+would
+like
+to
+know
+who
+you
+are
+Sp
+What
+are
+you
+so
+interested
+for
+Dr
+We
+should
+like
+to
+know
+with
+whom
+we
+are
+associating
+If
+a
+stranger
+came
+to
+your
+home
+would
+you
+not
+like
+to
+know
+his
+name
+Sp
+I
+do
+not
+want
+to
+be
+here
+and
+I
+do
+not
+know
+any
+of
+you
+Somebody
+pushed
+me
+in
+here
+and
+I
+do
+not
+think
+it
+is
+right
+to
+force
+me
+in
+like
+that
+And
+when
+I
+came
+in
+and
+sat
+down
+on
+the
+chair
+you
+grabbed
+my
+hands
+as
+if
+I
+were
+a
+prisoner
+Why
+was
+I
+pushed
+in
+here
+Brought
+in
+control
+of
+psychic
+by
+guiding
+intelligences
+Dr
+You
+were
+probably
+in
+the
+dark
+Sp
+It
+seems
+somebody
+took
+me
+by
+force
+Dr
+Was
+there
+any
+reason
+for
+it
+Sp
+I
+do
+not
+know
+of
+any
+reason
+and
+I
+do
+not
+see
+why
+I
+should
+be
+bothered
+like
+that
+Dr
+Was
+no
+reason
+given
+for
+handling
+you
+in
+this
+manner
+sp
+It
+has
+been
+a
+terrible
+time
+for
+me
+for
+quite
+a
+while
+I
+have
+been
+tormented
+to
+death
+I
+have
+been
+driven
+here
+there
+and
+everywhere
+I
+am
+getting
+so
+provoked
+about
+it
+that
+I
+feel
+like
+giving
+everything
+a
+good
+shaking
+Dr
+What
+have
+they
+done
+to
+you
+Sp
+It
+seems
+so
+terrible
+If
+I
+walk
+around
+I
+am
+so
+very
+miserable
+I
+do
+not
+know
+what
+it
+is
+Sometimes
+it
+seems
+as
+if
+my
+senses
+were
+being
+knocked
+out
+of
+me
+Something
+comes
+on
+me
+like
+thunder
+and
+lightning
+Static
+treatment
+of
+patient
+it
+makes
+such
+a
+noise
+This
+terrible
+noise
+it
+is
+awful
+I
+cannot
+stand
+it
+any
+more
+and
+I
+will
+not
+either
+Dr
+We
+shall
+be
+glad
+if
+you
+will
+not
+stand
+it
+any
+more
+Sp
+Am
+I
+not
+welcome
+And
+if
+I
+am
+not
+I
+do
+not
+care
+Dr
+You
+are
+not
+very
+particular
+Sp
+I
+have
+had
+so
+much
+hardship
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+Why
+do
+you
+speak
+that
+way
+I
+am
+not
+dead
+I
+am
+as
+alive
+as
+I
+can
+be
+and
+I
+feel
+as
+if
+I
+were
+young
+again
+Dr
+Have
+you
+not
+felt
+at
+times
+as
+if
+you
+were
+somebody
+else
+Sp
+At
+times
+I
+feel
+very
+strange
+especially
+when
+it
+knocks
+me
+me
+senseless
+I
+feel
+very
+bad
+I
+do
+not
+feel
+that
+I
+should
+have
+this
+suffering
+I
+do
+not
+know
+why
+I
+should
+have
+such
+things
+Dr
+Probably
+it
+is
+necessary
+Sp
+I
+feel
+I
+should
+be
+free
+to
+go
+where
+I
+please
+but
+it
+seems
+I
+have
+no
+will
+of
+my
+own
+any
+more
+I
+try
+but
+it
+seems
+somebody
+else
+takes
+possession
+of
+me
+and
+gets
+me
+into
+some
+place
+where
+they
+knock
+me
+nearly
+senseless
+If
+I
+knew
+it
+I
+never
+would
+go
+there
+but
+there
+is
+a
+person
+who
+seems
+to
+have
+the
+right
+to
+take
+me
+everywhere
+but
+I
+feel
+I
+should
+have
+the
+right
+to
+take
+her
+Referring
+to
+patient
+Dr
+What
+business
+have
+you
+with
+her
+Can
+t
+you
+live
+your
+own
+life
+SP
+I
+live
+my
+own
+life
+but
+she
+interferes
+with
+me
+I
+talk
+to
+her
+She
+wants
+to
+chase
+me
+out
+I
+feel
+like
+chasing
+her
+out
+and
+that
+is
+a
+real
+struggle
+I
+cannot
+see
+why
+I
+should
+not
+have
+the
+right
+just
+as
+well
+as
+she
+has
+Dr
+Probably
+you
+are
+interfering
+with
+her
+SP
+She
+wants
+to
+get
+rid
+of
+me
+I
+am
+not
+bothering
+her
+I
+only
+talk
+to
+her
+sometimes
+Dr
+Does
+she
+know
+you
+talk
+to
+her
+Sp
+Sometimes
+she
+does
+and
+then
+she
+chases
+me
+right
+out
+She
+acts
+all
+right
+but
+she
+gets
+so
+provoked
+Then
+when
+she
+gets
+into
+that
+place
+I
+am
+knocked
+senseless
+and
+I
+feel
+terrible
+I
+have
+no
+power
+to
+take
+her
+away
+She
+makes
+me
+get
+out
+Dr
+You
+should
+not
+stay
+around
+her
+Sp
+It
+is
+my
+body
+it
+is
+not
+hers
+She
+has
+no
+right
+there
+I
+do
+not
+see
+why
+she
+interferes
+with
+me
+Dr
+She
+interferes
+with
+your
+selfishness
+Sp
+I
+feel
+I
+have
+some
+right
+in
+life
+I
+think
+so
+Dr
+You
+passed
+out
+of
+your
+body
+without
+understanding
+the
+fact
+and
+have
+been
+bothering
+a
+lady
+You
+should
+go
+to
+the
+spirit
+world
+and
+not
+hover
+around
+here
+Sp
+You
+say
+I
+am
+hovering
+around
+I
+am
+not
+hovering
+around
+and
+I
+am
+not
+one
+to
+interfere
+but
+I
+want
+a
+little
+to
+say
+about
+things
+Dr
+That
+was
+why
+you
+had
+the
+thunder
+and
+the
+knocks
+Sp
+That
+was
+all
+right
+for
+a
+while
+but
+lately
+it
+is
+terrible
+I
+must
+have
+understanding
+Dr
+You
+will
+have
+it
+now
+Sp
+I
+will
+do
+anything
+to
+stop
+that
+terrible
+knocking
+Mrs
+B
+Recognizing
+the
+spirit
+as
+one
+who
+had
+been
+troubling
+her
+I
+am
+mighty
+tired
+of
+you
+Who
+are
+you
+anyway
+Sp
+I
+am
+a
+stranger
+Mrs
+B
+What
+is
+your
+name
+Sp
+My
+name
+Mrs
+B
+Have
+you
+one
+Sp
+My
+name
+is
+Carrie
+Mrs
+B
+Carrie
+what
+Sp
+Carrie
+Huntington
+Mrs
+B
+Where
+do
+you
+live
+Sp
+San
+Antonio
+Texas
+Mrs
+B
+You
+have
+been
+with
+me
+a
+long
+time
+haven
+t
+you
+It
+had
+been
+a
+number
+of
+years
+since
+Mrs
+B
+had
+been
+in
+San
+Antonio
+Sp
+You
+have
+been
+with
+me
+a
+long
+time
+I
+should
+like
+to
+find
+out
+why
+you
+interfere
+with
+me
+I
+recognize
+you
+now
+Mrs
+B
+What
+street
+did
+you
+live
+on
+Sp
+I
+lived
+in
+many
+different
+plates
+there
+Dr
+Do
+you
+realize
+the
+fact
+that
+you
+have
+lost
+your
+own
+mortal
+body
+Can
+you
+remember
+having
+been
+sick
+Sp
+The
+last
+I
+remember
+I
+was
+in
+El
+Paso
+I
+do
+not
+remember
+anything
+after
+that
+I
+went
+there
+and
+I
+do
+not
+seem
+to
+remember
+when
+I
+left
+It
+seems
+that
+I
+should
+be
+there
+now
+I
+got
+very
+sick
+one
+day
+there
+Dr
+Probably
+you
+lost
+your
+body
+then
+Sp
+After
+El
+Paso
+I
+do
+not
+know
+where
+I
+went
+I
+went
+some
+distance
+I
+traveled
+on
+the
+railroad
+and
+it
+was
+just
+like
+I
+was
+nobody
+Nobody
+asked
+me
+anything
+and
+I
+had
+to
+follow
+that
+lady
+Mrs
+B
+as
+if
+I
+were
+her
+servant
+and
+I
+feel
+very
+annoyed
+about
+it
+Mrs
+B
+You
+worried
+me
+to
+death
+because
+you
+sang
+all
+the
+time
+Sp
+I
+had
+to
+do
+something
+to
+attract
+your
+attention
+because
+you
+would
+not
+listen
+to
+me
+any
+other
+way
+You
+traveled
+on
+the
+train
+and
+it
+took
+me
+away
+from
+my
+home
+and
+folks
+and
+I
+feel
+very
+much
+hurt
+about
+it
+Do
+you
+understand
+Mrs
+B
+I
+understand
+you
+far
+better
+than
+you
+do
+me
+Dr
+Can
+t
+you
+realize
+what
+has
+been
+the
+matter
+with
+you
+Sp
+I
+want
+to
+tell
+you
+that
+I
+do
+not
+want
+those
+knockings
+any
+more
+I
+will
+stay
+away
+Dr
+Understand
+your
+condition
+understand
+that
+you
+are
+an
+ignorant
+obessing
+spirit
+and
+that
+you
+have
+no
+physical
+body
+You
+died
+probably
+at
+the
+time
+you
+were
+sick
+Sp
+Could
+you
+talk
+to
+a
+ghost
+Dr
+Such
+things
+certainly
+do
+happen
+Sp
+I
+am
+not
+a
+ghost
+because
+ghosts
+cannot
+talk
+When
+you
+are
+dead
+you
+lie
+there
+Dr
+When
+the
+body
+dies
+it
+lies
+there
+But
+the
+spirit
+does
+not
+Sp
+That
+goes
+to
+God
+who
+gave
+it
+Dr
+Where
+is
+He
+Where
+is
+that
+God
+Sp
+In
+Heaven
+Dr
+Where
+is
+that
+Sp
+It
+is
+where
+you
+go
+to
+find
+Jesus
+Dr
+The
+Bible
+says
+God
+is
+Love
+and
+he
+that
+dwelleth
+in
+Love
+dwelleth
+in
+God
+Where
+will
+you
+find
+that
+God
+Sp
+I
+suppose
+in
+Heaven
+I
+cannot
+tell
+you
+anything
+about
+it
+But
+I
+know
+I
+have
+been
+in
+the
+worst
+hell
+you
+could
+give
+me
+with
+those
+knockings
+I
+do
+not
+see
+that
+they
+have
+done
+me
+any
+good
+I
+do
+not
+like
+them
+at
+all
+Dr
+Then
+you
+must
+stay
+away
+from
+that
+lady
+SP
+I
+see
+her
+well
+now
+and
+I
+can
+have
+a
+real
+conversation
+with
+her
+Dr
+Yes
+but
+this
+will
+be
+the
+last
+time
+SP
+How
+do
+you
+know
+it
+will
+Dr
+When
+you
+leave
+here
+you
+will
+understand
+that
+you
+have
+been
+talking
+through
+another
+person
+s
+body
+That
+person
+is
+my
+wife
+Sp
+What
+nonsense
+I
+thought
+you
+looked
+wiser
+than
+to
+talk
+such
+nonsense
+Dr
+It
+may
+seem
+foolish
+but
+look
+at
+your
+hands
+Do
+you
+recognize
+them
+Sp
+They
+do
+not
+look
+like
+mine
+but
+so
+much
+has
+taken
+place
+lately
+that
+I
+do
+not
+know
+what
+I
+shall
+do
+That
+lady
+over
+there
+Mrs
+B
+has
+been
+acting
+like
+a
+madman
+and
+I
+have
+taken
+it
+as
+it
+came
+so
+I
+shall
+have
+to
+find
+out
+what
+she
+thinks
+of
+doing
+and
+why
+she
+does
+those
+things
+to
+me
+Dr
+She
+will
+be
+very
+happy
+to
+be
+rid
+of
+you
+Mrs
+B
+Carrie
+how
+old
+are
+you
+Sp
+You
+know
+that
+a
+lady
+never
+wants
+to
+tell
+her
+age
+Dr
+Especially
+if
+she
+happens
+to
+be
+a
+spinster
+Sp
+Please
+excuse
+me
+you
+will
+have
+to
+take
+it
+as
+it
+is
+I
+will
+not
+tell
+my
+age
+to
+any
+one
+Dr
+Have
+you
+ever
+been
+married
+Sp
+Yes
+I
+was
+married
+to
+a
+fellow
+but
+I
+did
+not
+care
+for
+him
+Dr
+What
+was
+his
+name
+Sp
+That
+is
+a
+secret
+with
+me
+I
+would
+not
+have
+his
+name
+mentioned
+for
+anything
+and
+I
+do
+not
+want
+to
+carry
+his
+name
+either
+My
+name
+is
+Carrie
+Huntington
+because
+it
+was
+my
+name
+and
+I
+do
+not
+want
+to
+carry
+his
+name
+Dr
+Do
+you
+want
+to
+go
+to
+the
+spirit
+world
+Sp
+What
+foolish
+questions
+you
+put
+to
+me
+Dr
+It
+may
+seem
+foolish
+to
+you
+but
+nevertheless
+there
+is
+a
+spirit
+world
+Spiritual
+things
+often
+seem
+foolish
+to
+the
+mortal
+mind
+You
+have
+lost
+your
+body
+Sp
+I
+have
+not
+lost
+my
+body
+I
+have
+been
+with
+this
+lady
+but
+she
+does
+one
+thing
+I
+do
+not
+like
+very
+well
+She
+eats
+too
+much
+She
+eats
+too
+much
+and
+gets
+too
+strong
+then
+I
+have
+no
+power
+over
+her
+body
+not
+as
+much
+as
+I
+want
+to
+To
+Mrs
+B
+I
+want
+you
+to
+eat
+less
+I
+try
+very
+much
+to
+dictate
+to
+you
+not
+to
+eat
+that
+and
+that
+but
+you
+have
+no
+sense
+You
+do
+not
+even
+listen
+to
+me
+Mrs
+B
+This
+is
+the
+place
+I
+told
+you
+to
+go
+to
+but
+you
+would
+not
+go
+by
+yourself
+Sp
+I
+know
+it
+But
+you
+have
+no
+business
+to
+take
+me
+where
+I
+get
+those
+knockings
+I
+do
+not
+want
+to
+stay
+with
+you
+if
+you
+take
+those
+awful
+knockings
+Dr
+They
+are
+in
+the
+next
+room
+Do
+you
+want
+some
+Sp
+No
+thank
+you
+Not
+for
+me
+any
+more
+Dr
+Listen
+to
+what
+is
+told
+you
+then
+you
+will
+not
+need
+any
+more
+You
+are
+an
+ignorant
+spirit
+I
+mean
+you
+are
+ignorant
+of
+your
+condition
+You
+lost
+your
+body
+evidently
+without
+knowing
+it
+Sp
+How
+do
+you
+know
+Dr
+You
+are
+now
+controlling
+my
+wife
+s
+body
+Sp
+I
+never
+saw
+you
+before
+so
+how
+in
+the
+world
+can
+you
+think
+I
+should
+be
+called
+your
+wife
+No
+never
+Dr
+I
+do
+not
+want
+you
+to
+be
+Sp
+I
+don
+t
+want
+you
+either
+Dr
+I
+don
+t
+want
+you
+to
+control
+my
+wife
+s
+body
+much
+longer
+you
+must
+realize
+that
+you
+have
+lost
+your
+physical
+body
+Do
+you
+recognize
+these
+hands
+Mrs
+Wickland
+s
+hands
+Sp
+I
+have
+changed
+so
+much
+lately
+that
+all
+those
+changes
+make
+me
+crazy
+It
+makes
+me
+tired
+Dr
+Now
+Carrie
+be
+sensible
+Sp
+I
+am
+sensible
+and
+don
+t
+you
+tell
+me
+differently
+else
+you
+will
+have
+some
+one
+to
+tell
+you
+something
+you
+never
+heard
+before
+Dr
+Now
+Carrie
+Sp
+I
+am
+Mrs
+Carrie
+Huntington
+Mrs
+B
+You
+listen
+to
+what
+the
+Doctor
+has
+to
+say
+to
+you
+Sp
+I
+will
+not
+listen
+to
+any
+one
+I
+tell
+you
+once
+for
+all
+I
+have
+been
+from
+one
+to
+another
+and
+I
+do
+not
+care
+what
+becomes
+of
+me
+Dr
+Do
+you
+know
+you
+are
+talking
+through
+my
+wife
+s
+body
+Sp
+Such
+nonsense
+I
+think
+that
+s
+the
+craziest
+thing
+I
+ever
+heard
+in
+my
+life
+Dr
+Now
+you
+will
+have
+to
+be
+sensible
+Sp
+Sensible
+I
+am
+sensible
+Are
+you
+a
+perfect
+man
+Dr
+No
+I
+am
+not
+but
+I
+tell
+you
+that
+you
+are
+an
+ignorant
+selfish
+spirit
+You
+have
+been
+bothering
+that
+lady
+for
+some
+time
+and
+we
+have
+chased
+you
+out
+by
+the
+use
+of
+those
+knocks
+Whether
+you
+understand
+it
+or
+not
+you
+are
+an
+ignorant
+spirit
+You
+will
+have
+to
+behave
+yourself
+or
+else
+I
+will
+take
+you
+into
+the
+office
+and
+give
+you
+some
+more
+of
+those
+knocks
+SP
+I
+don
+t
+want
+those
+knocks
+Dr
+Then
+change
+your
+disposition
+Realize
+that
+there
+is
+no
+death
+when
+people
+lose
+their
+bodies
+they
+merely
+become
+invisible
+to
+mortals
+You
+are
+invisible
+to
+us
+SP
+I
+will
+have
+nothing
+to
+do
+with
+you
+Dr
+We
+want
+to
+help
+you
+and
+make
+you
+understand
+your
+condition
+Sp
+I
+don
+t
+need
+help
+Dr
+If
+you
+don
+t
+behave
+you
+will
+be
+taken
+away
+by
+intelligent
+spirits
+and
+placed
+in
+a
+dungeon
+Sp
+You
+think
+you
+can
+scare
+me
+You
+will
+find
+out
+what
+will
+happen
+to
+you
+Dr
+You
+must
+overcome
+your
+selfish
+disposition
+Look
+around
+you
+may
+see
+some
+one
+who
+will
+make
+you
+care
+You
+may
+see
+some
+one
+who
+will
+make
+you
+cry
+Sp
+I
+don
+t
+want
+to
+cry
+I
+like
+to
+sing
+instead
+of
+cry
+Dr
+Where
+is
+your
+mother
+Sp
+I
+haven
+t
+seen
+her
+for
+a
+long
+time
+My
+mother
+My
+mother
+She
+is
+in
+Heaven
+She
+was
+a
+good
+woman
+and
+is
+with
+God
+and
+the
+Holy
+Ghost
+and
+all
+of
+them
+Dr
+Look
+around
+and
+see
+if
+your
+mother
+is
+not
+here
+Sp
+This
+place
+is
+not
+Heaven
+far
+from
+it
+If
+this
+is
+heaven
+then
+it
+is
+worse
+than
+hell
+Dr
+Look
+for
+your
+mother
+she
+will
+put
+you
+to
+shame
+Sp
+I
+have
+done
+nothing
+to
+be
+ashamed
+of
+What
+business
+have
+you
+to
+give
+me
+those
+knocks
+and
+have
+me
+put
+in
+a
+dungeon
+That
+lady
+and
+I
+made
+a
+bargain
+Dr
+She
+made
+a
+bargain
+to
+come
+here
+and
+get
+rid
+of
+you
+You
+have
+been
+fired
+out
+by
+electricity
+You
+have
+lost
+your
+company
+Sp
+Yes
+for
+a
+while
+they
+all
+left
+me
+I
+can
+t
+find
+them
+Other
+obsessing
+spirits
+Why
+did
+you
+chase
+that
+tall
+fellow
+away
+Dr
+This
+lady
+wants
+her
+body
+herself
+she
+does
+not
+want
+to
+be
+tormented
+by
+earthbound
+spirits
+Would
+you
+like
+them
+around
+you
+Sp
+I
+don
+t
+know
+what
+you
+mean
+Dr
+Can
+t
+you
+realize
+that
+you
+bothered
+that
+lady
+and
+made
+her
+life
+a
+perfect
+hell
+Sp
+To
+Mrs
+B
+I
+have
+not
+bothered
+you
+Mrs
+B
+You
+woke
+me
+up
+at
+three
+o
+clock
+this
+morning
+Sp
+Well
+you
+have
+no
+business
+to
+sleep
+Dr
+You
+must
+live
+your
+own
+life
+Sp
+I
+will
+Dr
+That
+will
+be
+in
+a
+dark
+dungeon
+if
+you
+do
+not
+behave
+yourself
+Sp
+How
+do
+you
+know
+Dr
+You
+cannot
+stay
+here
+You
+had
+better
+be
+humble
+and
+ask
+for
+help
+that
+is
+what
+you
+need
+My
+wife
+and
+I
+have
+been
+following
+this
+work
+for
+many
+years
+and
+she
+allows
+all
+sorts
+of
+spirits
+to
+use
+her
+body
+so
+they
+may
+be
+helped
+Sp
+Sarcastically
+She
+is
+very
+good
+Dr
+You
+ought
+to
+be
+ashamed
+of
+yourself
+Do
+you
+see
+your
+mother
+SP
+I
+don
+t
+want
+to
+see
+her
+I
+don
+t
+want
+to
+call
+her
+away
+from
+Heaven
+Dr
+Since
+Heaven
+is
+a
+condition
+of
+happiness
+she
+could
+not
+be
+in
+any
+Heaven
+with
+a
+daughter
+like
+you
+she
+could
+not
+be
+happy
+Suppose
+you
+were
+in
+Heaven
+and
+had
+a
+daughter
+would
+you
+like
+her
+to
+act
+as
+you
+do
+Sp
+I
+do
+not
+act
+contrary
+What
+is
+the
+situation
+Tell
+me
+that
+Dr
+I
+have
+already
+told
+you
+the
+situation
+You
+are
+controlling
+my
+wife
+s
+body
+Sp
+How
+do
+I
+do
+that
+Dr
+Because
+of
+higher
+laws
+and
+because
+you
+are
+a
+spirit
+Spirit
+and
+mind
+are
+invisible
+You
+are
+so
+selfish
+that
+you
+do
+not
+care
+to
+understand
+Sp
+This
+is
+not
+Heaven
+Dr
+This
+is
+Los
+Angeles
+California
+Sp
+For
+God
+s
+sake
+no
+An
+expression
+never
+used
+by
+Mrs
+Wickland
+How
+did
+I
+come
+here
+Dr
+By
+staying
+around
+that
+lady
+That
+is
+how
+She
+had
+to
+take
+those
+knocks
+to
+get
+you
+out
+Sp
+She
+s
+a
+fool
+to
+do
+it
+Dr
+She
+wants
+to
+get
+rid
+of
+you
+and
+she
+will
+get
+rid
+of
+you
+Sp
+I
+will
+not
+have
+those
+knocks
+any
+more
+Dr
+Higher
+spirits
+will
+show
+you
+something
+you
+do
+not
+like
+if
+you
+do
+not
+behave
+yourself
+Sp
+Shrinking
+from
+some
+vision
+I
+don
+t
+want
+that
+Dr
+It
+is
+not
+what
+you
+want
+it
+is
+what
+you
+get
+Sp
+Is
+that
+so
+As
+nothing
+could
+be
+done
+to
+bring
+the
+spirit
+to
+an
+understanding
+she
+was
+taken
+away
+by
+intelligent
+spirits
+Upon
+a
+later
+occasion
+when
+the
+patient
+Mrs
+Burton
+was
+in
+the
+circle
+another
+spirit
+was
+removed
+from
+her
+and
+controlling
+Mrs
+Wickland
+spoke
+in
+a
+very
+individualistic
+manner
+Spirit
+JIMMIE
+HUNTINGTON
+Patient
+MRS
+BURTON
+The
+spirit
+kicked
+off
+both
+shoes
+and
+seemed
+greatly
+disturbed
+Dr
+What
+seems
+to
+be
+the
+trouble
+Have
+you
+been
+in
+an
+accident
+of
+some
+kind
+Holding
+psychic
+s
+hands
+firmly
+You
+have
+no
+shoes
+on
+SP
+I
+took
+them
+off
+Dr
+Tell
+us
+who
+you
+are
+Sp
+I
+don
+t
+know
+whether
+I
+want
+to
+Dr
+Tell
+us
+where
+you
+came
+from
+Sp
+I
+don
+t
+know
+that
+I
+have
+to
+do
+that
+Dr
+We
+would
+like
+to
+know
+who
+you
+are
+What
+seems
+to
+be
+the
+trouble
+You
+don
+t
+seem
+to
+be
+comfortable
+Sp
+I
+am
+not
+Dr
+What
+have
+you
+been
+doing
+lately
+Sp
+I
+haven
+t
+been
+doing
+anything
+I
+have
+just
+been
+walking
+around
+Dr
+And
+what
+else
+Sp
+Why
+nothing
+in
+particular
+It
+seems
+that
+I
+have
+been
+shut
+up
+somewhere
+In
+patient
+s
+aura
+Dr
+In
+what
+way
+Sp
+I
+don
+t
+know
+how
+it
+is
+but
+I
+couldn
+t
+get
+out
+Dr
+How
+would
+you
+explain
+that
+Sp
+I
+can
+t
+explain
+it
+in
+any
+way
+Dr
+Did
+you
+hear
+any
+talking
+Sp
+Yes
+many
+people
+talked
+Dr
+What
+did
+they
+say
+Sp
+One
+said
+one
+thing
+one
+another
+They
+all
+think
+they
+are
+so
+smart
+Dr
+Did
+you
+ever
+have
+any
+chance
+to
+say
+anything
+Sp
+Yes
+but
+I
+got
+so
+mad
+because
+there
+was
+always
+a
+woman
+there
+she
+knew
+all
+I
+wanted
+to
+say
+I
+felt
+that
+some
+times
+I
+should
+have
+a
+chance
+Whenever
+they
+talked
+that
+woman
+talked
+A
+man
+has
+no
+chance
+to
+say
+anything
+when
+a
+woman
+begins
+to
+talk
+Dr
+You
+must
+have
+been
+a
+married
+man
+Sp
+Why
+yes
+I
+am
+married
+Dr
+Was
+it
+a
+success
+or
+a
+failure
+Sp
+I
+don
+t
+know
+what
+it
+was
+an
+excuse
+anyway
+I
+was
+not
+so
+very
+happy
+Women
+always
+talk
+too
+much
+They
+can
+t
+leave
+a
+fellow
+alone
+a
+minute
+at
+a
+time
+Dr
+What
+did
+they
+talk
+about
+Sp
+It
+s
+that
+woman
+she
+talks
+and
+talks
+and
+talks
+Patient
+Mrs
+Burton
+who
+talked
+constantly
+She
+never
+can
+keep
+still
+very
+long
+at
+a
+time
+I
+felt
+sometimes
+like
+shaking
+her
+good
+We
+just
+had
+some
+new
+company
+come
+in
+They
+talk
+and
+talk
+It
+makes
+me
+sick
+they
+make
+me
+get
+out
+They
+are
+the
+worst
+I
+ever
+saw
+Dr
+Did
+anything
+happen
+at
+all
+Sp
+Lightning
+played
+around
+my
+head
+until
+I
+didn
+t
+know
+where
+I
+was
+Electrical
+treatment
+given
+patient
+I
+thought
+it
+was
+far
+distant
+but
+my
+God
+and
+Stars
+in
+Heaven
+how
+it
+hit
+me
+Dr
+What
+did
+you
+want
+to
+do
+at
+such
+times
+Sp
+I
+wanted
+to
+get
+hold
+of
+that
+lightning
+and
+try
+to
+stop
+it
+hitting
+my
+head
+but
+the
+lightning
+strikes
+every
+time
+it
+never
+misses
+Lightning
+used
+to
+be
+different
+it
+didn
+t
+always
+strike
+but
+now
+it
+never
+misses
+I
+never
+saw
+anything
+like
+it
+There
+are
+stars
+before
+your
+eyes
+and
+it
+feels
+terrible
+but
+even
+while
+the
+lightning
+strikes
+that
+woman
+keeps
+right
+on
+talking
+Patient
+talked
+throughout
+treatment
+Dr
+What
+does
+she
+talk
+about
+Sp
+Nothing
+She
+wants
+to
+be
+boss
+and
+I
+want
+to
+be
+boss
+so
+there
+we
+are
+Dr
+What
+does
+she
+say
+Sp
+You
+know
+how
+it
+is
+with
+women
+they
+talk
+and
+talk
+but
+there
+is
+never
+anything
+to
+it
+Dr
+Does
+the
+lady
+address
+you
+Sp
+She
+torments
+me
+all
+the
+time
+I
+feel
+like
+shaking
+her
+but
+I
+don
+t
+seem
+to
+have
+any
+power
+any
+more
+Then
+there
+is
+another
+woman
+and
+she
+goes
+right
+at
+it
+too
+It
+makes
+me
+sick
+What
+can
+you
+do
+with
+a
+woman
+to
+make
+her
+stop
+talking
+If
+you
+can
+get
+any
+woman
+to
+stop
+talking
+you
+ll
+have
+a
+pretty
+hard
+time
+to
+do
+it
+Dr
+What
+is
+your
+name
+Sp
+It
+s
+a
+long
+time
+since
+I
+heard
+it
+Dr
+Where
+did
+you
+come
+from
+Are
+you
+in
+California
+Sp
+No
+I
+m
+in
+Texas
+Dr
+What
+did
+your
+mother
+call
+you
+when
+you
+were
+a
+boy
+Sp
+James
+was
+my
+name
+but
+they
+always
+called
+me
+Jimmie
+Gosh
+I
+don
+t
+know
+what
+is
+the
+matter
+with
+me
+That
+lightning
+gets
+on
+my
+knees
+and
+feet
+then
+from
+my
+head
+to
+my
+feet
+but
+what
+I
+can
+t
+understand
+is
+it
+never
+misses
+its
+aim
+Dr
+How
+old
+are
+you
+Sp
+I
+will
+say
+that
+I
+am
+a
+man
+about
+fifty
+years
+of
+age
+but
+I
+want
+to
+say
+that
+during
+all
+my
+life
+I
+never
+saw
+such
+lightning
+before
+and
+what
+I
+can
+t
+understand
+is
+that
+nothing
+ever
+catches
+fire
+from
+it
+Gosh
+Yesterday
+I
+got
+into
+a
+regular
+nest
+it
+was
+the
+worst
+I
+ever
+saw
+in
+my
+whole
+life
+I
+think
+every
+one
+was
+a
+devil
+Obsessing
+spirits
+There
+s
+another
+one
+standing
+over
+there
+and
+that
+came
+yesterday
+Dr
+How
+long
+have
+you
+been
+dead
+Jimmie
+Sp
+What
+do
+you
+mean
+Dr
+I
+mean
+how
+long
+is
+it
+since
+you
+lost
+your
+body
+SP
+I
+haven
+t
+lost
+it
+yet
+Dr
+Don
+t
+you
+realize
+that
+you
+are
+in
+a
+strange
+condition
+Sp
+I
+have
+been
+that
+for
+a
+long
+time
+Dr
+Did
+you
+ever
+work
+in
+the
+oil
+business
+in
+Texas
+Sp
+I
+don
+t
+know
+where
+I
+have
+been
+working
+things
+are
+very
+queer
+Dr
+Where
+did
+you
+work
+Sp
+In
+a
+blacksmith
+shop
+Dr
+Do
+you
+know
+what
+year
+it
+is
+Sp
+No
+I
+don
+t
+Dr
+How
+are
+you
+going
+to
+vote
+this
+Fall
+For
+whom
+will
+you
+vote
+for
+President
+Sp
+I
+don
+t
+know
+yet
+Dr
+How
+do
+you
+like
+the
+present
+President
+Sp
+I
+like
+him
+he
+is
+pretty
+good
+Dr
+Do
+you
+know
+anything
+in
+particular
+about
+him
+Sp
+He
+s
+all
+right
+there
+s
+no
+flies
+on
+Roosevelt
+Dr
+Is
+he
+President
+Sp
+Of
+course
+he
+is
+He
+just
+got
+in
+McKinley
+was
+also
+a
+good
+man
+but
+you
+know
+Mark
+Hanna
+had
+an
+awful
+influence
+over
+him
+It
+is
+a
+long
+time
+since
+I
+bothered
+with
+politics
+I
+have
+been
+shut
+up
+a
+long
+time
+but
+my
+God
+and
+Stars
+in
+Heaven
+I
+m
+nearly
+crazy
+from
+that
+woman
+talking
+all
+the
+time
+Dr
+What
+woman
+is
+it
+that
+talks
+so
+much
+Sp
+Can
+t
+you
+see
+her
+Dr
+She
+might
+not
+be
+here
+Sp
+Oh
+yes
+she
+is
+it
+s
+that
+woman
+Indicating
+patient
+Dr
+What
+does
+she
+talk
+about
+Sp
+Nothing
+but
+nonsense
+She
+makes
+me
+sick
+Dr
+What
+does
+she
+say
+in
+particular
+Sp
+Nothing
+she
+has
+not
+sense
+enough
+She
+mocks
+me
+every
+once
+in
+a
+while
+I
+m
+going
+to
+get
+her
+some
+day
+Stars
+in
+Heaven
+she
+s
+terrible
+Dr
+Now
+friend
+I
+want
+you
+to
+understand
+your
+condition
+You
+have
+lost
+your
+physical
+body
+and
+are
+now
+a
+spirit
+Sp
+I
+have
+a
+body
+If
+only
+that
+woman
+would
+keep
+still
+Dr
+This
+is
+not
+your
+body
+Sp
+Stars
+in
+Heaven
+whose
+body
+is
+it
+Dr
+My
+wife
+s
+Sp
+Stars
+in
+Heaven
+and
+the
+Heat
+from
+the
+Sun
+I
+m
+not
+your
+wife
+How
+could
+I
+be
+your
+wife
+when
+I
+m
+a
+man
+That
+s
+funny
+Dr
+You
+are
+an
+invisible
+spirit
+Sp
+Spirit
+Do
+you
+mean
+a
+ghost
+For
+Heaven
+s
+sake
+talk
+United
+States
+Dr
+Ghosts
+and
+spirits
+are
+the
+same
+thing
+Sp
+I
+know
+ghosts
+and
+I
+know
+spirits
+Dr
+They
+both
+mean
+the
+same
+thing
+Taking
+hand
+of
+psychic
+Sp
+Say
+it
+s
+not
+nice
+for
+a
+man
+to
+hold
+another
+man
+s
+hand
+If
+you
+want
+to
+hold
+hands
+get
+hold
+of
+some
+lady
+s
+hand
+and
+hold
+that
+Men
+don
+t
+hold
+each
+other
+s
+hands
+that
+s
+cold
+joy
+Dr
+Tell
+us
+what
+that
+woman
+says
+Sp
+She
+just
+talks
+and
+says
+nothing
+Dr
+Is
+she
+young
+or
+old
+Sp
+She
+s
+not
+so
+very
+young
+I
+get
+so
+mad
+at
+her
+Dr
+I
+am
+telling
+you
+the
+fact
+when
+I
+say
+you
+are
+a
+spirit
+Sp
+When
+did
+I
+die
+then
+Dr
+It
+must
+have
+been
+some
+time
+ago
+Roosevelt
+has
+not
+been
+President
+for
+many
+years
+He
+is
+a
+spirit
+like
+yourself
+Sp
+Just
+like
+I
+am
+Why
+he
+s
+dead
+then
+Dr
+So
+are
+you
+Sp
+When
+I
+am
+here
+and
+listening
+to
+you
+I
+can
+t
+be
+dead
+Dr
+You
+have
+lost
+your
+body
+Sp
+Say
+don
+t
+hold
+my
+hand
+It
+s
+such
+cold
+joy
+Dr
+I
+am
+holding
+my
+wife
+s
+hand
+Sp
+Well
+you
+can
+hold
+her
+hand
+but
+let
+mine
+alone
+Dr
+Do
+you
+recognize
+this
+hand
+as
+yours
+Sp
+That
+isn
+t
+my
+hand
+Dr
+It
+is
+the
+hand
+of
+my
+wife
+Sp
+But
+I
+m
+not
+your
+wife
+Dr
+You
+are
+using
+my
+wife
+s
+body
+only
+temporarily
+You
+lost
+your
+own
+body
+a
+long
+time
+ago
+Sp
+How
+did
+that
+happen
+Dr
+I
+don
+t
+know
+Do
+you
+know
+you
+are
+in
+Los
+Angeles
+California
+Sp
+God
+and
+Stars
+in
+Heaven
+how
+did
+I
+come
+to
+California
+I
+had
+no
+money
+You
+know
+there
+are
+two
+women
+here
+One
+doesn
+t
+talk
+so
+much
+She
+looks
+to
+me
+like
+she
+was
+sick
+Another
+spirit
+obsessing
+patient
+She
+doesn
+t
+say
+much
+but
+I
+suppose
+she
+is
+so
+annoyed
+because
+that
+other
+woman
+talks
+so
+awful
+Please
+don
+t
+hold
+my
+hand
+I
+like
+to
+feel
+free
+If
+I
+were
+alone
+with
+a
+lady
+and
+I
+could
+hold
+her
+hand
+that
+would
+be
+a
+different
+story
+Aren
+t
+you
+satisfied
+to
+hold
+just
+one
+hand
+Dr
+I
+have
+to
+hold
+both
+because
+you
+will
+not
+be
+quiet
+Now
+let
+us
+not
+lose
+any
+more
+time
+SP
+I
+wish
+sometimes
+I
+didn
+t
+have
+so
+much
+time
+on
+my
+hands
+Dr
+We
+will
+give
+you
+something
+to
+do
+Sp
+You
+will
+That
+s
+good
+If
+you
+can
+give
+me
+some
+work
+of
+some
+kind
+I
+shall
+be
+very
+glad
+Do
+you
+want
+me
+to
+fix
+horses
+shoes
+I
+used
+to
+shoe
+horses
+Dr
+In
+what
+state
+Sp
+Texas
+That
+s
+a
+big
+state
+Dr
+Did
+you
+roam
+around
+a
+good
+deal
+Sp
+Yes
+quite
+a
+little
+I
+was
+in
+Galveston
+Dallas
+San
+Antonio
+and
+many
+other
+places
+I
+traveled
+everywhere
+I
+wanted
+to
+go
+I
+went
+to
+Houston
+and
+other
+cities
+Dr
+You
+are
+a
+spirit
+and
+have
+been
+allowed
+to
+control
+my
+wife
+s
+body
+for
+a
+short
+time
+We
+do
+not
+see
+you
+Sp
+Say
+just
+look
+at
+those
+devils
+there
+limping
+around
+like
+a
+bunch
+of
+little
+imps
+Obsessing
+spirits
+They
+are
+all
+around
+that
+woman
+Mrs
+B
+Dr
+You
+take
+them
+all
+with
+you
+when
+you
+leave
+Sp
+Not
+much
+I
+won
+t
+Touching
+necklace
+What
+in
+the
+world
+is
+this
+Dr
+That
+is
+my
+wife
+s
+neck
+ornament
+SP
+Your
+wife
+Dr
+You
+have
+been
+brought
+here
+for
+enlightenment
+You
+were
+fired
+out
+from
+that
+other
+lady
+Sp
+Yes
+with
+lightning
+For
+the
+life
+of
+me
+I
+never
+saw
+anything
+like
+it
+There
+used
+to
+be
+thunder
+and
+lightning
+storms
+in
+Texas
+and
+in
+Arkansas
+but
+lightning
+did
+not
+strike
+every
+time
+as
+it
+did
+on
+me
+Dr
+You
+will
+not
+have
+that
+thunder
+and
+lightning
+any
+more
+Sp
+I
+will
+not
+That
+s
+good
+Dr
+Was
+your
+mother
+living
+in
+Texas
+Sp
+Certainly
+but
+she
+is
+dead
+I
+should
+know
+because
+I
+was
+at
+her
+funeral
+Dr
+You
+were
+at
+the
+funeral
+of
+her
+body
+not
+her
+spirit
+soul
+or
+mind
+Sp
+I
+suppose
+she
+went
+to
+Heaven
+Dr
+Look
+around
+and
+see
+if
+you
+can
+see
+her
+Sp
+Where
+Dr
+She
+might
+be
+here
+Sp
+What
+place
+is
+this
+anyhow
+If
+I
+am
+your
+wife
+I
+have
+never
+seen
+you
+before
+Dr
+You
+are
+not
+my
+wife
+Sp
+You
+called
+me
+your
+wife
+Dr
+I
+did
+not
+say
+you
+are
+my
+wife
+You
+are
+temporarily
+using
+her
+body
+Sp
+For
+God
+s
+sake
+in
+Heaven
+and
+hell
+how
+can
+I
+get
+out
+of
+your
+wife
+Dr
+Be
+sensible
+What
+do
+those
+imps
+say
+Sp
+They
+say
+they
+are
+going
+to
+stay
+but
+I
+say
+and
+say
+it
+strong
+that
+they
+are
+all
+going
+to
+go
+Dr
+Do
+you
+want
+them
+to
+go
+with
+you
+Sp
+I
+should
+say
+I
+do
+Dr
+You
+can
+help
+them
+a
+great
+deal
+by
+reforming
+them
+and
+making
+them
+understand
+their
+condition
+They
+need
+help
+You
+are
+all
+ignorant
+spirits
+and
+have
+been
+bothering
+that
+lady
+I
+am
+the
+one
+who
+gave
+you
+lightning
+and
+chased
+you
+out
+You
+can
+all
+to
+the
+spirit
+world
+and
+learn
+how
+to
+progress
+Sp
+Is
+that
+woman
+going
+too
+There
+is
+a
+whole
+lot
+a
+gang
+but
+I
+haven
+t
+seen
+any
+of
+them
+until
+lately
+Dr
+Can
+you
+see
+anybody
+you
+know
+Just
+sit
+quietly
+for
+a
+moment
+and
+look
+around
+Sp
+Excitedly
+Why
+here
+comes
+Nora
+A
+spirit
+Dr
+Who
+is
+Nora
+Sp
+Nora
+Huntington
+she
+s
+my
+sister
+Dr
+Ask
+her
+if
+your
+name
+is
+Jimmie
+Huntington
+Sp
+She
+says
+it
+is
+and
+that
+she
+hasn
+t
+seen
+me
+for
+such
+a
+long
+time
+Suddenly
+puzzled
+But
+she
+s
+dead
+Dr
+Let
+her
+explain
+the
+situation
+Sp
+She
+says
+Jimmie
+you
+come
+home
+with
+me
+Where
+shall
+I
+come
+Dr
+What
+does
+she
+say
+Sp
+She
+says
+To
+the
+spirit
+world
+but
+I
+don
+t
+believe
+her
+Dr
+Was
+your
+sister
+in
+the
+habit
+of
+lying
+to
+you
+Sp
+No
+Dr
+If
+she
+were
+honest
+before
+would
+she
+lie
+now
+Sp
+She
+says
+she
+has
+been
+hunting
+for
+me
+for
+years
+and
+she
+didn
+t
+know
+where
+I
+was
+Dr
+Where
+has
+she
+been
+Sp
+Why
+she
+s
+dead
+I
+was
+at
+her
+funeral
+and
+I
+know
+well
+that
+she
+was
+not
+buried
+alive
+Dr
+You
+went
+to
+the
+funeral
+of
+her
+body
+not
+her
+spirit
+Sp
+This
+is
+her
+ghost
+then
+Dr
+She
+is
+probably
+an
+intelligent
+spirit
+We
+do
+not
+need
+to
+argue
+about
+that
+any
+more
+Let
+her
+explain
+Sp
+She
+says
+Let
+us
+go
+Jimmie
+and
+take
+the
+gang
+with
+us
+She
+says
+she
+is
+a
+missionary
+and
+helps
+everybody
+she
+can
+she
+says
+she
+helps
+unfortunates
+I
+have
+been
+unfortunate
+too
+Dr
+Tell
+this
+lady
+this
+other
+spirit
+you
+have
+been
+talking
+about
+to
+go
+with
+you
+SP
+She
+says
+if
+she
+leaves
+she
+has
+no
+body
+Dr
+Tell
+her
+she
+has
+a
+spirit
+body
+She
+doesn
+t
+need
+a
+physical
+body
+Tell
+her
+that
+they
+will
+teach
+her
+how
+to
+progress
+You
+take
+the
+imps
+along
+too
+Sp
+I
+can
+t
+carry
+them
+all
+with
+me
+How
+do
+you
+know
+they
+all
+want
+to
+go
+with
+us
+Dr
+They
+will
+go
+if
+you
+can
+show
+them
+anything
+better
+than
+they
+have
+now
+Probably
+they
+never
+had
+any
+chance
+in
+life
+Sp
+I
+never
+thought
+of
+that
+Dr
+We
+cannot
+blame
+them
+altogether
+Show
+them
+the
+better
+way
+and
+they
+will
+follow
+Sp
+Where
+am
+I
+now
+Dr
+In
+California
+Sp
+Where
+in
+California
+Dr
+Los
+Angeles
+Sp
+If
+you
+are
+in
+California
+it
+doesn
+t
+mean
+that
+I
+am
+there
+too
+Dr
+How
+could
+you
+be
+anywhere
+else
+since
+you
+are
+here
+Sp
+Of
+course
+that
+is
+reasonable
+The
+last
+I
+remember
+I
+was
+in
+Dallas
+Texas
+and
+the
+first
+thing
+I
+knew
+I
+was
+struck
+on
+the
+back
+of
+my
+head
+I
+was
+shoeing
+a
+horse
+when
+I
+was
+struck
+Did
+he
+kill
+me
+Dr
+He
+evidently
+chased
+you
+out
+of
+your
+body
+Nobody
+ever
+dies
+If
+you
+don
+t
+go
+soon
+your
+sister
+will
+become
+tired
+of
+waiting
+for
+you
+Sp
+I
+ll
+go
+with
+her
+if
+you
+ll
+let
+me
+but
+I
+ll
+have
+to
+walk
+Dr
+How
+are
+you
+going
+to
+walk
+With
+my
+wife
+s
+body
+You
+will
+have
+to
+learn
+a
+new
+lesson
+Just
+think
+yourself
+with
+your
+sister
+and
+you
+will
+be
+there
+instantly
+You
+will
+have
+to
+travel
+by
+thought
+Sp
+Stars
+in
+Heaven
+that
+s
+a
+new
+wrinkle
+Dr
+Now
+friend
+you
+can
+t
+stay
+any
+longer
+Sp
+That
+s
+a
+nice
+way
+to
+talk
+to
+me
+Dr
+I
+don
+t
+want
+you
+to
+use
+my
+wife
+s
+body
+any
+longer
+Sp
+What
+body
+will
+I
+get
+hold
+of
+when
+I
+get
+out
+from
+here
+Dr
+When
+you
+leave
+this
+body
+you
+will
+have
+your
+spirit
+body
+That
+is
+invisible
+to
+us
+Sp
+Can
+I
+jump
+from
+this
+body
+into
+a
+spirit
+body
+Dr
+Your
+sister
+will
+explain
+Just
+think
+yourself
+with
+your
+sister
+You
+do
+not
+need
+any
+physical
+body
+for
+that
+purpose
+Sp
+I
+am
+commencing
+to
+get
+sleepy
+Dr
+Go
+with
+your
+sister
+and
+follow
+her
+instructions
+you
+will
+learn
+many
+new
+lessons
+in
+the
+spirit
+life
+Take
+all
+the
+gang
+and
+the
+little
+imps
+with
+you
+Sp
+To
+spirits
+Now
+you
+come
+along
+with
+me
+all
+of
+you
+the
+whole
+lot
+of
+you
+Dr
+Will
+they
+all
+go
+with
+you
+Sp
+Now
+we
+are
+going
+Come
+on
+the
+whole
+gang
+of
+you
+Goodbye
+On
+a
+subsequent
+date
+a
+spirit
+Harry
+was
+brought
+to
+the
+circle
+for
+enlightenment
+and
+controlling
+Mrs
+Wickland
+maintained
+an
+interesting
+conversation
+regarding
+another
+spirit
+that
+had
+been
+troubling
+Mrs
+Burton
+Spirit
+HARRY
+Dr
+Where
+have
+you
+come
+from
+Sp
+I
+don
+t
+know
+where
+I
+am
+and
+I
+don
+t
+know
+what
+is
+the
+matter
+with
+me
+Dr
+Would
+you
+care
+to
+know
+what
+is
+the
+matter
+Sp
+I
+don
+t
+know
+what
+is
+the
+matter
+Dr
+Did
+something
+happen
+to
+you
+Sp
+That
+is
+what
+I
+should
+like
+to
+find
+out
+Dr
+What
+have
+you
+been
+doing
+lately
+Sp
+I
+don
+t
+know
+Dr
+Tell
+us
+who
+you
+are
+Do
+you
+know
+Sp
+Well
+I
+should
+say
+well
+I
+think
+I
+do
+Dr
+Where
+do
+you
+think
+you
+are
+Sp
+I
+don
+t
+know
+Dr
+Yes
+you
+do
+Sp
+No
+I
+don
+t
+know
+Everything
+is
+so
+queer
+and
+it
+just
+seems
+to
+me
+I
+don
+t
+know
+what
+s
+the
+matter
+Dr
+Can
+t
+you
+look
+back
+and
+see
+whether
+something
+happened
+to
+you
+Sp
+I
+can
+t
+look
+back
+I
+have
+no
+eyes
+in
+my
+back
+Dr
+I
+mean
+think
+back
+Sp
+Think
+of
+my
+back
+Dr
+No
+think
+of
+your
+past
+Just
+use
+your
+thinking
+faculties
+Sp
+I
+don
+t
+know
+anything
+Dr
+You
+must
+not
+be
+so
+mentally
+lazy
+Sp
+What
+can
+a
+man
+do
+Dr
+This
+is
+a
+woman
+sitting
+here
+Are
+you
+a
+man
+or
+a
+woman
+SP
+I
+am
+a
+man
+that
+fellow
+is
+a
+man
+and
+the
+others
+are
+women
+I
+have
+always
+been
+a
+man
+I
+was
+never
+a
+woman
+and
+never
+will
+be
+You
+know
+I
+am
+a
+man
+Dr
+Look
+at
+your
+hands
+where
+did
+you
+get
+them
+Sp
+Those
+are
+not
+my
+hands
+Dr
+Look
+at
+your
+feet
+Sp
+They
+are
+not
+mine
+either
+I
+never
+was
+a
+woman
+and
+I
+don
+t
+want
+women
+s
+hands
+and
+feet
+and
+I
+don
+t
+want
+to
+borrow
+any
+one
+s
+body
+now
+Dr
+Are
+you
+old
+Sp
+Well
+I
+m
+not
+a
+young
+kid
+Dr
+You
+are
+probably
+old
+in
+years
+but
+not
+in
+knowledge
+Sp
+No
+I
+don
+t
+know
+that
+I
+have
+so
+much
+knowledge
+Dr
+If
+you
+had
+knowledge
+you
+would
+not
+be
+in
+your
+present
+position
+Sp
+That
+has
+nothing
+to
+do
+with
+knowledge
+Dr
+Knowledge
+is
+just
+what
+you
+lack
+Tell
+us
+what
+your
+name
+is
+Is
+it
+Mary
+Sp
+Have
+you
+ever
+heard
+of
+a
+man
+being
+named
+Mary
+That
+s
+ridiculous
+Dr
+Then
+tell
+us
+what
+your
+name
+is
+I
+can
+only
+guess
+Sp
+For
+goodness
+sake
+alive
+man
+it
+is
+a
+man
+s
+name
+not
+a
+woman
+s
+Dr
+Introduce
+yourself
+Sp
+What
+in
+the
+devil
+do
+you
+need
+my
+name
+for
+Dr
+You
+are
+well
+versed
+in
+English
+Did
+you
+have
+white
+hair
+as
+you
+have
+now
+Referring
+to
+hair
+of
+psychic
+Sp
+I
+had
+gray
+hair
+Dr
+Did
+you
+wear
+curls
+as
+you
+are
+doing
+now
+Sp
+No
+I
+don
+t
+like
+them
+Dr
+Did
+you
+wear
+a
+comb
+Sp
+Did
+you
+ever
+know
+of
+a
+man
+wearing
+a
+comb
+Dr
+Where
+did
+you
+get
+that
+wedding
+ring
+Sp
+I
+didn
+t
+steal
+anything
+I
+don
+t
+want
+a
+woman
+s
+hand
+Dr
+John
+where
+did
+you
+come
+from
+Sp
+I
+m
+not
+named
+John
+Dr
+What
+did
+your
+wife
+call
+you
+What
+did
+your
+mother
+call
+you
+Sp
+She
+called
+me
+Harry
+I
+was
+not
+married
+Dr
+What
+is
+your
+other
+name
+Sp
+I
+do
+not
+need
+to
+tell
+my
+name
+to
+a
+lot
+of
+women
+Dr
+There
+are
+some
+gentlemen
+present
+Sp
+How
+in
+the
+world
+did
+I
+get
+into
+this
+crowd
+of
+women
+I
+hate
+women
+Dr
+You
+must
+have
+been
+disappointed
+in
+love
+What
+was
+the
+trouble
+Sp
+I
+d
+be
+a
+big
+fool
+to
+tell
+my
+secrets
+to
+a
+lot
+of
+women
+Dr
+Why
+did
+she
+marry
+the
+other
+man
+Sp
+Who
+Dr
+The
+girl
+who
+jilted
+you
+Sp
+She
+never
+in
+my
+life
+no
+Dr
+Weren
+t
+you
+disappointed
+in
+love
+Sp
+No
+Dr
+Then
+why
+do
+you
+hate
+women
+Sp
+I
+must
+not
+tell
+you
+any
+of
+my
+secrets
+before
+this
+bunch
+of
+women
+so
+they
+can
+sit
+here
+and
+laugh
+at
+me
+I
+should
+like
+to
+know
+why
+all
+these
+women
+are
+staring
+at
+me
+What
+s
+the
+matter
+with
+that
+man
+over
+there
+Spirit
+I
+mean
+the
+one
+behind
+that
+lady
+Mrs
+Burton
+seated
+in
+circle
+Mrs
+B
+I
+m
+a
+man
+hater
+he
+can
+keep
+away
+from
+me
+Sp
+Why
+is
+that
+man
+around
+her
+Is
+he
+her
+husband
+Lady
+what
+does
+he
+hang
+around
+you
+for
+What
+s
+the
+matter
+with
+You
+Do
+you
+like
+him
+so
+well
+that
+you
+want
+him
+to
+stick
+to
+you
+like
+glue
+Dr
+Ask
+him
+how
+long
+he
+has
+been
+dead
+Sp
+He
+sure
+is
+an
+ugly
+thing
+I
+m
+afraid
+of
+him
+He
+looks
+like
+he
+wants
+to
+fight
+Dr
+Ask
+him
+how
+long
+he
+has
+been
+dead
+Sp
+Dead
+He
+sticks
+so
+she
+can
+t
+move
+without
+him
+Whenever
+she
+moves
+he
+moves
+He
+seems
+to
+me
+like
+a
+monkey
+Mrs
+B
+Say
+take
+him
+away
+with
+you
+will
+you
+Sp
+Why
+should
+I
+take
+him
+for
+For
+God
+s
+sake
+I
+don
+t
+know
+the
+fellow
+Do
+you
+like
+him
+lady
+Mrs
+B
+No
+I
+don
+t
+I
+m
+tired
+of
+him
+Sp
+What
+s
+the
+matter
+with
+him
+Is
+he
+your
+husband
+Mrs
+B
+No
+he
+is
+not
+and
+I
+don
+t
+understand
+it
+myself
+Sp
+Do
+you
+like
+him
+Mrs
+B
+No
+I
+want
+him
+to
+get
+away
+from
+me
+Sp
+Where
+am
+I
+anyhow
+Dr
+You
+are
+in
+Los
+Angeles
+California
+Sp
+There
+s
+also
+a
+woman
+around
+her
+and
+she
+sticks
+like
+glue
+Mrs
+B
+Are
+you
+here
+to
+help
+us
+Can
+t
+you
+take
+those
+things
+away
+from
+me
+Sp
+Do
+you
+like
+that
+man
+who
+is
+with
+you
+Mrs
+B
+No
+I
+am
+wild
+to
+get
+rid
+of
+him
+The
+door
+is
+wide
+open
+he
+can
+surely
+go
+Sp
+For
+God
+s
+sake
+shut
+the
+door
+I
+don
+t
+want
+such
+a
+man
+following
+me
+Why
+don
+t
+you
+tell
+the
+police
+Can
+t
+the
+police
+take
+him
+away
+from
+you
+if
+you
+don
+t
+want
+him
+Dr
+They
+are
+all
+spirits
+Sp
+Spirits
+Dr
+Yes
+like
+yourself
+Sp
+Oh
+you
+tell
+me
+that
+man
+is
+a
+ghost
+the
+one
+standing
+behind
+that
+woman
+there
+Dr
+Can
+you
+see
+him
+Sp
+He
+s
+no
+spirit
+he
+s
+a
+man
+He
+stands
+there
+He
+s
+afraid
+she
+will
+get
+away
+from
+him
+and
+he
+can
+t
+follow
+He
+says
+he
+is
+sick
+of
+her
+Dr
+He
+is
+a
+spirit
+but
+does
+not
+understand
+it
+She
+does
+not
+see
+him
+and
+neither
+do
+we
+He
+is
+invisible
+to
+us
+Sp
+What
+kind
+of
+a
+place
+is
+this
+I
+came
+to
+Dr
+We
+cannot
+see
+you
+either
+Sp
+You
+can
+t
+Don
+t
+you
+hear
+me
+Dr
+We
+hear
+you
+but
+we
+can
+t
+see
+you
+Sp
+Is
+this
+a
+crowd
+of
+blind
+people
+I
+can
+see
+them
+all
+and
+lots
+more
+The
+whole
+room
+is
+full
+of
+people
+Dr
+We
+can
+hear
+you
+but
+we
+can
+only
+hear
+you
+talk
+through
+a
+woman
+s
+body
+Sp
+Now
+you
+re
+kidding
+me
+You
+think
+that
+I
+I
+would
+ever
+talk
+through
+a
+woman
+Not
+much
+I
+would
+not
+go
+across
+the
+street
+to
+talk
+through
+a
+woman
+You
+know
+I
+can
+t
+understand
+what
+this
+thing
+is
+I
+don
+t
+know
+why
+I
+should
+be
+here
+I
+don
+t
+know
+what
+s
+the
+matter
+all
+of
+you
+are
+sitting
+around
+looking
+at
+me
+Why
+are
+there
+people
+standing
+around
+each
+one
+here
+There
+are
+others
+standing
+around
+looking
+at
+me
+too
+Could
+they
+have
+conversation
+with
+a
+fellow
+Dr
+If
+I
+explain
+to
+you
+will
+you
+try
+to
+understand
+In
+the
+first
+place
+you
+are
+dead
+as
+people
+would
+say
+Sp
+If
+I
+m
+a
+dead
+one
+that
+s
+a
+good
+thing
+Dr
+You
+yourself
+are
+not
+dead
+Sp
+But
+you
+said
+I
+was
+dead
+Dr
+You
+are
+dead
+to
+your
+own
+people
+and
+friends
+We
+know
+you
+are
+not
+dead
+in
+reality
+you
+only
+lost
+your
+physical
+body
+But
+you
+also
+have
+a
+spirit
+body
+when
+you
+pass
+out
+of
+your
+mortal
+body
+You
+find
+yourself
+alive
+and
+you
+have
+a
+spirit
+body
+but
+you
+cannot
+explain
+it
+Sp
+I
+know
+I
+have
+been
+walking
+a
+very
+great
+deal
+and
+it
+seems
+to
+me
+I
+never
+get
+anywhere
+I
+saw
+a
+lot
+of
+people
+here
+I
+came
+here
+with
+the
+crowd
+and
+before
+I
+knew
+it
+everything
+was
+light
+and
+I
+saw
+you
+all
+sitting
+around
+in
+a
+circle
+singing
+I
+thought
+it
+was
+a
+prayer
+meeting
+so
+I
+stopped
+and
+before
+I
+knew
+anything
+I
+could
+talk
+Before
+then
+I
+thought
+I
+must
+be
+deaf
+and
+dumb
+and
+blind
+because
+I
+could
+not
+see
+anything
+and
+I
+am
+so
+tired
+Dr
+Most
+of
+those
+you
+see
+here
+are
+spirits
+like
+yourself
+Sp
+Why
+are
+we
+here
+Dr
+Many
+have
+been
+brought
+to
+obtain
+understanding
+You
+yourself
+are
+controlling
+my
+wife
+s
+body
+You
+are
+not
+my
+wife
+but
+you
+are
+using
+my
+wife
+s
+body
+It
+does
+not
+make
+any
+difference
+how
+strange
+it
+seems
+to
+you
+it
+is
+a
+fact
+You
+are
+invisible
+to
+us
+and
+you
+are
+speaking
+through
+my
+wife
+s
+organism
+That
+man
+you
+speak
+of
+is
+a
+spirit
+too
+Take
+him
+with
+you
+when
+you
+go
+He
+is
+invisible
+to
+us
+Sp
+I
+should
+like
+to
+fight
+him
+Dr
+Did
+you
+ever
+read
+the
+Bible
+Sp
+Yes
+a
+long
+time
+ago
+I
+have
+not
+seen
+one
+for
+a
+long
+time
+Dr
+You
+remember
+reading
+in
+the
+Bible
+about
+obsessing
+spirits
+that
+Jesus
+cast
+out
+He
+is
+one
+of
+that
+kind
+Sp
+They
+are
+all
+around
+that
+woman
+Mrs
+B
+Mrs
+B
+I
+have
+the
+door
+closed
+now
+Sp
+If
+you
+keep
+the
+door
+closed
+I
+ll
+take
+them
+along
+with
+me
+I
+want
+to
+fight
+with
+that
+fellow
+anyhow
+What
+s
+your
+name
+Dr
+What
+does
+he
+say
+Sp
+He
+says
+his
+name
+is
+Jim
+McDonald
+Don
+t
+you
+know
+him
+lady
+If
+he
+is
+a
+spirit
+for
+goodness
+sake
+why
+does
+be
+hang
+on
+to
+that
+woman
+when
+she
+doesn
+t
+want
+him
+Dr
+Perhaps
+he
+found
+himself
+there
+as
+you
+find
+yourself
+here
+You
+say
+you
+saw
+a
+crowd
+a
+light
+and
+here
+you
+are
+Sp
+That
+man
+says
+he
+was
+walking
+in
+the
+dark
+and
+saw
+that
+lady
+Say
+will
+I
+always
+have
+to
+stay
+here
+too
+Ques
+What
+are
+the
+names
+of
+those
+around
+me
+This
+was
+asked
+by
+another
+patient
+Sp
+There
+are
+two
+They
+fight
+once
+in
+a
+while
+I
+see
+them
+fighting
+Ques
+I
+fight
+them
+too
+Dr
+Do
+not
+fight
+them
+physically
+that
+gives
+them
+strength
+and
+magnetism
+When
+you
+fight
+them
+in
+that
+way
+you
+give
+them
+much
+more
+strength
+You
+hold
+them
+by
+fighting
+them
+as
+you
+do
+Fight
+them
+mentally
+Why
+don
+t
+you
+try
+to
+close
+up
+Sp
+I
+will
+take
+them
+along
+too
+if
+I
+can
+Don
+t
+fist
+fight
+them
+any
+more
+I
+don
+t
+know
+what
+s
+the
+matter
+with
+me
+I
+feel
+strange
+Dr
+Where
+was
+your
+home
+Sp
+It
+was
+in
+Detroit
+Michigan
+Dr
+What
+year
+can
+you
+recall
+Sp
+I
+can
+t
+recall
+any
+Dr
+Who
+is
+President
+Sp
+I
+don
+t
+know
+for
+sure
+but
+I
+think
+Cleveland
+Dr
+He
+was
+President
+a
+long
+time
+ago
+Sp
+I
+have
+been
+walking
+so
+long
+that
+I
+feel
+tired
+Is
+there
+any
+rest
+for
+a
+weary
+person
+Have
+you
+a
+bed
+so
+that
+I
+can
+lie
+down
+and
+rest
+Dr
+If
+you
+look
+around
+you
+will
+see
+intelligent
+spirits
+Sp
+Why
+I
+see
+some
+beautiful
+girls
+No
+girls
+I
+will
+not
+come
+with
+you
+Don
+t
+try
+to
+fool
+me
+I
+m
+not
+going
+with
+you
+not
+much
+Dr
+They
+are
+different
+from
+the
+girls
+you
+have
+known
+They
+are
+not
+mortal
+girls
+they
+are
+spirits
+Sp
+They
+have
+a
+smile
+like
+others
+to
+give
+to
+a
+man
+Dr
+They
+are
+different
+altogether
+They
+help
+spirits
+who
+need
+help
+Sp
+Those
+girls
+seem
+to
+be
+honest
+but
+you
+know
+I
+hate
+women
+Dr
+You
+should
+not
+condemn
+them
+all
+because
+one
+was
+false
+Sp
+You
+see
+I
+want
+to
+take
+all
+those
+folks
+with
+me
+If
+I
+can
+I
+will
+take
+them
+with
+me
+I
+think
+I
+will
+follow
+those
+girls
+anyhow
+Surprised
+Why
+there
+s
+my
+mother
+She
+s
+been
+dead
+and
+gone
+a
+long
+time
+Dr
+She
+s
+not
+dead
+SP
+Don
+t
+you
+think
+she
+s
+in
+Heaven
+Dr
+Ask
+her
+She
+can
+speak
+for
+herself
+Sp
+She
+says
+she
+is
+in
+a
+beautiful
+place
+called
+the
+spirit
+world
+Dr
+The
+spirit
+world
+surrounds
+the
+physical
+Heaven
+is
+a
+condition
+within
+you
+when
+you
+have
+found
+that
+you
+will
+be
+contented
+and
+happy
+That
+is
+what
+Jesus
+taught
+also
+Sp
+I
+should
+like
+to
+go
+with
+my
+mother
+She
+s
+a
+good
+old
+lady
+I
+want
+to
+take
+McDonald
+along
+too
+Come
+here
+McDonald
+I
+don
+t
+want
+to
+stay
+around
+here
+any
+longer
+and
+I
+want
+you
+to
+come
+along
+He
+acts
+as
+if
+he
+is
+trying
+hard
+to
+wake
+up
+Say
+come
+on
+McDonald
+let
+us
+be
+good
+fellows
+and
+go
+with
+those
+girls
+for
+they
+might
+be
+honest
+and
+sincere
+Mother
+you
+come
+along
+too
+I
+will
+go
+now
+Goodby
+Come
+on
+you
+fellows
+Say
+what
+do
+you
+stick
+to
+that
+woman
+for
+anyhow
+I
+should
+be
+ashamed
+of
+myself
+hanging
+around
+her
+I
+m
+going
+Goodbye
+Mrs
+B
+Be
+sure
+and
+take
+them
+along
+with
+you
+Dr
+What
+is
+your
+name
+Sp
+Harry
+That
+is
+all
+I
+can
+remember
+I
+have
+not
+heard
+my
+name
+for
+many
+years
+Dr
+Make
+the
+others
+understand
+the
+folly
+of
+staying
+Sp
+I
+m
+going
+to
+take
+those
+fellows
+along
+Now
+you
+look
+here
+You
+re
+going
+to
+come
+along
+with
+me
+I
+ll
+fight
+every
+damned
+one
+of
+you
+that
+won
+t
+come
+You
+ought
+to
+be
+ashamed
+to
+stick
+around
+a
+woman
+like
+you
+do
+Now
+come
+along
+with
+me
+you
+see
+they
+come
+I
+ll
+look
+after
+them
+all
+right
+Goodbye
+During
+another
+circle
+Frank
+one
+of
+the
+spirits
+interfering
+with
+Mrs
+Burton
+left
+her
+and
+controlled
+the
+intermediary
+exhibiting
+little
+trace
+of
+memory
+in
+any
+form
+Spirit
+FRANK
+Patient
+MRS
+BURTON
+Dr
+Where
+did
+you
+come
+from
+Sp
+I
+don
+t
+know
+Dr
+Do
+you
+know
+any
+one
+here
+Sp
+I
+don
+t
+see
+anybody
+I
+know
+Dr
+Don
+t
+you
+know
+where
+you
+came
+from
+Sp
+I
+don
+t
+know
+myself
+How
+can
+I
+answer
+questions
+when
+I
+don
+t
+know
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+Dead
+The
+idea
+Say
+what
+s
+the
+matter
+with
+me
+I
+think
+it
+looks
+very
+funny
+to
+see
+you
+all
+sitting
+around
+here
+Are
+you
+having
+a
+meeting
+or
+what
+is
+it
+called
+anyhow
+Dr
+Yes
+it
+s
+a
+meeting
+Try
+to
+tell
+us
+who
+you
+are
+Sp
+I
+don
+t
+know
+why
+I
+should
+tell
+you
+that
+Dr
+You
+are
+a
+stranger
+to
+us
+Sp
+I
+don
+t
+know
+whether
+I
+shall
+stay
+here
+or
+not
+I
+am
+always
+peculiar
+among
+strangers
+you
+know
+Dr
+Tell
+us
+where
+you
+came
+from
+Sp
+For
+my
+dear
+life
+I
+don
+t
+know
+myself
+so
+how
+can
+I
+tell
+you
+Say
+why
+do
+you
+hold
+my
+arm
+I
+m
+a
+strong
+man
+and
+can
+sit
+still
+by
+myself
+Dr
+I
+thought
+you
+were
+a
+woman
+Sp
+God
+above
+Why
+do
+you
+think
+I
+m
+a
+woman
+You
+ll
+have
+to
+look
+again
+because
+I
+am
+a
+man
+sure
+enough
+and
+I
+ve
+always
+been
+a
+man
+But
+things
+are
+funny
+and
+I
+don
+t
+know
+it
+has
+been
+so
+peculiar
+with
+me
+for
+some
+time
+You
+know
+I
+was
+walking
+along
+and
+then
+I
+heard
+some
+singing
+so
+I
+thought
+I
+would
+peek
+in
+and
+before
+I
+knew
+it
+I
+was
+feeling
+fine
+You
+know
+I
+have
+not
+been
+feeling
+well
+for
+some
+time
+everything
+has
+seemed
+unusual
+After
+becoming
+enmeshed
+in
+aura
+of
+sensitive
+I
+don
+t
+know
+what
+is
+the
+matter
+with
+me
+anyhow
+Somebody
+said
+to
+me
+that
+if
+I
+came
+in
+where
+the
+singing
+was
+I
+would
+find
+out
+what
+is
+the
+matter
+with
+me
+I
+have
+asked
+everybody
+I
+saw
+but
+everybody
+passed
+by
+they
+were
+so
+stuck
+up
+they
+wouldn
+t
+talk
+to
+a
+fellow
+any
+more
+The
+people
+all
+looked
+like
+wax
+to
+me
+Dear
+life
+I
+ve
+been
+talking
+and
+talking
+and
+walking
+and
+walking
+and
+for
+dear
+life
+I
+could
+never
+get
+any
+one
+to
+answer
+me
+or
+take
+any
+notice
+of
+me
+before
+As
+a
+spirit
+he
+was
+invisible
+to
+mortals
+and
+therefore
+unnoticed
+by
+them
+You
+are
+the
+first
+one
+to
+answer
+any
+question
+I
+have
+some
+little
+peculiar
+kind
+of
+thing
+in
+my
+throat
+once
+in
+a
+while
+and
+I
+can
+t
+talk
+and
+then
+I
+seem
+to
+get
+well
+again
+But
+I
+feel
+queer
+so
+queer
+Dr
+Can
+you
+remember
+anything
+happening
+to
+you
+at
+some
+time
+Sp
+Something
+happens
+every
+day
+One
+time
+I
+remember
+one
+thing
+and
+another
+time
+something
+else
+but
+I
+don
+t
+remember
+anything
+clearly
+I
+cannot
+for
+dear
+life
+know
+where
+I
+am
+at
+It
+is
+the
+most
+peculiar
+thing
+I
+ever
+saw
+Dr
+How
+old
+are
+you
+Sp
+I
+cannot
+tell
+you
+that
+I
+haven
+t
+known
+my
+age
+for
+some
+time
+Nobody
+ever
+asks
+me
+about
+that
+and
+the
+natural
+circumstance
+is
+that
+I
+forgot
+Hearing
+a
+passing
+train
+Why
+there
+s
+a
+train
+coming
+It
+s
+a
+long
+time
+since
+I
+heard
+that
+It
+seems
+I
+live
+again
+for
+a
+short
+time
+I
+don
+t
+know
+what
+it
+is
+Dr
+Where
+did
+you
+live
+formerly
+Where
+do
+you
+think
+you
+are
+now
+Sp
+I
+don
+t
+know
+where
+I
+lived
+before
+but
+right
+now
+I
+am
+in
+this
+room
+with
+a
+lot
+of
+people
+Dr
+Do
+you
+know
+you
+are
+in
+Los
+Angeles
+California
+Sp
+For
+dear
+life
+no
+Dr
+Where
+do
+you
+think
+you
+ought
+to
+be
+Sp
+I
+cannot
+seem
+to
+recall
+things
+There
+are
+times
+that
+I
+can
+tell
+you
+that
+I
+am
+a
+woman
+and
+then
+I
+get
+some
+kind
+of
+funny
+thing
+I
+do
+not
+like
+Static
+treatment
+of
+patient
+Dr
+What
+do
+you
+get
+Sp
+When
+I
+am
+a
+woman
+I
+have
+long
+hair
+and
+when
+the
+hair
+is
+hanging
+down
+this
+funny
+thing
+begins
+Mrs
+Burton
+was
+in
+the
+habit
+of
+taking
+her
+hair
+down
+during
+a
+treatment
+Dr
+What
+do
+you
+mean
+Sp
+It
+seems
+like
+a
+million
+needles
+strike
+me
+and
+for
+Gods
+sake
+it
+is
+the
+worst
+thing
+I
+ever
+had
+in
+my
+whole
+life
+I
+don
+t
+want
+to
+be
+a
+woman
+I
+only
+get
+that
+funny
+thing
+when
+I
+am
+a
+woman
+Seeing
+Mrs
+B
+in
+circle
+She
+s
+the
+one
+with
+the
+long
+hair
+To
+Mrs
+B
+I
+m
+going
+to
+get
+you
+Dr
+Do
+you
+know
+that
+lady
+Sp
+Yes
+she
+gets
+so
+mad
+at
+me
+at
+times
+and
+wants
+to
+chase
+me
+away
+Dr
+She
+probably
+doesn
+t
+want
+you
+around
+Possibly
+you
+bother
+her
+SP
+She
+bothers
+me
+too
+Dr
+Try
+to
+understand
+your
+condition
+Cannot
+you
+realize
+that
+you
+are
+so
+called
+dead
+At
+this
+time
+you
+are
+a
+woman
+Look
+at
+your
+clothes
+You
+say
+you
+are
+a
+man
+and
+yet
+you
+are
+wearing
+the
+clothes
+of
+a
+woman
+Sp
+For
+God
+s
+sake
+I
+don
+t
+want
+to
+be
+a
+woman
+any
+more
+I
+m
+a
+man
+and
+I
+want
+to
+be
+a
+man
+I
+used
+to
+be
+a
+man
+all
+the
+time
+but
+I
+cannot
+for
+dear
+life
+know
+how
+I
+can
+get
+out
+of
+this
+condition
+That
+woman
+says
+to
+go
+and
+I
+try
+to
+get
+out
+but
+I
+cannot
+Suddenly
+recognizing
+Dr
+W
+You
+are
+the
+one
+that
+gave
+me
+that
+fire
+Praise
+the
+Lord
+I
+want
+to
+get
+rid
+of
+you
+I
+don
+t
+like
+you
+with
+all
+those
+fires
+you
+give
+me
+I
+don
+t
+want
+to
+have
+anything
+to
+do
+with
+you
+Mrs
+B
+How
+long
+have
+you
+been
+with
+me
+Sp
+With
+you
+You
+always
+chase
+me
+out
+What
+did
+you
+do
+with
+that
+woman
+that
+was
+with
+me
+Another
+spirit
+obsessing
+the
+patient
+dislodged
+previously
+She
+sang
+for
+me
+We
+have
+lost
+her
+I
+have
+been
+hunting
+and
+hunting
+for
+her
+Can
+you
+tell
+me
+where
+she
+is
+Dr
+She
+left
+that
+lady
+and
+controlled
+this
+same
+body
+as
+you
+are
+doing
+now
+After
+that
+she
+went
+to
+the
+spirit
+world
+That
+is
+where
+you
+are
+going
+when
+you
+leave
+here
+Sp
+That
+woman
+Mrs
+B
+has
+no
+business
+to
+scold
+me
+like
+she
+does
+I
+haven
+t
+done
+her
+any
+harm
+Dr
+Suppose
+you
+were
+a
+lady
+and
+some
+spirit
+bothered
+you
+would
+you
+like
+it
+Sp
+Certainly
+I
+would
+not
+like
+it
+very
+well
+Dr
+You
+bothered
+her
+You
+are
+a
+spirit
+and
+she
+is
+a
+mortal
+She
+wants
+to
+get
+rid
+of
+you
+Sp
+She
+bothers
+me
+with
+all
+those
+needles
+They
+hit
+her
+on
+the
+head
+and
+it
+seems
+like
+the
+needles
+are
+hitting
+my
+head
+Dr
+She
+is
+in
+her
+mortal
+body
+but
+you
+are
+a
+spirit
+invisible
+to
+us
+Sp
+What
+do
+you
+mean
+Dr
+Just
+exactly
+what
+I
+say
+Your
+mind
+is
+invisible
+to
+us
+You
+are
+temporarily
+controlling
+my
+wife
+s
+body
+Sp
+Why
+I
+never
+saw
+your
+wife
+and
+I
+do
+not
+want
+to
+I
+Will
+tell
+you
+one
+thing
+I
+am
+a
+man
+and
+will
+never
+be
+anything
+else
+and
+I
+don
+t
+want
+to
+be
+married
+to
+you
+Dr
+You
+may
+be
+a
+man
+as
+you
+claim
+but
+I
+want
+you
+to
+recognize
+the
+fact
+that
+you
+are
+invisible
+to
+us
+This
+is
+my
+wife
+s
+body
+See
+Chap
+Page
+Spirit
+Carrie
+Huntington
+Sp
+For
+God
+s
+sake
+sure
+I
+am
+a
+woman
+Noticing
+clothes
+of
+psychic
+For
+the
+land
+s
+sake
+alive
+when
+did
+these
+clothes
+come
+on
+me
+Dr
+They
+have
+been
+on
+you
+quite
+a
+while
+How
+did
+you
+get
+here
+Sp
+Somebody
+said
+You
+go
+in
+there
+and
+you
+will
+get
+understanding
+because
+you
+do
+not
+need
+to
+wander
+as
+you
+are
+doing
+And
+now
+I
+am
+a
+woman
+Dr
+Only
+temporarily
+Try
+to
+understand
+what
+I
+am
+telling
+you
+You
+lost
+your
+body
+perhaps
+a
+long
+time
+ago
+Sp
+That
+woman
+Mrs
+B
+is
+the
+fault
+of
+it
+Dr
+You
+have
+been
+bothering
+that
+lady
+probably
+for
+many
+years
+and
+you
+may
+have
+been
+troubling
+others
+What
+is
+your
+name
+Sp
+I
+can
+t
+think
+Dr
+You
+lost
+your
+own
+body
+and
+have
+been
+wandering
+around
+in
+that
+outer
+darkness
+which
+is
+described
+in
+the
+Bible
+Were
+you
+a
+religious
+man
+Sp
+I
+don
+t
+want
+to
+have
+anything
+to
+do
+with
+the
+churches
+I
+am
+sick
+and
+tired
+of
+them
+all
+They
+all
+say
+if
+you
+do
+not
+do
+so
+and
+so
+you
+will
+go
+straight
+to
+hell
+where
+you
+will
+bum
+forever
+They
+teach
+and
+preach
+damnation
+you
+know
+I
+was
+quite
+a
+young
+man
+when
+a
+minister
+told
+me
+I
+would
+go
+to
+that
+terrible
+hell
+and
+they
+did
+not
+want
+me
+in
+the
+church
+any
+more
+because
+I
+did
+not
+do
+as
+they
+said
+I
+should
+I
+did
+not
+believe
+any
+of
+it
+I
+was
+not
+such
+a
+very
+bad
+man
+After
+I
+left
+that
+church
+I
+thought
+I
+would
+try
+another
+For
+dear
+life
+I
+got
+into
+the
+same
+hell
+and
+damnation
+and
+I
+was
+tired
+of
+it
+all
+They
+talked
+of
+God
+and
+holy
+things
+They
+said
+I
+should
+give
+my
+money
+to
+God
+They
+said
+I
+should
+give
+my
+tobacco
+to
+God
+I
+could
+not
+see
+why
+God
+should
+need
+my
+tobacco
+and
+what
+little
+money
+I
+had
+I
+could
+not
+see
+things
+that
+way
+so
+I
+left
+that
+church
+I
+went
+to
+another
+church
+and
+they
+talked
+and
+talked
+to
+me
+After
+awhile
+they
+said
+that
+the
+devil
+was
+after
+me
+because
+I
+would
+not
+give
+my
+money
+to
+the
+church
+One
+time
+I
+had
+been
+out
+with
+the
+boys
+for
+a
+while
+I
+never
+drank
+too
+much
+but
+I
+drank
+enough
+that
+time
+to
+be
+lively
+I
+thought
+now
+I
+will
+go
+right
+straight
+up
+to
+the
+front
+and
+sit
+down
+so
+I
+did
+They
+tried
+to
+save
+my
+soul
+for
+God
+so
+they
+told
+me
+The
+minister
+said
+that
+the
+devil
+was
+right
+after
+me
+and
+I
+got
+pretty
+seared
+He
+said
+And
+he
+is
+going
+to
+get
+you
+I
+thought
+I
+would
+look
+behind
+and
+probably
+I
+might
+see
+him
+but
+I
+didn
+t
+He
+said
+Come
+up
+come
+up
+and
+we
+will
+save
+your
+soul
+from
+hell
+come
+and
+be
+saved
+Come
+to
+the
+front
+and
+be
+converted
+You
+will
+be
+born
+again
+I
+was
+a
+little
+contrary
+for
+a
+while
+and
+then
+I
+got
+up
+and
+went
+right
+up
+to
+the
+front
+as
+I
+wanted
+to
+see
+what
+they
+would
+do
+The
+minister
+said
+Now
+you
+kneel
+down
+there
+So
+I
+knelt
+down
+He
+put
+his
+hands
+on
+my
+head
+and
+they
+all
+sang
+and
+sang
+and
+they
+prayed
+and
+prayed
+for
+me
+They
+said
+Be
+converted
+now
+I
+thought
+it
+was
+grand
+all
+the
+girls
+putting
+their
+hands
+on
+me
+and
+singing
+and
+praying
+for
+me
+Then
+the
+minister
+came
+again
+and
+he
+said
+You
+will
+have
+to
+pray
+or
+the
+devil
+will
+get
+after
+you
+I
+could
+not
+be
+a
+hypocrite
+so
+I
+told
+him
+if
+I
+was
+a
+sinner
+I
+would
+have
+to
+stay
+one
+I
+don
+t
+believe
+the
+devil
+is
+a
+person
+anyhow
+so
+I
+told
+him
+and
+he
+was
+angry
+He
+thought
+I
+was
+a
+bad
+pill
+They
+tried
+all
+they
+could
+to
+convert
+me
+but
+it
+was
+no
+good
+so
+I
+finally
+went
+away
+After
+I
+left
+there
+some
+men
+came
+after
+me
+so
+I
+ran
+as
+hard
+as
+I
+could
+then
+somebody
+struck
+me
+on
+the
+head
+and
+I
+had
+great
+pain
+I
+fell
+down
+but
+I
+got
+up
+again
+I
+wanted
+to
+give
+that
+man
+a
+push
+down
+the
+hill
+but
+he
+pushed
+me
+and
+I
+rolled
+and
+rolled
+down
+that
+hill
+There
+were
+lots
+of
+people
+around
+me
+after
+I
+stopped
+rolling
+and
+all
+at
+once
+I
+felt
+all
+right
+again
+Dr
+That
+was
+probably
+the
+time
+you
+lost
+your
+physical
+body
+You
+died
+Sp
+I
+did
+not
+die
+Dr
+What
+place
+was
+it
+where
+you
+rolled
+down
+the
+hill
+Sp
+It
+was
+down
+in
+Texas
+I
+walked
+and
+ran
+and
+tried
+to
+talk
+to
+people
+but
+they
+would
+not
+answer
+me
+they
+seemed
+like
+sticks
+I
+felt
+so
+queer
+in
+my
+head
+I
+asked
+them
+if
+they
+could
+tell
+me
+where
+my
+home
+was
+I
+felt
+that
+pain
+Once
+in
+a
+while
+I
+could
+get
+away
+I
+then
+came
+to
+a
+lady
+and
+she
+said
+Come
+along
+and
+before
+I
+knew
+it
+we
+had
+a
+crowd
+around
+us
+and
+she
+used
+to
+sing
+Evidently
+the
+spirit
+Carrie
+Huntington
+The
+Patient
+Mrs
+B
+had
+often
+been
+annoyed
+by
+the
+singing
+of
+spirits
+I
+talked
+to
+her
+once
+in
+a
+while
+and
+then
+all
+at
+once
+she
+disappeared
+and
+after
+that
+I
+got
+the
+needles
+Came
+more
+fully
+into
+control
+of
+patient
+and
+felt
+electrical
+treatments
+more
+keen
+I
+felt
+them
+pretty
+bad
+Dr
+You
+are
+a
+spirit
+and
+are
+now
+using
+my
+wife
+s
+body
+Sp
+How
+in
+the
+world
+did
+I
+get
+into
+your
+wife
+s
+body
+Do
+You
+like
+your
+wife
+to
+be
+all
+kinds
+of
+tramps
+Dr
+Yes
+long
+enough
+to
+give
+the
+spirits
+an
+understanding
+regarding
+the
+invisible
+side
+Sp
+Are
+these
+your
+wife
+s
+clothes
+Did
+I
+borrow
+them
+for
+a
+while
+Did
+your
+wife
+dress
+me
+I
+am
+sorry
+to
+show
+myself
+like
+a
+woman
+and
+not
+like
+a
+man
+What
+will
+these
+people
+think
+that
+I
+m
+crazy
+Laughter
+It
+isn
+t
+funny
+Dr
+You
+are
+an
+ignorant
+spirit
+in
+outer
+darkness
+Intelligent
+spirits
+have
+brought
+you
+here
+to
+control
+this
+body
+temporarily
+so
+that
+you
+can
+understand
+your
+condition
+Also
+they
+took
+you
+away
+from
+that
+lady
+Mrs
+B
+Sp
+Will
+she
+get
+those
+awful
+needles
+again
+Dr
+Are
+there
+any
+more
+persons
+where
+you
+came
+from
+Or
+are
+you
+the
+last
+one
+Sp
+The
+woman
+and
+the
+other
+man
+went
+then
+you
+gave
+me
+the
+needles
+I
+kicked
+like
+a
+steer
+to
+get
+out
+but
+I
+could
+not
+How
+could
+you
+expect
+me
+to
+do
+any
+better
+I
+thought
+of
+the
+minister
+that
+talked
+about
+hell
+Dr
+That
+hell
+was
+not
+like
+this
+There
+are
+spirits
+here
+who
+will
+teach
+you
+how
+to
+progress
+in
+the
+spirit
+world
+they
+will
+help
+you
+Is
+your
+father
+living
+Sp
+I
+don
+t
+know
+I
+haven
+t
+seen
+my
+father
+for
+about
+twenty
+five
+or
+thirty
+years
+Mother
+is
+dead
+but
+I
+don
+t
+know
+whether
+father
+is
+or
+not
+I
+don
+t
+know
+any
+of
+my
+relatives
+Mrs
+B
+Did
+I
+meet
+you
+last
+November
+Sp
+Yes
+I
+have
+been
+ill
+ever
+since
+that
+time
+I
+was
+not
+the
+one
+that
+was
+with
+you
+close
+that
+was
+the
+young
+lady
+My
+head
+is
+hurting
+me
+terribly
+Dr
+What
+year
+do
+you
+think
+it
+should
+be
+Sp
+I
+should
+think
+about
+or
+Dr
+It
+is
+now
+Sp
+I
+think
+there
+must
+be
+something
+the
+matter
+with
+me
+Dr
+You
+have
+been
+in
+outer
+darkness
+for
+some
+time
+Sp
+I
+have
+been
+walking
+and
+walking
+and
+I
+got
+with
+that
+lady
+over
+there
+Mrs
+B
+I
+wanted
+to
+go
+I
+kicked
+and
+she
+kicked
+and
+we
+had
+regular
+kickings
+Oh
+look
+there
+See
+My
+Mother
+Oh
+Mother
+Can
+you
+forgive
+me
+I
+was
+not
+as
+you
+wanted
+me
+to
+be
+Mother
+will
+you
+take
+me
+I
+am
+so
+tired
+I
+need
+your
+care
+and
+help
+Will
+you
+take
+me
+Oh
+my
+Mother
+Dr
+What
+does
+she
+say
+Sp
+She
+calls
+me
+She
+says
+Yes
+Frank
+you
+will
+come
+with
+me
+I
+have
+been
+looking
+for
+you
+a
+long
+time
+I
+am
+getting
+weak
+I
+feel
+so
+tired
+Mother
+says
+Frank
+we
+had
+not
+the
+understanding
+of
+the
+real
+life
+because
+we
+were
+not
+taught
+what
+we
+should
+have
+been
+taught
+so
+that
+we
+did
+not
+learn
+to
+know
+God
+s
+wonderful
+universe
+Religion
+is
+a
+long
+way
+from
+the
+real
+life
+The
+ministers
+all
+teach
+that
+we
+should
+just
+believe
+and
+then
+we
+are
+saved
+No
+no
+belief
+is
+only
+a
+setback
+Get
+knowledge
+of
+God
+We
+do
+not
+do
+that
+Frank
+we
+will
+help
+you
+to
+learn
+what
+a
+beautiful
+world
+there
+is
+on
+the
+other
+side
+when
+we
+have
+understanding
+You
+have
+to
+make
+your
+own
+efforts
+to
+learn
+to
+understand
+the
+Golden
+Rule
+of
+God
+s
+beautiful
+teaching
+of
+life
+and
+be
+of
+help
+and
+service
+to
+your
+fellowman
+Now
+Frank
+she
+says
+you
+have
+been
+very
+mischievous
+in
+your
+life
+I
+know
+you
+were
+a
+good
+boy
+but
+you
+always
+were
+too
+lively
+You
+were
+ignorant
+of
+the
+real
+life
+and
+went
+away
+from
+home
+when
+I
+died
+The
+home
+was
+broken
+up
+you
+went
+one
+way
+and
+the
+rest
+went
+another
+I
+did
+not
+know
+Frank
+what
+things
+were
+but
+I
+wish
+the
+truth
+could
+be
+taught
+She
+says
+Now
+come
+with
+me
+to
+the
+spirit
+world
+where
+we
+have
+understanding
+There
+we
+have
+love
+harmony
+peace
+and
+bliss
+but
+we
+have
+to
+live
+for
+one
+another
+You
+have
+to
+go
+to
+school
+and
+learn
+You
+must
+not
+bother
+any
+one
+any
+more
+as
+you
+have
+done
+Come
+Frank
+and
+we
+will
+go
+to
+a
+beautiful
+home
+in
+the
+spirit
+world
+Thank
+you
+and
+Goodby
+Several
+weeks
+later
+the
+last
+intruder
+left
+Mrs
+Burton
+and
+through
+Mrs
+Wickland
+inquired
+for
+the
+companions
+who
+had
+preceded
+her
+resenting
+having
+been
+held
+captive
+Spirit
+MAGGIE
+WILKINSON
+Patient
+MRS
+BURTON
+Dr
+Good
+Evening
+friend
+who
+are
+you
+Taking
+psychic
+s
+hand
+Sp
+Don
+t
+hold
+my
+hand
+Don
+t
+touch
+me
+Dr
+What
+is
+your
+name
+Sp
+My
+name
+is
+Maggie
+Dr
+Maggie
+what
+Sp
+Maggie
+Wilkinson
+Dr
+Do
+you
+know
+that
+you
+are
+in
+Los
+Angeles
+Where
+did
+You
+come
+from
+SP
+I
+came
+from
+Dallas
+Texas
+Dr
+How
+did
+you
+reach
+Los
+Angeles
+SP
+I
+am
+not
+in
+Los
+Angeles
+I
+am
+in
+Texas
+I
+have
+been
+kicking
+and
+kicking
+all
+the
+time
+Dr
+Why
+did
+you
+do
+that
+SP
+I
+have
+been
+kicking
+because
+I
+have
+been
+in
+a
+prison
+Victim
+s
+aura
+There
+were
+several
+of
+us
+but
+they
+have
+all
+disappeared
+Other
+obsessing
+spirits
+previously
+dislodged
+from
+patient
+They
+have
+all
+gone
+but
+me
+and
+I
+don
+t
+like
+it
+Dr
+Would
+you
+like
+to
+go
+where
+your
+friends
+have
+gone
+Sp
+I
+don
+t
+care
+I
+really
+don
+t
+care
+for
+the
+others
+anyway
+They
+always
+wanted
+to
+have
+everything
+and
+I
+was
+always
+behind
+Dr
+Don
+t
+you
+realize
+that
+you
+are
+in
+a
+strange
+condition
+Tell
+us
+how
+long
+you
+have
+been
+dead
+Sp
+Dead
+Why
+is
+that
+woman
+with
+me
+all
+the
+time
+Patient
+She
+always
+gets
+fire
+She
+gets
+the
+worst
+kind
+of
+things
+She
+gets
+up
+on
+something
+puts
+something
+over
+her
+head
+and
+then
+fire
+comes
+When
+Mrs
+Burton
+seated
+herself
+upon
+a
+platform
+beside
+the
+static
+machine
+she
+covered
+her
+head
+with
+a
+woolen
+blanket
+to
+make
+the
+electricity
+more
+effective
+Dr
+Do
+you
+feel
+that
+you
+are
+in
+the
+right
+place
+Sp
+Where
+shall
+I
+go
+Dr
+To
+the
+spirit
+world
+Sp
+What
+is
+that
+Dr
+That
+is
+where
+people
+go
+after
+passing
+out
+of
+their
+bodies
+when
+they
+have
+understanding
+Don
+t
+you
+realize
+that
+something
+strange
+has
+happened
+to
+you
+Sp
+If
+you
+could
+get
+that
+blanket
+from
+being
+put
+on
+my
+head
+and
+that
+fire
+I
+should
+be
+all
+right
+It
+seems
+that
+I
+was
+knocked
+to
+pieces
+How
+in
+the
+world
+can
+anyone
+stand
+being
+shot
+at
+like
+that
+Dr
+That
+was
+done
+to
+chase
+you
+out
+Do
+you
+not
+feel
+free
+now
+What
+have
+you
+been
+doing
+since
+you
+last
+had
+those
+shots
+Sp
+I
+am
+glad
+I
+was
+chased
+out
+for
+I
+feel
+better
+now
+than
+I
+have
+for
+some
+time
+Dr
+Do
+you
+realize
+that
+you
+are
+controlling
+my
+wife
+s
+body
+Sp
+Thank
+God
+I
+am
+not
+Dr
+This
+body
+which
+you
+are
+using
+belongs
+to
+my
+wife
+Sp
+Your
+wife
+nothing
+Dr
+Do
+you
+recognize
+the
+clothes
+you
+are
+wearing
+Sp
+That
+s
+nothing
+to
+me
+Dr
+Where
+did
+you
+get
+them
+Sp
+I
+m
+no
+thief
+I
+am
+going
+to
+have
+you
+arrested
+for
+calling
+me
+a
+thief
+The
+first
+police
+station
+I
+find
+I
+shall
+swear
+out
+a
+warrant
+against
+you
+Dr
+Maggie
+what
+is
+the
+color
+of
+your
+hair
+Sp
+Brown
+dark
+brown
+Dr
+Touching
+psychic
+s
+hair
+This
+hair
+is
+not
+brown
+These
+clothes
+belong
+to
+my
+wife
+Sp
+I
+don
+t
+care
+whether
+they
+are
+my
+clothes
+or
+not
+I
+never
+asked
+for
+them
+Dr
+Tell
+us
+how
+long
+you
+have
+been
+dead
+Sp
+I
+m
+not
+dead
+One
+time
+you
+say
+one
+thing
+and
+another
+time
+you
+say
+another
+Dr
+I
+mean
+when
+did
+you
+lose
+your
+body
+Sp
+I
+haven
+t
+lost
+my
+body
+it
+s
+not
+in
+the
+grave
+Dr
+Were
+you
+ever
+sick
+and
+did
+you
+suddenly
+become
+better
+Sp
+I
+was
+very
+sick
+and
+when
+I
+got
+better
+I
+was
+in
+a
+prison
+I
+was
+moving
+around
+and
+some
+woman
+bothered
+me
+There
+were
+lots
+of
+us
+but
+they
+all
+got
+so
+seared
+of
+the
+fire
+that
+they
+left
+Dr
+When
+did
+you
+come
+to
+Los
+Angeles
+Sp
+I
+m
+not
+in
+Los
+Angeles
+I
+m
+in
+Dallas
+Texas
+If
+I
+am
+in
+Los
+Angeles
+how
+did
+I
+get
+here
+Dr
+You
+must
+have
+come
+with
+a
+lady
+who
+has
+red
+hair
+Mrs
+B
+seated
+nearby
+Sp
+She
+had
+no
+right
+to
+bring
+me
+here
+Dr
+She
+also
+came
+from
+Texas
+Sp
+What
+became
+of
+the
+others
+Dr
+They
+were
+brought
+to
+an
+understanding
+and
+went
+to
+the
+spirit
+world
+That
+is
+where
+you
+should
+be
+Why
+should
+you
+hover
+around
+that
+woman
+Sp
+Hover
+around
+nothing
+I
+have
+been
+in
+a
+prison
+but
+I
+could
+not
+help
+it
+I
+did
+what
+I
+could
+to
+get
+out
+Those
+people
+I
+saw
+said
+they
+would
+help
+me
+out
+but
+they
+didn
+t
+I
+made
+quite
+a
+disturbance
+and
+they
+went
+away
+from
+me
+Dr
+Probably
+they
+brought
+you
+here
+Sp
+All
+I
+see
+is
+people
+sitting
+around
+Mrs
+B
+Did
+you
+come
+out
+here
+with
+me
+What
+do
+you
+want
+to
+bother
+me
+for
+Sp
+I
+have
+nothing
+to
+do
+with
+you
+Oh
+you
+re
+the
+one
+that
+kept
+me
+in
+the
+prison
+Mrs
+B
+What
+was
+the
+name
+of
+that
+girl
+friend
+of
+yours
+You
+used
+to
+be
+with
+Referring
+to
+another
+spirit
+that
+had
+been
+troubling
+Mrs
+B
+Sp
+Where
+In
+Texas
+Mrs
+B
+Yes
+Sp
+Her
+name
+was
+Mary
+and
+there
+was
+another
+one
+Carrie
+Mrs
+B
+Did
+Carrie
+come
+with
+you
+Sp
+Yes
+of
+course
+Say
+what
+did
+you
+keep
+me
+closed
+up
+for
+Why
+didn
+t
+you
+let
+me
+out
+Mrs
+B
+I
+kept
+telling
+you
+to
+get
+out
+SP
+I
+know
+you
+did
+but
+you
+didn
+t
+open
+the
+door
+so
+I
+could
+go
+Dr
+All
+you
+had
+to
+do
+was
+to
+think
+yourself
+free
+from
+that
+lady
+Sp
+I
+can
+t
+think
+myself
+free
+Dr
+Intelligent
+spirits
+can
+think
+themselves
+anywhere
+it
+is
+only
+ignorant
+spirits
+who
+cannot
+Sp
+To
+Mrs
+B
+Say
+what
+did
+you
+keep
+me
+around
+you
+for
+Dr
+You
+were
+an
+uninvited
+guest
+Mrs
+B
+I
+m
+glad
+to
+get
+rid
+of
+you
+Sp
+I
+m
+glad
+too
+I
+m
+mighty
+glad
+to
+get
+out
+of
+that
+prison
+Why
+didn
+t
+you
+let
+me
+out
+I
+knocked
+and
+knocked
+but
+you
+kept
+me
+there
+To
+Dr
+W
+You
+gave
+me
+those
+fire
+things
+then
+I
+got
+out
+and
+I
+m
+glad
+of
+it
+Dr
+Did
+you
+get
+out
+after
+the
+last
+treatment
+Sp
+You
+call
+that
+a
+treatment
+Dr
+If
+you
+got
+out
+of
+that
+lady
+I
+should
+call
+it
+a
+good
+treatment
+Sp
+You
+don
+t
+know
+how
+I
+suffered
+from
+that
+fire
+especially
+the
+shooting
+You
+are
+the
+one
+that
+gave
+me
+that
+fire
+and
+I
+don
+t
+like
+you
+Dr
+I
+had
+to
+give
+the
+lady
+those
+treatments
+to
+get
+you
+out
+Sp
+You
+think
+that
+devil
+machine
+is
+a
+little
+god
+You
+want
+me
+to
+go
+where
+Dr
+To
+the
+spirit
+world
+Sp
+Where
+is
+that
+Dr
+A
+place
+where
+the
+discarnated
+spirits
+go
+to
+get
+understanding
+You
+have
+lost
+your
+physical
+body
+but
+do
+not
+understand
+it
+and
+you
+have
+been
+bothering
+that
+lady
+Mrs
+B
+Mrs
+B
+When
+once
+I
+get
+you
+and
+the
+others
+out
+I
+shall
+keep
+the
+door
+closed
+and
+closed
+so
+tight
+that
+none
+of
+you
+can
+get
+in
+Dr
+Think
+yourself
+free
+and
+you
+will
+not
+be
+in
+a
+prison
+Mortals
+cannot
+travel
+by
+thought
+but
+spirits
+can
+You
+are
+invisible
+to
+us
+You
+are
+temporarily
+using
+the
+body
+of
+another
+this
+body
+belongs
+to
+my
+wife
+Sp
+You
+have
+told
+me
+that
+before
+Dr
+Can
+t
+you
+see
+you
+are
+in
+a
+strange
+condition
+Mrs
+B
+Do
+you
+know
+Maggie
+Mackin
+Another
+spirit
+whose
+presence
+Mrs
+B
+had
+clairaudiently
+been
+aware
+of
+Sp
+Yes
+and
+I
+know
+Mary
+too
+Dr
+How
+old
+were
+you
+when
+you
+passed
+out
+of
+your
+body
+Can
+you
+recall
+something
+of
+your
+past
+Sp
+I
+remember
+being
+out
+riding
+and
+the
+horses
+ran
+away
+then
+everything
+became
+dark
+and
+since
+then
+I
+do
+not
+seem
+to
+remember
+much
+Dr
+Do
+you
+know
+what
+year
+it
+is
+Sp
+I
+don
+t
+have
+to
+answer
+you
+Are
+you
+a
+lawyer
+or
+a
+judge
+Who
+are
+you
+Dr
+I
+m
+a
+fireman
+Can
+you
+realize
+that
+it
+is
+Sp
+It
+doesn
+t
+bother
+me
+that
+much
+Snapping
+fingers
+I
+don
+t
+care
+Dr
+I
+thought
+you
+were
+anxious
+to
+get
+out
+of
+your
+trouble
+Sp
+I
+wanted
+to
+get
+out
+of
+that
+prison
+and
+now
+I
+feel
+better
+than
+I
+have
+for
+years
+Mrs
+B
+You
+ought
+to
+thank
+Doctor
+for
+getting
+you
+out
+Sp
+That
+man
+ought
+to
+be
+arrested
+for
+giving
+those
+shots
+it
+made
+you
+feel
+like
+your
+head
+was
+going
+to
+the
+dickens
+Dr
+Can
+you
+see
+any
+of
+your
+friends
+here
+Sp
+There
+are
+two
+Indians
+one
+is
+a
+big
+fellow
+and
+one
+is
+a
+girl
+and
+there
+is
+a
+lady
+with
+curly
+hair
+and
+light
+blue
+eyes
+Spirits
+Dr
+Does
+the
+Indian
+girl
+answer
+to
+the
+name
+of
+Silver
+Star
+One
+of
+Mrs
+Wickland
+s
+guides
+Sp
+Yes
+Dr
+These
+spirits
+will
+help
+you
+to
+progress
+in
+the
+spirit
+life
+Sp
+There
+s
+one
+thing
+sure
+I
+m
+going
+to
+Heaven
+and
+not
+to
+the
+other
+place
+I
+went
+to
+church
+and
+was
+a
+good
+woman
+Dr
+Those
+persons
+whom
+you
+see
+are
+spirits
+like
+yourself
+We
+do
+not
+see
+them
+Sp
+They
+are
+there
+just
+the
+same
+They
+say
+if
+I
+will
+go
+along
+with
+them
+they
+will
+show
+me
+a
+nice
+home
+That
+would
+be
+nice
+for
+I
+haven
+t
+had
+a
+home
+for
+a
+long
+time
+Am
+I
+going
+to
+have
+that
+fire
+any
+more
+I
+won
+t
+go
+to
+that
+woman
+with
+the
+red
+hair
+any
+more
+either
+and
+I
+thank
+God
+for
+that
+Dr
+Now
+think
+yourself
+free
+and
+go
+with
+these
+friends
+Sp
+All
+right
+I
+will
+go
+Goodby
+When
+Mrs
+Burton
+first
+came
+to
+us
+she
+could
+not
+follow
+any
+occupation
+but
+after
+the
+obsessing
+spirits
+were
+removed
+she
+was
+able
+to
+take
+a
+clerical
+position
+in
+a
+large
+commercial
+house
+CHAPTER
+IV
+Earth
+Sphere
+Conditions
+and
+the
+Magnetic
+Aura
+UNENLIGHTENED
+Spirits
+often
+wander
+aimlessly
+for
+many
+years
+in
+the
+earth
+sphere
+their
+lack
+of
+knowledge
+of
+a
+higher
+spirit
+world
+which
+is
+attained
+only
+through
+understanding
+keeping
+them
+in
+a
+dreary
+condition
+of
+confusion
+monotony
+and
+suffering
+many
+remain
+in
+the
+scenes
+of
+their
+earth
+lives
+continuing
+their
+former
+activities
+while
+others
+fall
+into
+a
+state
+of
+heavy
+sleep
+from
+which
+they
+are
+with
+difficulty
+aroused
+A
+spirit
+who
+was
+still
+following
+his
+old
+occupation
+without
+any
+knowledge
+of
+his
+transition
+controlled
+Mrs
+Wickland
+at
+one
+of
+our
+circles
+in
+Chicago
+Why
+are
+you
+sitting
+in
+the
+dark
+he
+asked
+We
+were
+at
+that
+time
+experimenting
+with
+dark
+circles
+I
+am
+Hesselroth
+from
+the
+drug
+store
+he
+said
+Mr
+Hesselroth
+the
+Swedish
+proprietor
+of
+a
+Chicago
+drug
+store
+had
+died
+the
+year
+before
+in
+a
+hospital
+but
+we
+knew
+nothing
+of
+this
+man
+his
+death
+or
+his
+circumstances
+however
+on
+this
+evening
+one
+of
+his
+friends
+Mr
+Eckholm
+was
+in
+our
+circle
+The
+spirit
+was
+not
+aware
+of
+his
+death
+claiming
+that
+he
+was
+still
+attending
+to
+his
+drug
+store
+His
+friend
+in
+the
+circle
+said
+he
+had
+been
+informed
+that
+the
+drug
+store
+had
+been
+sold
+to
+the
+clerk
+and
+so
+stated
+to
+the
+spirit
+but
+this
+the
+latter
+emphatically
+denied
+saying
+Abrahamson
+only
+manages
+it
+for
+me
+The
+spirit
+told
+of
+a
+robbery
+which
+had
+occurred
+in
+his
+house
+recently
+and
+described
+the
+three
+burglars
+He
+said
+he
+had
+been
+frightened
+when
+they
+entered
+but
+gaining
+courage
+had
+gone
+for
+his
+revolver
+only
+to
+find
+that
+he
+was
+not
+able
+to
+pick
+it
+up
+He
+had
+then
+struck
+at
+one
+of
+the
+burglars
+but
+his
+hand
+had
+gone
+right
+through
+the
+fellow
+and
+he
+could
+not
+understand
+why
+he
+could
+do
+nothing
+at
+all
+After
+his
+condition
+was
+explained
+to
+him
+he
+saw
+many
+spirit
+friends
+appear
+who
+welcomed
+him
+to
+his
+new
+home
+in
+the
+spirit
+world
+Later
+investigation
+verified
+the
+statement
+made
+by
+the
+spirit
+that
+the
+drug
+store
+had
+not
+been
+sold
+and
+also
+the
+fact
+that
+the
+house
+had
+been
+burglarized
+It
+could
+not
+be
+held
+that
+the
+subconscious
+mind
+of
+the
+psychic
+played
+any
+part
+in
+this
+case
+nor
+could
+the
+theory
+of
+auto
+suggestion
+be
+maintained
+for
+Mr
+Hesselroth
+was
+entirely
+unknown
+to
+every
+one
+in
+the
+room
+with
+the
+exception
+of
+his
+friend
+Mr
+Eckholm
+and
+this
+friend
+held
+the
+opposite
+idea
+regarding
+the
+sale
+of
+the
+store
+Many
+years
+later
+this
+spirit
+returned
+to
+us
+in
+California
+speaking
+again
+through
+Mrs
+Wickland
+EXPERIENCE
+SEPTEMBER
+Spirit
+MR
+HESSELROTH
+Spirit
+I
+have
+come
+in
+to
+say
+just
+a
+few
+words
+for
+I
+have
+been
+helped
+out
+of
+darkness
+and
+have
+become
+a
+helper
+in
+the
+Band
+of
+Mercy
+Doctor
+Who
+are
+you
+friend
+Sp
+I
+am
+one
+of
+the
+helpers
+here
+I
+come
+around
+sometimes
+and
+I
+came
+tonight
+to
+say
+a
+few
+words
+to
+you
+I
+was
+once
+in
+a
+very
+dark
+condition
+but
+now
+I
+am
+one
+of
+your
+Band
+I
+thought
+you
+might
+like
+to
+know
+If
+it
+had
+not
+been
+for
+you
+I
+would
+probably
+still
+be
+in
+the
+dark
+Many
+years
+have
+passed
+I
+have
+quite
+an
+understanding
+of
+life
+now
+through
+you
+and
+through
+this
+little
+circle
+of
+the
+Band
+of
+Mercy
+It
+was
+not
+here
+it
+was
+in
+Chicago
+that
+I
+was
+helped
+I
+am
+very
+much
+pleased
+to
+be
+here
+with
+you
+tonight
+I
+should
+like
+to
+give
+you
+my
+name
+but
+I
+seem
+to
+have
+forgotten
+it
+because
+I
+have
+not
+heard
+it
+for
+so
+long
+It
+will
+come
+to
+me
+and
+then
+I
+will
+give
+it
+Do
+you
+remember
+an
+old
+gentleman
+you
+used
+to
+know
+Mr
+Eckholm
+He
+was
+not
+so
+very
+old
+either
+He
+was
+a
+very
+dear
+friend
+of
+mine
+and
+through
+him
+I
+came
+to
+see
+you
+Dr
+At
+some
+meeting
+in
+Chicago
+Sp
+Yes
+I
+had
+a
+drug
+store
+in
+Chicago
+My
+name
+is
+Hesselroth
+I
+could
+not
+think
+of
+my
+name
+for
+a
+moment
+I
+am
+one
+of
+your
+helpers
+here
+Mr
+Eckholm
+is
+with
+me
+and
+he
+also
+does
+all
+he
+can
+He
+is
+very
+happy
+to
+help
+with
+your
+work
+here
+He
+was
+heart
+and
+soul
+with
+it
+during
+his
+earth
+life
+I
+also
+feel
+that
+I
+have
+to
+do
+all
+I
+can
+to
+help
+because
+if
+you
+had
+not
+helped
+me
+I
+should
+have
+been
+in
+that
+drug
+store
+yet
+selling
+medicine
+For
+a
+whole
+year
+after
+I
+passed
+out
+I
+attended
+to
+the
+business
+as
+I
+did
+when
+on
+earth
+only
+I
+did
+not
+feel
+that
+I
+was
+sick
+any
+more
+I
+took
+sick
+in
+the
+store
+and
+was
+sent
+to
+the
+hospital
+and
+I
+passed
+out
+in
+the
+hospital
+They
+took
+my
+body
+to
+the
+undertakers
+not
+to
+my
+home
+You
+know
+it
+says
+in
+the
+Bible
+Where
+your
+treasure
+is
+there
+will
+your
+heart
+be
+also
+When
+I
+woke
+up
+from
+the
+sleep
+of
+death
+I
+thought
+of
+my
+store
+and
+there
+I
+found
+myself
+I
+saw
+that
+everything
+was
+going
+on
+all
+right
+but
+it
+seemed
+so
+strange
+that
+I
+could
+not
+talk
+to
+any
+of
+my
+customers
+I
+thought
+that
+during
+my
+sickness
+I
+had
+lost
+my
+faculty
+of
+speech
+so
+I
+did
+not
+think
+much
+about
+it
+I
+attended
+to
+business
+and
+I
+impressed
+my
+clerk
+to
+do
+things
+I
+wanted
+done
+I
+was
+running
+the
+store
+and
+the
+clerk
+was
+managing
+it
+for
+me
+I
+did
+not
+realize
+that
+I
+was
+dead
+until
+I
+came
+to
+this
+gentleman
+Dr
+W
+in
+his
+little
+circle
+When
+burglars
+got
+into
+my
+home
+I
+thought
+of
+the
+revolver
+that
+I
+always
+kept
+in
+a
+drawer
+I
+went
+there
+and
+tried
+and
+tried
+to
+get
+it
+but
+my
+hand
+went
+me
+I
+commenced
+to
+see
+things
+I
+saw
+my
+spirit
+father
+and
+mother
+Then
+I
+thought
+I
+must
+be
+a
+little
+out
+of
+my
+head
+So
+I
+thought
+I
+had
+better
+go
+up
+to
+see
+my
+friend
+Eckholm
+I
+always
+thought
+he
+was
+just
+a
+little
+off
+because
+he
+believed
+in
+Spiritualism
+I
+wanted
+to
+see
+Eckholm
+to
+ask
+him
+if
+ghosts
+could
+come
+back
+and
+there
+I
+was
+a
+ghost
+myself
+Then
+I
+came
+to
+this
+circle
+and
+I
+found
+I
+could
+talk
+and
+after
+a
+while
+the
+door
+opened
+opened
+to
+that
+beautiful
+land
+beyond
+I
+wish
+you
+could
+see
+the
+reception
+I
+had
+My
+relatives
+and
+friends
+all
+opened
+their
+arms
+to
+me
+and
+said
+Welcome
+to
+our
+home
+in
+spirit
+Welcome
+to
+that
+everlasting
+life
+Welcome
+to
+an
+understanding
+of
+God
+Such
+a
+reception
+cannot
+be
+described
+until
+you
+see
+it
+for
+yourselves
+and
+are
+with
+us
+That
+is
+happiness
+it
+is
+Heaven
+I
+will
+not
+take
+any
+more
+of
+your
+time
+but
+I
+am
+glad
+that
+I
+could
+come
+and
+talk
+tonight
+It
+was
+about
+fifteen
+years
+ago
+that
+I
+first
+came
+here
+Eckholm
+says
+he
+feels
+proud
+of
+this
+work
+and
+he
+sends
+love
+to
+all
+of
+you
+here
+Now
+Good
+Night
+Pathos
+and
+tragedy
+are
+often
+the
+grim
+accompaniment
+of
+the
+sufferings
+of
+earthbound
+spirits
+The
+spirit
+of
+the
+following
+narrative
+was
+taken
+from
+a
+patient
+who
+was
+subject
+to
+doleful
+spells
+of
+crying
+and
+afflicted
+with
+intense
+head
+pains
+all
+of
+which
+ceased
+after
+the
+spirit
+was
+removed
+EXPERIENCE
+JANUARY
+Spirit
+MINNIE
+DAY
+Patient
+MRS
+L
+W
+Psychic
+MRS
+WICKLAND
+Spirit
+Crying
+piteously
+Oh
+my
+head
+hurts
+so
+badly
+I
+don
+t
+like
+those
+needles
+electrical
+treatments
+given
+patient
+they
+hurt
+me
+so
+My
+head
+hurts
+I
+am
+lost
+I
+don
+t
+know
+where
+I
+am
+at
+There
+were
+thousands
+and
+thousands
+of
+needles
+I
+had
+to
+cry
+Doctor
+Where
+do
+you
+live
+Sp
+I
+don
+t
+know
+Dr
+Where
+did
+your
+parents
+live
+Sp
+I
+don
+t
+know
+Dr
+Aren
+t
+you
+a
+little
+child
+Sp
+I
+am
+only
+little
+I
+am
+Minnie
+Day
+Dr
+Where
+did
+you
+live
+How
+old
+are
+you
+Sp
+I
+don
+t
+know
+Ask
+Ma
+Dr
+Don
+t
+you
+know
+what
+city
+you
+lived
+in
+Sp
+In
+St
+Louis
+Oh
+my
+father
+is
+coming
+He
+hit
+me
+on
+the
+head
+And
+there
+s
+Willie
+Dr
+Who
+is
+Willie
+Sp
+He
+s
+my
+brother
+Here
+s
+my
+father
+and
+I
+m
+afraid
+He
+says
+to
+come
+with
+him
+Oh
+Ma
+my
+head
+hurts
+My
+Ma
+says
+for
+me
+to
+go
+with
+her
+cause
+she
+has
+a
+new
+home
+for
+me
+and
+Willie
+Dr
+You
+will
+go
+to
+her
+home
+in
+the
+spirit
+world
+Sp
+What
+is
+the
+spirit
+world
+What
+does
+that
+mean
+Dr
+That
+is
+the
+invisible
+world
+around
+the
+earth
+Do
+you
+know
+that
+you
+are
+dead
+Sp
+What
+do
+you
+mean
+Dr
+I
+mean
+that
+you
+have
+lost
+your
+physical
+body
+What
+have
+you
+been
+doing
+recently
+Sp
+I
+have
+been
+running
+all
+over
+trying
+to
+find
+somebody
+Mama
+died
+a
+long
+time
+ago
+when
+I
+was
+a
+little
+girl
+After
+Ma
+died
+Papa
+was
+so
+mean
+to
+me
+and
+Willie
+and
+he
+hit
+me
+so
+many
+times
+I
+feel
+so
+bad
+and
+my
+head
+hurts
+I
+have
+been
+to
+so
+many
+places
+and
+my
+Ma
+is
+dead
+and
+I
+don
+t
+know
+where
+to
+go
+Dr
+You
+were
+in
+such
+mental
+distress
+that
+you
+did
+not
+realize
+your
+condition
+You
+have
+lost
+your
+physical
+body
+and
+your
+friends
+would
+call
+you
+dead
+Sp
+Did
+I
+die
+Sometimes
+I
+feel
+as
+if
+I
+were
+in
+a
+box
+We
+were
+a
+big
+crowd
+spirits
+obsessing
+the
+patient
+and
+they
+Pushed
+and
+pushed
+and
+there
+was
+one
+big
+man
+and
+he
+was
+so
+mean
+to
+us
+He
+chased
+us
+one
+way
+then
+another
+but
+one
+day
+we
+lost
+him
+This
+tormenting
+spirit
+had
+been
+attracted
+from
+the
+patient
+two
+days
+before
+I
+felt
+so
+glad
+he
+was
+lost
+and
+I
+thought
+I
+could
+be
+quiet
+but
+I
+got
+all
+those
+needles
+Dr
+You
+were
+influencing
+a
+lady
+and
+making
+her
+cry
+Sp
+What
+do
+you
+mean
+Dr
+You
+are
+a
+spirit
+and
+were
+in
+the
+aura
+of
+that
+lady
+When
+she
+had
+an
+electrical
+treatment
+you
+felt
+it
+and
+left
+her
+You
+are
+using
+my
+wife
+s
+body
+now
+Look
+at
+your
+hands
+do
+they
+belong
+to
+you
+Sp
+Oh
+look
+I
+have
+a
+ring
+But
+that
+is
+not
+mine
+and
+I
+have
+not
+stolen
+it
+Excitedly
+Take
+it
+away
+I
+didn
+t
+steal
+that
+ring
+Dr
+This
+is
+not
+your
+body
+and
+that
+is
+not
+your
+ring
+It
+is
+very
+likely
+that
+you
+died
+when
+your
+head
+was
+hurt
+The
+spirit
+lives
+after
+the
+body
+dies
+Sp
+But
+I
+have
+been
+alive
+Dr
+You
+were
+living
+but
+without
+a
+physical
+body
+and
+came
+in
+touch
+with
+a
+sensitive
+a
+lady
+who
+is
+now
+in
+the
+other
+house
+She
+acts
+just
+as
+you
+do
+and
+complains
+of
+her
+head
+hurting
+in
+the
+same
+place
+yours
+hurts
+you
+She
+has
+been
+acting
+like
+an
+insane
+person
+but
+it
+is
+all
+due
+to
+spirit
+influence
+Sp
+The
+man
+was
+so
+mean
+that
+we
+had
+with
+us
+but
+now
+he
+is
+lost
+and
+we
+are
+so
+glad
+We
+were
+all
+seared
+of
+him
+but
+we
+could
+not
+run
+away
+from
+him
+He
+was
+awful
+mean
+he
+bit
+and
+scratched
+and
+would
+fight
+Dr
+He
+was
+very
+obstinate
+He
+was
+controlling
+this
+body
+a
+short
+time
+ago
+just
+as
+you
+are
+now
+We
+have
+circles
+like
+this
+where
+spirits
+may
+come
+for
+help
+Sp
+Spirits
+I
+don
+t
+know
+anything
+about
+them
+My
+head
+hurts
+me
+Dr
+The
+body
+you
+are
+using
+belongs
+to
+my
+wife
+and
+she
+has
+no
+pain
+in
+her
+head
+Sp
+Those
+needles
+hurt
+me
+so
+much
+Dr
+When
+the
+lady
+had
+a
+treatment
+today
+you
+evidently
+were
+able
+to
+get
+away
+and
+are
+now
+allowed
+to
+control
+this
+body
+So
+that
+we
+can
+help
+you
+A
+short
+time
+ago
+you
+said
+that
+your
+father
+and
+mother
+were
+here
+are
+they
+here
+now
+Sp
+Don
+t
+you
+see
+Mama
+She
+s
+standing
+right
+there
+Dr
+Wouldn
+t
+you
+like
+to
+go
+with
+your
+mother
+Sp
+But
+she
+s
+dead
+Dr
+You
+are
+dead
+also
+There
+is
+no
+death
+really
+We
+See
+Chap
+Page
+Spirit
+John
+Sullivan
+Patient
+Mrs
+L
+W
+only
+lose
+our
+physical
+bodies
+Spirit
+is
+invisible
+Sp
+Oh
+take
+me
+away
+Take
+me
+away
+My
+father
+is
+coming
+and
+I
+m
+afraid
+He
+ll
+strike
+me
+again
+Take
+me
+away
+Dr
+Your
+father
+probably
+comes
+for
+forgiveness
+You
+understand
+he
+cannot
+progress
+in
+the
+spirit
+world
+until
+you
+forgive
+him
+Ask
+him
+what
+he
+has
+to
+say
+to
+you
+Sp
+He
+doesn
+t
+say
+anything
+he
+s
+crying
+He
+comes
+up
+to
+Mama
+now
+Dr
+Doesn
+t
+he
+look
+sorry
+Sp
+He
+says
+he
+is
+so
+sorry
+for
+what
+he
+did
+The
+child
+spirit
+was
+removed
+and
+the
+distressed
+father
+took
+control
+of
+the
+psychic
+Crying
+in
+anguish
+he
+fell
+on
+his
+knees
+with
+his
+arms
+outstretched
+Spirit
+William
+Day
+Spirit
+Forgive
+me
+Forgive
+me
+I
+didn
+t
+know
+what
+I
+was
+doing
+I
+didn
+t
+mean
+to
+kill
+you
+Minnie
+I
+was
+very
+nervous
+and
+the
+children
+made
+such
+a
+noise
+I
+was
+so
+sad
+because
+my
+wife
+had
+died
+Give
+me
+a
+chance
+Just
+give
+me
+one
+more
+chance
+too
+have
+suffered
+If
+I
+had
+only
+lived
+I
+have
+been
+in
+the
+dark
+so
+long
+and
+cannot
+be
+helped
+and
+I
+cannot
+come
+near
+my
+child
+she
+is
+so
+afraid
+of
+me
+I
+have
+tried
+to
+reach
+her
+to
+ask
+for
+forgiveness
+but
+she
+is
+so
+seared
+when
+I
+come
+near
+her
+that
+I
+cannot
+reach
+her
+Don
+t
+any
+of
+you
+ever
+strike
+a
+child
+else
+you
+will
+suffer
+for
+years
+and
+years
+I
+did
+not
+mean
+to
+hurt
+her
+I
+loved
+her
+but
+I
+killed
+her
+If
+there
+is
+a
+God
+lift
+this
+trouble
+and
+sorrow
+away
+from
+me
+Give
+me
+some
+light
+and
+comfort
+in
+my
+suffering
+I
+cannot
+restated
+have
+no
+peace
+I
+can
+only
+see
+my
+work
+that
+I
+did
+in
+anger
+Try
+to
+control
+yourself
+if
+you
+get
+angry
+else
+you
+will
+suffer
+as
+I
+have
+God
+help
+me
+Oh
+God
+Give
+me
+one
+more
+chance
+just
+one
+Dr
+Do
+you
+realize
+that
+you
+are
+dead
+Sp
+No
+I
+ran
+away
+when
+I
+killed
+my
+child
+Somebody
+got
+after
+me
+and
+ran
+very
+hard
+then
+something
+hit
+me
+in
+the
+neck
+and
+I
+fell
+down
+Evidently
+killed
+I
+got
+right
+up
+and
+ran
+and
+I
+have
+been
+running
+so
+long
+it
+seems
+years
+Many
+times
+I
+have
+seen
+my
+wife
+accusing
+me
+for
+killing
+my
+child
+I
+did
+kill
+her
+God
+help
+me
+I
+have
+tried
+to
+find
+just
+a
+little
+comfort
+and
+light
+Dr
+You
+cannot
+find
+light
+until
+you
+have
+understanding
+Sp
+God
+give
+me
+light
+and
+understanding
+All
+I
+see
+is
+that
+poor
+child
+s
+head
+split
+open
+where
+I
+struck
+her
+I
+tried
+to
+ask
+Minnie
+for
+forgiveness
+but
+she
+shrank
+from
+me
+and
+I
+could
+not
+get
+near
+her
+and
+there
+was
+my
+wife
+always
+accusing
+me
+for
+what
+I
+had
+done
+Dr
+She
+will
+not
+accuse
+you
+any
+more
+Sp
+Will
+she
+forgive
+me
+Dr
+Yes
+What
+is
+your
+name
+Sp
+William
+Day
+Dr
+Can
+you
+recall
+what
+year
+it
+is
+Sp
+My
+brain
+is
+in
+such
+a
+turmoil
+I
+have
+been
+running
+and
+running
+for
+so
+long
+trying
+to
+get
+away
+from
+that
+crowd
+of
+people
+that
+were
+after
+me
+Everybody
+I
+saw
+I
+ran
+from
+knowing
+that
+they
+too
+would
+accuse
+me
+for
+killing
+Minnie
+At
+nights
+my
+wife
+has
+stood
+by
+me
+accusing
+me
+and
+then
+there
+was
+the
+child
+with
+her
+head
+all
+split
+open
+and
+the
+blood
+pouring
+out
+I
+have
+had
+hell
+It
+could
+not
+be
+worse
+Is
+there
+no
+help
+for
+me
+I
+prayed
+and
+prayed
+but
+it
+did
+no
+good
+Dr
+Do
+you
+know
+that
+you
+are
+in
+California
+Sp
+California
+When
+did
+I
+get
+here
+Did
+I
+run
+all
+the
+way
+from
+St
+Louis
+to
+California
+Dr
+Do
+you
+understand
+that
+you
+are
+a
+spirit
+controlling
+the
+body
+of
+a
+mortal
+Sp
+Do
+you
+mean
+that
+I
+am
+dead
+Dr
+You
+have
+lost
+your
+physical
+body
+Sp
+Won
+t
+I
+have
+to
+stay
+in
+the
+grave
+until
+the
+dead
+rise
+Dr
+You
+are
+here
+now
+how
+did
+you
+get
+out
+of
+the
+grave
+Sp
+I
+have
+had
+no
+rest
+for
+I
+don
+t
+know
+how
+long
+Dr
+There
+is
+no
+such
+thing
+as
+death
+When
+you
+pass
+out
+of
+your
+physical
+body
+you
+lose
+your
+five
+physical
+sense
+organs
+and
+unless
+you
+have
+understanding
+of
+the
+spirit
+life
+you
+are
+in
+the
+dark
+and
+can
+only
+see
+when
+coming
+in
+touch
+with
+some
+mortal
+Sp
+The
+people
+are
+hounding
+me
+until
+I
+am
+tired
+out
+Dr
+Now
+you
+must
+try
+to
+become
+reconciled
+with
+your
+wife
+and
+child
+Sp
+Do
+you
+think
+they
+will
+ever
+forgive
+me
+Please
+forgive
+me
+wife
+I
+was
+not
+worthy
+of
+you
+You
+were
+an
+angel
+and
+I
+was
+such
+a
+brute
+Will
+you
+please
+forgive
+me
+If
+you
+will
+only
+give
+me
+just
+one
+chance
+I
+will
+try
+so
+hard
+I
+have
+suffered
+so
+much
+Carrie
+Carrie
+Is
+it
+really
+true
+that
+you
+will
+forgive
+me
+Is
+it
+true
+You
+were
+such
+a
+patient
+woman
+and
+tried
+so
+hard
+to
+help
+me
+but
+I
+was
+no
+good
+I
+loved
+my
+children
+but
+I
+had
+such
+a
+bad
+temper
+I
+really
+killed
+my
+wife
+by
+letting
+her
+sew
+just
+to
+keep
+the
+family
+together
+I
+made
+good
+money
+but
+there
+were
+always
+men
+around
+telling
+me
+to
+come
+with
+them
+and
+I
+did
+not
+know
+anything
+until
+my
+wages
+were
+all
+gone
+and
+I
+went
+home
+feeling
+like
+a
+devil
+Dr
+Perhaps
+the
+trouble
+was
+not
+all
+yours
+for
+you
+might
+have
+been
+obsessed
+When
+you
+leave
+here
+with
+your
+wife
+you
+will
+find
+a
+wonderful
+spirit
+world
+Sp
+I
+am
+not
+worthy
+to
+go
+with
+my
+wife
+but
+I
+will
+try
+to
+do
+good
+I
+don
+t
+want
+you
+to
+go
+away
+from
+me
+any
+more
+Carrie
+Crying
+Minnie
+can
+you
+forgive
+your
+Papa
+My
+dear
+child
+I
+killed
+you
+but
+I
+did
+not
+mean
+to
+Forgive
+your
+Papa
+Will
+I
+wake
+up
+after
+a
+while
+and
+find
+myself
+in
+darkness
+again
+Am
+I
+asleep
+or
+dreaming
+Minnie
+don
+t
+go
+away
+from
+Papa
+Please
+forgive
+me
+Dr
+You
+are
+neither
+asleep
+nor
+dreaming
+but
+are
+beginning
+to
+realize
+your
+condition
+Sp
+Did
+they
+kill
+me
+when
+they
+hit
+me
+in
+my
+neck
+and
+head
+They
+shot
+me
+Dr
+We
+can
+t
+say
+certainly
+but
+they
+probably
+did
+Sp
+If
+I
+can
+just
+have
+one
+more
+chance
+I
+will
+do
+my
+level
+best
+to
+keep
+my
+family
+together
+Dr
+There
+is
+something
+else
+you
+can
+do
+also
+after
+you
+acquire
+understanding
+it
+will
+be
+your
+duty
+to
+help
+poor
+unfortunate
+spirits
+who
+are
+obsessing
+mortals
+making
+devils
+of
+some
+of
+them
+When
+you
+had
+your
+own
+body
+you
+may
+have
+been
+obsessed
+by
+some
+spirits
+Sp
+I
+did
+not
+care
+for
+drink
+I
+hated
+the
+very
+sight
+of
+it
+But
+when
+once
+I
+got
+just
+a
+smell
+of
+it
+something
+took
+hold
+of
+me
+and
+made
+me
+feel
+like
+a
+devil
+and
+I
+could
+not
+resist
+it
+I
+could
+not
+do
+anything
+with
+myself
+God
+help
+me
+and
+give
+me
+just
+a
+little
+comfort
+Dr
+When
+you
+leave
+here
+you
+will
+be
+reunited
+with
+your
+family
+Sp
+Are
+you
+sure
+about
+that
+Dr
+Positive
+but
+you
+must
+do
+as
+the
+advanced
+spirits
+instruct
+you
+Sp
+If
+there
+is
+anything
+I
+can
+do
+to
+help
+you
+I
+will
+do
+it
+because
+you
+have
+reunited
+me
+with
+my
+family
+I
+came
+home
+drunk
+and
+you
+don
+t
+know
+how
+I
+felt
+when
+I
+realized
+that
+my
+wife
+was
+dying
+I
+was
+so
+drunk
+that
+I
+did
+not
+fully
+realize
+things
+until
+the
+next
+morning
+when
+I
+woke
+up
+and
+there
+was
+my
+wife
+dead
+I
+could
+not
+understand
+it
+What
+was
+I
+to
+do
+What
+could
+I
+do
+with
+the
+children
+My
+wife
+dead
+My
+wife
+and
+Minnie
+say
+they
+will
+both
+forgive
+me
+and
+now
+I
+have
+my
+wife
+and
+two
+children
+and
+I
+am
+going
+to
+start
+all
+over
+again
+God
+bless
+you
+all
+for
+what
+you
+have
+done
+for
+me
+and
+my
+family
+The
+confusion
+and
+mental
+suffering
+existing
+on
+the
+earthplane
+is
+vividly
+portrayed
+by
+the
+spirits
+who
+are
+brought
+to
+our
+circle
+for
+help
+EXPERIENCE
+MARCH
+Spirit
+MR
+MALLORY
+Psychic
+MRS
+WICKLAND
+The
+controlling
+spirit
+came
+in
+while
+we
+were
+singing
+That
+Beautiful
+Shore
+and
+laughed
+uproariously
+Doctor
+Have
+you
+found
+the
+Beautiful
+Shore
+Tell
+us
+what
+you
+know
+about
+it
+Spirit
+It
+s
+all
+humbug
+Dr
+Is
+that
+so
+Sp
+Yes
+Laughing
+hilariously
+It
+s
+silly
+to
+believe
+in
+such
+a
+thing
+Dr
+You
+are
+on
+the
+other
+side
+of
+life
+tell
+us
+something
+about
+it
+Have
+you
+found
+nothing
+If
+you
+do
+not
+believe
+in
+a
+hereafter
+tell
+us
+why
+Explain
+yourself
+If
+you
+are
+a
+skeptic
+tell
+us
+your
+belief
+Sp
+Belief
+Gosh
+Laughing
+Dr
+Tell
+us
+what
+you
+are
+laughing
+about
+Sp
+You
+might
+just
+as
+well
+laugh
+as
+cry
+one
+is
+just
+the
+same
+as
+the
+other
+You
+were
+singing
+That
+Beautiful
+Shore
+and
+while
+you
+are
+singing
+that
+you
+know
+you
+are
+lying
+Dr
+Do
+you
+imply
+that
+life
+does
+not
+mean
+anything
+at
+all
+Sp
+It
+most
+certainly
+does
+not
+There
+is
+nothing
+in
+it
+It
+is
+just
+a
+lie
+The
+whole
+thing
+is
+nothing
+but
+a
+pack
+of
+lies
+both
+life
+and
+religion
+the
+whole
+humbug
+life
+religion
+and
+everything
+connected
+with
+it
+Dr
+Have
+you
+tried
+to
+understand
+your
+own
+life
+the
+mystery
+of
+it
+Sp
+My
+own
+life
+Humbug
+nothing
+but
+humbug
+Laughing
+Dr
+How
+do
+you
+know
+it
+is
+humbug
+You
+are
+laughing
+at
+your
+own
+ignorance
+Sp
+I
+might
+just
+as
+well
+laugh
+as
+cry
+one
+is
+no
+worse
+or
+better
+than
+the
+other
+It
+is
+all
+lies
+damned
+lies
+I
+had
+my
+troubles
+Dr
+Where
+Over
+there
+or
+here
+Sp
+Everywhere
+Laughing
+Dr
+Are
+you
+happy
+Sp
+Happy
+Such
+nonsense
+There
+is
+no
+such
+thing
+there
+never
+was
+and
+there
+never
+will
+be
+Dr
+Do
+you
+really
+know
+anything
+about
+it
+Did
+you
+seek
+for
+truth
+when
+you
+had
+your
+own
+body
+Sp
+I
+prayed
+to
+God
+and
+all
+that
+nonsense
+Gosh
+Dr
+And
+you
+found
+it
+all
+a
+humbug
+What
+has
+that
+to
+do
+with
+the
+actual
+facts
+of
+life
+Sp
+Once
+I
+tried
+to
+be
+some
+one
+Then
+the
+thought
+came
+to
+me
+that
+everything
+was
+humbug
+humbug
+nothing
+but
+humbug
+As
+a
+man
+you
+know
+what
+I
+mean
+You
+are
+talking
+to
+a
+man
+and
+you
+know
+all
+about
+it
+Dr
+You
+are
+invisible
+to
+us
+Have
+you
+ever
+seen
+intelligence
+Sp
+What
+kind
+of
+talk
+is
+that
+I
+don
+t
+believe
+in
+nonsense
+any
+more
+You
+can
+have
+faith
+and
+believe
+that
+you
+can
+walk
+on
+water
+but
+you
+fall
+through
+just
+the
+same
+I
+said
+I
+have
+faith
+that
+I
+can
+walk
+on
+water
+but
+I
+fell
+through
+Dr
+Because
+you
+left
+reason
+out
+Sp
+Reason
+You
+can
+t
+walk
+on
+water
+with
+reason
+Dr
+It
+was
+not
+intended
+that
+we
+should
+walk
+on
+water
+Water
+is
+for
+drinking
+and
+bathing
+Sp
+Why
+are
+you
+holding
+my
+hands
+Dr
+I
+am
+holding
+my
+wife
+s
+hands
+Sp
+You
+don
+t
+know
+what
+you
+are
+talking
+about
+Do
+you
+believe
+that
+Dr
+I
+know
+that
+I
+am
+holding
+my
+wife
+s
+hands
+Sp
+I
+used
+to
+have
+faith
+like
+that
+Dr
+How
+did
+you
+happen
+to
+lose
+faith
+Sp
+It
+is
+all
+humbug
+Dr
+Life
+is
+the
+beginning
+of
+knowledge
+Sp
+I
+haven
+t
+had
+any
+knowledge
+yet
+Dr
+You
+will
+have
+before
+you
+leave
+here
+Sp
+I
+had
+faith
+and
+I
+believed
+and
+then
+what
+Dr
+What
+next
+Sp
+Yes
+what
+next
+I
+worked
+like
+a
+slave
+for
+a
+minister
+of
+God
+I
+do
+not
+work
+for
+him
+now
+that
+was
+some
+time
+ago
+I
+went
+away
+from
+there
+He
+cursed
+me
+and
+I
+had
+my
+cares
+and
+troubles
+I
+swore
+to
+God
+that
+there
+is
+no
+such
+thing
+as
+God
+if
+he
+could
+be
+so
+mean
+as
+to
+call
+such
+a
+man
+his
+minister
+And
+I
+lost
+faith
+Dr
+What
+has
+that
+to
+do
+with
+the
+facts
+of
+life
+and
+the
+hereafter
+Sp
+When
+you
+die
+you
+are
+dead
+Dr
+Then
+why
+didn
+t
+you
+stay
+dead
+when
+you
+died
+Sp
+Stay
+dead
+I
+haven
+t
+died
+yet
+Dr
+You
+died
+as
+far
+as
+your
+body
+is
+concerned
+Sp
+I
+have
+been
+running
+away
+from
+those
+hypocrites
+In
+the
+first
+place
+they
+took
+all
+the
+money
+I
+made
+If
+there
+is
+a
+God
+then
+for
+God
+s
+sake
+why
+does
+he
+always
+want
+money
+They
+always
+say
+you
+must
+have
+faith
+have
+faith
+and
+pay
+your
+money
+to
+the
+church
+and
+you
+should
+work
+for
+God
+My
+work
+was
+hard
+I
+worked
+from
+six
+o
+clock
+every
+morning
+until
+late
+every
+night
+all
+for
+God
+I
+worked
+for
+God
+and
+often
+I
+did
+not
+get
+enough
+so
+that
+I
+could
+get
+along
+Dr
+Tell
+us
+where
+you
+came
+from
+Sp
+All
+I
+want
+is
+my
+freedom
+Dr
+Won
+t
+you
+tell
+us
+where
+you
+came
+from
+Sp
+Look
+at
+all
+those
+devils
+down
+there
+Invisibles
+Hear
+how
+they
+curse
+and
+laugh
+They
+say
+I
+know
+you
+I
+know
+you
+Look
+at
+that
+one
+sitting
+over
+there
+Look
+at
+them
+all
+Hear
+them
+laugh
+They
+say
+I
+should
+tell
+you
+that
+they
+want
+you
+to
+pray
+for
+them
+for
+they
+are
+in
+darkness
+Dr
+We
+want
+to
+help
+them
+to
+a
+better
+understanding
+Sp
+Oh
+listen
+to
+them
+cursing
+Dr
+You
+must
+show
+them
+charity
+You
+do
+not
+seem
+to
+know
+what
+charity
+is
+Sp
+God
+Look
+at
+that
+man
+They
+say
+when
+you
+give
+charity
+they
+don
+t
+like
+it
+Dr
+I
+do
+not
+mean
+money
+Give
+them
+a
+chance
+to
+help
+themselves
+Do
+you
+know
+what
+year
+it
+is
+now
+Sp
+I
+don
+t
+care
+I
+don
+t
+care
+if
+it
+is
+a
+hundred
+years
+from
+now
+I
+ve
+lost
+faith
+in
+God
+humanity
+and
+everything
+and
+everybody
+I
+used
+to
+have
+faith
+Then
+a
+servant
+of
+God
+took
+my
+wife
+and
+children
+away
+from
+me
+and
+yet
+I
+worked
+for
+God
+from
+six
+in
+the
+morning
+to
+twelve
+at
+night
+Dr
+But
+you
+did
+not
+add
+understanding
+to
+your
+faith
+Sp
+I
+had
+faith
+in
+the
+Holy
+Ghost
+and
+the
+Spirit
+Dr
+Why
+did
+you
+not
+add
+understanding
+to
+your
+faith
+Sp
+I
+had
+faith
+enough
+to
+move
+mountains
+We
+were
+taught
+to
+just
+have
+faith
+in
+the
+Holy
+Spirit
+Just
+look
+at
+them
+all
+spirits
+sitting
+there
+Look
+at
+that
+one
+Here
+you
+Calango
+He
+and
+I
+have
+fights
+once
+in
+a
+while
+but
+I
+always
+get
+the
+best
+of
+him
+I
+can
+talk
+better
+now
+than
+I
+have
+done
+for
+a
+long
+time
+Here
+you
+Calango
+sitting
+there
+like
+a
+fool
+They
+told
+me
+to
+go
+in
+there
+so
+I
+came
+in
+I
+think
+you
+were
+afraid
+of
+me
+at
+first
+but
+I
+came
+in
+just
+the
+same
+Dr
+How
+did
+you
+come
+in
+Sp
+In
+here
+How
+did
+I
+come
+in
+I
+don
+t
+know
+Dr
+Where
+did
+you
+get
+that
+hand
+Touching
+Mrs
+Wickland
+s
+hand
+Sp
+That
+hand
+I
+suppose
+it
+is
+mine
+It
+doesn
+t
+belong
+to
+any
+body
+else
+Here
+Calango
+you
+sit
+here
+Now
+I
+can
+talk
+to
+you
+fellows
+Dr
+Now
+stop
+talking
+Sp
+Do
+you
+think
+you
+are
+the
+boss
+here
+Dr
+Yes
+Sp
+I
+have
+no
+faith
+in
+you
+nor
+any
+one
+else
+Dr
+I
+want
+you
+to
+understand
+that
+you
+have
+lost
+your
+physical
+body
+You
+are
+controlling
+my
+wife
+s
+body
+yet
+you
+are
+invisible
+to
+us
+You
+talk
+about
+those
+men
+sitting
+there
+we
+cannot
+see
+them
+We
+are
+in
+mortal
+bodies
+but
+you
+have
+lost
+your
+physical
+body
+Sp
+Can
+t
+you
+see
+me
+Dr
+We
+cannot
+see
+spirits
+You
+are
+controlling
+my
+wife
+s
+body
+Intelligent
+spirits
+have
+brought
+you
+here
+Sp
+You
+asked
+me
+to
+come
+All
+those
+in
+darkness
+came
+in
+too
+You
+invited
+us
+During
+a
+concentration
+for
+all
+earthbound
+spirits
+Dr
+I
+said
+you
+should
+listen
+to
+intelligent
+spirits
+around
+you
+who
+would
+help
+you
+You
+are
+all
+in
+darkness
+Sp
+Yes
+but
+you
+invited
+us
+in
+and
+here
+we
+are
+I
+want
+to
+tell
+you
+if
+you
+don
+t
+want
+us
+I
+won
+t
+talk
+Dr
+You
+were
+invited
+by
+intelligent
+spirits
+to
+come
+here
+and
+allowed
+to
+control
+my
+wife
+s
+body
+so
+that
+we
+could
+help
+you
+understand
+that
+you
+no
+longer
+have
+a
+mortal
+body
+The
+church
+has
+not
+the
+right
+understanding
+of
+God
+You
+found
+humbug
+in
+the
+church
+so
+you
+think
+everything
+is
+humbug
+You
+lost
+your
+body
+probably
+a
+long
+time
+ago
+My
+wife
+is
+a
+psychic
+sensitive
+and
+you
+are
+temporarily
+controlling
+her
+body
+Look
+about
+perhaps
+you
+can
+see
+some
+one
+you
+know
+Sp
+I
+can
+see
+Calango
+Dr
+You
+must
+realize
+that
+life
+means
+something
+Sp
+I
+have
+had
+faith
+and
+enough
+of
+it
+too
+I
+sacrificed
+my
+money
+and
+my
+wife
+and
+you
+see
+where
+I
+am
+Dr
+What
+has
+that
+to
+do
+with
+the
+facts
+of
+life
+Did
+you
+ever
+study
+the
+wonders
+of
+Nature
+Sp
+I
+do
+not
+believe
+in
+God
+there
+is
+no
+such
+thing
+Dr
+God
+has
+nothing
+to
+do
+with
+humbug
+Did
+you
+understand
+the
+Bible
+at
+all
+The
+Bible
+says
+God
+is
+Love
+Humbuggery
+has
+nothing
+to
+do
+with
+universal
+life
+We
+want
+to
+help
+you
+understand
+better
+things
+Sp
+No
+one
+ever
+helps
+me
+Dr
+Do
+you
+know
+you
+are
+in
+Los
+Angeles
+California
+Sp
+No
+Dr
+Try
+to
+understand
+what
+the
+real
+life
+means
+it
+means
+something
+you
+do
+not
+know
+of
+Did
+you
+ever
+make
+a
+flower
+Can
+you
+make
+grass
+grow
+or
+suspend
+life
+Did
+you
+ever
+study
+vegetation
+Sp
+That
+s
+God
+s
+Nature
+Dr
+Can
+ignorance
+produce
+intelligence
+Did
+you
+ever
+study
+the
+marvelous
+things
+of
+God
+Break
+an
+egg
+and
+you
+do
+not
+find
+life
+in
+it
+Take
+another
+egg
+keep
+it
+warm
+for
+twentyone
+days
+and
+a
+chicken
+comes
+out
+of
+it
+Sp
+That
+s
+natural
+Dr
+What
+produces
+the
+chicken
+We
+must
+add
+knowledge
+to
+our
+faith
+The
+Bible
+says
+God
+is
+spirit
+and
+they
+that
+worship
+him
+must
+worship
+him
+in
+spirit
+and
+in
+truth
+You
+do
+not
+find
+that
+in
+the
+churches
+They
+only
+have
+blind
+faith
+Sp
+I
+sure
+had
+faith
+Dr
+The
+Bible
+says
+Know
+the
+truth
+and
+the
+truth
+shall
+make
+you
+free
+Although
+the
+Bible
+is
+not
+a
+Holy
+Book
+it
+contains
+some
+wonderful
+truths
+Sp
+I
+don
+t
+believe
+it
+Laughing
+Dr
+You
+re
+laughing
+at
+your
+own
+ignorance
+My
+wife
+allows
+ignorant
+spirits
+to
+control
+her
+body
+so
+that
+we
+can
+bring
+them
+to
+an
+understanding
+of
+their
+condition
+She
+wants
+you
+to
+know
+that
+life
+exists
+on
+the
+other
+side
+We
+do
+not
+know
+where
+you
+came
+from
+but
+we
+allow
+you
+to
+control
+my
+wife
+s
+body
+Where
+was
+your
+home
+Sp
+My
+home
+That
+was
+in
+Canada
+near
+Montreal
+Dr
+I
+was
+there
+in
+Are
+you
+a
+French
+Canadian
+Sp
+My
+great
+grandfather
+was
+Dr
+Do
+you
+remember
+your
+name
+Sp
+I
+can
+t
+remember
+things
+Dr
+Now
+we
+want
+you
+to
+understand
+things
+Sp
+I
+was
+a
+slave
+Dr
+That
+is
+all
+in
+the
+past
+Sp
+I
+only
+see
+the
+past
+and
+it
+makes
+me
+crazy
+Instead
+of
+crying
+as
+many
+do
+I
+thought
+I
+would
+laugh
+at
+everything
+Whenever
+I
+got
+so
+mad
+I
+did
+not
+know
+what
+to
+do
+with
+myself
+I
+started
+to
+laugh
+I
+guess
+I
+felt
+a
+little
+better
+for
+laughing
+instead
+of
+crying
+I
+had
+my
+heart
+sorrows
+they
+took
+my
+wife
+my
+home
+went
+my
+children
+went
+My
+wife
+was
+a
+very
+pretty
+girl
+One
+day
+I
+came
+home
+from
+my
+work
+and
+I
+had
+worked
+very
+hard
+My
+wife
+and
+children
+were
+gone
+But
+after
+a
+while
+that
+minister
+of
+God
+did
+not
+want
+my
+wife
+any
+more
+then
+she
+commenced
+to
+go
+back
+on
+him
+but
+by
+that
+time
+I
+had
+gone
+down
+I
+said
+no
+church
+for
+mine
+that
+if
+one
+of
+God
+s
+ministers
+can
+break
+up
+my
+home
+and
+take
+my
+wife
+and
+children
+then
+there
+is
+no
+God
+I
+went
+clear
+down
+to
+hell
+for
+that
+fellow
+I
+went
+down
+and
+down
+but
+even
+down
+there
+in
+the
+gutter
+you
+find
+friendship
+and
+love
+for
+each
+other
+If
+you
+are
+down
+they
+too
+are
+down
+with
+you
+All
+the
+other
+people
+look
+down
+on
+you
+but
+believe
+me
+these
+others
+are
+true
+friends
+They
+will
+help
+you
+and
+divide
+whatever
+they
+have
+with
+you
+No
+matter
+how
+down
+you
+are
+if
+you
+haven
+t
+a
+cent
+you
+will
+find
+they
+will
+help
+you
+One
+day
+I
+will
+never
+forget
+what
+I
+saw
+never
+forget
+God
+if
+there
+is
+a
+God
+why
+in
+the
+name
+of
+the
+devil
+does
+he
+allow
+such
+things
+One
+day
+I
+met
+my
+wife
+Where
+was
+she
+She
+had
+gone
+down
+to
+the
+gutter
+I
+found
+her
+in
+one
+of
+those
+fine
+houses
+you
+hear
+about
+where
+that
+filthy
+devil
+had
+put
+her
+when
+he
+was
+through
+with
+her
+I
+looked
+at
+her
+and
+she
+looked
+at
+me
+You
+here
+I
+said
+And
+she
+said
+You
+here
+Why
+are
+you
+here
+I
+asked
+What
+are
+you
+here
+for
+she
+asked
+I
+said
+I
+came
+here
+probably
+of
+my
+own
+free
+will
+She
+said
+she
+had
+been
+put
+there
+by
+that
+glorious
+minister
+of
+God
+to
+hide
+his
+own
+shame
+To
+hide
+his
+own
+dirty
+work
+and
+not
+have
+people
+ask
+her
+questions
+he
+put
+her
+in
+a
+fast
+house
+and
+let
+her
+stay
+there
+and
+she
+did
+not
+care
+for
+anything
+We
+were
+both
+down
+all
+because
+of
+that
+devil
+I
+have
+never
+gone
+to
+church
+since
+I
+cursed
+that
+man
+and
+all
+religious
+cranks
+My
+wife
+wouldn
+t
+have
+anything
+to
+do
+with
+me
+and
+I
+wouldn
+t
+have
+her
+She
+was
+lying
+there
+full
+of
+disease
+There
+is
+not
+an
+animal
+living
+that
+goes
+so
+low
+as
+a
+woman
+when
+she
+goes
+to
+the
+dogs
+Can
+any
+one
+believe
+in
+a
+God
+that
+would
+let
+a
+woman
+like
+my
+wife
+suffer
+as
+she
+did
+through
+no
+fault
+of
+her
+own
+Why
+should
+such
+things
+exist
+Dr
+Why
+didn
+t
+you
+use
+the
+reason
+God
+gave
+you
+Sp
+There
+are
+hundreds
+of
+people
+living
+low
+down
+and
+they
+don
+t
+care
+where
+they
+go
+Dr
+Now
+you
+are
+going
+to
+care
+Let
+me
+talk
+now
+You
+went
+to
+church
+and
+adopted
+a
+blind
+faith
+that
+you
+admit
+Sp
+I
+wanted
+to
+be
+a
+good
+man
+Dr
+Didn
+t
+you
+feel
+a
+desire
+for
+something
+higher
+You
+merely
+had
+faith
+and
+did
+not
+add
+understanding
+God
+gave
+you
+sense
+he
+gave
+you
+intelligent
+reasoning
+faculties
+but
+you
+adopted
+a
+blind
+faith
+and
+clung
+to
+it
+That
+was
+not
+God
+s
+fault
+To
+our
+faith
+we
+must
+add
+knowledge
+and
+that
+will
+make
+us
+free
+God
+did
+not
+write
+the
+Bible
+Sp
+It
+is
+a
+Holy
+Book
+That
+is
+what
+they
+say
+Dr
+It
+was
+written
+by
+man
+Did
+you
+ever
+analyze
+the
+marvels
+of
+the
+human
+mind
+I
+am
+talking
+of
+facts
+now
+Did
+you
+ever
+realize
+how
+wonderful
+the
+human
+body
+is
+or
+how
+the
+invisible
+mind
+is
+able
+to
+control
+the
+material
+body
+Did
+you
+ever
+see
+the
+wonders
+of
+Nature
+Sp
+All
+that
+has
+nothing
+to
+do
+with
+my
+misery
+Dr
+If
+you
+had
+used
+your
+own
+faculties
+you
+would
+understand
+that
+love
+and
+mind
+are
+invisible
+Sp
+Didn
+t
+that
+devil
+love
+my
+wife
+Dr
+That
+was
+not
+love
+You
+did
+not
+use
+your
+faculties
+You
+joined
+the
+church
+in
+blind
+faith
+without
+using
+your
+reason
+We
+do
+not
+see
+you
+you
+are
+invisible
+to
+us
+and
+are
+using
+my
+wife
+s
+body
+temporarily
+We
+are
+interested
+in
+the
+condition
+of
+the
+so
+called
+dead
+and
+many
+of
+them
+are
+brought
+here
+to
+be
+enlightened
+You
+have
+been
+brought
+here
+by
+intelligent
+spirits
+so
+that
+you
+can
+learn
+to
+understand
+your
+true
+condition
+You
+have
+an
+opportunity
+to
+progress
+in
+the
+spirit
+world
+but
+you
+must
+forget
+your
+hatred
+You
+lost
+your
+physical
+body
+Do
+you
+know
+what
+year
+it
+is
+It
+is
+and
+you
+are
+in
+California
+Sp
+How
+did
+I
+get
+here
+I
+never
+was
+in
+California
+Dr
+How
+does
+spirit
+travel
+You
+spoke
+of
+other
+people
+here
+we
+do
+not
+see
+them
+We
+do
+not
+see
+you
+You
+are
+using
+my
+wife
+s
+organism
+Can
+t
+you
+see
+how
+wonderful
+life
+is
+Sp
+Why
+aren
+t
+we
+taught
+those
+things
+Dr
+Because
+the
+truth
+is
+not
+in
+the
+people
+You
+will
+have
+to
+judge
+for
+yourself
+between
+the
+facts
+of
+life
+and
+the
+creed
+of
+the
+church
+Churches
+are
+man
+made
+things
+God
+is
+Spirit
+and
+you
+must
+worship
+him
+in
+spirit
+and
+in
+truth
+in
+spirit
+and
+in
+truth
+We
+have
+aspirations
+for
+a
+higher
+life
+but
+that
+does
+not
+give
+us
+knowledge
+God
+is
+Spirit
+invisible
+Intelligence
+He
+manifests
+himself
+in
+all
+the
+wonders
+of
+the
+Universe
+Sp
+All
+these
+people
+here
+invisibles
+have
+had
+disappointments
+as
+I
+have
+but
+all
+have
+different
+stories
+We
+sit
+and
+talk
+to
+each
+other
+from
+time
+to
+time
+all
+telling
+of
+the
+past
+All
+have
+their
+troubles
+Dr
+God
+has
+nothing
+whatever
+to
+do
+with
+that
+The
+Universe
+is
+God
+s
+Temple
+and
+our
+souls
+are
+His
+Manifestations
+Think
+of
+the
+marvelous
+things
+in
+the
+Universe
+You
+speak
+of
+your
+friends
+being
+here
+yet
+we
+cannot
+see
+them
+Sp
+They
+want
+to
+know
+if
+you
+can
+help
+them
+all
+from
+their
+troubles
+Dr
+Yes
+we
+can
+Tell
+them
+that
+life
+means
+something
+Look
+around
+and
+you
+may
+see
+intelligent
+spirits
+who
+will
+help
+you
+Sp
+There
+are
+six
+of
+us
+and
+we
+have
+all
+had
+the
+same
+trouble
+and
+disappointment
+but
+each
+has
+a
+different
+story
+Dr
+Tell
+them
+that
+none
+of
+you
+need
+be
+in
+the
+condition
+you
+are
+in
+Sp
+There
+s
+one
+group
+called
+The
+Laughing
+Fools
+there
+s
+another
+called
+The
+Cursing
+Fools
+there
+s
+another
+called
+The
+Swearing
+Fools
+there
+s
+another
+called
+The
+Singing
+Fools
+They
+sing
+and
+pray
+from
+morning
+until
+night
+You
+get
+sick
+and
+tired
+of
+hearing
+them
+Dr
+The
+Bible
+says
+As
+a
+man
+thinketh
+in
+his
+heart
+so
+is
+he
+Religious
+fanatics
+are
+the
+worst
+They
+have
+not
+added
+understanding
+to
+their
+blind
+faith
+We
+all
+have
+faculties
+but
+do
+not
+use
+them
+Is
+that
+God
+s
+fault
+Sp
+I
+have
+not
+worked
+for
+a
+long
+time
+Sometimes
+none
+of
+us
+have
+any
+food
+We
+have
+done
+without
+it
+so
+long
+that
+now
+we
+do
+not
+seem
+to
+need
+it
+Dr
+The
+spirit
+does
+not
+need
+food
+Sp
+We
+are
+starving
+starving
+Dr
+Spiritually
+starving
+Sp
+We
+are
+all
+starving
+for
+something
+but
+we
+don
+t
+know
+what
+it
+is
+We
+are
+all
+anxious
+to
+know
+We
+all
+say
+that
+our
+souls
+cry
+out
+for
+something
+but
+we
+don
+t
+know
+what
+it
+is
+None
+of
+us
+want
+to
+pray
+For
+my
+part
+I
+cannot
+I
+had
+faith
+and
+prayed
+but
+here
+I
+am
+in
+all
+this
+trouble
+Dr
+God
+has
+given
+each
+one
+of
+you
+reasoning
+faculties
+Sp
+Would
+you
+help
+us
+all
+They
+all
+say
+they
+are
+hungry
+for
+happiness
+All
+we
+can
+see
+is
+our
+past
+and
+we
+all
+want
+something
+higher
+All
+I
+can
+see
+is
+my
+wife
+as
+I
+saw
+her
+last
+down
+down
+Dr
+So
+far
+as
+your
+wife
+is
+concerned
+it
+was
+only
+her
+body
+that
+was
+diseased
+not
+her
+spirit
+Sp
+When
+we
+saw
+each
+other
+we
+both
+cried
+Dr
+After
+you
+have
+understanding
+you
+can
+all
+do
+a
+great
+work
+in
+helping
+others
+Listen
+to
+the
+invisible
+friends
+who
+are
+around
+you
+All
+be
+quiet
+a
+moment
+and
+your
+eyes
+will
+open
+to
+undreamed
+of
+things
+Sp
+Do
+you
+think
+my
+wife
+can
+get
+help
+She
+was
+as
+pure
+as
+a
+lily
+I
+loved
+her
+Dr
+You
+can
+love
+her
+still
+We
+must
+all
+try
+to
+find
+ourselves
+As
+we
+grow
+out
+of
+our
+ignorance
+we
+see
+the
+higher
+things
+of
+existence
+both
+here
+and
+in
+the
+spirit
+life
+If
+we
+were
+born
+into
+a
+perfect
+condition
+we
+would
+not
+appreciate
+it
+You
+have
+seen
+hell
+and
+when
+you
+progress
+you
+will
+see
+heaven
+You
+will
+find
+a
+beautiful
+condition
+and
+you
+will
+appreciate
+it
+You
+will
+then
+be
+enthusiastic
+helpers
+eager
+to
+serve
+others
+You
+must
+all
+open
+your
+hearts
+for
+higher
+things
+Sp
+I
+love
+my
+wife
+To
+the
+invisibles
+No
+boys
+don
+t
+go
+yet
+wait
+a
+little
+while
+longer
+Dr
+The
+Bible
+says
+Ask
+and
+it
+shall
+be
+given
+you
+seek
+and
+ye
+shall
+find
+knock
+and
+it
+shall
+be
+opened
+unto
+you
+Sp
+With
+heartfelt
+solemnity
+If
+there
+is
+a
+God
+help
+me
+Help
+my
+poor
+wife
+We
+loved
+each
+other
+Oh
+God
+Help
+us
+all
+We
+are
+starving
+for
+something
+Dr
+His
+messengers
+will
+help
+you
+You
+will
+see
+many
+who
+will
+gladly
+help
+you
+all
+Sp
+God
+help
+us
+all
+Dr
+If
+you
+will
+look
+around
+you
+will
+see
+spirits
+who
+will
+help
+you
+Sp
+There
+s
+my
+boy
+my
+own
+little
+boy
+Charlie
+You
+are
+my
+boy
+You
+died
+many
+years
+ago
+but
+you
+are
+my
+boy
+Charlie
+Have
+you
+come
+to
+help
+your
+old
+Dad
+my
+boy
+Your
+poor
+Dad
+has
+suffered
+hell
+my
+boy
+Help
+your
+mother
+boy
+help
+your
+mother
+poor
+mother
+Suddenly
+amazed
+Why
+that
+s
+my
+little
+boy
+Charlie
+but
+he
+s
+a
+man
+now
+Charlie
+my
+little
+boy
+can
+you
+forgive
+your
+old
+Dad
+I
+tried
+so
+hard
+to
+have
+faith
+and
+I
+tried
+to
+be
+good
+If
+there
+is
+a
+God
+open
+my
+eyes
+to
+see
+God
+help
+me
+Gazing
+at
+some
+vision
+then
+speaking
+in
+a
+hushed
+voice
+Now
+we
+can
+all
+see
+the
+glory
+of
+God
+and
+we
+will
+all
+go
+with
+Charlie
+Astonished
+You
+Are
+you
+here
+also
+Clara
+Come
+to
+me
+oh
+Clara
+I
+forgive
+you
+I
+forgive
+you
+Clara
+I
+know
+it
+was
+not
+your
+fault
+It
+was
+that
+devil
+he
+took
+you
+away
+from
+me
+I
+love
+you
+and
+always
+have
+loved
+you
+Come
+Clara
+come
+with
+us
+and
+let
+us
+go
+with
+Charlie
+He
+will
+probably
+forgive
+you
+Dr
+What
+does
+he
+say
+Sp
+He
+says
+Come
+with
+me
+to
+my
+spirit
+home
+where
+all
+is
+lovely
+where
+you
+will
+be
+happy
+It
+was
+because
+of
+sorrow
+and
+suffering
+that
+you
+looked
+at
+life
+as
+you
+did
+Dr
+Don
+t
+you
+realize
+there
+is
+something
+beautiful
+ahead
+of
+you
+Sp
+Is
+it
+Heaven
+Why
+look
+there
+There
+s
+my
+mother
+and
+sister
+Emma
+Are
+you
+both
+here
+too
+Can
+you
+forgive
+Clara
+and
+me
+I
+thought
+you
+were
+in
+Heaven
+mother
+you
+were
+so
+good
+You
+always
+loved
+me
+Dr
+Do
+you
+realize
+now
+that
+there
+is
+something
+higher
+than
+your
+past
+Sp
+Yes
+Now
+I
+know
+there
+is
+a
+God
+I
+do
+believe
+in
+God
+now
+for
+I
+know
+His
+glory
+I
+see
+and
+feel
+His
+glory
+Dr
+After
+you
+have
+understanding
+you
+must
+help
+the
+others
+you
+were
+talking
+about
+Sp
+They
+are
+all
+coming
+with
+me
+I
+want
+them
+all
+to
+come
+for
+I
+cannot
+leave
+them
+You
+have
+helped
+all
+of
+us
+Now
+we
+will
+go
+come
+on
+boys
+We
+had
+names
+for
+each
+other
+but
+they
+were
+not
+our
+own
+In
+our
+hatred
+and
+because
+we
+laughed
+we
+were
+called
+The
+Laughing
+Fools
+Most
+of
+our
+time
+was
+spent
+in
+talking
+over
+our
+past
+Now
+we
+have
+all
+found
+God
+we
+have
+found
+Him
+in
+His
+glory
+in
+His
+happiness
+in
+the
+spirit
+world
+We
+do
+not
+need
+to
+believe
+for
+we
+know
+He
+will
+help
+us
+all
+Mother
+father
+and
+sister
+all
+are
+here
+Come
+on
+now
+boys
+We
+all
+listened
+to
+what
+this
+man
+said
+and
+you
+see
+where
+it
+brought
+us
+Today
+I
+call
+you
+our
+savior
+because
+you
+have
+saved
+us
+from
+darkness
+and
+brought
+us
+to
+glory
+You
+saved
+us
+all
+Not
+only
+myself
+but
+the
+others
+have
+opened
+their
+eyes
+to
+see
+the
+glory
+of
+God
+and
+not
+a
+God
+of
+hatred
+and
+envy
+Dr
+You
+can
+thank
+my
+wife
+who
+allows
+her
+body
+to
+be
+used
+so
+that
+spirits
+may
+be
+helped
+Sp
+I
+will
+never
+forget
+you
+You
+have
+given
+me
+happiness
+that
+I
+have
+not
+known
+for
+years
+and
+years
+You
+say
+it
+is
+Is
+that
+true
+I
+thought
+it
+was
+Dr
+Can
+you
+tell
+us
+your
+name
+friend
+Sp
+My
+name
+Yes
+it
+s
+Mallory
+They
+called
+me
+a
+Laughing
+Fool
+We
+thank
+you
+all
+for
+your
+patience
+I
+was
+full
+of
+hatred
+when
+I
+came
+but
+that
+has
+all
+gone
+now
+God
+bless
+you
+all
+I
+have
+to
+call
+you
+my
+savior
+because
+you
+have
+saved
+us
+from
+that
+dark
+condition
+and
+brought
+us
+to
+a
+beautiful
+place
+Clara
+you
+come
+too
+for
+I
+love
+you
+dearly
+You
+are
+well
+now
+Dr
+You
+will
+now
+become
+useful
+spirits
+Find
+God
+and
+forget
+the
+past
+Sp
+The
+last
+time
+I
+saw
+Clara
+she
+was
+very
+sick
+and
+was
+taking
+morphine
+all
+the
+time
+Come
+to
+me
+Clara
+I
+forgive
+you
+See
+Charlie
+is
+with
+us
+Can
+t
+we
+help
+Clara
+She
+seems
+dazed
+Dr
+She
+is
+probably
+still
+under
+the
+effects
+of
+the
+opiate
+Your
+love
+will
+bring
+her
+to
+you
+Sp
+I
+never
+could
+hate
+her
+she
+was
+so
+pure
+Clara
+wake
+up
+You
+are
+not
+dead
+Forget
+the
+past
+and
+live
+in
+the
+new
+life
+Thank
+you
+all
+for
+bringing
+me
+happiness
+and
+also
+for
+bringing
+God
+to
+me
+in
+my
+heart
+I
+never
+properly
+understood
+Him
+before
+I
+found
+Him
+in
+the
+glory
+of
+Nature
+too
+Look
+at
+all
+those
+beautiful
+flowers
+Is
+this
+Heaven
+Dr
+It
+is
+the
+spirit
+world
+Sp
+Now
+I
+m
+always
+going
+to
+be
+with
+my
+loved
+ones
+in
+the
+spirit
+world
+We
+will
+go
+Goodbye
+A
+communication
+of
+a
+different
+type
+was
+received
+from
+the
+spirit
+of
+a
+young
+man
+son
+of
+one
+of
+the
+members
+of
+our
+circle
+The
+young
+man
+had
+passed
+over
+two
+months
+before
+but
+having
+been
+unbiased
+and
+open
+minded
+was
+readily
+enlightened
+by
+his
+spirit
+friends
+In
+his
+short
+visit
+to
+our
+circle
+he
+gave
+an
+interesting
+description
+of
+conditions
+as
+he
+observed
+them
+in
+both
+the
+earth
+sphere
+and
+the
+spirit
+world
+EXPERIENCE
+APRIL
+Spirit
+W
+Y
+Psychic
+MRS
+WICKLAND
+Spirit
+Well
+Dad
+I
+m
+here
+again
+The
+spirit
+friends
+gave
+me
+the
+privilege
+of
+coming
+and
+talking
+first
+Dad
+it
+s
+queer
+that
+I
+should
+go
+so
+quickly
+but
+my
+time
+had
+come
+I
+am
+glad
+the
+door
+is
+not
+shut
+for
+me
+I
+have
+seen
+many
+heartbroken
+spirits
+who
+go
+to
+their
+relatives
+and
+friends
+and
+the
+door
+is
+closed
+in
+their
+faces
+Through
+skepticism
+and
+unconsciousness
+of
+the
+presence
+of
+spirits
+I
+have
+much
+to
+be
+thankful
+for
+because
+it
+s
+hard
+for
+them
+Grandpa
+B
+and
+Uncle
+C
+stood
+right
+beside
+me
+when
+I
+woke
+up
+from
+the
+sleep
+of
+death
+It
+was
+queer
+It
+was
+like
+an
+electric
+shock
+going
+through
+my
+body
+Life
+is
+queer
+If
+each
+one
+of
+you
+could
+see
+the
+experiences
+gone
+through
+by
+those
+who
+go
+into
+the
+sleep
+of
+death
+Dad
+I
+had
+a
+little
+knowledge
+of
+the
+next
+life
+not
+much
+but
+a
+little
+and
+it
+helped
+I
+could
+realize
+that
+the
+change
+of
+death
+had
+taken
+place
+I
+recognized
+my
+relatives
+and
+friends
+Uncle
+F
+says
+I
+should
+tell
+you
+that
+I
+was
+much
+better
+off
+than
+he
+was
+when
+he
+passed
+to
+the
+other
+side
+and
+that
+now
+his
+work
+is
+to
+help
+the
+unfortunate
+ones
+who
+do
+not
+understand
+the
+real
+life
+Dad
+wasn
+t
+it
+queer
+that
+I
+should
+wake
+up
+to
+the
+new
+birth
+See
+Chap
+Page
+Spirit
+F
+W
+of
+life
+on
+my
+earthly
+birthday
+Now
+I
+have
+my
+spiritual
+birthday
+on
+the
+same
+day
+as
+my
+earthly
+birthday
+Dad
+it
+s
+glorious
+Tell
+E
+so
+and
+B
+and
+mother
+tell
+all
+of
+them
+that
+I
+am
+happy
+in
+the
+thought
+that
+I
+can
+come
+to
+them
+and
+that
+the
+door
+is
+not
+closed
+to
+me
+Tell
+my
+little
+son
+that
+I
+am
+not
+dead
+that
+I
+am
+not
+in
+the
+grave
+but
+am
+with
+him
+and
+I
+will
+learn
+the
+laws
+governing
+so
+that
+I
+can
+guide
+him
+through
+life
+Let
+him
+have
+an
+understanding
+that
+I
+am
+there
+with
+him
+and
+that
+I
+have
+more
+strength
+and
+power
+to
+help
+him
+than
+before
+Thank
+God
+that
+I
+also
+had
+understanding
+so
+that
+I
+did
+not
+come
+too
+close
+to
+my
+dear
+wife
+otherwise
+I
+would
+have
+gotten
+into
+her
+magnetic
+aura
+and
+might
+have
+caused
+trouble
+My
+dear
+little
+wife
+I
+am
+glad
+that
+I
+did
+not
+make
+trouble
+for
+us
+both
+I
+have
+seen
+much
+of
+the
+work
+done
+among
+those
+who
+have
+passed
+out
+and
+do
+not
+realize
+it
+They
+go
+home
+to
+their
+relatives
+and
+friends
+and
+want
+to
+stay
+there
+rather
+than
+go
+on
+Dad
+I
+m
+so
+glad
+you
+could
+come
+here
+again
+and
+I
+m
+glad
+so
+glad
+that
+there
+is
+no
+wall
+between
+us
+Mr
+Y
+Father
+of
+spirit
+I
+am
+glad
+too
+that
+I
+had
+an
+opportunity
+of
+being
+here
+again
+Sp
+I
+feel
+now
+that
+there
+is
+no
+parting
+It
+is
+only
+that
+I
+have
+gone
+to
+another
+country
+but
+I
+am
+with
+you
+all
+I
+am
+with
+you
+when
+you
+are
+all
+together
+and
+talk
+about
+me
+I
+do
+not
+feel
+that
+I
+have
+gone
+Tell
+mother
+and
+my
+dear
+little
+wife
+not
+to
+mourn
+for
+me
+but
+to
+feel
+glad
+that
+I
+can
+be
+with
+them
+It
+was
+very
+hard
+that
+we
+should
+have
+to
+part
+when
+everything
+looked
+so
+bright
+for
+us
+in
+our
+little
+home
+but
+it
+was
+my
+time
+to
+go
+and
+when
+our
+time
+comes
+to
+go
+from
+this
+earth
+life
+we
+have
+to
+go
+We
+do
+not
+go
+away
+as
+people
+think
+we
+do
+we
+are
+here
+with
+our
+loved
+ones
+only
+our
+bodies
+are
+not
+visible
+I
+wish
+you
+could
+see
+how
+Uncle
+F
+works
+in
+the
+dark
+earth
+sphere
+to
+help
+and
+to
+serve
+the
+unfortunate
+ones
+there
+to
+prevent
+them
+from
+obsessing
+any
+one
+He
+is
+so
+anxious
+to
+have
+everybody
+know
+the
+real
+truth
+on
+the
+other
+side
+and
+it
+is
+a
+pity
+that
+so
+much
+dogma
+and
+creed
+are
+the
+stumblingblocks
+The
+little
+time
+I
+have
+been
+gone
+I
+have
+learned
+so
+much
+I
+thank
+you
+Dad
+that
+you
+and
+mother
+did
+not
+force
+any
+strong
+dogma
+or
+religion
+or
+creed
+upon
+my
+mind
+I
+was
+free
+Thank
+you
+for
+it
+Mr
+Y
+It
+s
+pretty
+hard
+sometimes
+to
+know
+exactly
+what
+to
+do
+regarding
+religion
+in
+bringing
+up
+children
+Sp
+I
+wish
+all
+could
+have
+been
+as
+free
+as
+I
+was
+then
+there
+would
+not
+be
+so
+much
+sorrow
+and
+doubt
+Dad
+I
+m
+so
+glad
+I
+can
+come
+to
+you
+again
+The
+other
+day
+Uncle
+F
+Uncle
+C
+and
+I
+went
+to
+the
+earth
+sphere
+not
+to
+our
+home
+but
+to
+the
+condition
+that
+exists
+on
+the
+lower
+plane
+That
+is
+more
+of
+a
+hell
+than
+anybody
+can
+describe
+It
+s
+worse
+than
+an
+insane
+asylum
+where
+one
+is
+crazy
+in
+one
+way
+and
+another
+in
+another
+way
+You
+can
+t
+imagine
+what
+a
+hell
+it
+is
+One
+has
+one
+creed
+one
+another
+and
+they
+are
+all
+in
+the
+dark
+They
+are
+all
+hypnotized
+in
+their
+creeds
+and
+beliefs
+and
+you
+can
+not
+get
+any
+sense
+whatever
+into
+them
+You
+have
+to
+put
+some
+object
+lesson
+before
+them
+to
+attract
+their
+attention
+At
+times
+music
+will
+make
+them
+realize
+their
+condition
+If
+you
+can
+attract
+their
+attention
+you
+can
+sometimes
+reach
+the
+real
+spirit
+but
+dogmas
+and
+creeds
+are
+so
+planted
+in
+their
+minds
+that
+they
+cannot
+see
+anything
+If
+you
+want
+to
+realize
+in
+part
+what
+the
+condition
+of
+the
+earth
+sphere
+is
+go
+to
+the
+worst
+ward
+in
+an
+insane
+asylum
+and
+you
+can
+then
+have
+some
+realization
+of
+the
+condition
+on
+the
+invisible
+side
+when
+they
+have
+no
+knowledge
+of
+the
+next
+life
+Imagine
+a
+spirit
+of
+that
+character
+coming
+in
+contact
+with
+a
+person
+s
+magnetic
+aura
+and
+acting
+through
+him
+as
+is
+often
+the
+case
+They
+call
+that
+person
+insane
+and
+send
+him
+to
+the
+insane
+asylum
+where
+there
+are
+a
+lot
+of
+other
+lunatics
+both
+of
+earth
+and
+the
+spirit
+side
+of
+life
+It
+is
+terrible
+to
+know
+that
+such
+a
+condition
+exists
+and
+that
+selfish
+creeds
+And
+dogmas
+are
+the
+cause
+of
+it
+all
+I
+have
+to
+thank
+you
+and
+mother
+again
+for
+not
+forcing
+any
+dogma
+on
+me
+what
+little
+knowledge
+I
+had
+was
+the
+real
+truth
+of
+life
+Uncle
+C
+took
+me
+at
+another
+time
+to
+different
+conditions
+He
+said
+Come
+we
+will
+go
+and
+we
+went
+to
+some
+place
+in
+spirit
+life
+We
+came
+to
+a
+place
+which
+I
+cannot
+describe
+I
+can
+t
+describe
+my
+feelings
+I
+can
+t
+describe
+the
+conditions
+because
+the
+music
+was
+so
+sublime
+so
+different
+from
+anything
+I
+have
+ever
+heard
+I
+felt
+so
+light
+I
+felt
+I
+was
+lifted
+up
+Such
+people
+as
+were
+there
+I
+cannot
+describe
+them
+Imagine
+if
+you
+can
+a
+place
+where
+there
+is
+the
+most
+beautiful
+music
+where
+there
+is
+a
+grand
+orchestra
+of
+masters
+all
+playing
+in
+one
+grand
+unit
+of
+music
+Can
+you
+imagine
+what
+it
+would
+be
+I
+enjoyed
+it
+but
+Oh
+I
+could
+not
+realize
+its
+full
+import
+because
+I
+wanted
+you
+and
+my
+dear
+little
+wife
+to
+hear
+it
+I
+could
+not
+enjoy
+it
+alone
+I
+wanted
+to
+open
+the
+door
+to
+you
+all
+at
+home
+so
+that
+you
+could
+all
+listen
+to
+it
+then
+I
+should
+have
+felt
+satisfied
+I
+thought
+and
+thought
+and
+an
+old
+gentleman
+came
+up
+to
+me
+and
+patted
+me
+on
+the
+shoulder
+and
+said
+Young
+man
+I
+receive
+your
+thought
+Do
+not
+worry
+Soon
+the
+time
+will
+come
+for
+which
+we
+are
+all
+working
+when
+an
+instrument
+will
+be
+invented
+on
+earth
+through
+which
+all
+who
+wish
+can
+hear
+the
+grand
+masters
+in
+the
+spirit
+world
+Not
+yet
+but
+in
+time
+Dad
+my
+work
+is
+to
+learn
+to
+help
+others
+less
+fortunate
+than
+myself
+and
+also
+to
+learn
+to
+be
+a
+help
+and
+not
+a
+detriment
+to
+my
+dear
+wife
+and
+little
+boy
+and
+to
+you
+all
+I
+am
+learning
+my
+lessons
+and
+after
+knowing
+them
+I
+will
+come
+to
+you
+Don
+t
+think
+I
+am
+not
+with
+you
+all
+but
+think
+I
+am
+there
+for
+I
+am
+and
+in
+that
+way
+I
+can
+be
+much
+closer
+especially
+when
+you
+have
+music
+because
+music
+brings
+us
+much
+closer
+to
+those
+we
+love
+Goodbye
+and
+tell
+my
+dear
+wife
+I
+send
+her
+best
+love
+With
+exquisite
+grace
+and
+courteous
+inquiry
+came
+the
+spirit
+of
+one
+formerly
+a
+famous
+actress
+whose
+friends
+had
+tried
+in
+vain
+to
+waken
+her
+from
+the
+sleep
+of
+death
+EXPERIENCE
+JULY
+Spirit
+LILLIAN
+R
+Psychic
+MRS
+WICKLAND
+Doctor
+Good
+Evening
+friend
+Where
+have
+you
+come
+from
+Spirit
+Somebody
+told
+me
+to
+come
+here
+but
+I
+do
+not
+know
+what
+I
+should
+do
+My
+condition
+is
+so
+strange
+that
+I
+cannot
+understand
+it
+I
+do
+not
+realize
+where
+I
+am
+Dr
+You
+are
+in
+Los
+Angeles
+California
+Sp
+No
+There
+are
+many
+here
+who
+wanted
+me
+to
+come
+but
+I
+cannot
+understand
+why
+I
+do
+not
+know
+any
+of
+you
+here
+Dr
+You
+were
+brought
+here
+to
+be
+helped
+Sp
+I
+do
+not
+know
+that
+I
+need
+any
+help
+Things
+look
+so
+confusing
+to
+me
+Dr
+That
+is
+because
+you
+do
+not
+understand
+your
+condition
+Where
+do
+you
+think
+you
+should
+be
+Sp
+Where
+my
+home
+is
+Dr
+What
+state
+did
+you
+live
+in
+Sp
+Of
+course
+most
+of
+the
+time
+I
+was
+in
+New
+York
+but
+at
+times
+I
+was
+in
+London
+and
+other
+places
+Dr
+Cannot
+you
+see
+any
+one
+you
+know
+or
+the
+one
+who
+brought
+you
+here
+Sp
+Oh
+Disturbed
+greatly
+by
+pain
+in
+limb
+Dr
+Were
+you
+in
+some
+accident
+Were
+you
+traveling
+What
+is
+the
+last
+thing
+you
+remember
+Sp
+I
+was
+very
+sick
+I
+had
+such
+pain
+Dr
+Probably
+that
+was
+your
+last
+illness
+Did
+you
+become
+well
+suddenly
+Sp
+No
+it
+seems
+to
+me
+that
+I
+have
+been
+sleeping
+and
+in
+some
+way
+or
+another
+I
+am
+just
+waking
+up
+Everything
+looks
+so
+queer
+Dr
+You
+do
+not
+understand
+your
+condition
+You
+do
+not
+need
+to
+have
+that
+pain
+If
+you
+say
+I
+will
+not
+have
+that
+pain
+it
+will
+disappear
+Will
+you
+do
+that
+Sp
+Yes
+but
+it
+seems
+very
+hard
+to
+say
+You
+are
+a
+Christian
+Scientist
+are
+you
+not
+I
+looked
+into
+Christian
+Science
+but
+I
+certainly
+could
+not
+say
+my
+pains
+were
+imagination
+Dr
+You
+are
+in
+a
+different
+condition
+now
+Do
+you
+ever
+see
+any
+of
+your
+friends
+around
+you
+Sp
+Yes
+I
+sometimes
+see
+many
+of
+my
+particular
+friends
+that
+have
+gone
+before
+and
+then
+I
+think
+to
+myself
+that
+I
+have
+gone
+crazy
+My
+friends
+are
+around
+me
+and
+some
+one
+says
+Wake
+up
+But
+I
+cannot
+see
+I
+do
+not
+want
+to
+see
+them
+Dr
+That
+is
+because
+you
+do
+not
+want
+to
+understand
+Were
+you
+afraid
+of
+them
+when
+they
+were
+living
+Sp
+No
+I
+was
+not
+Dr
+Then
+why
+should
+you
+be
+afraid
+of
+them
+when
+they
+have
+lost
+their
+mortal
+bodies
+Sp
+I
+am
+afraid
+and
+very
+nervous
+and
+I
+do
+not
+want
+them
+to
+come
+near
+me
+Why
+don
+t
+my
+lovely
+friends
+come
+Dr
+To
+your
+earthly
+friends
+you
+are
+dead
+but
+to
+your
+spirit
+friends
+you
+are
+not
+dead
+Sp
+I
+was
+sick
+but
+I
+cannot
+remember
+that
+I
+died
+I
+went
+to
+sleep
+but
+I
+cannot
+remember
+that
+I
+failed
+to
+wake
+up
+Several
+of
+my
+friends
+just
+came
+and
+called
+me
+to
+go
+with
+them
+Dr
+Do
+you
+know
+why
+they
+told
+you
+to
+wake
+up
+To
+your
+spirit
+friends
+you
+are
+only
+sleeping
+Sp
+Why
+do
+they
+call
+me
+Dr
+To
+help
+you
+and
+make
+you
+understand
+Sp
+I
+do
+not
+know
+you
+Dr
+I
+am
+Dr
+Wickland
+Who
+brought
+you
+here
+Sp
+Anna
+H
+an
+actress
+well
+known
+to
+the
+spirit
+during
+earth
+life
+told
+me
+to
+come
+Dr
+She
+spoke
+to
+us
+once
+as
+you
+are
+doing
+now
+Sp
+She
+came
+to
+me
+but
+I
+knew
+she
+was
+dead
+and
+gone
+Dr
+She
+is
+not
+dead
+We
+do
+not
+see
+you
+we
+only
+hear
+you
+talk
+You
+do
+not
+see
+me
+you
+only
+see
+my
+body
+Mind
+is
+invisible
+there
+is
+no
+death
+See
+Chap
+Pages
+Spirit
+Anna
+H
+Sp
+So
+many
+people
+have
+come
+to
+me
+and
+want
+me
+to
+wake
+up
+and
+start
+in
+my
+work
+again
+Dr
+If
+you
+do
+not
+mind
+telling
+us
+we
+should
+like
+to
+know
+who
+you
+are
+Sp
+Don
+t
+you
+know
+me
+I
+was
+an
+actress
+I
+was
+known
+as
+Lillian
+R
+I
+am
+not
+dead
+William
+Stead
+came
+to
+me
+and
+also
+the
+late
+King
+Edward
+I
+was
+his
+favorite
+actress
+I
+cannot
+understand
+why
+I
+came
+here
+They
+say
+I
+was
+brought
+here
+for
+you
+to
+awaken
+me
+Dr
+We
+are
+interested
+in
+life
+s
+problems
+and
+in
+the
+question
+What
+becomes
+of
+the
+Dead
+Sp
+I
+studied
+some
+but
+only
+understood
+slightly
+the
+phenomena
+I
+studied
+but
+at
+the
+same
+time
+my
+life
+was
+so
+busy
+so
+much
+taken
+up
+with
+others
+and
+I
+was
+also
+trying
+to
+live
+the
+best
+I
+knew
+how
+I
+am
+very
+tired
+and
+sleepy
+Dr
+What
+was
+the
+nature
+of
+your
+sickness
+Sp
+They
+told
+me
+so
+many
+different
+things
+until
+at
+last
+I
+do
+not
+know
+what
+it
+was
+I
+had
+such
+dreadful
+pains
+down
+this
+way
+from
+the
+knee
+down
+I
+was
+unconscious
+for
+a
+time
+I
+cannot
+remember
+things
+very
+clearly
+in
+some
+way
+I
+seem
+to
+have
+lost
+my
+memory
+I
+cannot
+recollect
+anything
+of
+the
+past
+I
+feel
+different
+as
+if
+I
+had
+nothing
+to
+look
+forward
+to
+in
+the
+future
+I
+am
+not
+unhappy
+but
+at
+the
+same
+time
+I
+am
+not
+happy
+Dr
+We
+will
+explain
+matters
+to
+you
+You
+do
+not
+need
+to
+worry
+Sp
+My
+friends
+came
+and
+I
+would
+not
+have
+anything
+to
+do
+with
+them
+They
+said
+Come
+along
+but
+I
+said
+No
+no
+no
+I
+am
+not
+ready
+yet
+I
+do
+not
+want
+to
+go
+Dr
+You
+had
+already
+gone
+but
+did
+not
+understand
+it
+Your
+friends
+came
+to
+help
+you
+but
+you
+did
+not
+understand
+it
+Do
+you
+know
+where
+you
+are
+now
+This
+is
+my
+wife
+s
+body
+you
+are
+using
+She
+is
+sleeping
+You
+are
+not
+talking
+through
+your
+own
+body
+Sp
+Noticing
+another
+invisible
+formerly
+a
+friend
+John
+J
+A
+is
+here
+Dr
+This
+lady
+is
+a
+psychic
+She
+is
+my
+wife
+and
+allows
+spirits
+to
+control
+her
+so
+that
+we
+can
+make
+them
+understand
+their
+condition
+Mr
+John
+J
+A
+Mr
+Stead
+and
+Anna
+H
+could
+not
+make
+you
+understand
+Sp
+I
+was
+afraid
+of
+them
+Dr
+This
+is
+a
+Clearing
+House
+for
+just
+such
+conditions
+as
+yours
+You
+are
+a
+spirit
+and
+are
+controlling
+a
+mortal
+body
+We
+See
+Chap
+Page
+Spirit
+John
+J
+A
+on
+the
+mortal
+side
+can
+talk
+to
+you
+because
+we
+are
+in
+our
+mortal
+bodies
+You
+have
+lost
+your
+physical
+body
+but
+have
+a
+spiritual
+body
+When
+you
+passed
+away
+you
+only
+went
+to
+sleep
+and
+you
+are
+just
+now
+waking
+up
+You
+awaken
+and
+find
+yourself
+in
+this
+twilight
+Sp
+Someone
+seemed
+to
+give
+me
+an
+electric
+shock
+and
+I
+seemed
+to
+come
+to
+life
+but
+still
+I
+am
+dazed
+There
+is
+a
+room
+full
+of
+faces
+people
+whom
+I
+have
+known
+in
+life
+but
+who
+have
+passed
+on
+They
+have
+been
+around
+me
+trying
+to
+talk
+to
+me
+but
+I
+would
+not
+listen
+Dr
+That
+was
+your
+mistake
+Sp
+Does
+the
+spirit
+still
+live
+Dr
+Certainly
+it
+does
+We
+are
+mortals
+but
+these
+others
+whom
+you
+see
+are
+spirits
+Sp
+They
+are
+just
+as
+real
+as
+you
+are
+Dr
+They
+are
+more
+real
+than
+we
+are
+because
+they
+are
+free
+and
+we
+are
+in
+a
+dream
+state
+Sp
+I
+feel
+that
+my
+being
+well
+is
+just
+a
+dream
+and
+that
+I
+will
+wake
+up
+in
+pain
+Dr
+When
+you
+leave
+here
+you
+will
+go
+with
+the
+others
+Sp
+Do
+you
+mean
+I
+can
+go
+with
+them
+Dr
+As
+soon
+as
+you
+cease
+to
+resist
+them
+Sp
+Here
+comes
+one
+then
+another
+and
+they
+say
+they
+want
+me
+Dr
+Don
+t
+you
+remember
+that
+Longfellow
+said
+Life
+is
+real
+Life
+is
+earnest
+And
+the
+grave
+is
+not
+its
+goal
+Dust
+thou
+art
+to
+dust
+returnest
+Was
+not
+spoken
+of
+the
+soul
+Sp
+What
+beautiful
+things
+I
+see
+Are
+they
+not
+beautiful
+This
+is
+not
+a
+dream
+Dr
+They
+are
+showing
+you
+some
+of
+the
+things
+on
+the
+spirit
+side
+of
+life
+Sp
+Just
+look
+at
+those
+beautiful
+homes
+on
+that
+hillside
+Look
+at
+those
+lovely
+walks
+beautiful
+lakes
+and
+hills
+lovely
+flowers
+that
+bloom
+everywhere
+Isn
+t
+it
+beautiful
+Can
+I
+go
+there
+Dr
+There
+is
+nothing
+to
+hinder
+you
+except
+your
+own
+unwillingness
+and
+resistance
+Sp
+I
+was
+an
+actress
+in
+life
+still
+in
+my
+heart
+I
+believed
+in
+a
+God
+You
+know
+the
+church
+always
+looks
+down
+on
+actresses
+I
+always
+liked
+to
+give
+the
+world
+the
+best
+there
+was
+in
+me
+I
+wanted
+to
+show
+what
+we
+can
+do
+to
+help
+amuse
+people
+Dr
+You
+can
+do
+the
+same
+thing
+now
+in
+your
+new
+life
+Sp
+In
+a
+way
+many
+would
+say
+that
+I
+was
+not
+a
+Christian
+In
+my
+own
+way
+I
+believed
+in
+being
+good
+and
+doing
+good
+for
+others
+that
+was
+my
+belief
+At
+times
+I
+went
+to
+church
+but
+at
+times
+I
+did
+not
+feel
+at
+home
+in
+that
+atmosphere
+I
+always
+tried
+to
+do
+my
+best
+Dr
+The
+reason
+you
+did
+not
+feel
+at
+home
+in
+church
+was
+because
+the
+spirit
+of
+truth
+was
+not
+there
+Sp
+Look
+at
+the
+lights
+Are
+they
+not
+beautiful
+they
+are
+singing
+and
+vibrating
+into
+different
+shades
+and
+tunes
+The
+colorings
+are
+wonderful
+I
+will
+try
+to
+do
+there
+what
+I
+could
+not
+do
+here
+I
+should
+many
+times
+have
+liked
+to
+give
+the
+world
+more
+than
+good
+and
+happy
+thoughts
+I
+knew
+at
+times
+that
+life
+must
+have
+a
+greater
+purpose
+than
+is
+generally
+realized
+I
+was
+true
+to
+myself
+in
+my
+own
+heart
+Such
+beautiful
+things
+I
+can
+see
+Is
+that
+Heaven
+Dr
+Yes
+but
+not
+the
+Christian
+Heaven
+Not
+the
+Heaven
+of
+Salvation
+but
+the
+spirit
+world
+surrounding
+the
+earth
+world
+Jesus
+taught
+the
+existence
+of
+spirits
+and
+a
+spirit
+world
+and
+Paul
+says
+There
+is
+a
+natural
+body
+and
+there
+is
+a
+spiritual
+body
+first
+that
+which
+is
+natural
+and
+afterward
+that
+which
+is
+spiritual
+Sp
+Anna
+H
+says
+she
+is
+different
+now
+from
+what
+she
+was
+when
+I
+knew
+her
+She
+says
+I
+do
+not
+know
+her
+now
+She
+is
+serving
+and
+helping
+the
+unfortunate
+ones
+She
+says
+she
+wanted
+to
+do
+what
+she
+could
+to
+wake
+me
+up
+May
+I
+ask
+what
+you
+are
+doing
+here
+Dr
+This
+is
+an
+Institution
+for
+research
+and
+the
+obtaining
+of
+knowledge
+concerning
+what
+becomes
+of
+the
+dead
+This
+is
+also
+a
+Spiritual
+Clearing
+House
+This
+lady
+you
+are
+controlling
+is
+my
+wife
+she
+is
+a
+psychic
+intermediary
+and
+you
+are
+allowed
+to
+use
+her
+body
+and
+brain
+to
+convince
+you
+of
+your
+present
+condition
+You
+are
+using
+a
+body
+not
+your
+own
+Raising
+Mrs
+Wickland
+s
+hand
+This
+is
+not
+your
+hand
+Sp
+No
+it
+is
+not
+It
+is
+queer
+Dr
+The
+queer
+part
+is
+the
+human
+ignorance
+on
+these
+points
+Sp
+The
+church
+does
+not
+teach
+these
+things
+Dr
+The
+church
+limits
+itself
+to
+faith
+alone
+and
+does
+not
+desire
+to
+add
+the
+required
+knowledge
+regarding
+the
+natural
+continuation
+of
+the
+spirit
+after
+death
+The
+Bible
+says
+that
+to
+our
+faith
+we
+must
+add
+knowledge
+and
+Jesus
+taught
+Know
+the
+truth
+and
+the
+truth
+shall
+make
+you
+free
+If
+you
+had
+understood
+these
+truths
+you
+would
+have
+accepted
+the
+spirit
+friends
+who
+came
+to
+you
+when
+you
+awakened
+Sp
+It
+is
+all
+so
+beautiful
+that
+I
+should
+like
+to
+go
+with
+them
+They
+say
+that
+when
+I
+am
+stronger
+I
+shall
+finish
+my
+work
+over
+there
+How
+will
+they
+take
+care
+of
+me
+I
+am
+very
+weak
+Dr
+You
+will
+not
+be
+so
+weak
+when
+you
+leave
+this
+body
+As
+a
+man
+thinketh
+in
+his
+heart
+so
+is
+he
+You
+will
+be
+received
+with
+love
+and
+taken
+to
+a
+beautiful
+home
+You
+will
+be
+so
+overjoyed
+with
+your
+new
+condition
+that
+you
+will
+not
+have
+time
+to
+be
+weak
+Sp
+Will
+I
+not
+go
+into
+a
+sleep
+again
+Dr
+When
+you
+were
+sick
+and
+in
+great
+pain
+you
+were
+probably
+given
+opiates
+and
+they
+may
+have
+had
+a
+stupifying
+effect
+Sp
+Thank
+you
+Now
+they
+are
+calling
+me
+and
+I
+feel
+that
+I
+want
+to
+go
+I
+feel
+such
+gratitude
+to
+you
+for
+helping
+me
+and
+for
+being
+the
+means
+of
+my
+understanding
+and
+also
+for
+helping
+me
+to
+reach
+my
+friends
+so
+that
+I
+may
+know
+how
+to
+go
+to
+them
+instead
+of
+shutting
+the
+door
+against
+them
+and
+leaving
+myself
+in
+the
+dark
+I
+thank
+you
+all
+that
+I
+had
+the
+opportunity
+of
+being
+awakened
+to
+such
+a
+beautiful
+condition
+as
+I
+now
+see
+I
+was
+only
+in
+the
+darkness
+of
+my
+own
+consciousness
+They
+call
+me
+and
+keep
+on
+calling
+me
+and
+they
+all
+say
+they
+are
+glad
+to
+invite
+me
+to
+their
+home
+in
+the
+spirit
+world
+There
+is
+one
+thing
+they
+want
+me
+to
+say
+but
+I
+do
+not
+know
+whether
+I
+am
+strong
+enough
+One
+gentleman
+says
+I
+was
+King
+Edward
+in
+life
+but
+I
+am
+an
+ordinary
+person
+now
+I
+wanted
+to
+wake
+you
+up
+because
+I
+have
+been
+awakened
+from
+the
+life
+I
+led
+My
+mother
+was
+a
+Queen
+but
+she
+is
+a
+Queen
+no
+longer
+She
+has
+to
+serve
+others
+more
+than
+she
+did
+when
+she
+was
+on
+earth
+My
+mother
+knew
+of
+spirit
+phenomena
+and
+she
+also
+knew
+of
+spirit
+return
+but
+she
+did
+not
+know
+what
+her
+duty
+was
+and
+she
+was
+waited
+on
+all
+her
+life
+She
+was
+never
+allowed
+to
+do
+anything
+or
+have
+any
+real
+responsibility
+She
+serves
+here
+and
+there
+Now
+I
+have
+to
+serve
+and
+help
+until
+I
+understand
+the
+real
+life
+This
+gentleman
+says
+that
+is
+the
+message
+he
+wished
+to
+send
+He
+came
+to
+say
+this
+because
+you
+probably
+thought
+he
+was
+still
+a
+King
+He
+is
+here
+only
+as
+a
+man
+He
+wants
+to
+help
+you
+as
+the
+others
+are
+doing
+He
+is
+not
+of
+noble
+or
+royal
+blood
+any
+more
+All
+my
+friends
+have
+come
+to
+shake
+hands
+and
+they
+all
+seem
+to
+be
+one
+family
+I
+want
+to
+say
+Good
+Night
+but
+how
+will
+I
+go
+Dr
+Thought
+is
+the
+solver
+of
+Nature
+s
+problems
+Think
+of
+your
+friends
+over
+there
+and
+you
+will
+be
+with
+them
+You
+will
+have
+to
+fix
+your
+mind
+from
+here
+to
+there
+Think
+I
+am
+actually
+there
+Sp
+I
+certainly
+want
+to
+thank
+you
+for
+the
+opportunity
+of
+coming
+here
+and
+for
+awakening
+me
+so
+that
+I
+can
+be
+with
+my
+friends
+over
+there
+The
+organism
+of
+every
+human
+being
+generates
+a
+nervous
+force
+and
+magnetism
+which
+surrounds
+him
+with
+an
+atmosphere
+of
+vital
+emanations
+and
+psychic
+light
+known
+as
+the
+Magnetic
+Aura
+This
+aura
+is
+visible
+as
+a
+light
+to
+earthbound
+spirits
+in
+their
+condition
+of
+darkness
+and
+they
+may
+become
+attracted
+to
+persons
+peculiarly
+susceptible
+to
+their
+encroachment
+Such
+spirits
+are
+often
+unable
+to
+leave
+this
+psychic
+atmosphere
+and
+in
+the
+resulting
+state
+of
+confusion
+confusional
+psychosis
+although
+struggling
+for
+freedom
+they
+find
+themselves
+living
+the
+life
+of
+the
+psychic
+with
+him
+resenting
+his
+presence
+and
+bewildered
+by
+a
+sense
+of
+dual
+personality
+After
+a
+number
+of
+spirits
+had
+been
+taken
+from
+a
+patient
+who
+was
+very
+unmanageable
+at
+first
+we
+had
+the
+following
+experience
+which
+clearly
+shows
+the
+suffering
+that
+spirits
+may
+endure
+when
+enmeshed
+in
+the
+aura
+of
+a
+mortal
+EXPERIENCE
+JANUARY
+Spirit
+EMILY
+JULIA
+STEVE
+Patient
+MRS
+L
+W
+Psychic
+MRS
+WICKLAND
+Doctor
+Tell
+us
+who
+you
+are
+We
+are
+interested
+in
+all
+spirits
+who
+are
+in
+darkness
+Tell
+us
+how
+long
+you
+have
+been
+dead
+Spirit
+I
+guess
+something
+happened
+to
+me
+Dr
+Do
+you
+realize
+that
+you
+have
+passed
+out
+of
+your
+own
+body
+Sp
+I
+don
+t
+want
+my
+hands
+held
+I
+am
+a
+lady
+of
+means
+an
+expression
+often
+used
+by
+the
+patient
+and
+want
+to
+be
+shown
+the
+courtesies
+and
+respect
+due
+a
+lady
+Dr
+Did
+they
+call
+you
+Mrs
+or
+Miss
+Sp
+I
+am
+a
+lady
+of
+means
+and
+I
+am
+not
+used
+to
+this
+kind
+of
+questioning
+I
+just
+feel
+like
+giving
+you
+a
+piece
+of
+my
+mind
+Dr
+What
+seems
+to
+be
+your
+trouble
+Sp
+You
+it
+seems
+have
+such
+a
+way
+of
+giving
+me
+all
+kinds
+Of
+strange
+things
+in
+my
+back
+static
+treatment
+of
+patient
+and
+cannot
+see
+why
+you
+should
+do
+so
+You
+have
+also
+kept
+me
+in
+prison
+It
+must
+have
+been
+you
+that
+put
+me
+in
+prison
+Who
+are
+you
+anyway
+Dr
+I
+am
+a
+friend
+and
+I
+want
+to
+talk
+to
+you
+Sp
+In
+the
+first
+place
+I
+don
+t
+know
+you
+and
+in
+the
+second
+place
+I
+have
+nothing
+to
+talk
+to
+you
+about
+Who
+are
+you
+Tell
+me
+your
+name
+Dr
+I
+am
+Dr
+Wickland
+Sp
+I
+really
+didn
+t
+mean
+to
+ask
+your
+name
+for
+I
+m
+not
+at
+all
+interested
+to
+know
+it
+Dr
+Wouldn
+t
+you
+like
+to
+go
+to
+the
+spirit
+side
+of
+life
+Sp
+I
+do
+not
+like
+to
+hear
+about
+such
+things
+I
+am
+no
+spirit
+Dr
+Look
+at
+your
+hands
+do
+they
+belong
+to
+you
+Sp
+You
+are
+the
+means
+of
+my
+having
+been
+kept
+in
+prison
+so
+long
+and
+now
+you
+are
+trying
+to
+show
+me
+things
+that
+are
+not
+true
+and
+so
+I
+will
+not
+listen
+to
+you
+Dr
+How
+did
+you
+happen
+to
+come
+here
+Sp
+I
+do
+not
+know
+myself
+It
+is
+very
+curious
+I
+seemed
+to
+be
+in
+prison
+and
+before
+I
+knew
+anything
+I
+was
+here
+I
+do
+not
+see
+how
+I
+came
+There
+were
+a
+whole
+lot
+of
+us
+and
+somehow
+I
+have
+been
+left
+alone
+I
+have
+been
+in
+prison
+but
+I
+do
+not
+know
+what
+I
+have
+done
+Dr
+Where
+were
+you
+when
+you
+had
+those
+others
+with
+you
+Where
+were
+you
+staying
+Referring
+to
+obsessing
+spirits
+in
+patient
+s
+aura
+Sp
+I
+was
+staying
+where
+I
+belonged
+There
+were
+a
+lot
+of
+us
+all
+bunched
+together
+men
+and
+women
+We
+had
+a
+home
+but
+we
+could
+not
+get
+out
+of
+it
+Sometimes
+we
+were
+in
+warm
+quarters
+For
+a
+time
+I
+have
+been
+by
+myself
+and
+I
+have
+been
+in
+a
+dark
+place
+Before
+I
+was
+in
+prison
+we
+could
+talk
+one
+at
+a
+time
+control
+the
+patient
+but
+now
+I
+am
+all
+alone
+You
+have
+no
+right
+to
+put
+all
+those
+burning
+things
+on
+me
+Dr
+That
+kind
+of
+electrical
+treatment
+is
+very
+good
+for
+earthbound
+spirits
+ignorant
+ones
+Sp
+Ignorant
+How
+dare
+you
+talk
+like
+that
+to
+me
+How
+dare
+you
+Dr
+Don
+t
+you
+know
+that
+you
+have
+passed
+out
+of
+your
+mortal
+body
+You
+have
+lost
+your
+physical
+body
+Sp
+How
+do
+you
+know
+I
+have
+Dr
+Because
+the
+body
+you
+are
+talking
+through
+is
+not
+your
+own
+It
+is
+my
+wife
+s
+body
+Sp
+I
+never
+saw
+you
+before
+you
+put
+those
+sharp
+things
+in
+me
+Dr
+You
+were
+not
+using
+this
+body
+at
+that
+time
+Sp
+What
+does
+it
+all
+mean
+Dr
+It
+means
+that
+you
+have
+been
+using
+another
+person
+s
+body
+Sp
+Well
+that
+explains
+many
+things
+in
+a
+way
+Sometimes
+I
+felt
+that
+I
+did
+not
+belong
+where
+I
+was
+then
+once
+in
+a
+while
+I
+felt
+I
+was
+myself
+again
+There
+was
+one
+big
+old
+man
+a
+big
+fool
+but
+we
+had
+to
+do
+just
+as
+he
+said
+Another
+spirit
+obsessing
+patient
+previously
+removed
+I
+did
+not
+feel
+like
+doing
+as
+he
+said
+because
+I
+had
+all
+the
+money
+I
+wanted
+so
+why
+should
+I
+bother
+with
+such
+a
+rascal
+I
+felt
+I
+had
+to
+do
+what
+he
+said
+and
+yet
+I
+could
+not
+see
+why
+I
+should
+I
+was
+not
+in
+my
+own
+home
+and
+yet
+I
+had
+to
+be
+there
+and
+I
+never
+could
+understand
+why
+I
+could
+not
+get
+away
+He
+kept
+several
+of
+us
+with
+him
+Dr
+Did
+the
+electricity
+help
+you
+to
+get
+away
+Sp
+Yes
+it
+did
+but
+it
+hurt
+like
+fury
+It
+seems
+as
+if
+it
+tore
+the
+life
+out
+of
+me
+Dr
+The
+electricity
+liberated
+you
+just
+the
+same
+Sp
+We
+could
+not
+get
+away
+from
+that
+man
+We
+had
+to
+do
+as
+he
+said
+He
+ran
+and
+ran
+all
+the
+time
+the
+patient
+often
+ran
+away
+and
+we
+had
+to
+do
+the
+same
+There
+was
+a
+little
+girl
+and
+she
+cried
+all
+the
+time
+Obsessing
+spirit
+previously
+dislodged
+from
+same
+patient
+At
+times
+I
+was
+free
+and
+at
+times
+I
+was
+in
+such
+misery
+Some
+times
+I
+felt
+I
+could
+float
+from
+one
+place
+to
+another
+Dr
+At
+such
+times
+you
+were
+a
+free
+spirit
+SP
+Don
+t
+say
+that
+word
+How
+I
+do
+hate
+it
+I
+do
+not
+have
+any
+use
+for
+anything
+of
+that
+kind
+Dr
+You
+do
+not
+recognize
+the
+fact
+that
+when
+you
+pass
+out
+of
+the
+mortal
+body
+you
+do
+not
+die
+but
+that
+you
+live
+you
+then
+become
+a
+spirit
+Sp
+You
+know
+I
+am
+not
+dead
+Cannot
+you
+understand
+that
+I
+am
+talking
+to
+you
+and
+that
+I
+can
+move
+my
+hands
+and
+arms
+Dr
+My
+friend
+while
+you
+are
+talking
+we
+cannot
+see
+you
+We
+can
+only
+see
+my
+wife
+You
+are
+talking
+through
+my
+wife
+s
+body
+This
+is
+Mrs
+Wickland
+sitting
+here
+What
+is
+your
+name
+Sp
+I
+am
+Mrs
+Emily
+Julia
+Steve
+I
+was
+married
+but
+my
+husband
+died
+some
+years
+ago
+Dr
+Do
+you
+know
+that
+you
+are
+in
+California
+Sp
+I
+have
+never
+been
+there
+I
+went
+first
+to
+Chicago
+and
+from
+there
+to
+St
+Louis
+The
+patient
+had
+also
+lived
+in
+St
+Louis
+and
+had
+there
+first
+developed
+her
+aberration
+Dr
+Where
+did
+you
+live
+in
+St
+Louis
+See
+Chap
+Page
+Spirit
+John
+Sullivan
+Patient
+Mrs
+L
+W
+See
+Chap
+Page
+Spirit
+Minnie
+Day
+Patient
+Mrs
+L
+W
+Sp
+I
+was
+traveling
+I
+did
+not
+live
+there
+I
+did
+once
+live
+on
+La
+Salle
+Avenue
+Chicago
+but
+I
+was
+there
+for
+a
+little
+while
+only
+It
+was
+near
+La
+Salle
+and
+Division
+From
+there
+I
+went
+to
+St
+Louis
+and
+from
+there
+well
+I
+really
+don
+t
+know
+where
+I
+went
+I
+do
+know
+that
+my
+head
+was
+bothering
+me
+a
+great
+deal
+Patient
+complained
+similarly
+Dr
+Do
+you
+remember
+being
+sick
+Sp
+I
+cannot
+recall
+much
+of
+anything
+Suddenly
+greatly
+excited
+No
+No
+I
+think
+there
+is
+something
+the
+matter
+with
+me
+Do
+you
+think
+I
+am
+going
+crazy
+Look
+Look
+There
+is
+my
+husband
+No
+no
+He
+is
+a
+ghost
+Just
+look
+at
+him
+Dr
+We
+are
+talking
+to
+a
+ghost
+when
+we
+talk
+to
+you
+and
+we
+are
+not
+afraid
+Sp
+There
+is
+my
+child
+too
+There
+is
+my
+little
+baby
+I
+am
+losing
+my
+mind
+My
+Lily
+my
+little
+Lily
+Oh
+my
+Lily
+Hugo
+my
+husband
+I
+know
+I
+am
+losing
+my
+mind
+Why
+there
+s
+my
+mother
+I
+know
+my
+mind
+is
+giving
+way
+I
+am
+afraid
+they
+are
+all
+coming
+toward
+me
+Hugo
+my
+husband
+is
+it
+really
+you
+My
+little
+Lily
+how
+I
+do
+love
+you
+I
+am
+so
+afraid
+Dr
+Understand
+that
+you
+have
+lost
+your
+physical
+body
+and
+are
+now
+a
+spirit
+Try
+to
+realize
+this
+Sp
+Please
+explain
+why
+Hugo
+my
+mother
+and
+Lily
+are
+around
+me
+Are
+they
+not
+happy
+in
+Heaven
+Why
+don
+t
+they
+stay
+there
+Dr
+Do
+you
+know
+anything
+about
+Heaven
+Sp
+Heaven
+is
+above
+where
+Christ
+and
+God
+are
+Dr
+Jesus
+said
+The
+Kingdom
+of
+God
+is
+within
+you
+The
+Bible
+says
+Ye
+are
+the
+Temple
+of
+God
+and
+the
+Spirit
+of
+God
+dwelleth
+in
+you
+Again
+God
+is
+Love
+and
+he
+that
+dwelleth
+in
+Love
+dwelleth
+in
+God
+God
+is
+above
+God
+is
+below
+God
+is
+everywhere
+Sp
+Don
+t
+you
+believe
+in
+a
+personal
+God
+Dr
+God
+is
+Spirit
+God
+could
+not
+be
+only
+in
+one
+place
+Sp
+I
+am
+getting
+so
+tired
+that
+it
+is
+hard
+for
+me
+to
+understand
+what
+you
+say
+If
+there
+were
+only
+a
+place
+where
+I
+could
+rest
+I
+would
+gladly
+go
+I
+cannot
+describe
+to
+you
+what
+misery
+I
+have
+been
+in
+I
+have
+no
+home
+anywhere
+that
+I
+can
+go
+to
+no
+place
+to
+rest
+my
+weary
+head
+I
+went
+from
+one
+place
+to
+another
+and
+I
+could
+not
+find
+home
+or
+peace
+I
+have
+prayed
+that
+I
+might
+find
+rest
+for
+just
+a
+little
+while
+but
+somebody
+always
+comes
+and
+disturbs
+me
+There
+were
+so
+many
+around
+each
+crowding
+the
+other
+and
+I
+probably
+was
+mean
+myself
+but
+I
+could
+not
+help
+it
+I
+felt
+as
+if
+a
+wild
+beast
+had
+gotten
+hold
+of
+me
+and
+I
+fought
+everybody
+like
+a
+tiger
+and
+when
+I
+was
+through
+I
+was
+weak
+for
+days
+and
+days
+I
+suffered
+terribly
+That
+horrible
+man
+was
+always
+after
+us
+and
+that
+poor
+little
+child
+was
+crying
+all
+the
+time
+she
+was
+so
+crowded
+I
+wish
+I
+had
+a
+little
+home
+of
+my
+own
+where
+I
+could
+go
+and
+not
+have
+that
+man
+around
+me
+again
+He
+was
+terrible
+you
+have
+no
+idea
+He
+was
+such
+a
+rascal
+but
+he
+went
+away
+and
+we
+have
+not
+seen
+him
+for
+quite
+a
+while
+The
+little
+girl
+who
+cried
+so
+much
+has
+also
+gone
+She
+always
+had
+trouble
+with
+her
+head
+I
+did
+not
+mean
+to
+be
+a
+bad
+woman
+but
+that
+man
+tormented
+us
+all
+so
+much
+that
+we
+did
+not
+know
+what
+to
+do
+Dr
+Wouldn
+t
+you
+like
+to
+go
+with
+your
+husband
+and
+mother
+and
+little
+girl
+and
+have
+them
+all
+take
+care
+of
+you
+so
+that
+you
+can
+rest
+Try
+to
+realize
+that
+you
+have
+lost
+your
+physical
+body
+Sp
+When
+did
+I
+lose
+my
+body
+Dr
+We
+cannot
+tell
+you
+that
+Sp
+Sometimes
+I
+have
+felt
+I
+was
+a
+big
+woman
+and
+I
+could
+fight
+everybody
+and
+then
+I
+would
+seem
+smaller
+and
+it
+was
+very
+confusing
+Dr
+That
+may
+have
+been
+caused
+by
+your
+influencing
+different
+people
+You
+can
+be
+free
+from
+that
+condition
+Sp
+Then
+will
+I
+have
+a
+rest
+Will
+I
+wake
+up
+and
+find
+that
+I
+have
+only
+had
+a
+dream
+and
+then
+have
+that
+horrible
+man
+and
+that
+crying
+child
+around
+me
+I
+do
+not
+want
+to
+ever
+see
+that
+man
+again
+He
+used
+to
+fight
+those
+women
+as
+if
+he
+were
+a
+demon
+and
+he
+was
+so
+angry
+and
+he
+treated
+the
+little
+girl
+very
+badly
+She
+was
+afraid
+of
+him
+Dr
+Now
+try
+to
+forget
+what
+has
+happened
+and
+live
+for
+the
+future
+Go
+with
+your
+husband
+and
+he
+will
+explain
+the
+beauties
+of
+the
+spirit
+world
+to
+you
+Sp
+My
+husband
+Hugo
+I
+love
+him
+so
+dearly
+and
+after
+he
+died
+life
+was
+not
+worth
+living
+to
+me
+My
+dear
+child
+went
+to
+him
+just
+a
+month
+afterward
+She
+was
+a
+child
+three
+years
+of
+age
+Hugo
+my
+husband
+was
+my
+life
+I
+did
+not
+care
+what
+became
+of
+me
+after
+he
+left
+When
+my
+husband
+lived
+we
+traveled
+a
+great
+deal
+We
+went
+everywhere
+We
+went
+to
+Alaska
+and
+there
+he
+took
+cold
+and
+had
+pneumonia
+and
+my
+little
+child
+got
+very
+sick
+It
+is
+hard
+to
+live
+all
+that
+over
+again
+Dr
+Why
+go
+all
+over
+that
+again
+when
+your
+people
+are
+here
+to
+take
+you
+away
+with
+them
+Sp
+I
+want
+to
+go
+with
+them
+but
+I
+am
+afraid
+because
+they
+are
+dead
+Hugo
+says
+he
+has
+been
+looking
+for
+me
+for
+years
+and
+years
+but
+he
+could
+not
+find
+me
+and
+I
+cannot
+tell
+him
+where
+I
+have
+been
+When
+Hugo
+and
+Lily
+died
+I
+took
+very
+sick
+and
+the
+doctors
+said
+I
+was
+a
+nervous
+wreck
+I
+grew
+very
+much
+worse
+and
+I
+remember
+them
+taking
+me
+to
+a
+place
+called
+Elgin
+probably
+an
+asylum
+I
+have
+just
+a
+faint
+recollection
+of
+that
+When
+I
+grew
+better
+evidently
+died
+I
+went
+to
+St
+Louis
+because
+I
+had
+a
+sister
+there
+Since
+I
+began
+to
+talk
+I
+feel
+different
+and
+now
+I
+want
+to
+go
+with
+all
+my
+people
+Just
+look
+at
+that
+beautiful
+bed
+Now
+I
+can
+rest
+and
+with
+Hugo
+I
+shall
+not
+have
+worries
+any
+more
+God
+bless
+you
+all
+and
+help
+you
+Hugo
+says
+to
+tell
+you
+he
+is
+so
+pleased
+he
+found
+me
+at
+last
+and
+to
+say
+we
+shall
+be
+reunited
+and
+never
+part
+again
+God
+bless
+you
+each
+and
+all
+CHAPTER
+V
+Tormenting
+Spirits
+Marriage
+Disturbances
+OBSESSING
+SPIRITS
+may
+purposely
+torment
+helpless
+sensitives
+sometimes
+for
+revenge
+but
+more
+often
+with
+a
+desire
+to
+punish
+the
+latter
+who
+they
+declare
+are
+interfering
+with
+them
+These
+tormenting
+spirits
+frequently
+cause
+their
+victims
+to
+commit
+deeds
+of
+violence
+upon
+themselves
+and
+do
+not
+seem
+to
+suffer
+from
+pain
+which
+they
+inflict
+upon
+the
+physical
+body
+of
+the
+sensitive
+yet
+contradictory
+as
+it
+may
+seem
+many
+labor
+under
+the
+delusion
+that
+the
+body
+of
+the
+mortal
+is
+their
+own
+After
+the
+death
+of
+her
+husband
+Mrs
+L
+W
+developed
+a
+melancholia
+which
+was
+followed
+by
+hallucinations
+of
+hearing
+and
+constantly
+tormented
+by
+hearing
+the
+voices
+of
+spirits
+she
+often
+dashed
+madly
+out
+of
+the
+house
+screaming
+and
+pulling
+out
+her
+hair
+At
+such
+times
+her
+daughter
+who
+was
+clairvoyant
+saw
+spirits
+about
+her
+mother
+particularly
+the
+spirit
+of
+a
+jeering
+man
+and
+the
+patient
+herself
+often
+saw
+this
+man
+saying
+There
+comes
+that
+terrible
+man
+again
+The
+patient
+was
+brought
+from
+St
+Louis
+to
+Los
+Angeles
+in
+the
+belief
+that
+a
+change
+of
+scene
+and
+climate
+would
+be
+beneficial
+but
+the
+violent
+attacks
+increased
+in
+these
+seizures
+she
+bit
+her
+hands
+and
+arms
+beat
+her
+face
+with
+a
+slipper
+and
+tore
+off
+her
+clothes
+She
+finally
+became
+uncontrollable
+and
+was
+taken
+to
+the
+Psychopathic
+Ward
+declared
+insane
+and
+committed
+to
+a
+sanitarium
+where
+she
+remained
+for
+a
+year
+without
+any
+improvement
+After
+escaping
+three
+times
+she
+was
+placed
+in
+our
+care
+and
+within
+a
+few
+months
+the
+tormenting
+spirits
+were
+taken
+away
+the
+lady
+became
+entirely
+normal
+has
+since
+remained
+well
+and
+is
+assisting
+her
+daughter
+with
+her
+household
+occupations
+A
+few
+days
+after
+her
+arrival
+at
+our
+Institute
+the
+spirit
+of
+the
+jeering
+man
+so
+often
+seen
+by
+the
+patient
+s
+daughter
+was
+removed
+and
+allowed
+to
+control
+Mrs
+Wickland
+See
+Chap
+Page
+Spirit
+Minnie
+Day
+Patient
+Mrs
+L
+W
+Chap
+Page
+Spirit
+Emily
+Steve
+Patient
+Mrs
+L
+W
+EXPERIENCE
+JANUARY
+Spirit
+JOHN
+SULLIVAN
+Patient
+MRS
+L
+W
+Psychic
+MRS
+WICKLAND
+The
+spirit
+struggled
+furiously
+for
+a
+time
+and
+restraint
+was
+required
+Spirit
+What
+in
+the
+world
+are
+you
+holding
+me
+for
+I
+have
+nothing
+whatever
+to
+do
+with
+you
+folks
+I
+don
+t
+like
+any
+of
+you
+I
+don
+t
+see
+what
+right
+you
+have
+to
+hold
+me
+I
+never
+did
+you
+any
+harm
+and
+I
+ll
+make
+it
+pretty
+hot
+for
+you
+before
+I
+get
+through
+Doctor
+You
+came
+to
+us
+as
+a
+stranger
+and
+at
+once
+started
+fighting
+What
+else
+could
+I
+do
+but
+hold
+you
+in
+restraint
+Sp
+I
+don
+t
+want
+to
+be
+held
+down
+like
+this
+Dr
+Who
+are
+you
+Sp
+Why
+should
+I
+tell
+you
+who
+I
+am
+I
+don
+t
+know
+any
+of
+you
+and
+I
+don
+t
+care
+who
+you
+are
+Just
+leave
+me
+alone
+so
+that
+can
+go
+Dr
+Tell
+us
+who
+you
+are
+friend
+You
+seem
+to
+be
+a
+pretty
+strong
+girl
+Sp
+If
+you
+take
+me
+for
+a
+girl
+you
+had
+better
+look
+again
+Dr
+Tell
+us
+where
+you
+came
+from
+and
+what
+you
+want
+Sp
+What
+do
+you
+want
+to
+know
+for
+Dr
+Perhaps
+we
+can
+help
+you
+out
+of
+your
+present
+condition
+Sp
+Don
+t
+hold
+me
+so
+tight
+then
+I
+will
+talk
+Dr
+Tell
+us
+all
+about
+yourself
+Sp
+In
+the
+first
+place
+I
+don
+t
+want
+those
+needles
+referring
+to
+electrical
+treatment
+given
+patient
+put
+on
+me
+Then
+I
+have
+been
+kept
+a
+prisoner
+for
+a
+while
+Now
+I
+m
+out
+I
+feel
+just
+like
+fighting
+Freed
+from
+aura
+of
+patient
+and
+the
+restraint
+placed
+upon
+him
+by
+intelligent
+spirits
+What
+in
+the
+world
+did
+you
+put
+all
+those
+needles
+on
+me
+for
+If
+I
+can
+go
+away
+from
+here
+I
+will
+go
+back
+home
+Dr
+Where
+is
+your
+home
+Sp
+My
+home
+is
+where
+I
+came
+from
+Dr
+I
+am
+curious
+to
+know
+how
+you
+got
+those
+needles
+on
+your
+back
+Sp
+It
+was
+just
+like
+I
+was
+on
+fire
+every
+time
+I
+had
+them
+I
+don
+t
+want
+to
+sit
+here
+and
+be
+held
+down
+and
+I
+m
+going
+Dr
+How
+did
+you
+happen
+to
+have
+the
+benefit
+of
+such
+needles
+I
+am
+very
+curious
+to
+know
+Sp
+I
+don
+t
+know
+myself
+but
+I
+got
+them
+Dr
+How
+did
+you
+happen
+to
+come
+here
+Sp
+I
+don
+t
+know
+Dr
+Did
+you
+come
+here
+with
+somebody
+you
+were
+attached
+to
+Sp
+I
+was
+only
+attached
+to
+myself
+Dr
+Where
+have
+you
+been
+recently
+Sp
+I
+have
+been
+in
+darkness
+I
+got
+away
+from
+my
+home
+then
+I
+could
+not
+see
+anything
+It
+seemed
+as
+if
+I
+was
+blind
+Dr
+Were
+you
+not
+in
+a
+strange
+condition
+when
+you
+were
+in
+that
+place
+you
+call
+home
+Sp
+It
+wasn
+t
+my
+real
+home
+but
+it
+was
+just
+like
+it
+Dr
+Did
+you
+become
+disgusted
+sometimes
+and
+then
+act
+queerly
+Sp
+Sometimes
+I
+did
+not
+know
+where
+I
+was
+and
+then
+I
+acted
+up
+all
+the
+time
+Once
+in
+a
+while
+we
+had
+a
+big
+fight
+There
+were
+several
+people
+around
+but
+I
+will
+get
+them
+some
+day
+Dr
+Who
+were
+they
+Sp
+Why
+I
+don
+t
+know
+all
+kinds
+of
+people
+Dr
+Were
+there
+any
+women
+Sp
+There
+were
+so
+many
+you
+could
+not
+rest
+Women
+Some
+day
+I
+am
+going
+to
+get
+hold
+of
+the
+rest
+of
+them
+and
+shake
+them
+up
+Dr
+I
+don
+t
+see
+why
+you
+should
+want
+to
+harm
+others
+Sp
+One
+woman
+would
+come
+at
+me
+one
+way
+and
+one
+another
+and
+it
+made
+me
+mad
+but
+what
+can
+a
+fellow
+do
+when
+he
+has
+a
+whole
+lot
+of
+women
+around
+Other
+obsessing
+spirits
+in
+patient
+s
+aura
+Dr
+Where
+do
+you
+think
+you
+are
+now
+Sp
+Where
+I
+don
+t
+care
+where
+I
+am
+Dr
+Where
+have
+you
+been
+living
+Sp
+We
+have
+been
+living
+at
+different
+places
+We
+have
+been
+from
+one
+place
+to
+another
+until
+I
+am
+plumb
+disgusted
+with
+everything
+I
+feel
+like
+running
+away
+so
+nobody
+can
+find
+me
+Dr
+You
+could
+not
+get
+away
+from
+yourself
+Sp
+I
+have
+had
+nothing
+but
+women
+around
+me
+women
+women
+until
+I
+am
+sick
+and
+tired
+of
+women
+I
+got
+one
+woman
+down
+and
+I
+bit
+and
+kicked
+and
+still
+she
+clung
+to
+me
+The
+patient
+Mrs
+L
+W
+She
+has
+no
+business
+to
+hang
+around
+me
+like
+she
+does
+Some
+day
+I
+shall
+kill
+her
+Dr
+Do
+you
+know
+what
+you
+have
+been
+doing
+Sp
+I
+don
+t
+care
+what
+I
+have
+been
+doing
+I
+took
+a
+chunk
+out
+of
+her
+wrist
+one
+day
+but
+she
+clung
+to
+me
+just
+the
+same
+Then
+I
+pulled
+her
+hair
+out
+as
+much
+as
+I
+could
+but
+still
+she
+clung
+I
+couldn
+t
+get
+rid
+of
+her
+Dr
+Friend
+wouldn
+t
+you
+like
+to
+know
+what
+you
+have
+been
+doing
+Sp
+I
+don
+t
+care
+to
+know
+but
+it
+makes
+me
+so
+mad
+because
+since
+I
+got
+those
+needles
+in
+me
+I
+don
+t
+seem
+to
+have
+any
+power
+Dr
+Where
+is
+the
+woman
+now
+Sp
+I
+haven
+t
+seen
+her
+for
+a
+while
+Dr
+What
+harm
+did
+she
+ever
+do
+you
+Sp
+She
+has
+no
+business
+to
+hang
+on
+to
+me
+like
+she
+does
+Dr
+Suppose
+we
+reverse
+matters
+and
+say
+that
+it
+is
+you
+who
+have
+been
+hanging
+on
+to
+her
+Sp
+She
+has
+no
+business
+to
+dress
+me
+up
+in
+woman
+s
+clothes
+and
+put
+woman
+s
+hair
+on
+my
+head
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+Dead
+I
+ll
+show
+you
+that
+I
+m
+not
+dead
+and
+I
+will
+also
+show
+you
+that
+you
+are
+not
+strong
+enough
+to
+hold
+me
+either
+Talk
+about
+me
+being
+dead
+Laughing
+harshly
+Dr
+Do
+you
+not
+realize
+that
+you
+have
+been
+in
+a
+strange
+condition
+for
+some
+time
+Sp
+It
+s
+the
+worst
+I
+have
+ever
+been
+in
+Keep
+your
+hands
+off
+me
+for
+they
+are
+like
+fire
+they
+are
+so
+hot
+Dr
+Has
+it
+ever
+occurred
+to
+you
+to
+ask
+how
+that
+woman
+could
+dress
+you
+up
+Don
+t
+you
+think
+you
+have
+been
+very
+selfish
+Sp
+Selfish
+Selfish
+She
+s
+the
+selfish
+one
+Dr
+Suppose
+you
+were
+an
+ignorant
+spirit
+hovering
+around
+the
+woman
+Sp
+Me
+hang
+around
+a
+woman
+Not
+me
+no
+sir
+Dr
+Such
+things
+happen
+just
+the
+same
+Did
+you
+ever
+read
+your
+Bible
+Do
+you
+remember
+how
+they
+cast
+out
+spirits
+in
+olden
+times
+You
+are
+also
+a
+spirit
+such
+as
+they
+had
+to
+deal
+with
+Sp
+There
+were
+devils
+and
+I
+ll
+show
+you
+I
+m
+no
+devil
+Dr
+You
+have
+been
+tormenting
+a
+woman
+and
+I
+chased
+you
+out
+with
+electricity
+Sp
+Well
+now
+I
+ve
+caught
+you
+Attempting
+to
+fight
+I
+ll
+bet
+you
+are
+the
+one
+who
+put
+me
+in
+the
+dungeon
+Now
+I
+will
+get
+that
+woman
+and
+bite
+her
+to
+pieces
+That
+woman
+hung
+on
+me
+all
+the
+time
+and
+I
+want
+to
+get
+rid
+of
+her
+Dr
+You
+were
+hanging
+on
+to
+her
+She
+is
+rid
+of
+you
+now
+Try
+to
+understand
+that
+you
+are
+a
+spirit
+and
+come
+to
+your
+senses
+I
+am
+telling
+you
+the
+absolute
+truth
+Sp
+I
+wish
+I
+could
+get
+hold
+of
+that
+woman
+I
+will
+smash
+her
+up
+good
+and
+I
+will
+smash
+her
+face
+again
+Dr
+Why
+should
+you
+want
+to
+do
+harm
+to
+the
+woman
+She
+is
+not
+bothering
+you
+Sp
+I
+would
+like
+to
+get
+after
+you
+too
+Dr
+If
+you
+don
+t
+behave
+yourself
+you
+will
+get
+more
+of
+the
+electricity
+Sp
+I
+would
+rather
+stay
+here
+but
+you
+hold
+me
+too
+tight
+Dr
+You
+tell
+us
+you
+are
+a
+man
+but
+we
+can
+t
+see
+you
+We
+can
+only
+see
+a
+woman
+Sp
+Haven
+t
+you
+got
+any
+eyes
+Don
+t
+you
+know
+I
+am
+a
+man
+Dr
+You
+have
+woman
+s
+clothes
+on
+Sp
+I
+tore
+them
+off
+but
+she
+put
+them
+on
+and
+I
+tore
+them
+off
+Dr
+You
+have
+lost
+the
+woman
+that
+you
+say
+has
+been
+bothering
+you
+and
+are
+now
+controlling
+another
+woman
+Sp
+What
+do
+you
+mean
+by
+that
+Dr
+You
+are
+an
+ignorant
+earthbound
+spirit
+hovering
+around
+the
+earth
+plane
+bothering
+a
+woman
+You
+are
+now
+using
+my
+wife
+s
+body
+Sp
+I
+m
+not
+using
+anybody
+s
+body
+but
+my
+own
+Why
+did
+that
+woman
+hang
+on
+to
+me
+Dr
+You
+were
+doing
+the
+hanging
+on
+Since
+you
+have
+been
+taken
+away
+from
+her
+the
+woman
+is
+getting
+along
+nicely
+Sp
+Did
+you
+put
+me
+in
+that
+dungeon
+Dr
+No
+intelligent
+spirits
+put
+you
+there
+You
+are
+very
+selfish
+selfish
+to
+the
+last
+degree
+Don
+t
+you
+think
+you
+should
+try
+to
+realize
+your
+condition
+If
+your
+record
+were
+written
+would
+you
+care
+to
+have
+everybody
+read
+it
+Sp
+I
+don
+t
+care
+I
+get
+so
+mad
+to
+think
+I
+should
+have
+a
+woman
+hanging
+on
+to
+me
+and
+then
+have
+her
+dress
+me
+in
+woman
+s
+clothes
+I
+hate
+women
+Dr
+That
+lady
+has
+been
+brought
+here
+because
+she
+has
+been
+bothered
+by
+foolish
+spirits
+We
+realized
+that
+it
+was
+obsession
+and
+we
+drove
+you
+away
+with
+electrical
+treatments
+We
+are
+now
+trying
+to
+bring
+you
+to
+your
+senses
+Sp
+If
+I
+could
+just
+get
+hold
+of
+that
+woman
+I
+would
+bite
+her
+to
+pieces
+I
+will
+bite
+her
+arms
+too
+Dr
+Try
+to
+be
+sensible
+then
+you
+will
+have
+understanding
+and
+be
+able
+to
+progress
+and
+be
+happy
+Sp
+There
+is
+no
+happiness
+Dr
+Have
+you
+ever
+tried
+to
+understand
+God
+or
+the
+real
+question
+of
+life
+Sp
+There
+is
+no
+God
+or
+there
+would
+be
+no
+misery
+Dr
+If
+there
+is
+no
+Supreme
+Being
+how
+do
+you
+happen
+to
+be
+How
+do
+you
+exist
+Can
+you
+explain
+how
+it
+is
+possible
+for
+you
+to
+talk
+to
+us
+through
+my
+wife
+s
+body
+Sp
+Is
+it
+your
+wife
+that
+is
+hanging
+on
+to
+me
+all
+the
+time
+Dr
+You
+were
+bothering
+a
+lady
+who
+came
+here
+for
+help
+I
+chased
+you
+away
+from
+her
+then
+intelligent
+spirits
+put
+you
+in
+a
+dungeon
+Now
+you
+are
+using
+my
+wife
+s
+body
+for
+a
+time
+SP
+Why
+in
+the
+world
+should
+I
+be
+bothering
+women
+when
+I
+hate
+them
+I
+will
+smash
+every
+one
+I
+can
+Dr
+Friend
+if
+you
+ever
+expect
+to
+be
+happy
+you
+will
+have
+to
+change
+your
+attitude
+You
+have
+lost
+your
+own
+body
+and
+are
+hovering
+around
+the
+earth
+plane
+obsessing
+people
+Selfish
+spirits
+always
+do
+that
+The
+insane
+asylums
+are
+full
+of
+obsessed
+people
+You
+have
+tormented
+this
+woman
+for
+three
+or
+four
+years
+Sp
+How
+in
+the
+devil
+could
+I
+get
+hold
+of
+that
+woman
+I
+hate
+women
+and
+why
+in
+the
+world
+should
+I
+have
+a
+woman
+hanging
+on
+to
+me
+all
+the
+time
+I
+wouldn
+t
+hang
+on
+to
+a
+woman
+for
+love
+or
+money
+for
+I
+hate
+women
+I
+would
+like
+to
+crush
+every
+woman
+they
+are
+all
+deceitful
+creatures
+God
+never
+made
+such
+a
+thing
+as
+a
+woman
+They
+are
+the
+most
+selfish
+creatures
+in
+the
+world
+If
+you
+treat
+them
+to
+all
+kinds
+of
+nice
+things
+they
+are
+all
+right
+but
+when
+you
+turn
+your
+back
+they
+stab
+you
+They
+get
+all
+the
+money
+they
+can
+out
+of
+you
+I
+swore
+revenge
+on
+all
+women
+and
+I
+will
+have
+that
+revenge
+I
+could
+have
+had
+a
+good
+home
+once
+if
+it
+hadn
+t
+been
+for
+a
+woman
+Revenge
+is
+sweet
+and
+I
+will
+have
+it
+Dr
+Now
+the
+time
+has
+come
+when
+you
+must
+stop
+and
+consider
+the
+question
+of
+life
+more
+seriously
+Don
+t
+you
+think
+you
+have
+made
+many
+mistakes
+yourself
+Examine
+your
+past
+life
+and
+see
+whether
+you
+have
+been
+perfect
+Sp
+No
+one
+is
+perfect
+Dr
+Don
+t
+you
+think
+that
+perhaps
+you
+had
+many
+faults
+Sp
+No
+man
+is
+perfect
+but
+I
+am
+as
+good
+as
+the
+average
+man
+Dr
+Try
+to
+understand
+the
+mystery
+of
+life
+You
+have
+probably
+been
+dead
+many
+years
+Intelligent
+spirits
+are
+here
+now
+to
+help
+you
+and
+they
+will
+teach
+you
+many
+wonderful
+things
+You
+have
+been
+allowed
+to
+come
+here
+and
+use
+my
+wife
+s
+brain
+and
+body
+that
+we
+might
+try
+to
+help
+you
+Sp
+She
+s
+a
+fool
+to
+allow
+it
+Dr
+She
+allows
+it
+because
+she
+has
+charity
+for
+such
+as
+you
+All
+women
+are
+not
+false
+Sp
+My
+mother
+was
+a
+very
+good
+woman
+If
+it
+was
+not
+for
+her
+I
+would
+kill
+every
+woman
+I
+come
+in
+contact
+with
+But
+she
+has
+been
+dead
+forty
+or
+fifty
+years
+Dr
+You
+are
+dead
+too
+as
+far
+as
+the
+body
+is
+concerned
+You
+are
+a
+spirit
+now
+Look
+around
+and
+tell
+us
+what
+you
+see
+be
+honest
+now
+Sp
+I
+see
+my
+mother
+but
+I
+m
+afraid
+of
+her
+Dr
+We
+are
+not
+afraid
+of
+you
+Sp
+Well
+my
+mothers
+a
+ghost
+Dr
+She
+s
+a
+spirit
+like
+yourself
+What
+does
+your
+mother
+say
+to
+you
+Sp
+She
+says
+John
+I
+have
+been
+hunting
+for
+you
+for
+years
+But
+I
+am
+afraid
+of
+her
+Dr
+Does
+she
+appear
+ghostly
+Sp
+No
+but
+I
+am
+afraid
+Why
+here
+s
+my
+father
+too
+And
+there
+s
+Lizzie
+Don
+t
+you
+come
+near
+me
+I
+don
+t
+want
+you
+either
+Don
+t
+you
+come
+near
+me
+I
+don
+t
+want
+you
+Lizzie
+you
+snake
+Dr
+Probably
+she
+has
+come
+to
+ask
+you
+to
+forgive
+her
+for
+something
+she
+did
+Sp
+I
+will
+never
+never
+forgive
+her
+Dr
+Sometimes
+mistakes
+happen
+There
+may
+have
+been
+a
+misunderstanding
+You
+may
+have
+taken
+for
+granted
+things
+that
+were
+not
+true
+Sp
+I
+hate
+her
+and
+I
+don
+t
+want
+her
+near
+me
+Dr
+Try
+to
+put
+hatred
+out
+of
+your
+heart
+and
+be
+sensible
+Sp
+Lizzie
+you
+go
+away
+or
+I
+will
+kill
+you
+You
+acted
+like
+a
+snake
+I
+don
+t
+want
+to
+listen
+to
+you
+You
+are
+as
+false
+as
+they
+make
+them
+I
+don
+t
+believe
+what
+you
+say
+Don
+t
+you
+come
+here
+with
+all
+kinds
+of
+excuses
+for
+I
+don
+t
+believe
+you
+I
+am
+mad
+at
+you
+and
+I
+will
+stay
+mad
+You
+are
+a
+big
+liar
+Dr
+What
+does
+the
+spirit
+say
+to
+you
+Who
+is
+she
+Sp
+That
+s
+Lizzie
+who
+made
+all
+my
+trouble
+and
+she
+says
+all
+the
+trouble
+was
+caused
+by
+jealousy
+But
+I
+was
+not
+jealous
+Dr
+Listen
+to
+what
+she
+has
+to
+say
+Sp
+Listening
+That
+s
+a
+fine
+story
+We
+were
+going
+to
+be
+married
+and
+she
+was
+a
+nice
+girl
+She
+says
+I
+looked
+at
+everything
+the
+wrong
+way
+and
+that
+I
+was
+jealous
+Dr
+You
+were
+probably
+stubborn
+and
+hot
+headed
+Sp
+To
+Lizzie
+You
+re
+a
+liar
+You
+went
+with
+that
+other
+fellow
+you
+know
+you
+did
+She
+says
+that
+when
+she
+went
+home
+that
+evening
+she
+happened
+to
+meet
+that
+fellow
+on
+the
+street
+car
+He
+only
+walked
+a
+block
+with
+her
+and
+I
+happened
+to
+see
+them
+walking
+together
+I
+went
+home
+and
+stabbed
+myself
+Dr
+That
+was
+certainly
+a
+brave
+act
+I
+suppose
+you
+committed
+suicide
+Sp
+I
+wish
+I
+could
+have
+died
+but
+I
+could
+not
+I
+would
+have
+been
+far
+better
+off
+but
+I
+m
+going
+to
+have
+revenge
+on
+women
+Dr
+Why
+don
+t
+you
+try
+to
+be
+sensible
+and
+forgive
+the
+girl
+Sp
+Say
+do
+you
+believe
+her
+story
+I
+suffered
+a
+great
+deal
+from
+that
+stab
+I
+gave
+myself
+and
+I
+did
+wish
+I
+could
+die
+There
+s
+Lizzie
+walking
+around
+and
+she
+s
+crying
+Dr
+Listen
+to
+your
+own
+conscience
+Sp
+I
+loved
+that
+girl
+and
+what
+did
+I
+get
+from
+her
+Dr
+I
+think
+your
+mother
+spoiled
+you
+when
+you
+were
+a
+boy
+Sp
+My
+mother
+thought
+the
+world
+of
+me
+and
+gave
+me
+every
+thing
+I
+wanted
+so
+that
+I
+could
+have
+a
+good
+time
+No
+Mother
+don
+t
+come
+near
+me
+There
+is
+no
+help
+for
+me
+Dr
+The
+first
+lesson
+you
+must
+learn
+is
+to
+crucify
+self
+Jesus
+said
+Except
+ye
+become
+as
+little
+children
+ye
+shall
+not
+enter
+into
+the
+kingdom
+of
+Heaven
+I
+don
+t
+think
+you
+understand
+what
+that
+means
+All
+you
+cared
+for
+was
+self
+and
+your
+mother
+spoiled
+you
+Sp
+Mother
+says
+she
+is
+very
+sorry
+now
+Here
+s
+Lizzie
+again
+I
+don
+t
+believe
+her
+because
+she
+did
+go
+with
+that
+fellow
+Dr
+Suppose
+she
+did
+what
+of
+it
+You
+must
+have
+had
+a
+very
+jealous
+disposition
+Sp
+She
+says
+she
+did
+not
+go
+with
+him
+and
+that
+she
+has
+told
+me
+what
+she
+did
+Dr
+Do
+you
+know
+that
+she
+is
+dead
+Sp
+She
+is
+not
+If
+she
+Is
+is
+she
+a
+ghost
+Dr
+You
+say
+she
+stands
+there
+Does
+she
+look
+like
+a
+ghost
+Sp
+No
+she
+doesn
+t
+My
+mother
+says
+John
+be
+reasonable
+and
+sensible
+Your
+own
+conscience
+accuses
+you
+It
+is
+hard
+when
+you
+love
+a
+girl
+to
+see
+her
+with
+another
+fellow
+What
+I
+suffered
+on
+account
+of
+Lizzie
+After
+seeing
+her
+with
+the
+other
+fellow
+I
+went
+home
+and
+stabbed
+myself
+just
+a
+little
+bit
+to
+try
+and
+scare
+her
+I
+thought
+if
+I
+did
+that
+she
+would
+come
+to
+me
+Dr
+You
+committed
+suicide
+but
+you
+do
+not
+realize
+that
+you
+are
+a
+spirit
+and
+have
+been
+troubling
+a
+lady
+and
+obsessing
+her
+She
+is
+a
+patient
+of
+ours
+Sp
+What
+do
+I
+care
+for
+her
+I
+hate
+women
+and
+she
+won
+t
+leave
+me
+alone
+All
+I
+wanted
+was
+revenge
+and
+I
+got
+it
+Dr
+That
+lady
+has
+done
+all
+kinds
+of
+wild
+things
+because
+you
+were
+obsessing
+her
+Sp
+Mother
+and
+Lizzie
+both
+stand
+there
+crying
+but
+nobody
+cares
+for
+me
+so
+what
+s
+the
+use
+Dr
+What
+name
+did
+you
+have
+beside
+John
+Sp
+John
+Sullivan
+Dr
+I
+should
+think
+you
+would
+feel
+ashamed
+to
+have
+bothered
+that
+lady
+Sp
+I
+m
+not
+any
+more
+ashamed
+of
+myself
+than
+you
+are
+Dr
+Do
+you
+think
+you
+loved
+this
+girl
+Or
+was
+it
+only
+selfishness
+on
+your
+part
+You
+simply
+wanted
+her
+that
+s
+all
+Sp
+She
+could
+have
+been
+mine
+but
+I
+made
+her
+suffer
+My
+love
+turned
+to
+hate
+No
+Lizzie
+you
+don
+t
+need
+to
+cry
+I
+shall
+never
+forgive
+you
+if
+you
+ask
+me
+a
+hundred
+times
+Dr
+If
+your
+mother
+had
+given
+you
+a
+few
+thrashings
+you
+would
+not
+be
+in
+the
+condition
+you
+are
+now
+Try
+to
+forgive
+Lizzie
+and
+by
+doing
+so
+you
+will
+be
+helped
+yourself
+Sp
+I
+shall
+never
+forgive
+her
+The
+women
+were
+all
+crazy
+after
+me
+I
+was
+considered
+a
+good
+looking
+man
+Dr
+That
+was
+your
+trouble
+If
+you
+had
+been
+homely
+you
+would
+have
+had
+some
+sense
+You
+must
+try
+to
+be
+sensible
+now
+because
+you
+are
+using
+my
+wife
+s
+body
+Sp
+Well
+take
+your
+wife
+I
+don
+t
+want
+her
+Say
+Mother
+it
+s
+no
+use
+you
+and
+Lizzie
+standing
+there
+and
+crying
+for
+I
+shall
+never
+forgive
+her
+Dr
+If
+you
+don
+t
+forgive
+when
+you
+have
+this
+opportunity
+you
+will
+find
+yourself
+in
+a
+dark
+dungeon
+when
+you
+leave
+here
+and
+there
+you
+will
+stay
+until
+you
+repent
+Try
+to
+understand
+that
+the
+wrong
+is
+within
+yourself
+Sp
+I
+ll
+not
+forgive
+I
+loved
+my
+mother
+and
+I
+always
+had
+plenty
+of
+money
+Dr
+What
+city
+did
+you
+live
+in
+Sp
+St
+Louis
+Dr
+Do
+you
+know
+you
+are
+in
+California
+Sp
+I
+know
+where
+I
+am
+I
+am
+in
+St
+Louis
+and
+it
+s
+winter
+It
+s
+about
+nineteen
+degrees
+below
+zero
+Dr
+What
+year
+do
+you
+think
+it
+is
+SP
+Dr
+It
+is
+the
+of
+January
+Sp
+I
+do
+hate
+to
+see
+women
+cry
+Mother
+stop
+crying
+To
+see
+a
+woman
+cry
+always
+distresses
+me
+Dr
+Doesn
+t
+your
+conscience
+trouble
+you
+at
+all
+Sp
+What
+s
+the
+use
+of
+worrying
+about
+things
+Dr
+Listen
+to
+what
+your
+mother
+says
+then
+she
+can
+help
+you
+Sp
+Mother
+I
+ll
+tell
+you
+if
+you
+had
+spanked
+me
+more
+when
+I
+was
+a
+little
+boy
+and
+not
+given
+in
+to
+me
+so
+much
+I
+might
+have
+been
+a
+different
+fellow
+from
+what
+I
+am
+now
+It
+is
+too
+late
+in
+life
+to
+change
+and
+what
+s
+more
+one
+never
+gets
+anywhere
+by
+changing
+Dr
+You
+still
+have
+more
+misery
+ahead
+of
+you
+unless
+you
+are
+willing
+to
+forgive
+Sp
+I
+don
+t
+care
+to
+be
+in
+that
+dungeon
+you
+speak
+of
+Why
+do
+parents
+give
+their
+children
+all
+they
+want
+You
+see
+Mother
+what
+nice
+work
+you
+have
+done
+Aren
+t
+you
+proud
+of
+your
+son
+You
+brought
+me
+to
+this
+This
+is
+your
+work
+Dr
+You
+pretend
+to
+love
+your
+mother
+but
+you
+have
+no
+charity
+or
+sympathy
+for
+anybody
+Sp
+I
+hate
+the
+word
+sympathy
+My
+father
+says
+I
+shall
+have
+to
+change
+I
+am
+too
+old
+to
+change
+now
+Frightened
+and
+shrinking
+from
+something
+Take
+that
+away
+Take
+me
+away
+I
+m
+sick
+Dr
+You
+must
+be
+serious
+and
+honest
+Sp
+My
+mother
+says
+she
+knows
+that
+she
+raised
+me
+wrong
+Don
+t
+let
+me
+go
+in
+that
+dungeon
+I
+ll
+forgive
+Lizzie
+I
+ll
+do
+anything
+I
+am
+tired
+of
+life
+and
+tired
+of
+everything
+Dr
+When
+you
+reach
+the
+spirit
+side
+of
+life
+you
+must
+try
+to
+be
+of
+service
+to
+others
+instead
+of
+a
+detriment
+Try
+to
+undo
+the
+wrong
+you
+have
+done
+by
+obsessing
+this
+lady
+Sp
+She
+tormented
+me
+and
+I
+hate
+women
+I
+got
+revenge
+I
+took
+a
+slipper
+and
+pounded
+her
+face
+I
+did
+it
+for
+revenge
+on
+women
+for
+I
+hate
+them
+all
+The
+spirit
+could
+not
+be
+brought
+to
+realize
+his
+situation
+and
+he
+was
+taken
+away
+to
+be
+placed
+in
+a
+dungeon
+until
+he
+could
+overcome
+self
+and
+his
+hatred
+toward
+humanity
+Several
+years
+ago
+a
+friend
+of
+ours
+complained
+of
+the
+peculiar
+and
+erratic
+actions
+of
+a
+business
+associate
+Mr
+P
+who
+had
+suddenly
+become
+extremely
+irritable
+and
+despotic
+to
+those
+in
+his
+employ
+highly
+unreasonable
+impossible
+to
+please
+and
+subject
+to
+violent
+attacks
+of
+swearing
+As
+obsession
+seemed
+indicated
+we
+concentrated
+for
+the
+gentleman
+in
+question
+and
+after
+several
+weeks
+an
+irate
+spirit
+spoke
+through
+Mrs
+Wickland
+and
+frankly
+admitted
+having
+tormented
+this
+man
+wanting
+revenge
+for
+attentions
+which
+he
+claimed
+the
+latter
+had
+been
+paying
+to
+his
+wife
+The
+situation
+had
+existed
+during
+his
+life
+but
+he
+did
+not
+discover
+this
+until
+after
+his
+death
+The
+spirit
+gave
+the
+name
+of
+a
+man
+prominent
+in
+local
+business
+circles
+he
+had
+passed
+out
+some
+time
+before
+but
+was
+not
+aware
+of
+the
+fact
+He
+said
+that
+he
+had
+been
+sick
+for
+a
+long
+time
+but
+could
+now
+go
+where
+he
+pleased
+without
+any
+trouble
+for
+he
+had
+become
+well
+He
+could
+not
+understand
+why
+his
+wife
+would
+no
+longer
+speak
+to
+him
+or
+why
+his
+child
+who
+had
+always
+been
+so
+affectionate
+was
+now
+so
+cold
+toward
+him
+He
+declared
+that
+some
+of
+his
+friends
+were
+false
+to
+him
+and
+had
+for
+some
+time
+been
+paying
+attention
+to
+his
+wife
+sending
+her
+gifts
+and
+flowers
+but
+that
+he
+would
+have
+revenge
+on
+them
+as
+soon
+as
+he
+was
+through
+with
+his
+present
+victim
+The
+spirit
+said
+that
+he
+could
+not
+think
+very
+clearly
+but
+supposed
+that
+was
+because
+he
+had
+recently
+taken
+an
+anaesthetic
+which
+he
+thought
+also
+accounted
+for
+the
+peculiar
+lightness
+of
+his
+body
+and
+a
+feeling
+of
+having
+no
+weight
+He
+was
+puzzled
+by
+the
+fact
+that
+whenever
+he
+thought
+about
+any
+persons
+he
+immediately
+found
+himself
+with
+them
+and
+involved
+in
+their
+affairs
+Recently
+he
+had
+been
+around
+Mr
+P
+but
+could
+not
+get
+away
+from
+him
+this
+had
+exasperated
+him
+exceedingly
+he
+had
+done
+a
+lot
+of
+swearing
+kept
+the
+man
+awake
+made
+him
+go
+to
+work
+early
+and
+had
+annoyed
+him
+in
+every
+way
+possible
+After
+many
+explanations
+the
+spirit
+finally
+realized
+that
+he
+had
+died
+although
+this
+was
+at
+first
+difficult
+for
+him
+to
+comprehend
+for
+he
+had
+always
+thought
+death
+ended
+all
+and
+that
+was
+all
+there
+was
+to
+it
+Being
+assured
+that
+activity
+and
+progression
+awaited
+him
+in
+the
+spirit
+world
+and
+that
+matters
+would
+there
+be
+explained
+to
+him
+to
+his
+entire
+satisfaction
+he
+left
+The
+following
+day
+there
+was
+such
+a
+remarkable
+improvement
+in
+the
+conduct
+of
+Mr
+P
+and
+his
+behavior
+was
+so
+wholly
+normal
+that
+the
+entire
+office
+force
+noticed
+the
+change
+although
+Mr
+P
+himself
+never
+knew
+of
+the
+experimental
+effort
+which
+had
+been
+made
+in
+his
+behalf
+A
+patient
+Miss
+R
+F
+was
+intermittently
+seized
+by
+impulses
+to
+run
+away
+and
+at
+such
+times
+became
+greatly
+agitated
+but
+shortly
+after
+entering
+our
+Institute
+she
+was
+relieved
+of
+the
+instigator
+of
+these
+wanderings
+EXPERIENCE
+SEPTEMBER
+Spirit
+EDWARD
+STERLING
+Patient
+Miss
+R
+F
+Psychic
+MRS
+WICKLAND
+An
+intelligence
+took
+control
+of
+the
+psychic
+and
+rising
+attempted
+to
+run
+away
+becoming
+very
+indignant
+when
+restrained
+Doctor
+Won
+t
+you
+sit
+down
+Spirit
+No
+Dr
+Where
+are
+you
+going
+Sp
+Home
+Dr
+Home
+Where
+is
+your
+home
+Sp
+I
+want
+to
+go
+to
+find
+it
+Struggling
+for
+freedom
+Dr
+What
+a
+nice
+lady
+you
+are
+to
+act
+like
+this
+Sp
+Lady
+Lady
+I
+m
+no
+lady
+I
+m
+a
+man
+Dr
+Where
+did
+you
+come
+from
+Sp
+That
+doesn
+t
+make
+any
+difference
+I
+m
+going
+home
+Dr
+Where
+is
+your
+home
+Sp
+Wherever
+I
+can
+find
+it
+I
+know
+I
+am
+not
+going
+to
+sit
+here
+any
+longer
+I
+m
+going
+I
+ll
+tell
+you
+that
+Dr
+Recognizing
+the
+phraseology
+of
+the
+patient
+Why
+did
+you
+cut
+off
+your
+hair
+The
+patient
+under
+an
+irrational
+impulse
+had
+cut
+her
+hair
+short
+Sp
+Do
+you
+think
+I
+want
+to
+wear
+long
+hair
+like
+a
+woman
+No
+sir
+I
+don
+t
+I
+m
+going
+yes
+sir
+I
+m
+going
+I
+tell
+you
+Dr
+Where
+will
+you
+go
+You
+have
+no
+home
+Sp
+I
+won
+t
+stay
+here
+I
+m
+going
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+I
+m
+not
+dead
+I
+m
+going
+I
+don
+t
+want
+those
+awful
+things
+put
+into
+me
+all
+over
+my
+body
+Referring
+to
+static
+electrical
+treatment
+applied
+to
+patient
+It
+s
+just
+like
+sticking
+sharp
+things
+into
+me
+real
+sharp
+things
+Dr
+You
+felt
+the
+electricity
+I
+gave
+to
+a
+patient
+Sp
+I
+tried
+twice
+to
+run
+away
+but
+I
+was
+brought
+back
+Dr
+Why
+did
+you
+make
+that
+lady
+cut
+off
+her
+hair
+Sp
+I
+didn
+t
+make
+anybody
+cut
+their
+hair
+off
+It
+s
+my
+body
+and
+I
+can
+cut
+my
+hair
+off
+if
+I
+want
+to
+I
+went
+to
+sleep
+and
+when
+I
+woke
+up
+my
+hair
+had
+grown
+so
+long
+that
+I
+did
+not
+know
+what
+to
+do
+I
+went
+to
+sleep
+and
+I
+slept
+a
+long
+time
+and
+after
+waking
+up
+I
+found
+I
+had
+long
+hair
+and
+I
+wasn
+t
+going
+to
+have
+that
+so
+I
+would
+look
+like
+a
+woman
+I
+could
+not
+go
+to
+a
+barber
+shop
+cause
+I
+was
+too
+ashamed
+to
+be
+seen
+on
+the
+street
+so
+I
+cut
+it
+off
+myself
+Dr
+You
+did
+not
+cut
+your
+own
+hair
+you
+cut
+off
+the
+hair
+of
+the
+lady
+you
+were
+controlling
+Sp
+It
+was
+my
+own
+hair
+I
+cut
+Why
+do
+you
+keep
+me
+here
+like
+this
+I
+haven
+t
+done
+anything
+to
+you
+or
+anybody
+else
+Dr
+You
+have
+been
+disturbing
+a
+lady
+and
+doing
+her
+a
+great
+wrong
+You
+say
+you
+are
+a
+man
+and
+yet
+you
+are
+wearing
+lady
+s
+clothes
+How
+do
+you
+account
+for
+that
+Sp
+I
+couldn
+t
+get
+any
+man
+s
+clothes
+Dr
+Shouldn
+t
+that
+fact
+open
+your
+eyes
+and
+show
+you
+that
+there
+is
+something
+the
+matter
+with
+you
+Sp
+Can
+t
+I
+sit
+down
+Dr
+Yes
+if
+you
+will
+sit
+quietly
+Should
+you
+not
+try
+to
+find
+out
+what
+is
+the
+matter
+with
+you
+Sp
+I
+don
+t
+want
+to
+stay
+here
+I
+m
+going
+home
+Dr
+If
+you
+will
+sit
+still
+and
+listen
+I
+will
+explain
+your
+situation
+You
+are
+so
+called
+dead
+Sp
+I
+am
+not
+dead
+I
+ll
+have
+you
+know
+Stop
+holding
+me
+Dr
+I
+am
+not
+holding
+you
+I
+am
+holding
+my
+wife
+You
+must
+realize
+that
+you
+are
+in
+a
+strange
+position
+You
+passed
+out
+of
+your
+mortal
+body
+but
+do
+not
+understand
+your
+situation
+Sp
+Let
+me
+go
+I
+want
+to
+get
+out
+of
+here
+What
+are
+you
+holding
+my
+hands
+for
+Dr
+I
+am
+not
+holding
+your
+hands
+I
+am
+holding
+my
+wife
+s
+hands
+Sp
+Your
+wife
+s
+hands
+I
+never
+saw
+you
+before
+and
+I
+m
+not
+your
+wife
+Do
+you
+think
+a
+man
+marries
+another
+man
+I
+never
+heard
+such
+talk
+Dr
+What
+I
+tell
+you
+is
+true
+just
+the
+same
+You
+are
+an
+ignorant
+spirit
+and
+do
+not
+understand
+your
+condition
+Sp
+You
+let
+me
+alone
+I
+want
+to
+go
+home
+Dr
+Did
+you
+ever
+stop
+to
+think
+what
+happens
+to
+a
+person
+when
+he
+dies
+Sp
+I
+am
+not
+dead
+I
+just
+went
+to
+sleep
+Dr
+That
+was
+the
+sleep
+of
+death
+Sp
+I
+slept
+so
+long
+that
+when
+I
+woke
+up
+my
+hair
+had
+grown
+long
+Dr
+Not
+only
+had
+your
+hair
+grown
+but
+you
+also
+had
+on
+woman
+s
+clothes
+How
+did
+you
+get
+them
+Sp
+I
+m
+not
+dead
+just
+the
+same
+Dr
+You
+have
+lost
+your
+physical
+body
+When
+you
+lose
+that
+you
+are
+supposed
+to
+be
+dead
+Sp
+If
+I
+was
+dead
+I
+would
+go
+to
+the
+grave
+and
+stay
+there
+until
+the
+last
+day
+You
+stay
+there
+until
+Gabriel
+blows
+his
+horn
+Dr
+That
+is
+only
+ignorant
+belief
+You
+were
+too
+lazy
+to
+understand
+life
+s
+mysteries
+Sp
+I
+was
+taught
+that
+when
+I
+died
+if
+I
+believed
+in
+God
+and
+Christ
+and
+that
+Christ
+died
+for
+our
+sins
+I
+would
+go
+to
+Heaven
+Dr
+Why
+did
+you
+not
+go
+to
+Heaven
+when
+you
+died
+You
+have
+died
+so
+far
+as
+the
+world
+is
+concerned
+You
+are
+here
+and
+yet
+we
+cannot
+see
+you
+I
+see
+only
+my
+wife
+s
+body
+Sp
+I
+have
+never
+seen
+your
+wife
+and
+I
+don
+t
+know
+her
+Dr
+Have
+you
+ever
+heard
+about
+mediums
+Sp
+Yes
+but
+I
+don
+t
+believe
+in
+them
+Dr
+You
+are
+speaking
+through
+a
+medium
+now
+You
+claim
+to
+be
+a
+man
+and
+yet
+you
+are
+using
+a
+woman
+s
+body
+to
+speak
+through
+Sp
+Lies
+nothing
+but
+lies
+Dr
+It
+is
+true
+nevertheless
+You
+have
+woman
+s
+clothes
+on
+You
+know
+there
+is
+something
+strange
+about
+your
+condition
+You
+probably
+do
+not
+know
+that
+you
+are
+in
+Los
+Angeles
+California
+Sp
+No
+I
+am
+not
+Dr
+Where
+should
+you
+be
+Sp
+I
+have
+been
+on
+the
+go
+for
+some
+time
+traveling
+Dr
+Look
+at
+your
+hands
+they
+are
+not
+yours
+Sp
+I
+never
+saw
+you
+before
+you
+put
+all
+that
+electricity
+into
+me
+and
+I
+feel
+like
+giving
+you
+a
+good
+licking
+What
+do
+you
+think
+of
+any
+man
+doing
+such
+a
+thing
+to
+another
+man
+It
+goes
+right
+through
+you
+You
+don
+t
+know
+how
+it
+hurts
+I
+m
+not
+going
+to
+stand
+for
+any
+more
+such
+nonsense
+I
+stood
+it
+for
+a
+long
+time
+then
+I
+went
+When
+I
+left
+a
+great
+big
+Indian
+spirit
+got
+hold
+of
+me
+and
+put
+me
+in
+prison
+I
+got
+loose
+after
+awhile
+and
+came
+here
+Dr
+You
+have
+been
+bothering
+a
+woman
+who
+was
+a
+patient
+of
+ours
+and
+electrical
+treatments
+given
+to
+her
+dislodged
+you
+Sp
+What
+is
+the
+matter
+with
+me
+I
+have
+felt
+so
+crowded
+Dr
+Can
+t
+you
+understand
+that
+you
+are
+in
+a
+strange
+situation
+You
+were
+probably
+a
+big
+man
+and
+you
+felt
+crowded
+because
+you
+were
+occupying
+a
+body
+smaller
+than
+your
+own
+physical
+body
+Why
+don
+t
+you
+open
+your
+mind
+and
+learn
+the
+facts
+Sp
+There
+s
+nothing
+to
+learn
+Dr
+It
+has
+probably
+been
+a
+long
+time
+since
+you
+lost
+your
+body
+What
+year
+is
+it
+Sp
+I
+had
+a
+good
+long
+sleep
+and
+I
+don
+t
+know
+Dr
+Shouldn
+t
+your
+present
+strange
+condition
+cause
+you
+to
+ask
+questions
+We
+cannot
+see
+you
+we
+can
+only
+hear
+you
+talk
+Sp
+What
+sense
+is
+there
+in
+talking
+to
+a
+person
+when
+you
+don
+t
+see
+him
+Dr
+This
+lady
+is
+a
+psychic
+and
+you
+are
+a
+spirit
+talking
+through
+her
+body
+Sp
+I
+don
+t
+believe
+you
+Dr
+This
+is
+my
+wife
+s
+body
+Are
+you
+my
+wife
+talking
+to
+me
+Sp
+I
+m
+not
+your
+wife
+I
+m
+a
+man
+Dr
+I
+drove
+you
+away
+from
+the
+woman
+you
+were
+controlling
+You
+made
+her
+act
+like
+an
+insane
+person
+How
+did
+you
+come
+here
+Sp
+You
+tell
+me
+how
+Dr
+You
+are
+an
+invisible
+spirit
+you
+do
+not
+understand
+your
+situation
+The
+lady
+you
+have
+been
+bothering
+happened
+to
+be
+in
+a
+nervous
+condition
+and
+susceptible
+to
+spirit
+obsession
+and
+you
+obsessed
+her
+You
+made
+that
+lady
+do
+many
+insane
+things
+What
+do
+you
+think
+of
+such
+actions
+Sp
+I
+wouldn
+t
+say
+it
+was
+anything
+very
+grand
+but
+I
+don
+t
+even
+know
+any
+woman
+Dr
+You
+influenced
+her
+to
+cut
+off
+her
+hair
+and
+to
+run
+away
+Sp
+What
+did
+I
+want
+with
+long
+hair
+I
+went
+to
+sleep
+and
+when
+I
+woke
+up
+my
+hair
+had
+grown
+too
+long
+so
+I
+cut
+it
+off
+that
+s
+all
+Dr
+That
+was
+the
+woman
+s
+hair
+you
+cut
+Sp
+It
+was
+too
+long
+Dr
+That
+is
+her
+business
+Just
+reverse
+things
+Suppose
+you
+had
+your
+own
+body
+and
+somebody
+cut
+your
+hair
+off
+would
+you
+like
+it
+Sp
+No
+I
+wouldn
+t
+but
+she
+couldn
+t
+help
+yourself
+Dr
+Don
+t
+you
+think
+that
+you
+were
+very
+selfish
+Sp
+I
+don
+t
+know
+Say
+if
+as
+you
+say
+I
+m
+dead
+why
+is
+it
+that
+I
+m
+not
+in
+Heaven
+or
+hell
+Dr
+There
+are
+no
+such
+places
+Sp
+I
+haven
+t
+seen
+God
+or
+Christ
+or
+the
+devil
+yet
+you
+tell
+me
+I
+am
+dead
+Dr
+You
+are
+not
+dead
+Sp
+Why
+just
+a
+little
+while
+ago
+you
+said
+I
+was
+Dr
+You
+are
+dead
+to
+the
+world
+Sp
+You
+said
+I
+was
+dead
+Dr
+I
+said
+you
+were
+so
+called
+dead
+you
+lost
+your
+physical
+body
+Sp
+You
+said
+I
+was
+dead
+Dr
+Now
+listen
+to
+reason
+or
+I
+will
+have
+to
+take
+you
+into
+the
+office
+and
+give
+you
+more
+electricity
+Sp
+I
+don
+t
+want
+that
+it
+makes
+you
+feel
+like
+you
+were
+burning
+up
+Dr
+We
+wanted
+to
+get
+you
+out
+and
+we
+succeeded
+Sp
+What
+business
+is
+it
+of
+yours
+if
+I
+stayed
+there
+Dr
+We
+wanted
+that
+lady
+to
+be
+rid
+of
+you
+Sp
+You
+had
+no
+right
+to
+get
+me
+away
+from
+her
+Dr
+Do
+you
+think
+it
+was
+right
+of
+you
+to
+control
+her
+and
+disturb
+her
+life
+Sp
+A
+fellow
+has
+got
+to
+have
+some
+place
+to
+live
+Dr
+Suppose
+it
+had
+been
+your
+mother
+and
+a
+selfish
+spirit
+were
+controlling
+her
+and
+making
+her
+act
+as
+if
+insane
+do
+you
+think
+that
+would
+be
+right
+Sp
+I
+was
+not
+insane
+and
+I
+did
+not
+make
+her
+insane
+either
+Dr
+It
+was
+an
+insane
+act
+for
+her
+to
+cut
+off
+her
+hair
+and
+run
+away
+Sp
+How
+would
+you
+like
+to
+have
+your
+hair
+long
+if
+you
+were
+a
+man
+Dr
+It
+was
+the
+lady
+s
+body
+and
+the
+lady
+s
+hair
+not
+yours
+Now
+you
+have
+been
+driven
+from
+the
+lady
+s
+body
+and
+you
+must
+change
+your
+conduct
+If
+you
+are
+not
+careful
+you
+will
+be
+put
+into
+a
+dungeon
+You
+said
+a
+short
+time
+ago
+that
+an
+Indian
+got
+hold
+of
+you
+you
+had
+better
+be
+careful
+or
+another
+Indian
+will
+get
+hold
+of
+you
+Sp
+I
+will
+fight
+him
+if
+he
+does
+Dr
+Listen
+to
+me
+My
+wife
+is
+a
+psychic
+and
+she
+allows
+such
+spirits
+as
+you
+to
+control
+her
+body
+to
+bring
+them
+to
+a
+realization
+of
+their
+condition
+You
+should
+appreciate
+the
+privilege
+There
+are
+thousands
+of
+spirits
+who
+would
+be
+glad
+to
+be
+in
+your
+place
+at
+this
+moment
+You
+know
+that
+you
+are
+in
+a
+strange
+condition
+Perhaps
+some
+of
+your
+kindred
+are
+here
+They
+will
+take
+you
+with
+them
+to
+the
+spirit
+world
+You
+must
+behave
+yourself
+and
+understand
+and
+be
+sensible
+Sp
+What
+shall
+I
+do
+Dr
+Understand
+that
+there
+is
+a
+spirit
+world
+and
+that
+you
+should
+strive
+to
+reach
+it
+Sp
+You
+mean
+Heaven
+Dr
+The
+Kingdom
+of
+Heaven
+is
+within
+one
+Sp
+Don
+t
+you
+believe
+that
+Christ
+died
+for
+your
+sins
+Dr
+He
+did
+not
+die
+for
+mine
+Don
+t
+you
+understand
+that
+something
+is
+lacking
+in
+such
+a
+belief
+Jesus
+taught
+us
+how
+to
+understand
+life
+he
+did
+not
+die
+for
+the
+sins
+of
+any
+one
+Those
+who
+believe
+that
+Christ
+died
+for
+their
+sins
+lack
+the
+right
+understanding
+of
+His
+teachings
+It
+is
+a
+sin
+against
+God
+to
+teach
+such
+a
+doctrine
+If
+it
+were
+true
+it
+would
+mean
+that
+God
+had
+made
+a
+mistake
+and
+was
+forced
+to
+provide
+an
+intercessor
+as
+an
+offering
+of
+atonement
+for
+His
+own
+mistake
+Now
+friend
+you
+must
+leave
+my
+wife
+and
+you
+must
+also
+leave
+the
+other
+lady
+alone
+Sp
+What
+are
+you
+talking
+about
+I
+never
+saw
+your
+wife
+Dr
+You
+are
+temporarily
+controlling
+my
+wife
+s
+body
+We
+cannot
+see
+you
+If
+you
+do
+not
+come
+to
+your
+senses
+pretty
+soon
+we
+shall
+have
+to
+force
+you
+out
+and
+then
+you
+will
+be
+in
+the
+outer
+darkness
+which
+the
+Bible
+speaks
+about
+Sp
+It
+is
+not
+right
+that
+God
+should
+treat
+me
+as
+he
+has
+I
+prayed
+and
+prayed
+and
+prayed
+I
+went
+to
+church
+and
+paid
+a
+whole
+lot
+of
+money
+to
+the
+church
+because
+they
+said
+if
+I
+did
+not
+give
+money
+I
+would
+go
+straight
+to
+hell
+when
+I
+died
+and
+I
+thought
+when
+I
+paid
+my
+money
+I
+should
+get
+my
+money
+s
+worth
+Dr
+What
+did
+Jesus
+say
+God
+is
+Spirit
+and
+they
+that
+worship
+him
+must
+worship
+him
+in
+Spirit
+and
+in
+truth
+God
+is
+Spirit
+not
+a
+spirit
+The
+Bible
+says
+God
+is
+Love
+and
+He
+that
+dwelleth
+in
+Love
+dwelleth
+in
+God
+Where
+will
+you
+look
+to
+find
+such
+a
+God
+except
+within
+your
+own
+self
+Ye
+are
+the
+temple
+of
+God
+and
+the
+spirit
+of
+God
+dwelleth
+in
+you
+What
+is
+Heaven
+It
+is
+a
+condition
+of
+your
+own
+mind
+attained
+when
+you
+understand
+life
+s
+purpose
+Sp
+Isn
+t
+Heaven
+a
+place
+It
+says
+so
+in
+the
+Bible
+it
+says
+Heaven
+is
+paved
+with
+golden
+streets
+Isn
+t
+that
+so
+Dr
+That
+like
+many
+other
+statements
+in
+the
+Bible
+is
+symbolical
+of
+great
+truths
+of
+life
+Sp
+You
+said
+a
+short
+time
+ago
+that
+Jesus
+did
+not
+die
+for
+your
+sins
+What
+do
+you
+believe
+Dr
+I
+recognize
+that
+we
+are
+all
+spiritual
+beings
+in
+mortal
+bodies
+while
+on
+earth
+When
+we
+pass
+out
+of
+our
+mortal
+bodies
+with
+understanding
+we
+will
+not
+waken
+in
+darkness
+but
+our
+spiritual
+eyes
+will
+be
+open
+and
+advanced
+spirits
+will
+help
+us
+to
+progress
+in
+the
+spirit
+world
+Some
+kind
+spirit
+friends
+of
+yours
+may
+be
+here
+now
+Do
+you
+not
+realize
+that
+some
+change
+has
+taken
+place
+with
+you
+Sp
+I
+can
+talk
+more
+than
+I
+could
+You
+said
+I
+was
+talking
+through
+your
+wife
+How
+can
+I
+talk
+through
+her
+Dr
+My
+wife
+is
+a
+psychic
+who
+is
+so
+developed
+that
+spirits
+can
+talk
+through
+her
+and
+intelligent
+spirits
+have
+allowed
+you
+to
+control
+her
+However
+you
+will
+not
+be
+able
+to
+stay
+long
+Sp
+I
+think
+I
+will
+stay
+here
+I
+feel
+better
+I
+feel
+pretty
+good
+now
+Dr
+You
+will
+feel
+still
+better
+after
+you
+realize
+the
+beautiful
+condition
+in
+the
+spirit
+world
+You
+will
+have
+to
+become
+as
+a
+little
+child
+then
+you
+can
+enter
+the
+kingdom
+of
+Heaven
+Do
+not
+merely
+believe
+but
+try
+to
+understand
+What
+is
+your
+name
+Sp
+Edward
+Dr
+And
+your
+other
+name
+Sp
+I
+don
+t
+know
+Dr
+Where
+did
+you
+live
+Do
+you
+know
+that
+you
+are
+in
+Los
+Angeles
+California
+Do
+you
+know
+what
+year
+it
+is
+Sp
+No
+I
+don
+t
+know
+Dr
+Why
+don
+t
+you
+know
+Sp
+I
+have
+no
+memory
+I
+can
+t
+think
+I
+don
+t
+know
+anything
+any
+more
+Such
+a
+state
+of
+bewilderment
+suggests
+that
+the
+cause
+of
+amnesia
+conditions
+found
+in
+certain
+patients
+is
+probably
+possession
+by
+confused
+spirit
+intelligences
+Dr
+That
+is
+because
+you
+have
+been
+in
+the
+outer
+darkness
+and
+being
+a
+wandering
+spirit
+you
+drifted
+into
+that
+lady
+s
+aura
+controlled
+her
+and
+made
+her
+act
+as
+if
+insane
+Sp
+I
+wanted
+to
+have
+a
+good
+quiet
+home
+Dr
+Is
+it
+right
+to
+do
+the
+things
+you
+have
+done
+Sp
+When
+you
+have
+been
+walking
+in
+darkness
+for
+a
+long
+time
+and
+you
+see
+a
+light
+don
+t
+you
+want
+to
+stay
+Dr
+That
+is
+not
+the
+right
+kind
+of
+light
+You
+need
+the
+spiritual
+light
+of
+understanding
+Sp
+Then
+do
+you
+think
+I
+ought
+to
+go
+to
+church
+and
+sing
+and
+pray
+to
+God
+and
+read
+the
+Bible
+Dr
+Did
+you
+ever
+make
+a
+thorough
+study
+of
+the
+history
+of
+the
+Bible
+to
+learn
+who
+wrote
+it
+Sp
+It
+was
+God
+s
+inspired
+book
+Dr
+God
+did
+not
+write
+the
+Bible
+the
+book
+is
+man
+made
+Could
+one
+credit
+God
+with
+having
+written
+certain
+things
+in
+the
+Bible
+many
+of
+which
+are
+unfit
+to
+be
+read
+in
+respectable
+society
+Sp
+Who
+wrote
+the
+book
+Dr
+It
+was
+compiled
+from
+many
+sources
+during
+different
+periods
+mainly
+for
+the
+purpose
+of
+keeping
+people
+in
+subjection
+through
+fear
+of
+an
+imaginary
+devil
+and
+hell
+The
+Bible
+is
+a
+collection
+of
+poetry
+history
+allegories
+and
+philosophy
+of
+contradictions
+and
+truths
+But
+humanity
+believes
+that
+every
+word
+of
+the
+Bible
+is
+inspired
+and
+insists
+upon
+interpreting
+it
+literally
+instead
+of
+accepting
+what
+is
+reasonable
+The
+Bible
+states
+that
+The
+letter
+killeth
+but
+the
+spirit
+giveth
+life
+and
+Spiritual
+things
+are
+spiritually
+discerned
+Hence
+religion
+is
+a
+process
+of
+mental
+discernment
+The
+teachings
+of
+Christ
+contain
+wonderful
+truths
+but
+the
+allegories
+have
+been
+taught
+as
+historical
+facts
+by
+the
+church
+and
+dogma
+doctrine
+and
+creed
+have
+obscured
+their
+underlying
+spiritual
+significance
+SP
+Don
+t
+you
+believe
+that
+God
+made
+the
+earth
+in
+six
+days
+and
+rested
+on
+the
+seventh
+Dr
+No
+that
+is
+only
+an
+allegorical
+statement
+The
+seven
+days
+are
+symbolical
+of
+the
+seven
+principles
+in
+Nature
+God
+is
+at
+once
+the
+Creator
+and
+the
+Creation
+if
+God
+should
+rest
+all
+would
+be
+at
+an
+end
+We
+should
+understand
+life
+as
+it
+is
+not
+merely
+believe
+what
+is
+told
+us
+Now
+it
+is
+getting
+late
+and
+you
+cannot
+stay
+any
+longer
+See
+whether
+some
+one
+is
+here
+whom
+you
+know
+Sp
+Oh
+There
+s
+my
+mother
+It
+s
+a
+long
+time
+since
+I
+saw
+her
+But
+she
+died
+when
+I
+was
+a
+kid
+Dr
+Listen
+to
+her
+she
+can
+help
+you
+Sp
+Oh
+mother
+will
+you
+take
+me
+I
+Take
+me
+mother
+I
+m
+so
+tired
+Oh
+mother
+take
+me
+with
+you
+Dr
+Of
+course
+she
+will
+take
+you
+with
+her
+but
+you
+will
+have
+to
+rid
+yourself
+of
+all
+your
+foolish
+beliefs
+and
+acquire
+understanding
+Sp
+Let
+me
+go
+Rising
+to
+walk
+away
+Dr
+You
+will
+have
+to
+think
+yourself
+with
+your
+mother
+You
+can
+t
+take
+this
+body
+with
+you
+because
+it
+belongs
+to
+my
+wife
+Just
+think
+yourself
+with
+your
+mother
+and
+you
+will
+be
+there
+instantly
+Sp
+I
+m
+so
+tired
+and
+weary
+so
+tired
+Let
+me
+go
+with
+my
+mother
+I
+see
+her
+coming
+she
+went
+away
+for
+a
+while
+Dr
+Now
+go
+with
+your
+mother
+God
+gave
+you
+intelligence
+to
+think
+and
+you
+must
+be
+reasonable
+and
+let
+your
+mother
+and
+others
+teach
+you
+Sp
+Mother
+says
+I
+must
+ask
+you
+to
+forgive
+me
+for
+being
+so
+rude
+and
+she
+also
+says
+I
+must
+ask
+that
+lady
+to
+please
+forgive
+me
+for
+bothering
+her
+Dr
+Can
+you
+tell
+us
+where
+you
+came
+from
+Sp
+I
+can
+t
+remember
+Dr
+What
+year
+do
+you
+think
+it
+is
+Sp
+It
+should
+be
+Dr
+That
+was
+nineteen
+years
+ago
+Who
+is
+the
+President
+Sp
+McKinley
+Dr
+He
+was
+shot
+on
+the
+sixth
+of
+September
+and
+died
+on
+the
+fourteenth
+This
+is
+now
+Sp
+Where
+have
+I
+been
+all
+that
+time
+Sleeping
+The
+winter
+of
+was
+awfully
+sick
+and
+it
+seems
+hard
+to
+remember
+anything
+else
+after
+that
+It
+was
+around
+Christmas
+and
+I
+caught
+cold
+and
+I
+was
+very
+sick
+Dr
+Where
+were
+you
+when
+you
+were
+taken
+sick
+Sp
+I
+was
+working
+in
+the
+woods
+I
+worked
+in
+a
+lumber
+town
+at
+lumbering
+I
+remember
+something
+hitting
+me
+on
+the
+head
+and
+that
+s
+all
+I
+remember
+My
+mother
+says
+my
+name
+is
+Sterling
+yes
+that
+s
+it
+Dr
+Can
+your
+mother
+tell
+what
+place
+you
+came
+from
+before
+you
+took
+up
+lumbering
+Sp
+I
+was
+born
+in
+Iowa
+mother
+says
+but
+when
+I
+got
+hurt
+I
+was
+working
+in
+the
+woods
+in
+Northern
+Wisconsin
+I
+used
+to
+live
+in
+Iowa
+Dr
+Can
+you
+remember
+the
+name
+of
+the
+town
+Sp
+No
+I
+can
+t
+Dr
+Well
+friend
+try
+to
+obtain
+an
+understanding
+of
+life
+and
+be
+of
+service
+to
+humanity
+instead
+of
+a
+detriment
+You
+have
+been
+bothering
+a
+lady
+and
+she
+is
+not
+yet
+entirely
+free
+Sp
+I
+was
+not
+the
+only
+one
+bothering
+her
+there
+are
+two
+more
+just
+as
+bad
+as
+I
+am
+Dr
+When
+you
+have
+understanding
+you
+must
+help
+this
+lady
+to
+get
+well
+and
+take
+the
+other
+spirits
+away
+from
+her
+Sp
+I
+will
+try
+Thank
+you
+Goodbye
+I
+Haunted
+houses
+are
+often
+frequented
+by
+spirits
+who
+seek
+revenge
+for
+wrongs
+suffered
+by
+them
+during
+life
+While
+Mrs
+Wickland
+and
+I
+were
+in
+Wisconsin
+we
+held
+a
+circle
+in
+the
+home
+of
+friends
+and
+Mrs
+Wickland
+was
+controlled
+by
+the
+spirit
+of
+a
+man
+who
+said
+he
+had
+been
+murdered
+by
+the
+owner
+of
+a
+near
+by
+stone
+quarry
+but
+that
+he
+was
+still
+alive
+in
+his
+house
+at
+the
+side
+of
+the
+quarry
+He
+laughed
+spitefully
+and
+said
+He
+killed
+me
+but
+I
+am
+having
+my
+revenge
+I
+haunt
+him
+Although
+we
+explained
+to
+the
+spirit
+the
+existence
+of
+a
+higher
+life
+he
+stated
+that
+he
+was
+not
+yet
+ready
+to
+leave
+his
+old
+haunts
+and
+refusing
+to
+progress
+departed
+Our
+friends
+then
+told
+us
+that
+they
+had
+known
+this
+man
+in
+life
+that
+ten
+years
+before
+the
+quarry
+had
+been
+owned
+by
+three
+men
+one
+of
+whom
+desiring
+to
+own
+the
+quarry
+himself
+had
+bought
+the
+holdings
+of
+the
+second
+man
+but
+the
+third
+man
+who
+lived
+in
+the
+house
+by
+the
+quarry
+had
+refused
+to
+sell
+A
+few
+days
+later
+the
+third
+man
+was
+found
+dead
+and
+although
+there
+was
+no
+proof
+as
+to
+the
+identity
+of
+the
+murderer
+there
+was
+a
+strong
+suspicion
+in
+the
+neighborhood
+that
+the
+first
+partner
+was
+the
+perpetrator
+of
+the
+crime
+As
+time
+went
+on
+the
+owner
+of
+the
+stone
+quarry
+developed
+a
+strange
+reluctance
+to
+work
+the
+quarry
+and
+rumor
+said
+that
+he
+was
+haunted
+by
+his
+dead
+partner
+It
+became
+common
+report
+that
+the
+house
+nearby
+was
+haunted
+and
+when
+our
+friends
+had
+driven
+there
+a
+year
+before
+to
+pick
+berries
+they
+had
+had
+an
+unusual
+experience
+After
+placing
+the
+horse
+in
+the
+empty
+barn
+they
+noticed
+some
+berries
+in
+the
+yard
+and
+returned
+to
+the
+barn
+for
+a
+basket
+when
+the
+horse
+began
+to
+rear
+wildly
+and
+neighed
+in
+terror
+Stopping
+in
+amazement
+our
+friends
+heard
+a
+coarse
+laugh
+and
+looking
+about
+saw
+a
+grinning
+man
+standing
+in
+the
+doorway
+of
+the
+deserted
+house
+It
+was
+the
+man
+who
+had
+died
+several
+years
+before
+they
+had
+known
+him
+in
+life
+and
+recognized
+him
+now
+The
+man
+laughed
+and
+vanished
+and
+our
+friends
+rushed
+to
+the
+barn
+took
+the
+horse
+out
+and
+drove
+away
+in
+great
+haste
+We
+had
+a
+series
+of
+letters
+from
+Mrs
+G
+G
+who
+resided
+in
+a
+village
+in
+New
+York
+she
+was
+a
+psychic
+and
+clairvoyant
+whose
+house
+was
+haunted
+by
+a
+band
+of
+evil
+spirits
+She
+wrote
+that
+she
+had
+been
+in
+the
+best
+of
+health
+when
+she
+had
+moved
+into
+this
+house
+but
+had
+soon
+become
+afflicted
+with
+a
+strange
+ailment
+of
+the
+arms
+and
+legs
+which
+no
+doctors
+could
+relieve
+Spirits
+who
+claimed
+to
+be
+her
+guides
+advised
+her
+to
+have
+a
+psychic
+circle
+every
+evening
+and
+sit
+for
+half
+an
+hour
+saying
+they
+could
+help
+her
+in
+this
+way
+They
+explained
+that
+she
+was
+being
+injured
+by
+the
+spirit
+of
+the
+woman
+who
+had
+built
+the
+house
+and
+that
+she
+could
+free
+herself
+by
+having
+a
+certain
+friend
+of
+hers
+attend
+the
+next
+circle
+This
+friend
+came
+and
+the
+spirit
+said
+she
+would
+leave
+with
+this
+woman
+When
+the
+latter
+reached
+her
+home
+she
+was
+taken
+with
+the
+same
+sickness
+with
+which
+Mrs
+G
+G
+had
+been
+troubled
+while
+Mrs
+G
+G
+recovered
+But
+disturbances
+of
+various
+kinds
+continued
+in
+the
+house
+even
+the
+orchard
+was
+haunted
+and
+spirits
+were
+heard
+to
+say
+that
+Mrs
+G
+G
+could
+not
+live
+if
+she
+remained
+there
+for
+they
+would
+kill
+any
+one
+who
+came
+into
+that
+house
+The
+G
+s
+sold
+the
+house
+and
+moved
+away
+without
+telling
+the
+purchasers
+anything
+of
+their
+mysterious
+experiences
+The
+new
+owners
+took
+possession
+of
+the
+house
+and
+the
+mother
+an
+elderly
+lady
+went
+to
+bed
+the
+first
+night
+apparently
+well
+but
+in
+a
+short
+time
+screamed
+that
+two
+men
+had
+come
+into
+her
+room
+threatening
+to
+kill
+her
+and
+before
+morning
+she
+was
+dead
+Mrs
+G
+G
+however
+continued
+her
+circles
+but
+was
+unable
+to
+rid
+herself
+of
+spirit
+influences
+and
+finally
+wrote
+to
+us
+for
+aid
+There
+is
+no
+one
+I
+can
+go
+to
+or
+depend
+upon
+I
+joined
+the
+New
+Thought
+Society
+to
+be
+helped
+they
+claimed
+to
+send
+out
+vibrations
+but
+I
+failed
+to
+get
+in
+on
+the
+wave
+No
+one
+prays
+more
+earnestly
+for
+help
+than
+or
+tries
+harder
+to
+do
+right
+Tell
+me
+if
+you
+can
+how
+to
+get
+relief
+We
+concentrated
+for
+the
+lady
+as
+well
+as
+the
+house
+and
+a
+number
+of
+spirits
+were
+brought
+from
+both
+One
+of
+the
+first
+declared
+that
+he
+did
+not
+know
+he
+was
+obsessing
+Mrs
+G
+G
+Another
+spirit
+was
+Harry
+Harris
+who
+had
+so
+brutally
+mistreated
+his
+wife
+that
+she
+had
+shot
+herself
+How
+his
+life
+had
+ended
+we
+did
+not
+learn
+He
+insisted
+that
+he
+was
+not
+dead
+but
+was
+living
+in
+an
+old
+house
+with
+a
+band
+of
+outlaws
+spirits
+and
+that
+they
+would
+kill
+any
+one
+who
+dared
+to
+move
+into
+their
+house
+Another
+evening
+four
+spirits
+were
+brought
+from
+the
+haunted
+house
+first
+two
+women
+then
+Pete
+who
+had
+been
+a
+dexterous
+pickpocket
+in
+life
+and
+a
+woman
+named
+Kate
+who
+had
+been
+killed
+by
+Pete
+and
+had
+hounded
+him
+ever
+since
+To
+conceal
+himself
+Pete
+was
+hiding
+with
+others
+in
+a
+house
+that
+belonged
+to
+them
+and
+to
+no
+one
+else
+We
+kill
+any
+one
+who
+comes
+in
+he
+said
+speaking
+through
+Mrs
+Wickland
+He
+admitted
+having
+troubled
+Mrs
+G
+G
+I
+stayed
+with
+her
+to
+get
+my
+grub
+he
+said
+While
+Pete
+was
+speaking
+Kate
+took
+control
+of
+another
+medium
+who
+was
+in
+the
+circle
+and
+Pete
+was
+terror
+stricken
+while
+Kate
+attempted
+to
+escape
+from
+him
+Each
+thought
+the
+other
+was
+a
+ghost
+and
+neither
+was
+aware
+of
+controlling
+a
+psychic
+It
+was
+some
+time
+before
+they
+realized
+that
+both
+had
+died
+Finally
+Pete
+sank
+on
+his
+knees
+and
+begged
+Kate
+to
+forgive
+him
+a
+reconciliation
+followed
+and
+both
+left
+promising
+to
+reform
+Later
+Mrs
+G
+G
+wrote
+that
+she
+had
+greatly
+improved
+In
+answer
+to
+an
+urgent
+appeal
+for
+help
+Mrs
+Wickland
+and
+I
+called
+at
+the
+home
+of
+Mr
+and
+Mrs
+C
+in
+Pasadena
+where
+nightly
+rappings
+and
+noises
+were
+keeping
+the
+family
+awake
+for
+hours
+Mr
+C
+had
+purchased
+this
+house
+from
+the
+children
+of
+an
+elderly
+lady
+who
+had
+died
+some
+time
+before
+A
+fact
+not
+known
+to
+us
+until
+later
+The
+house
+had
+been
+moved
+to
+Mr
+C
+s
+lot
+remodeled
+there
+and
+the
+C
+s
+had
+then
+moved
+into
+it
+only
+to
+be
+disturbed
+by
+noises
+of
+all
+kinds
+Every
+night
+between
+twelve
+and
+four
+the
+door
+of
+a
+closet
+between
+two
+bedrooms
+was
+shaken
+and
+rattled
+loudly
+and
+rappings
+and
+crackings
+kept
+the
+family
+awake
+While
+we
+were
+seated
+in
+one
+of
+the
+rooms
+of
+the
+C
+home
+discussing
+the
+situation
+Mrs
+Wickland
+became
+unexpectedly
+entranced
+by
+a
+spirit
+who
+complained
+of
+intense
+rheumatism
+and
+stormed
+at
+the
+C
+s
+for
+living
+in
+her
+house
+This
+is
+my
+house
+she
+declared
+peremptorily
+and
+these
+people
+have
+no
+business
+in
+it
+I
+will
+chase
+them
+out
+The
+controlling
+spirit
+proved
+to
+be
+the
+former
+owner
+of
+the
+house
+and
+later
+inquiry
+bore
+out
+the
+statement
+that
+she
+had
+suffered
+severely
+from
+rheumatism
+She
+could
+not
+realize
+that
+she
+was
+dead
+but
+insisted
+that
+she
+was
+still
+living
+in
+her
+own
+house
+although
+troubled
+by
+intruders
+If
+I
+am
+dead
+why
+am
+I
+not
+in
+Heaven
+she
+asked
+Many
+explanations
+at
+last
+resulted
+in
+understanding
+and
+a
+penitent
+departure
+and
+in
+a
+letter
+written
+several
+months
+later
+Mr
+C
+stated
+that
+all
+noises
+had
+entirely
+ceased
+in
+the
+house
+That
+spirits
+often
+play
+a
+serious
+part
+in
+domestic
+disturbances
+and
+break
+up
+many
+homes
+we
+have
+had
+ample
+evidence
+A
+patient
+Mrs
+SI
+who
+was
+brought
+to
+us
+from
+a
+Northern
+state
+was
+the
+second
+wife
+of
+a
+Dakota
+farmer
+After
+the
+birth
+of
+her
+first
+child
+she
+developed
+a
+tendency
+to
+wander
+away
+at
+random
+and
+when
+brought
+back
+and
+questioned
+she
+could
+only
+give
+vague
+answers
+but
+always
+insisted
+that
+her
+husband
+a
+steady
+reliable
+farmer
+was
+faithless
+to
+her
+When
+the
+obsessing
+spirit
+was
+transferred
+to
+Mrs
+Wickland
+we
+found
+that
+it
+was
+none
+other
+than
+the
+first
+wife
+who
+indignantly
+accused
+her
+husband
+of
+being
+faithless
+to
+her
+and
+said
+that
+she
+was
+determined
+to
+get
+rid
+of
+her
+rival
+After
+passing
+out
+of
+the
+physical
+body
+she
+had
+remained
+on
+the
+farm
+but
+she
+was
+unaware
+of
+her
+death
+and
+did
+not
+realize
+that
+her
+rival
+was
+her
+husband
+s
+second
+wife
+The
+spirit
+after
+due
+explanation
+and
+enlightenment
+left
+and
+Mrs
+SI
+restored
+to
+herself
+returned
+to
+her
+Dakota
+home
+We
+had
+a
+similar
+experience
+with
+an
+acquaintance
+of
+ours
+a
+gentleman
+whose
+first
+wife
+had
+died
+leaving
+him
+to
+care
+for
+their
+small
+son
+Later
+he
+married
+again
+but
+before
+long
+we
+noticed
+that
+the
+family
+life
+was
+becoming
+unhappy
+and
+the
+culmination
+came
+one
+Sunday
+morning
+when
+the
+second
+wife
+angrily
+left
+the
+house
+The
+husband
+desolately
+came
+to
+our
+home
+followed
+presently
+by
+the
+little
+boy
+and
+although
+they
+had
+never
+visited
+us
+before
+they
+remained
+for
+some
+hours
+In
+the
+evening
+the
+boy
+returned
+and
+while
+Mrs
+Wickland
+was
+conversing
+with
+him
+and
+a
+group
+of
+friends
+she
+became
+controlled
+by
+the
+spirit
+of
+a
+woman
+who
+said
+she
+was
+the
+boy
+s
+mother
+She
+had
+no
+knowledge
+of
+her
+death
+and
+craved
+longingly
+to
+caress
+her
+small
+son
+saying
+I
+want
+my
+boy
+I
+want
+my
+boy
+Then
+she
+burst
+forth
+into
+a
+jealous
+denunciation
+of
+her
+successor
+and
+declared
+she
+would
+drive
+her
+out
+of
+the
+house
+I
+chased
+her
+away
+this
+morning
+she
+exulted
+She
+too
+was
+finally
+made
+to
+understand
+the
+true
+situation
+and
+regretting
+the
+suffering
+she
+had
+caused
+promised
+to
+do
+everything
+possible
+to
+make
+amends
+The
+second
+wife
+returned
+home
+again
+and
+during
+the
+ten
+years
+which
+have
+elapsed
+since
+this
+episode
+no
+further
+disturbances
+have
+occurred
+in
+the
+family
+Miss
+L
+was
+the
+young
+fiancee
+of
+a
+widower
+who
+had
+formerly
+with
+his
+wife
+occupied
+a
+flat
+in
+the
+same
+building
+in
+which
+the
+Young
+lady
+lived
+and
+the
+two
+women
+had
+been
+intimate
+friends
+The
+wife
+died
+very
+suddenly
+and
+some
+time
+after
+her
+death
+the
+gentleman
+became
+engaged
+to
+the
+young
+lady
+Soon
+after
+this
+the
+latter
+began
+to
+show
+mental
+abnormalities
+which
+continually
+grew
+worse
+In
+her
+normal
+condition
+she
+esteemed
+the
+man
+highly
+but
+when
+she
+came
+to
+us
+she
+had
+a
+violent
+dislike
+for
+him
+and
+asserted
+that
+she
+would
+rather
+die
+or
+go
+to
+an
+insane
+asylum
+than
+marry
+him
+She
+had
+made
+several
+attempts
+to
+end
+her
+life
+but
+had
+each
+time
+seemed
+to
+come
+to
+herself
+at
+the
+last
+moment
+and
+called
+for
+help
+At
+the
+time
+the
+patient
+entered
+the
+Institute
+Mrs
+Wickland
+clairvoyantly
+saw
+the
+spirit
+of
+a
+woman
+of
+the
+brunette
+type
+possessing
+the
+patient
+who
+was
+a
+decided
+blond
+This
+spirit
+was
+so
+interblended
+with
+the
+patient
+that
+it
+was
+difficult
+for
+Mrs
+Wickland
+to
+determine
+from
+the
+transfiguration
+whether
+the
+patient
+was
+light
+or
+dark
+When
+Mrs
+Wickland
+described
+this
+spirit
+the
+patient
+s
+mother
+and
+fiance
+both
+recognized
+her
+as
+the
+man
+s
+former
+wife
+The
+patient
+proved
+very
+obdurate
+screaming
+spells
+alternated
+with
+obstinate
+stubborn
+moods
+and
+she
+could
+not
+be
+left
+alone
+at
+any
+time
+She
+declared
+herself
+insane
+and
+scoffed
+at
+being
+cured
+and
+insisted
+that
+she
+wanted
+to
+die
+for
+if
+she
+lived
+she
+would
+have
+to
+marry
+that
+man
+One
+day
+during
+a
+treatment
+she
+entered
+a
+semi
+trance
+condition
+and
+a
+spirit
+intelligence
+expressed
+itself
+forcefully
+He
+shall
+never
+marry
+her
+He
+shall
+never
+have
+her
+I
+will
+drive
+her
+to
+an
+insane
+asylum
+or
+I
+will
+kill
+her
+but
+he
+shall
+never
+have
+her
+Immediately
+following
+this
+the
+spirit
+of
+a
+child
+spoke
+defensively
+as
+if
+protecting
+a
+mother
+The
+patient
+s
+sister
+who
+was
+present
+recognized
+in
+the
+latter
+intelligence
+the
+deceased
+thirteen
+year
+old
+son
+of
+the
+dead
+wife
+The
+climax
+came
+a
+few
+days
+later
+The
+patient
+had
+been
+unusually
+obstinate
+and
+unruly
+and
+very
+contemptuous
+to
+her
+fiance
+when
+he
+called
+After
+a
+strong
+treatment
+was
+administered
+the
+patient
+became
+quiet
+and
+slept
+well
+that
+night
+However
+during
+the
+night
+Mrs
+Wickland
+was
+greatly
+troubled
+by
+the
+presence
+of
+a
+spirit
+who
+annoyed
+her
+until
+four
+o
+clock
+in
+the
+morning
+when
+she
+became
+completely
+entranced
+by
+the
+spirit
+of
+the
+man
+s
+former
+wife
+After
+considerable
+effort
+I
+induced
+the
+spirit
+to
+talk
+but
+she
+was
+with
+difficulty
+convinced
+of
+her
+real
+situation
+that
+she
+was
+a
+spirit
+and
+controlling
+Mrs
+Wickland
+s
+body
+She
+strongly
+censured
+both
+her
+forrner
+husband
+and
+our
+patient
+for
+their
+treachery
+to
+her
+and
+repeated
+her
+threats
+against
+the
+girl
+I
+will
+send
+her
+to
+the
+asylum
+I
+will
+kill
+her
+she
+declared
+A
+great
+deal
+of
+argument
+and
+persuasion
+were
+needed
+to
+bring
+the
+spirit
+to
+repentance
+but
+this
+was
+at
+last
+accomplished
+Upon
+being
+asked
+if
+her
+son
+was
+with
+her
+she
+said
+that
+she
+had
+seen
+him
+at
+times
+but
+that
+he
+was
+dead
+and
+she
+did
+not
+want
+to
+have
+anything
+to
+do
+with
+him
+The
+spirit
+was
+urged
+to
+leave
+the
+young
+woman
+whom
+she
+was
+tormenting
+and
+go
+with
+other
+spirit
+intelligences
+to
+a
+higher
+life
+of
+which
+she
+showed
+herself
+entirely
+ignorant
+Although
+repentant
+she
+still
+longed
+to
+remain
+on
+the
+earth
+plane
+but
+finally
+consented
+to
+leave
+and
+to
+cease
+troubling
+the
+patient
+then
+she
+suddenly
+became
+weak
+and
+declared
+she
+was
+dying
+This
+sensation
+often
+occurs
+when
+spirits
+realize
+their
+actual
+situation
+sometimes
+they
+again
+experience
+the
+physical
+conditions
+under
+which
+they
+passed
+out
+of
+their
+earth
+bodies
+Chills
+and
+violent
+attacks
+of
+coughing
+added
+to
+the
+spirit
+s
+distress
+and
+after
+a
+painful
+pseudo
+death
+struggle
+she
+left
+These
+symptoms
+were
+recognized
+by
+her
+husband
+and
+the
+patient
+s
+mother
+as
+corresponding
+exactly
+with
+those
+manifested
+by
+the
+man
+s
+wife
+at
+the
+time
+of
+her
+death
+from
+pneumonia
+After
+this
+the
+patient
+recovered
+rapidly
+She
+was
+soon
+able
+to
+leave
+the
+Institute
+is
+now
+well
+and
+happily
+married
+A
+peculiar
+case
+was
+that
+of
+Mr
+Me
+a
+well
+known
+man
+in
+Chicago
+whose
+family
+name
+is
+one
+of
+highest
+social
+prominence
+This
+man
+suddenly
+began
+to
+act
+strangely
+he
+shunned
+the
+members
+of
+his
+family
+and
+told
+his
+wife
+and
+relatives
+that
+he
+wished
+to
+live
+on
+a
+higher
+plane
+and
+wanted
+nothing
+more
+to
+do
+with
+them
+Then
+one
+day
+he
+packed
+his
+trunk
+and
+left
+home
+going
+to
+live
+in
+a
+small
+room
+which
+he
+had
+rented
+in
+the
+lowest
+section
+of
+the
+city
+We
+had
+never
+seen
+this
+gentleman
+but
+a
+relative
+of
+his
+who
+knew
+of
+our
+work
+asked
+us
+to
+concentrate
+for
+him
+at
+our
+next
+psychic
+circle
+we
+did
+so
+and
+a
+spirit
+was
+brought
+who
+controlled
+Mrs
+Wickland
+After
+some
+solicitation
+she
+gave
+her
+full
+name
+confessing
+that
+she
+had
+been
+the
+first
+wife
+of
+Mr
+Me
+and
+she
+then
+told
+her
+story
+She
+had
+met
+Mr
+Me
+in
+Chicago
+during
+the
+World
+s
+Fair
+and
+for
+a
+time
+they
+had
+lived
+together
+without
+the
+formality
+of
+marriage
+until
+his
+relatives
+discovered
+the
+situation
+and
+compelled
+them
+to
+marry
+The
+girl
+was
+accepted
+in
+society
+but
+rebelled
+at
+the
+restraints
+of
+conventional
+life
+and
+being
+of
+a
+vain
+and
+restless
+disposition
+could
+not
+live
+happily
+with
+her
+husband
+She
+finally
+left
+him
+and
+went
+to
+the
+west
+side
+where
+she
+entered
+a
+house
+of
+ill
+repute
+Although
+at
+times
+she
+regretted
+the
+folly
+of
+her
+conduct
+she
+continued
+her
+mode
+of
+living
+became
+a
+morphine
+addict
+and
+finally
+committed
+suicide
+After
+her
+death
+she
+had
+returned
+to
+her
+husband
+and
+when
+he
+married
+again
+she
+felt
+angrily
+aggrieved
+and
+at
+last
+influenced
+him
+to
+leave
+his
+wife
+and
+child
+to
+go
+to
+quarters
+where
+she
+herself
+felt
+more
+at
+home
+We
+convinced
+her
+of
+the
+great
+wrong
+she
+was
+doing
+in
+controlling
+her
+former
+husband
+in
+this
+manner
+and
+after
+she
+had
+obtained
+an
+understanding
+of
+the
+progress
+awaiting
+her
+in
+the
+spirit
+world
+she
+promised
+to
+leave
+wishing
+to
+attain
+a
+higher
+condition
+When
+next
+we
+saw
+the
+relative
+of
+Mr
+Me
+who
+had
+asked
+us
+to
+concentrate
+for
+him
+we
+told
+her
+of
+the
+story
+related
+by
+the
+spirit
+and
+in
+amazement
+she
+admitted
+it
+was
+true
+in
+every
+detail
+that
+the
+name
+given
+was
+correct
+and
+that
+Mr
+Me
+had
+been
+married
+before
+but
+that
+the
+unfortunate
+episode
+had
+been
+regarded
+by
+the
+family
+as
+a
+skeleton
+in
+the
+closet
+and
+was
+never
+mentioned
+She
+later
+reported
+that
+Mr
+Me
+had
+returned
+to
+his
+home
+normal
+and
+sane
+and
+was
+again
+living
+happily
+with
+his
+wife
+and
+child
+CHAPTER
+VI
+Spirits
+and
+Crime
+HABITS
+desires
+and
+inclinations
+are
+rooted
+in
+the
+mind
+and
+remain
+with
+the
+individual
+after
+he
+is
+freed
+from
+his
+physical
+body
+until
+they
+are
+eliminated
+by
+the
+will
+The
+spirits
+of
+many
+criminals
+murderers
+those
+who
+were
+executed
+or
+are
+seeking
+for
+revenge
+remain
+indefinitely
+in
+the
+earth
+sphere
+and
+often
+endeavor
+to
+continue
+their
+former
+activities
+and
+to
+carry
+out
+their
+evil
+designs
+through
+controlling
+the
+bodies
+of
+mortals
+who
+are
+sensitive
+to
+their
+influence
+In
+many
+cases
+of
+revolting
+murder
+investigations
+will
+show
+that
+the
+crimes
+were
+committed
+by
+innocent
+persons
+under
+the
+control
+of
+disembodied
+spirits
+who
+had
+taken
+complete
+possession
+of
+the
+murderer
+There
+is
+little
+doubt
+that
+the
+murder
+of
+Stanford
+White
+by
+Harry
+K
+Thaw
+in
+at
+Madison
+Square
+Roof
+Garden
+New
+York
+was
+due
+to
+spirit
+influence
+Harry
+Thaw
+was
+a
+psychic
+sensitive
+and
+had
+shown
+evidence
+of
+this
+fact
+all
+his
+life
+and
+whatever
+personal
+grievances
+he
+may
+have
+had
+when
+he
+killed
+Stanford
+White
+he
+was
+unquestionably
+obsessed
+by
+avenging
+spirits
+who
+desired
+retribution
+for
+real
+or
+fancied
+injustice
+done
+to
+themselves
+or
+kindred
+Harry
+Thaw
+was
+largely
+only
+the
+psychic
+subject
+and
+the
+physical
+instrument
+through
+which
+was
+enacted
+a
+terrible
+drama
+by
+the
+invisible
+world
+the
+actors
+being
+ignorant
+revengeful
+spirits
+On
+July
+several
+weeks
+after
+the
+tragedy
+occurred
+a
+strange
+spirit
+controlled
+Mrs
+Wickland
+during
+a
+psychic
+circle
+and
+fell
+prostrate
+to
+the
+floor
+Placing
+the
+form
+of
+my
+wife
+in
+a
+chair
+I
+began
+questioning
+the
+controlling
+intelligence
+The
+stranger
+strenuously
+objected
+to
+being
+touched
+brusquely
+demanded
+to
+be
+left
+alone
+and
+called
+out
+Hey
+there
+waiter
+Bring
+me
+a
+drink
+What
+kind
+of
+drink
+do
+you
+want
+Bring
+me
+a
+whiskey
+and
+soda
+and
+be
+quick
+about
+it
+Who
+are
+you
+None
+of
+your
+business
+who
+I
+am
+Where
+do
+you
+think
+you
+are
+In
+Madison
+Square
+Roof
+Garden
+of
+course
+What
+is
+your
+named
+Stanford
+White
+Holding
+one
+hand
+on
+the
+back
+of
+his
+head
+on
+the
+right
+side
+and
+clutching
+at
+his
+chest
+and
+abdomen
+as
+if
+in
+great
+pain
+he
+cried
+Have
+a
+waiter
+bring
+me
+that
+whiskey
+and
+soda
+I
+was
+about
+to
+ask
+further
+questions
+when
+the
+spirit
+s
+attention
+was
+attracted
+to
+some
+invisible
+and
+he
+began
+to
+tremble
+with
+fear
+Are
+you
+seeing
+dead
+people
+I
+asked
+He
+nodded
+his
+head
+violently
+then
+shouted
+They
+are
+after
+me
+and
+jumping
+from
+the
+chair
+ran
+to
+a
+corner
+of
+the
+room
+in
+an
+effort
+to
+escape
+His
+agitation
+was
+so
+great
+that
+he
+lost
+control
+of
+the
+psychic
+and
+was
+gone
+Immediately
+another
+spirit
+took
+possession
+of
+the
+psychic
+and
+in
+great
+excitement
+began
+to
+walk
+back
+and
+forth
+exclaiming
+exultantly
+I
+killed
+the
+dog
+I
+killed
+the
+dog
+There
+he
+lies
+pointing
+at
+the
+floor
+toward
+the
+spot
+where
+White
+had
+lost
+control
+The
+dog
+I
+have
+been
+looking
+for
+a
+chance
+to
+kill
+him
+for
+several
+years
+and
+I
+got
+him
+at
+last
+The
+dog
+I
+forced
+the
+spirit
+to
+sit
+down
+and
+learned
+that
+his
+name
+was
+Johnson
+I
+killed
+Stanford
+White
+he
+boasted
+He
+deserved
+death
+He
+had
+trifled
+too
+long
+with
+our
+daughters
+He
+was
+very
+pronounced
+in
+his
+denunciation
+of
+society
+men
+They
+steal
+our
+children
+from
+us
+and
+put
+fine
+clothes
+on
+them
+and
+the
+parents
+do
+not
+know
+what
+becomes
+of
+them
+I
+asked
+the
+spirit
+whether
+he
+was
+aware
+of
+being
+dead
+but
+he
+laughed
+at
+the
+idea
+and
+said
+How
+could
+a
+dead
+person
+talk
+The
+doctor
+said
+I
+had
+consumption
+and
+would
+die
+soon
+but
+I
+didn
+t
+die
+I
+never
+felt
+better
+in
+my
+life
+When
+asked
+to
+carefully
+examine
+his
+hands
+feet
+and
+dress
+he
+demanded
+to
+know
+how
+he
+a
+man
+became
+possessed
+of
+a
+woman
+s
+body
+Lengthy
+argument
+finally
+convinced
+the
+perplexed
+spirit
+of
+the
+fact
+of
+his
+transition
+and
+he
+departed
+thoroughly
+penitent
+He
+was
+followed
+by
+a
+third
+entity
+but
+this
+intelligence
+was
+aware
+of
+being
+a
+spirit
+temporarily
+controlling
+a
+borrowed
+body
+I
+am
+Harry
+Thaw
+s
+father
+Save
+my
+boy
+Save
+my
+boy
+He
+is
+not
+guilty
+Harry
+will
+not
+be
+electrocuted
+Later
+events
+proved
+this
+to
+be
+true
+He
+is
+sensitive
+to
+spirit
+influence
+and
+has
+been
+all
+his
+life
+He
+was
+always
+erratic
+and
+so
+excitable
+that
+we
+were
+afraid
+to
+correct
+him
+for
+fear
+he
+would
+become
+insane
+But
+I
+see
+our
+mistake
+now
+I
+did
+not
+understand
+the
+cause
+of
+Harry
+s
+queer
+actions
+while
+I
+was
+in
+the
+physical
+but
+now
+from
+the
+spirit
+side
+of
+life
+I
+can
+see
+that
+Harry
+has
+been
+a
+tool
+in
+the
+hands
+of
+selfish
+earthbound
+spirits
+most
+of
+his
+life
+He
+was
+obsessed
+by
+revengeful
+spirits
+when
+he
+killed
+Stanford
+White
+I
+have
+tried
+to
+reach
+the
+external
+world
+by
+every
+possible
+avenue
+to
+tell
+the
+people
+that
+Harry
+is
+not
+insane
+but
+that
+he
+is
+a
+psychic
+sensitive
+Save
+my
+boy
+Save
+my
+boy
+he
+begged
+repeatedly
+What
+would
+you
+have
+us
+do
+Please
+write
+to
+my
+wife
+and
+to
+my
+attorney
+Mr
+Olcott
+We
+did
+not
+then
+know
+that
+Mr
+Olcott
+had
+been
+Mr
+Thaw
+s
+attorney
+but
+verified
+the
+fact
+afterward
+Tell
+them
+your
+experience
+and
+what
+I
+have
+said
+to
+you
+and
+urge
+them
+to
+recognize
+and
+understand
+Harry
+s
+condition
+We
+promised
+to
+comply
+with
+the
+wish
+of
+the
+spirit
+and
+he
+then
+departed
+The
+following
+evening
+July
+another
+spirit
+came
+he
+seemed
+at
+first
+to
+be
+looking
+for
+some
+one
+then
+asked
+Where
+did
+the
+other
+fellows
+go
+This
+spirit
+also
+condemned
+high
+society
+in
+general
+and
+denounced
+young
+girls
+in
+particular
+for
+their
+foolishness
+The
+rich
+take
+our
+girls
+to
+their
+dens
+they
+put
+them
+on
+the
+stage
+and
+the
+girls
+disown
+their
+parents
+They
+deserve
+licking
+he
+declared
+and
+emphasized
+his
+words
+with
+suitable
+gestures
+This
+spirit
+was
+laboring
+under
+such
+great
+mental
+excitement
+that
+he
+suddenly
+lost
+control
+before
+I
+could
+ascertain
+any
+particulars
+On
+February
+the
+spirit
+of
+Mr
+Thaw
+returned
+and
+reiterated
+his
+statement
+that
+Harry
+was
+a
+psychic
+sensitive
+who
+was
+frequently
+subject
+to
+the
+influence
+of
+mischievous
+spirits
+He
+also
+urged
+upon
+humanity
+the
+great
+need
+for
+inquiry
+into
+the
+subject
+of
+spirit
+influence
+saying
+that
+a
+proper
+understanding
+would
+prevent
+untold
+misery
+to
+both
+spirits
+and
+their
+unfortunate
+mortal
+victims
+That
+Richard
+Ivens
+hung
+for
+the
+murder
+of
+Mrs
+Bessie
+Hollister
+in
+Chicago
+was
+a
+victim
+of
+foreign
+influences
+was
+so
+evident
+that
+alienists
+criminologists
+and
+psychologists
+alike
+declared
+their
+belief
+that
+Ivens
+was
+innocent
+and
+that
+he
+had
+confessed
+the
+crime
+under
+the
+hypnotic
+suggestion
+of
+some
+unknown
+person
+Ivens
+would
+alternately
+confess
+his
+guilt
+saying
+with
+a
+strange
+trance
+like
+stare
+that
+a
+big
+man
+had
+compelled
+him
+to
+commit
+the
+deed
+and
+then
+again
+wildly
+deny
+it
+Hugo
+Munsterburg
+M
+D
+Professor
+of
+Psychology
+Harvard
+University
+wrote
+in
+June
+It
+is
+an
+interesting
+and
+yet
+rather
+clear
+case
+of
+dissociation
+and
+auto
+suggestion
+The
+witches
+of
+the
+seventeenth
+century
+were
+burned
+on
+account
+of
+similar
+confessions
+and
+the
+popular
+understanding
+of
+mental
+aberrations
+has
+not
+made
+much
+progress
+since
+that
+time
+Professor
+William
+James
+of
+Harvard
+wrote
+Whether
+guilty
+or
+not
+Ivens
+must
+have
+been
+in
+a
+state
+of
+dissociated
+personality
+He
+was
+not
+his
+natural
+self
+during
+those
+fateful
+first
+days
+but
+the
+victim
+of
+one
+of
+those
+rare
+alterations
+of
+personality
+either
+suggested
+or
+spontaneous
+which
+are
+now
+well
+known
+to
+occur
+in
+predisposed
+subjects
+We
+present
+a
+sequel
+to
+this
+tragic
+story
+EXPERIENCE
+MARCH
+Spirit
+RICHARD
+IVENS
+Psychic
+MRS
+WICKLAND
+When
+the
+spirit
+assumed
+control
+the
+psychic
+fell
+to
+the
+floor
+apparently
+lifeless
+and
+only
+after
+half
+an
+hour
+of
+strenuous
+effort
+was
+the
+intelligence
+brought
+to
+consciousness
+Leave
+me
+alone
+he
+moaned
+do
+you
+want
+to
+hang
+me
+again
+He
+complained
+of
+having
+great
+pain
+in
+the
+neck
+and
+begged
+to
+be
+left
+undisturbed
+saying
+he
+wanted
+only
+to
+sleep
+What
+is
+the
+trouble
+with
+your
+neck
+It
+is
+broken
+They
+hanged
+me
+and
+I
+am
+dead
+I
+want
+to
+remain
+dead
+if
+you
+bring
+me
+to
+life
+they
+will
+hang
+me
+again
+What
+is
+your
+name
+Richard
+Ivens
+Were
+you
+guilty
+of
+the
+murder
+of
+Mrs
+Hollister
+I
+do
+not
+know
+Others
+said
+I
+was
+If
+I
+did
+it
+I
+do
+not
+know
+it
+Why
+did
+you
+plead
+guilty
+at
+times
+and
+then
+again
+deny
+your
+confession
+I
+pleaded
+guilty
+because
+those
+three
+fellows
+spirits
+made
+me
+The
+big
+man
+stood
+over
+me
+with
+a
+knife
+and
+threatened
+to
+kill
+me
+if
+I
+would
+not
+plead
+guilty
+When
+the
+big
+man
+was
+not
+there
+I
+told
+them
+that
+I
+did
+not
+know
+whether
+I
+killed
+the
+lady
+or
+not
+I
+told
+it
+to
+the
+police
+I
+told
+it
+to
+the
+jailer
+and
+to
+everybody
+that
+questioned
+me
+but
+they
+would
+not
+believe
+me
+when
+I
+told
+them
+the
+truth
+I
+have
+suffered
+so
+much
+Why
+did
+you
+call
+me
+back
+when
+I
+was
+dead
+Why
+didn
+t
+you
+let
+me
+sleep
+They
+will
+arrest
+me
+and
+hang
+me
+again
+Suddenly
+the
+spirit
+shouted
+with
+fright
+Don
+t
+you
+see
+There
+is
+that
+big
+man
+again
+He
+has
+his
+knife
+and
+the
+two
+short
+fellows
+are
+with
+him
+Oh
+Clutching
+his
+knee
+he
+cried
+My
+knee
+He
+has
+driven
+the
+knife
+through
+my
+knee
+and
+through
+the
+other
+leg
+My
+leg
+My
+leg
+He
+is
+the
+devil
+He
+has
+stabbed
+me
+The
+terrified
+spirit
+was
+gradually
+made
+to
+understand
+that
+his
+tormentors
+were
+spirits
+that
+he
+was
+free
+from
+his
+physical
+body
+and
+beyond
+the
+power
+of
+bodily
+harm
+You
+are
+using
+a
+body
+not
+your
+own
+and
+need
+now
+to
+free
+yourself
+from
+all
+mental
+delusions
+Do
+you
+not
+see
+other
+spirits
+beside
+your
+enemies
+Why
+yes
+there
+are
+others
+now
+they
+seem
+to
+be
+friendly
+and
+there
+there
+s
+Mrs
+Hollister
+Ask
+the
+man
+with
+the
+knife
+why
+he
+hounds
+you
+I
+suggested
+He
+only
+grins
+Ask
+him
+why
+he
+wanted
+to
+kill
+the
+lady
+He
+says
+because
+he
+hates
+women
+he
+stopped
+abruptly
+and
+breathless
+seemed
+to
+be
+watching
+a
+scene
+of
+great
+disturbance
+They
+have
+taken
+those
+devils
+away
+It
+was
+a
+lively
+fight
+but
+they
+got
+them
+Calming
+himself
+he
+said
+I
+feel
+better
+now
+I
+am
+so
+glad
+that
+terrible
+man
+is
+gone
+Asked
+to
+recall
+what
+he
+could
+of
+the
+Hollister
+tragedy
+he
+said
+When
+I
+saw
+the
+woman
+that
+night
+I
+also
+saw
+the
+big
+man
+My
+head
+began
+to
+feel
+very
+strange
+I
+was
+grabbed
+by
+the
+throat
+and
+lost
+consciousness
+When
+I
+came
+to
+myself
+again
+the
+big
+man
+said
+that
+I
+had
+killed
+the
+woman
+I
+had
+known
+the
+man
+for
+about
+a
+month
+but
+I
+did
+not
+know
+he
+was
+a
+spirit
+He
+has
+been
+hounding
+me
+ever
+since
+Why
+didn
+t
+they
+give
+me
+a
+chance
+to
+live
+even
+if
+I
+would
+have
+been
+in
+prison
+Oh
+the
+shame
+I
+have
+brought
+upon
+my
+family
+I
+feel
+so
+sorry
+for
+my
+poor
+mother
+if
+she
+could
+only
+know
+the
+truth
+If
+I
+could
+only
+speak
+to
+her
+and
+tell
+her
+that
+I
+could
+not
+help
+it
+that
+I
+did
+not
+do
+it
+Nobody
+had
+any
+sympathy
+for
+me
+and
+nobody
+would
+believe
+me
+when
+I
+told
+them
+about
+the
+big
+fellow
+standing
+over
+me
+with
+the
+knife
+He
+made
+me
+plead
+guilty
+If
+I
+committed
+the
+crime
+I
+am
+sorry
+for
+it
+but
+I
+don
+t
+know
+that
+I
+have
+done
+it
+Why
+did
+they
+kill
+me
+After
+I
+had
+explained
+the
+continuity
+of
+life
+and
+progression
+into
+higher
+spiritual
+realms
+he
+eagerly
+asked
+If
+they
+did
+not
+kill
+me
+is
+the
+lady
+still
+alive
+also
+Certainly
+doubtless
+she
+has
+come
+here
+to
+forgive
+you
+Although
+you
+destroyed
+her
+physical
+body
+you
+were
+not
+responsible
+for
+the
+act
+you
+were
+merely
+used
+by
+wicked
+spirits
+who
+hypnotized
+you
+With
+this
+new
+understanding
+the
+weary
+spirit
+was
+taken
+in
+charge
+by
+invisible
+helpers
+who
+told
+us
+that
+the
+Big
+Man
+and
+his
+accomplices
+had
+in
+earth
+life
+belonged
+to
+a
+band
+of
+White
+Caps
+which
+had
+operated
+extensively
+for
+some
+years
+in
+England
+and
+America
+mutilating
+and
+killing
+many
+women
+in
+their
+criminal
+mania
+Several
+months
+later
+the
+spirit
+of
+the
+Big
+Man
+himself
+was
+brought
+to
+our
+circle
+EXPERIENCE
+JUNE
+Spirit
+CHARLES
+THE
+FIGHTER
+Psychic
+MRS
+WICKLAND
+The
+spirit
+seemed
+stupefied
+by
+drink
+and
+when
+finally
+aroused
+was
+so
+pugnacious
+that
+the
+aid
+of
+several
+persons
+was
+required
+to
+quiet
+him
+I
+m
+Charles
+The
+Fighter
+and
+I
+ll
+have
+you
+all
+shot
+he
+shouted
+Turning
+to
+some
+other
+invisibles
+he
+cursed
+them
+for
+having
+lured
+him
+to
+this
+place
+and
+commanded
+them
+to
+help
+him
+instead
+of
+standing
+idly
+by
+Subdued
+at
+last
+Charles
+The
+Fighter
+was
+compelled
+to
+listen
+to
+an
+elucidation
+of
+his
+real
+situation
+In
+an
+endeavor
+to
+convince
+him
+that
+he
+was
+controlling
+the
+body
+of
+another
+he
+was
+asked
+to
+examine
+the
+hands
+of
+the
+psychic
+Seeing
+the
+hand
+of
+a
+woman
+he
+shrank
+back
+terror
+stricken
+and
+cried
+Take
+that
+hand
+away
+Take
+it
+away
+I
+don
+t
+want
+to
+see
+it
+any
+more
+Questioned
+regarding
+the
+story
+of
+the
+hand
+he
+declared
+I
+shall
+never
+tell
+I
+would
+rather
+die
+Oh
+There
+is
+her
+face
+too
+And
+the
+hand
+that
+I
+cut
+off
+to
+get
+the
+diamond
+ring
+They
+haunted
+me
+all
+this
+time
+Looking
+about
+in
+horror
+he
+seemed
+to
+see
+a
+vast
+gathering
+of
+specters
+See
+all
+those
+faces
+Have
+I
+killed
+all
+those
+people
+Have
+they
+come
+to
+accuse
+me
+There
+There
+is
+that
+boy
+He
+was
+hung
+once
+but
+he
+seems
+to
+be
+after
+me
+too
+Ivens
+I
+killed
+the
+woman
+but
+I
+made
+him
+confess
+to
+save
+my
+own
+neck
+But
+just
+wait
+you
+devil
+you
+I
+will
+fix
+you
+when
+I
+get
+out
+of
+this
+I
+will
+cut
+you
+all
+to
+pieces
+But
+at
+last
+Charles
+The
+Fighter
+realized
+that
+further
+resistance
+was
+useless
+and
+that
+his
+days
+of
+robbery
+and
+murder
+were
+over
+He
+told
+of
+his
+hideous
+career
+of
+crime
+and
+said
+that
+he
+murdered
+for
+revenge
+stole
+to
+buy
+whiskey
+and
+drank
+to
+drown
+his
+conscience
+and
+to
+escape
+the
+specters
+which
+constantly
+haunted
+him
+In
+early
+childhood
+he
+had
+been
+happy
+under
+the
+care
+of
+his
+own
+mother
+but
+after
+her
+death
+his
+stepmother
+had
+abused
+him
+so
+mercilessly
+that
+he
+often
+rushed
+sobbing
+to
+his
+room
+and
+on
+his
+knees
+prayed
+to
+his
+dead
+mother
+for
+help
+This
+roused
+the
+stepmother
+to
+a
+jealous
+fury
+and
+regardless
+of
+the
+protests
+of
+a
+weak
+father
+she
+had
+beaten
+him
+angrily
+forbidding
+him
+to
+ever
+mention
+the
+name
+of
+his
+mother
+again
+Her
+abuse
+grew
+into
+such
+a
+cruel
+tyranny
+that
+the
+boy
+had
+developed
+an
+over
+powering
+hatred
+for
+her
+and
+revengefully
+vowed
+that
+when
+he
+was
+grown
+he
+would
+kill
+every
+woman
+possible
+Consistently
+he
+had
+carried
+out
+his
+ghastly
+purpose
+and
+had
+given
+his
+entire
+life
+to
+plotting
+and
+perpetrating
+atrocities
+and
+crimes
+generally
+victimizing
+women
+Ile
+had
+died
+in
+during
+a
+wild
+fight
+with
+his
+companions
+but
+he
+had
+not
+been
+aware
+of
+the
+loss
+of
+his
+physical
+body
+He
+boasted
+that
+for
+many
+years
+he
+had
+continued
+his
+crimes
+always
+eluding
+the
+police
+Once
+in
+Boston
+I
+wanted
+to
+kill
+a
+policeman
+but
+when
+I
+sneaked
+up
+behind
+him
+and
+hit
+him
+on
+the
+head
+with
+a
+club
+the
+club
+went
+right
+through
+him
+and
+never
+hurt
+him
+He
+didn
+t
+even
+turn
+around
+The
+spirit
+thought
+himself
+now
+in
+the
+hands
+of
+authorities
+but
+declared
+that
+he
+was
+willing
+to
+give
+himself
+up
+to
+escape
+the
+haunting
+faces
+of
+his
+many
+victims
+I
+would
+be
+glad
+to
+go
+to
+bell
+to
+get
+away
+from
+this
+torment
+While
+listening
+to
+an
+explanation
+of
+the
+law
+of
+cause
+and
+effect
+and
+the
+conditions
+prevailing
+in
+the
+spirit
+world
+Charles
+saw
+his
+own
+mother
+standing
+before
+him
+The
+sight
+of
+her
+had
+an
+overwhelming
+effect
+the
+hardened
+criminal
+cowered
+in
+his
+seat
+and
+wept
+piteously
+while
+his
+mother
+pleaded
+with
+him
+to
+come
+with
+her
+and
+learn
+to
+expiate
+his
+crimes
+I
+Crushed
+by
+guilt
+and
+remorse
+he
+cried
+abjectly
+I
+cannot
+go
+with
+you
+Dear
+mother
+don
+t
+ask
+me
+to
+go
+with
+you
+You
+must
+go
+back
+to
+Heaven
+and
+I
+must
+go
+to
+hell
+where
+I
+belong
+I
+must
+be
+cut
+to
+pieces
+and
+burned
+in
+the
+fires
+of
+hell
+But
+maternal
+love
+prevailed
+and
+the
+spirit
+humble
+and
+penitent
+followed
+his
+mother
+in
+Harry
+Hayward
+a
+handsome
+reprobate
+with
+a
+weakness
+for
+beautiful
+women
+and
+a
+life
+of
+gaiety
+hired
+a
+villain
+to
+murder
+his
+sweetheart
+in
+Minnesota
+and
+was
+hanged
+While
+he
+was
+in
+prison
+awaiting
+execution
+he
+maintained
+his
+debonair
+attitude
+to
+the
+last
+played
+cards
+with
+his
+jailer
+with
+the
+utmost
+nonchalance
+and
+ordered
+ice
+cream
+his
+favorite
+dish
+whenever
+possible
+When
+you
+come
+to
+hell
+where
+I
+am
+going
+he
+told
+the
+jailer
+I
+am
+going
+to
+treat
+you
+to
+ice
+cream
+During
+this
+time
+I
+anonymously
+sent
+him
+a
+book
+and
+several
+papers
+relating
+to
+the
+spirit
+world
+but
+otherwise
+had
+no
+connection
+with
+him
+On
+February
+a
+nurse
+asked
+us
+to
+concentrate
+for
+Mrs
+McA
+a
+patient
+whom
+she
+was
+attending
+arid
+whose
+case
+strongly
+suggested
+psychic
+invalidism
+chronic
+illness
+and
+lassitude
+due
+to
+spirit
+obsession
+The
+nurse
+was
+a
+psychic
+sensitive
+herself
+and
+surmised
+that
+many
+of
+the
+uncontrollable
+notions
+of
+her
+beautiful
+patient
+were
+caused
+by
+spirit
+obsession
+and
+had
+several
+times
+endeavored
+to
+order
+any
+intruder
+away
+One
+day
+Mrs
+McA
+developed
+an
+intense
+desire
+for
+homemade
+ice
+cream
+although
+ordinarily
+she
+did
+not
+care
+in
+the
+least
+for
+it
+But
+she
+insisted
+that
+her
+whim
+be
+satisfied
+at
+once
+putting
+her
+maids
+to
+a
+great
+deal
+of
+inconvenience
+When
+the
+nurse
+entered
+the
+room
+with
+the
+ice
+cream
+she
+had
+a
+sudden
+feeling
+that
+some
+one
+had
+rushed
+upon
+her
+and
+the
+next
+instant
+was
+seized
+by
+so
+strong
+a
+feeling
+of
+choking
+that
+she
+was
+forced
+to
+leave
+the
+room
+Upon
+recovery
+she
+returned
+and
+convinced
+of
+the
+presence
+of
+a
+spirit
+flung
+a
+window
+open
+and
+silently
+ordered
+any
+foreign
+entity
+present
+to
+leave
+the
+house
+This
+nurse
+and
+Mrs
+McA
+s
+maid
+attended
+our
+circle
+that
+evening
+and
+the
+controlling
+spirit
+at
+once
+complained
+of
+pain
+in
+See
+Chap
+Page
+Spirit
+Grace
+Brusted
+Patient
+Mrs
+MCA
+the
+neck
+readily
+explaining
+that
+his
+neck
+had
+been
+broken
+when
+Ile
+was
+hung
+and
+said
+his
+name
+was
+Harry
+Hayward
+Can
+t
+you
+give
+me
+some
+ice
+cream
+I
+have
+tried
+and
+tried
+to
+get
+some
+and
+today
+I
+could
+almost
+taste
+it
+but
+I
+couldn
+t
+quite
+get
+it
+I
+was
+chased
+away
+by
+a
+woman
+she
+threw
+me
+out
+of
+the
+window
+I
+don
+t
+like
+to
+be
+thrown
+out
+of
+a
+window
+by
+a
+woman
+Hayward
+realized
+that
+he
+was
+hovering
+around
+the
+earth
+as
+a
+spirit
+and
+when
+we
+inquired
+how
+he
+had
+learned
+about
+spirit
+life
+he
+replied
+that
+while
+he
+was
+in
+jail
+he
+had
+read
+of
+it
+in
+some
+literature
+which
+had
+been
+sent
+him
+by
+an
+unknown
+person
+He
+complained
+that
+no
+matter
+where
+he
+went
+no
+one
+would
+take
+any
+notice
+of
+him
+when
+he
+took
+a
+seat
+in
+a
+train
+some
+one
+would
+come
+along
+and
+sit
+down
+on
+his
+lap
+and
+he
+would
+be
+powerless
+to
+move
+He
+was
+very
+pleased
+to
+be
+able
+to
+converse
+with
+people
+again
+and
+asked
+many
+questions
+about
+the
+various
+persons
+concerned
+with
+his
+trial
+and
+execution
+inquiring
+particularly
+about
+the
+guard
+with
+whom
+he
+had
+spent
+a
+great
+deal
+of
+time
+playing
+cards
+I
+was
+under
+the
+impression
+that
+this
+guard
+had
+died
+some
+time
+before
+and
+informed
+the
+spirit
+so
+suggesting
+that
+possibly
+he
+might
+be
+able
+to
+see
+him
+in
+the
+spirit
+world
+He
+was
+silent
+a
+moment
+endeavoring
+to
+trace
+his
+former
+friend
+then
+said
+emphatically
+No
+that
+man
+is
+not
+dead
+I
+see
+him
+playing
+cards
+at
+his
+son
+s
+home
+in
+Minneapolis
+Hayward
+was
+readily
+enlightened
+concerning
+the
+higher
+life
+and
+left
+expressing
+a
+willingness
+to
+progress
+in
+the
+spirit
+world
+The
+psychic
+invalid
+showed
+marked
+changes
+for
+the
+better
+after
+this
+and
+subsequent
+correspondence
+proved
+Hayward
+s
+statement
+about
+the
+old
+guard
+to
+be
+true
+The
+latter
+was
+living
+and
+on
+the
+evening
+of
+our
+experience
+with
+Hayward
+had
+been
+playing
+cards
+in
+his
+son
+s
+home
+Ten
+years
+later
+after
+the
+spirit
+of
+another
+murderer
+who
+was
+hung
+had
+been
+in
+our
+circle
+Hayward
+returned
+and
+told
+something
+of
+his
+earth
+life
+EXPERIENCE
+SEPTEMBER
+Spirit
+HARRY
+HAYWARD
+Psychic
+MRS
+WICKLAND
+I
+think
+I
+should
+like
+to
+come
+in
+and
+say
+something
+for
+I
+feel
+I
+have
+been
+in
+the
+same
+boat
+as
+the
+fellow
+who
+preceded
+me
+I
+mean
+on
+the
+same
+platform
+I
+feel
+but
+little
+better
+than
+he
+I
+had
+a
+little
+more
+understanding
+than
+he
+had
+and
+therefore
+my
+punishment
+was
+a
+little
+harder
+I
+had
+education
+and
+all
+the
+money
+I
+needed
+but
+I
+wanted
+more
+I
+also
+want
+to
+tell
+you
+that
+since
+I
+have
+come
+to
+the
+spirit
+side
+of
+life
+I
+have
+wished
+I
+could
+go
+on
+every
+street
+corner
+and
+shout
+a
+message
+to
+mothers
+not
+to
+raise
+their
+children
+in
+the
+wrong
+way
+Mothers
+say
+they
+love
+their
+children
+they
+worship
+them
+and
+they
+let
+them
+go
+astray
+because
+they
+cannot
+say
+No
+to
+them
+Do
+not
+raise
+children
+without
+discipline
+Train
+children
+as
+you
+train
+animals
+as
+you
+train
+flowers
+If
+you
+plant
+a
+flower
+in
+your
+garden
+you
+don
+t
+want
+it
+to
+grow
+up
+wild
+but
+you
+train
+it
+so
+that
+it
+will
+grow
+successfully
+and
+have
+graceful
+flowers
+But
+how
+little
+does
+humanity
+think
+of
+the
+children
+s
+growth
+and
+training
+children
+are
+not
+trained
+to
+become
+blossoms
+for
+humanity
+I
+tell
+you
+if
+my
+mother
+I
+do
+not
+condemn
+her
+by
+any
+means
+had
+trained
+me
+properly
+so
+that
+she
+could
+have
+said
+No
+to
+me
+instead
+of
+worshipping
+me
+and
+letting
+me
+have
+all
+the
+money
+I
+wanted
+and
+if
+she
+had
+punished
+me
+when
+I
+did
+wrong
+I
+would
+have
+been
+different
+No
+I
+would
+not
+have
+been
+hung
+if
+my
+mother
+had
+taught
+me
+the
+beautiful
+lesson
+of
+living
+for
+others
+and
+of
+loving
+my
+fellow
+man
+as
+myself
+If
+mothers
+would
+think
+of
+their
+children
+s
+welfare
+and
+raise
+them
+in
+the
+beautiful
+thought
+of
+living
+for
+others
+they
+would
+all
+be
+better
+I
+lived
+a
+very
+sporty
+life
+Nobody
+taught
+me
+any
+other
+I
+had
+a
+very
+good
+time
+and
+I
+liked
+the
+girls
+pretty
+well
+but
+there
+came
+a
+time
+when
+I
+spent
+more
+money
+than
+my
+father
+allowed
+me
+to
+have
+I
+was
+only
+a
+young
+man
+and
+I
+should
+have
+been
+made
+to
+work
+My
+misfortune
+was
+that
+my
+mother
+and
+father
+were
+rich
+Work
+was
+a
+disgrace
+for
+me
+they
+thought
+It
+would
+have
+been
+far
+better
+if
+they
+had
+put
+me
+to
+work
+instead
+of
+giving
+me
+money
+each
+time
+I
+asked
+for
+it
+I
+commenced
+to
+gamble
+You
+know
+when
+you
+get
+into
+that
+game
+it
+is
+hard
+to
+quit
+Money
+came
+too
+easy
+for
+me
+I
+met
+a
+young
+lady
+whom
+I
+liked
+Young
+girls
+always
+were
+sweet
+to
+me
+and
+I
+was
+able
+to
+have
+whoever
+I
+wanted
+The
+young
+lady
+liked
+me
+and
+I
+liked
+her
+for
+what
+I
+got
+from
+her
+so
+we
+decided
+that
+she
+would
+insure
+herself
+for
+in
+my
+name
+I
+had
+a
+scheme
+If
+somebody
+killed
+her
+I
+would
+not
+get
+the
+blame
+but
+I
+would
+get
+the
+money
+I
+laid
+a
+bold
+scheme
+I
+hired
+a
+man
+to
+kill
+her
+At
+the
+time
+the
+deed
+was
+to
+be
+committed
+I
+took
+another
+girl
+to
+the
+theater
+because
+I
+thought
+that
+whatever
+happened
+blame
+could
+not
+then
+be
+attached
+to
+me
+I
+hired
+a
+man
+to
+take
+her
+for
+a
+buggy
+ride
+out
+to
+Lake
+Calhoun
+and
+he
+was
+to
+kill
+her
+When
+they
+got
+to
+the
+woods
+the
+man
+killed
+her
+and
+came
+home
+Being
+in
+the
+theater
+the
+girl
+I
+was
+with
+could
+testify
+I
+was
+not
+at
+the
+scene
+of
+the
+killing
+but
+you
+know
+I
+was
+so
+crazy
+to
+get
+hold
+of
+the
+insurance
+money
+that
+I
+never
+thought
+how
+it
+looked
+to
+go
+to
+the
+insurance
+office
+so
+soon
+after
+the
+death
+and
+they
+became
+suspicious
+and
+finally
+caught
+me
+If
+I
+had
+only
+waited
+a
+week
+or
+two
+they
+would
+never
+have
+surmised
+anything
+about
+me
+I
+was
+arrested
+My
+mother
+loved
+me
+so
+much
+that
+she
+tried
+to
+put
+the
+blame
+on
+my
+other
+brother
+He
+was
+married
+and
+had
+two
+children
+The
+trial
+cost
+my
+parents
+a
+whole
+lot
+of
+money
+and
+lasted
+months
+and
+months
+before
+they
+could
+make
+any
+headway
+They
+could
+not
+decide
+whether
+it
+was
+Eddie
+or
+I
+that
+should
+be
+hung
+for
+the
+deed
+One
+day
+while
+I
+was
+in
+jail
+there
+came
+a
+little
+pamphlet
+for
+me
+and
+some
+papers
+all
+about
+the
+spirit
+world
+I
+knew
+I
+had
+to
+go
+for
+finally
+I
+had
+been
+sentenced
+to
+be
+hung
+I
+realized
+my
+trouble
+The
+papers
+interested
+me
+very
+much
+and
+I
+thought
+I
+should
+like
+to
+know
+what
+the
+spirit
+world
+was
+I
+believed
+in
+it
+in
+a
+way
+and
+in
+another
+way
+I
+didn
+t
+The
+doctrine
+was
+better
+than
+the
+church
+had
+taught
+but
+for
+a
+while
+I
+treated
+it
+more
+as
+a
+joke
+I
+talked
+about
+it
+quite
+a
+little
+to
+the
+watchman
+but
+when
+the
+time
+came
+for
+me
+to
+be
+hung
+I
+shrank
+from
+it
+It
+is
+a
+very
+strange
+sensation
+when
+you
+think
+you
+are
+going
+to
+the
+gallows
+and
+your
+life
+will
+be
+snapped
+out
+you
+cannot
+imagine
+how
+it
+feels
+You
+cannot
+imagine
+the
+sensation
+you
+have
+when
+you
+realize
+that
+you
+have
+only
+a
+few
+hours
+to
+live
+Still
+the
+little
+message
+which
+had
+been
+sent
+to
+me
+gave
+me
+a
+little
+courage
+and
+I
+thought
+probably
+only
+my
+body
+would
+be
+destroyed
+and
+not
+my
+spirit
+So
+at
+the
+last
+moment
+I
+kept
+up
+my
+courage
+and
+felt
+that
+I
+wanted
+to
+see
+What
+the
+hereafter
+was
+I
+have
+to
+thank
+the
+one
+who
+sent
+me
+that
+pamphlet
+because
+it
+was
+a
+bright
+cheerful
+spot
+to
+me
+at
+the
+last
+of
+my
+days
+When
+I
+realized
+that
+I
+had
+passed
+out
+of
+my
+body
+my
+first
+thought
+was
+I
+am
+not
+dead
+I
+went
+to
+my
+mother
+and
+I
+spoke
+to
+her
+and
+she
+felt
+my
+presence
+I
+still
+clung
+to
+my
+body
+however
+and
+I
+felt
+I
+could
+not
+leave
+it
+I
+got
+out
+of
+it
+quickly
+but
+I
+went
+back
+to
+it
+again
+When
+my
+body
+was
+cremated
+I
+stood
+by
+and
+saw
+it
+burned
+After
+that
+I
+walked
+around
+but
+I
+could
+not
+find
+the
+spirit
+world
+I
+walked
+and
+walked
+from
+one
+place
+to
+another
+I
+still
+had
+my
+feeling
+for
+nice
+pretty
+women
+so
+I
+traveled
+In
+a
+way
+I
+realized
+that
+I
+was
+dead
+yet
+I
+did
+not
+fully
+realize
+it
+One
+time
+I
+felt
+I
+would
+like
+to
+take
+a
+journey
+and
+I
+wanted
+to
+travel
+by
+train
+I
+went
+to
+the
+ticket
+office
+to
+get
+a
+ticket
+but
+I
+had
+no
+money
+I
+thought
+I
+would
+talk
+to
+the
+agent
+nicely
+and
+he
+would
+give
+me
+a
+ticket
+but
+he
+paid
+no
+attention
+to
+me
+So
+I
+thought
+All
+right
+I
+m
+going
+on
+the
+train
+anyway
+so
+on
+I
+got
+I
+sat
+down
+on
+one
+of
+the
+seats
+and
+before
+I
+knew
+it
+a
+great
+big
+fat
+man
+sat
+right
+down
+on
+my
+lap
+I
+got
+real
+mad
+I
+tried
+to
+push
+him
+off
+but
+I
+could
+not
+and
+I
+could
+not
+get
+up
+either
+I
+had
+to
+let
+that
+man
+sit
+on
+me
+until
+he
+was
+ready
+to
+get
+off
+the
+train
+I
+had
+not
+learned
+the
+power
+of
+thought
+to
+think
+myself
+away
+I
+had
+only
+learned
+to
+walk
+I
+had
+not
+yet
+learned
+the
+little
+thought
+lesson
+to
+think
+myself
+in
+a
+place
+in
+order
+to
+be
+there
+Before
+long
+I
+came
+to
+a
+beautiful
+lady
+Mrs
+McA
+and
+I
+commenced
+to
+like
+her
+Before
+I
+knew
+it
+I
+was
+in
+her
+magnetic
+aura
+and
+I
+could
+not
+get
+away
+She
+wanted
+to
+be
+in
+bed
+all
+the
+time
+and
+there
+I
+was
+Once
+I
+heard
+some
+one
+say
+You
+must
+leave
+this
+lady
+and
+go
+away
+if
+there
+is
+any
+spirit
+around
+her
+it
+must
+leave
+and
+go
+away
+I
+was
+there
+however
+I
+was
+very
+fond
+of
+ice
+cream
+and
+I
+wanted
+some
+so
+I
+impressed
+the
+lady
+to
+ask
+for
+it
+When
+it
+was
+brought
+in
+I
+wanted
+it
+I
+seemed
+to
+come
+in
+contact
+with
+the
+lady
+who
+was
+carrying
+it
+and
+I
+felt
+that
+if
+I
+could
+only
+get
+a
+good
+hold
+of
+her
+I
+would
+get
+the
+cream
+All
+at
+once
+I
+was
+a
+lady
+myself
+and
+when
+I
+tried
+to
+get
+that
+ice
+cream
+I
+had
+the
+same
+sensation
+that
+had
+when
+I
+was
+hung
+But
+the
+lady
+who
+was
+carrying
+the
+ice
+cream
+had
+such
+power
+that
+before
+I
+knew
+it
+she
+had
+thrown
+me
+out
+of
+the
+window
+bodily
+mind
+you
+I
+have
+to
+thank
+you
+for
+delivering
+me
+from
+all
+that
+trouble
+and
+also
+want
+to
+thank
+you
+from
+the
+bottom
+of
+my
+heart
+for
+the
+sermon
+you
+gave
+me
+at
+that
+time
+which
+helped
+me
+to
+an
+understanding
+of
+the
+beautiful
+world
+beyond
+I
+wish
+again
+that
+I
+could
+stand
+on
+every
+street
+corner
+and
+tell
+the
+mothers
+to
+raise
+their
+children
+to
+be
+good
+men
+and
+women
+and
+when
+necessary
+punish
+them
+while
+they
+are
+little
+and
+not
+spare
+the
+rod
+and
+spoil
+the
+child
+If
+mothers
+raised
+their
+children
+properly
+there
+would
+not
+be
+the
+selfishness
+there
+is
+in
+the
+world
+I
+have
+a
+nice
+little
+home
+in
+the
+spirit
+world
+now
+and
+I
+have
+much
+to
+do
+for
+my
+work
+is
+not
+yet
+done
+I
+am
+trying
+to
+extend
+help
+to
+all
+those
+who
+wish
+help
+I
+thank
+you
+for
+enlightening
+me
+in
+the
+first
+place
+Good
+Night
+The
+Car
+Barn
+Murderer
+of
+Chicago
+was
+a
+criminal
+of
+a
+different
+type
+a
+victim
+of
+his
+environment
+and
+was
+brought
+to
+our
+circle
+some
+time
+after
+his
+execution
+when
+he
+followed
+a
+girl
+formerly
+a
+family
+neighbor
+who
+came
+to
+visit
+Mrs
+Wickland
+He
+returned
+several
+times
+after
+that
+to
+tell
+his
+story
+and
+to
+bring
+earthbound
+spirits
+of
+similar
+experiences
+to
+an
+understanding
+EXPERIENCE
+SEPTEMBER
+Spirit
+PETE
+NEIDEMEYER
+Psychic
+MRS
+WICKLAND
+I
+want
+to
+come
+here
+tonight
+to
+tell
+you
+that
+I
+also
+am
+one
+who
+is
+very
+thankful
+to
+you
+although
+you
+probably
+do
+not
+care
+whether
+I
+come
+again
+or
+not
+But
+I
+do
+know
+you
+helped
+me
+to
+something
+like
+happiness
+which
+I
+thought
+never
+could
+be
+mine
+I
+was
+nothing
+but
+a
+wild
+beast
+in
+earth
+life
+but
+still
+when
+you
+do
+not
+give
+children
+proper
+training
+how
+can
+you
+expect
+to
+have
+good
+men
+I
+had
+no
+training
+at
+all
+My
+mother
+was
+very
+wild
+and
+did
+not
+care
+what
+became
+of
+her
+children
+She
+thought
+Let
+them
+take
+care
+of
+themselves
+So
+you
+go
+out
+in
+company
+with
+others
+and
+get
+into
+first
+one
+game
+then
+another
+Sometimes
+you
+go
+to
+church
+I
+didn
+t
+believe
+in
+that
+old
+story
+about
+Christ
+I
+could
+not
+believe
+it
+and
+I
+thought
+there
+was
+no
+such
+thing
+as
+what
+they
+taught
+about
+Christ
+and
+if
+there
+was
+what
+did
+I
+care
+I
+walked
+in
+the
+path
+of
+evil
+from
+the
+time
+I
+was
+a
+little
+boy
+until
+I
+got
+where
+I
+could
+not
+live
+any
+longer
+whether
+I
+wanted
+to
+or
+not
+I
+will
+tell
+you
+if
+you
+have
+children
+please
+give
+them
+an
+understanding
+when
+they
+are
+little
+If
+they
+take
+anything
+from
+a
+person
+make
+them
+take
+it
+back
+where
+they
+got
+it
+Don
+t
+let
+them
+get
+the
+idea
+that
+you
+will
+take
+it
+from
+them
+and
+think
+it
+is
+all
+right
+If
+they
+steal
+once
+they
+will
+again
+if
+not
+properly
+taught
+When
+I
+stole
+my
+mother
+thought
+I
+was
+a
+smart
+boy
+I
+kept
+on
+going
+from
+bad
+to
+worse
+I
+belonged
+to
+a
+gang
+of
+about
+a
+dozen
+boys
+We
+got
+so
+bold
+and
+desperate
+that
+we
+did
+not
+care
+what
+became
+of
+us
+We
+got
+into
+all
+kinds
+of
+hold
+ups
+and
+the
+more
+we
+got
+into
+the
+better
+we
+liked
+it
+At
+last
+we
+held
+up
+and
+killed
+people
+The
+result
+was
+that
+we
+were
+caught
+and
+hung
+I
+am
+Neidemeyer
+and
+here
+I
+am
+Years
+ago
+I
+was
+brought
+to
+this
+circle
+through
+our
+neighbor
+girl
+I
+liked
+that
+girl
+very
+much
+One
+day
+she
+went
+away
+from
+home
+and
+I
+thought
+I
+would
+go
+with
+her
+I
+did
+nut
+realize
+that
+I
+had
+been
+hung
+I
+did
+not
+realize
+that
+I
+was
+dead
+I
+had
+gone
+home
+and
+had
+stayed
+there
+for
+a
+long
+time
+but
+I
+did
+not
+know
+that
+I
+was
+dead
+My
+mother
+was
+a
+strange
+woman
+but
+from
+what
+I
+have
+seen
+since
+I
+came
+to
+the
+spirit
+side
+of
+life
+I
+realize
+that
+she
+was
+obsessed
+Nobody
+could
+do
+anything
+with
+my
+mother
+My
+father
+and
+my
+brother
+were
+very
+good
+people
+but
+my
+mother
+and
+I
+were
+the
+black
+ones
+This
+neighbor
+girl
+was
+good
+and
+she
+always
+tried
+to
+do
+the
+best
+for
+me
+that
+she
+could
+The
+day
+I
+followed
+her
+she
+went
+to
+this
+man
+s
+house
+Dr
+W
+and
+she
+went
+into
+a
+little
+room
+and
+spoke
+with
+the
+psychic
+through
+whom
+I
+am
+talking
+now
+and
+I
+saw
+things
+that
+day
+that
+I
+had
+never
+seen
+before
+I
+did
+not
+know
+what
+they
+meant
+Somebody
+seemed
+to
+keep
+me
+there
+and
+I
+could
+not
+get
+away
+Before
+I
+knew
+much
+I
+was
+sitting
+in
+a
+little
+meeting
+I
+heard
+singing
+and
+before
+I
+realized
+it
+I
+was
+full
+of
+life
+again
+I
+could
+talk
+and
+my
+throat
+did
+not
+hurt
+me
+any
+more
+I
+began
+to
+wonder
+what
+had
+happened
+to
+me
+You
+talked
+to
+me
+so
+kindly
+that
+it
+helped
+me
+You
+talked
+to
+me
+about
+the
+real
+life
+on
+the
+other
+side
+You
+helped
+me
+to
+an
+understanding
+of
+life
+not
+what
+the
+church
+and
+ministers
+taught
+that
+we
+should
+pray
+to
+God
+and
+believe
+in
+the
+blood
+of
+Christ
+and
+that
+Christ
+died
+for
+our
+sins
+and
+that
+if
+we
+believe
+that
+we
+will
+go
+to
+Heaven
+I
+was
+not
+the
+kind
+that
+could
+go
+on
+that
+straight
+road
+because
+I
+felt
+that
+was
+too
+easy
+and
+I
+couldn
+t
+believe
+that
+we
+could
+get
+to
+Heaven
+without
+any
+effort
+on
+our
+part
+I
+knew
+I
+was
+bad
+yet
+I
+felt
+in
+my
+heart
+that
+I
+should
+do
+something
+to
+try
+and
+be
+good
+and
+do
+good
+for
+what
+I
+had
+done
+bad
+The
+thought
+of
+that
+seemed
+to
+be
+more
+reasonable
+than
+that
+of
+jumping
+from
+my
+bad
+condition
+right
+into
+Heaven
+I
+thought
+I
+would
+not
+be
+a
+very
+good
+example
+either
+You
+commenced
+to
+talk
+to
+me
+about
+the
+philosophy
+of
+God
+in
+a
+way
+I
+had
+never
+heard
+before
+and
+it
+appealed
+to
+my
+sense
+I
+hope
+somebody
+will
+talk
+in
+that
+way
+to
+my
+fellow
+men
+who
+are
+in
+the
+condition
+I
+was
+It
+would
+touch
+their
+hearts
+There
+are
+many
+of
+them
+who
+are
+not
+bad
+but
+nobody
+cares
+for
+them
+The
+majority
+of
+them
+do
+not
+believe
+in
+the
+Jesus
+Christ
+story
+As
+they
+are
+now
+they
+are
+going
+to
+the
+dogs
+Since
+I
+came
+to
+this
+little
+circle
+the
+first
+time
+and
+received
+help
+I
+have
+had
+my
+struggles
+It
+is
+years
+since
+I
+made
+my
+first
+appearance
+here
+I
+want
+to
+tell
+you
+what
+I
+have
+to
+do
+since
+my
+mother
+passed
+out
+I
+have
+tried
+and
+tried
+to
+bring
+her
+to
+an
+understanding
+of
+the
+truth
+but
+she
+will
+not
+listen
+I
+hope
+some
+day
+to
+be
+able
+to
+awaken
+her
+to
+a
+higher
+condition
+As
+we
+progress
+we
+go
+from
+circle
+to
+circle
+If
+I
+believed
+that
+Christ
+died
+for
+my
+sins
+that
+belief
+and
+creed
+would
+keep
+me
+out
+of
+the
+higher
+spirit
+world
+When
+I
+had
+passed
+out
+of
+my
+body
+you
+told
+me
+that
+I
+should
+look
+for
+spirit
+friends
+who
+would
+help
+me
+and
+that
+my
+first
+lesson
+would
+be
+to
+serve
+others
+I
+have
+had
+a
+very
+hard
+time
+The
+first
+thing
+I
+had
+to
+do
+was
+to
+conquer
+self
+and
+it
+is
+very
+hard
+to
+conquer
+selfishness
+when
+you
+have
+never
+thought
+of
+anything
+else
+but
+selfishness
+We
+must
+conquer
+that
+before
+we
+can
+do
+any
+work
+at
+all
+in
+the
+spirit
+world
+The
+best
+way
+is
+to
+be
+put
+in
+a
+dark
+room
+we
+sometimes
+call
+it
+a
+dungeon
+where
+we
+see
+nothing
+but
+ourselves
+and
+our
+acts
+of
+the
+past
+One
+after
+another
+these
+acts
+come
+crowding
+in
+The
+good
+ones
+are
+so
+few
+that
+they
+hardly
+count
+for
+anything
+When
+we
+do
+see
+a
+good
+act
+it
+seems
+as
+if
+it
+belongs
+to
+some
+one
+else
+We
+have
+to
+stay
+there
+until
+our
+hearts
+and
+eyes
+are
+opened
+When
+we
+seek
+to
+overcome
+our
+bad
+habits
+and
+to
+live
+for
+others
+then
+we
+get
+out
+of
+the
+selfish
+state
+My
+heart
+was
+very
+hardened
+but
+finally
+I
+cried
+out
+Not
+my
+will
+any
+longer
+but
+thine
+The
+first
+thing
+to
+be
+done
+is
+to
+help
+serve
+the
+very
+lowest
+we
+come
+in
+contact
+with
+I
+felt
+that
+I
+did
+not
+want
+to
+assist
+with
+this
+or
+that
+but
+I
+had
+to
+I
+had
+to
+learn
+patience
+When
+we
+can
+serve
+without
+grumbling
+and
+do
+it
+for
+the
+love
+of
+our
+fellow
+man
+it
+does
+not
+seem
+so
+hard
+So
+I
+have
+gone
+on
+and
+on
+from
+one
+thing
+to
+another
+always
+learning
+and
+through
+learning
+I
+have
+stepped
+into
+a
+more
+beautiful
+condition
+In
+the
+invisible
+world
+we
+advance
+by
+stages
+but
+only
+through
+learning
+I
+want
+to
+thank
+you
+tonight
+for
+the
+help
+you
+have
+given
+me
+I
+have
+a
+beautiful
+little
+home
+in
+the
+spirit
+world
+by
+this
+time
+and
+I
+am
+happy
+but
+my
+work
+is
+not
+done
+yet
+My
+work
+is
+to
+keep
+on
+helping
+those
+who
+need
+help
+and
+to
+try
+to
+influence
+the
+boys
+on
+earth
+not
+to
+do
+the
+mischief
+they
+Are
+planning
+but
+to
+try
+to
+be
+good
+and
+do
+the
+very
+best
+they
+know
+how
+for
+their
+fellow
+men
+Goodbye
+EXPERIENCE
+AUGUST
+Spirit
+PETE
+NEIDEMEYER
+Psychie
+MRS
+WICKLAND
+I
+should
+like
+to
+come
+here
+tonight
+to
+say
+a
+few
+words
+I
+want
+to
+thank
+you
+for
+helping
+me
+to
+the
+higher
+life
+I
+had
+gone
+down
+down
+and
+had
+only
+hatred
+and
+selfish
+thoughts
+I
+was
+down
+as
+far
+as
+I
+could
+go
+My
+mother
+was
+obsessed
+She
+had
+a
+great
+deal
+of
+influence
+over
+me
+She
+was
+down
+on
+the
+world
+and
+made
+me
+do
+things
+to
+the
+neighbors
+that
+I
+should
+never
+have
+done
+My
+father
+and
+brother
+were
+good
+people
+and
+were
+looked
+up
+to
+I
+am
+Pete
+Neidemeyer
+I
+want
+to
+thank
+you
+for
+having
+helped
+me
+and
+now
+I
+want
+to
+ask
+you
+to
+send
+good
+thoughts
+to
+my
+mother
+She
+has
+passed
+out
+but
+I
+cannot
+reach
+her
+She
+was
+obsessed
+by
+a
+very
+evil
+spirit
+she
+sent
+evil
+thoughts
+to
+me
+and
+I
+was
+very
+sensitive
+to
+them
+You
+did
+a
+Christian
+act
+for
+me
+which
+no
+one
+else
+had
+ever
+done
+I
+was
+shunned
+by
+all
+When
+you
+are
+in
+a
+large
+city
+with
+all
+its
+temptations
+and
+have
+not
+learned
+anything
+about
+the
+higher
+things
+you
+get
+in
+bad
+company
+You
+get
+so
+wrapped
+up
+with
+things
+that
+are
+bad
+that
+you
+think
+everything
+belongs
+to
+you
+just
+as
+much
+as
+it
+does
+to
+the
+other
+fellow
+Jealousy
+selfishness
+and
+ignorance
+are
+three
+things
+that
+we
+should
+all
+try
+to
+conquer
+When
+they
+get
+hold
+of
+you
+they
+are
+the
+devil
+in
+you
+You
+feel
+jealous
+of
+everybody
+that
+has
+more
+than
+you
+You
+are
+selfish
+You
+don
+t
+want
+to
+give
+anything
+away
+you
+just
+want
+to
+keep
+it
+all
+for
+yourself
+You
+want
+everything
+that
+belongs
+to
+others
+You
+feel
+that
+if
+there
+is
+a
+God
+he
+should
+have
+given
+you
+a
+chance
+as
+well
+as
+the
+rest
+of
+them
+In
+that
+atmosphere
+I
+was
+brought
+up
+Mother
+was
+selfish
+and
+jealous
+Nobody
+in
+the
+neighborhood
+liked
+her
+she
+did
+not
+have
+one
+friend
+I
+was
+her
+pet
+and
+I
+could
+have
+anything
+Father
+told
+me
+not
+to
+do
+bad
+things
+but
+mother
+said
+not
+to
+mind
+what
+he
+told
+me
+but
+to
+go
+ahead
+and
+do
+as
+I
+pleased
+I
+went
+out
+and
+stayed
+out
+nights
+in
+bad
+company
+We
+got
+a
+gang
+together
+I
+did
+not
+mean
+to
+get
+into
+the
+gang
+as
+I
+did
+but
+I
+was
+forced
+into
+it
+by
+the
+club
+You
+understand
+they
+have
+clubs
+secret
+clubs
+those
+fellows
+and
+when
+you
+join
+you
+have
+to
+do
+just
+what
+they
+say
+because
+you
+are
+in
+their
+power
+If
+you
+try
+to
+withdraw
+you
+cannot
+because
+they
+will
+squeal
+on
+you
+They
+watch
+you
+and
+somebody
+follows
+you
+all
+the
+time
+The
+new
+beginners
+are
+the
+ones
+who
+do
+the
+dirty
+work
+The
+leaders
+very
+seldom
+get
+caught
+There
+is
+a
+school
+and
+the
+new
+beginners
+learn
+to
+do
+bad
+things
+Some
+of
+the
+leaders
+are
+in
+the
+finest
+society
+in
+big
+cities
+and
+they
+get
+to
+know
+where
+we
+can
+find
+people
+to
+rob
+You
+may
+sometimes
+wonder
+how
+we
+know
+where
+to
+go
+to
+find
+jewelry
+and
+money
+Our
+leaders
+know
+all
+about
+it
+They
+are
+in
+fine
+society
+all
+the
+time
+They
+have
+money
+so
+it
+wouldn
+t
+do
+any
+good
+to
+squeal
+on
+them
+If
+I
+should
+tell
+you
+the
+names
+of
+some
+of
+our
+leaders
+who
+are
+in
+society
+in
+Chicago
+you
+would
+not
+believe
+me
+You
+would
+say
+that
+it
+is
+not
+so
+If
+you
+would
+tell
+on
+them
+they
+would
+at
+once
+squeal
+on
+you
+and
+say
+you
+robbed
+such
+a
+house
+What
+could
+you
+do
+You
+just
+have
+to
+keep
+still
+That
+is
+what
+the
+underworld
+is
+doing
+The
+upper
+world
+uses
+the
+underworld
+when
+it
+suits
+its
+purpose
+What
+we
+steal
+in
+one
+city
+they
+send
+off
+to
+another
+city
+Always
+you
+will
+find
+our
+leaders
+in
+the
+finest
+society
+but
+we
+do
+not
+dare
+say
+anything
+When
+you
+once
+join
+their
+club
+what
+I
+would
+call
+the
+Devil
+s
+Club
+you
+can
+t
+say
+anything
+You
+are
+in
+their
+claws
+and
+our
+leaders
+are
+worse
+than
+devils
+they
+are
+so
+mean
+If
+we
+should
+kill
+we
+are
+the
+ones
+who
+suffer
+but
+they
+get
+the
+money
+I
+came
+here
+tonight
+to
+thank
+you
+for
+having
+helped
+me
+Nobody
+ever
+gave
+me
+a
+helping
+hand
+before
+In
+that
+car
+barn
+murder
+I
+did
+not
+kill
+any
+one
+I
+was
+with
+the
+gang
+but
+the
+one
+who
+did
+the
+work
+did
+not
+get
+hung
+he
+got
+away
+We
+four
+were
+hung
+because
+we
+were
+there
+I
+was
+innocent
+My
+work
+was
+to
+watch
+which
+I
+did
+but
+I
+did
+not
+murder
+I
+was
+hung
+for
+it
+If
+you
+have
+any
+influence
+at
+all
+do
+not
+hang
+people
+Let
+them
+have
+another
+chance
+because
+sometimes
+you
+will
+find
+they
+are
+innocent
+Keep
+them
+in
+the
+pen
+give
+them
+another
+chance
+If
+they
+are
+hung
+then
+where
+are
+they
+All
+they
+have
+in
+their
+hearts
+is
+hatred
+They
+go
+back
+to
+earth
+life
+and
+do
+more
+mischief
+They
+control
+people
+and
+obsession
+steps
+in
+I
+had
+hatred
+when
+I
+was
+hung
+and
+said
+if
+there
+is
+life
+again
+I
+will
+get
+even
+and
+fight
+for
+revenge
+You
+remember
+Tillie
+who
+lived
+next
+door
+to
+me
+I
+told
+you
+about
+her
+before
+She
+used
+to
+come
+to
+your
+circles
+I
+followed
+her
+once
+and
+through
+her
+influence
+I
+came
+into
+your
+circle
+and
+was
+converted
+to
+the
+higher
+life
+Tillie
+always
+had
+a
+good
+influence
+over
+me
+and
+sometimes
+she
+wanted
+to
+talk
+to
+me
+but
+mother
+Was
+always
+jealous
+and
+didn
+t
+want
+her
+to
+talk
+Mother
+was
+very
+mean
+to
+Tillie
+s
+people
+She
+got
+so
+mad
+at
+the
+time
+I
+was
+hung
+that
+she
+tormented
+all
+her
+neighbors
+She
+tore
+up
+all
+the
+fences
+and
+closed
+up
+all
+the
+stable
+windows
+on
+their
+side
+She
+tried
+to
+shoot
+every
+body
+she
+could
+If
+my
+father
+bad
+had
+the
+gun
+loaded
+mother
+would
+have
+been
+in
+great
+trouble
+Tillie
+was
+my
+guardian
+angel
+and
+through
+your
+circle
+I
+got
+over
+my
+hatred
+Now
+I
+try
+to
+help
+others
+with
+the
+light
+you
+gave
+me
+My
+mission
+is
+to
+help
+the
+unfortunate
+ones
+like
+this
+fellow
+who
+came
+before
+me
+I
+try
+to
+influence
+people
+to
+be
+more
+just
+If
+you
+have
+a
+chance
+to
+hang
+any
+one
+don
+t
+do
+it
+but
+give
+him
+another
+chance
+You
+have
+no
+right
+to
+kill
+Nobody
+should
+kill
+another
+person
+We
+are
+all
+God
+s
+children
+We
+all
+make
+mistakes
+and
+the
+strong
+should
+help
+the
+weak
+When
+one
+person
+murders
+another
+no
+justice
+is
+shown
+no
+mercy
+The
+judge
+and
+the
+jury
+what
+mercy
+do
+they
+show
+a
+fellow
+when
+he
+has
+murdered
+Why
+should
+they
+kill
+him
+instead
+of
+giving
+him
+another
+chance
+Why
+don
+t
+they
+give
+a
+good
+word
+to
+the
+poor
+ones
+Why
+don
+t
+they
+go
+to
+the
+prisoners
+and
+teach
+them
+of
+the
+higher
+life
+and
+also
+have
+psychic
+circles
+and
+try
+to
+help
+them
+As
+soon
+as
+you
+stop
+capital
+punishment
+you
+will
+not
+have
+so
+much
+killing
+When
+persons
+are
+hanged
+they
+have
+revenge
+and
+hatred
+in
+their
+hearts
+and
+all
+they
+want
+to
+do
+is
+kill
+kill
+kill
+So
+they
+influence
+sensitive
+mortals
+and
+make
+them
+commit
+all
+kinds
+of
+crime
+I
+want
+to
+say
+again
+if
+you
+have
+any
+influence
+stop
+capital
+punishment
+This
+is
+a
+Christian
+country
+and
+nobody
+has
+a
+right
+to
+kill
+another
+As
+they
+killed
+Christ
+so
+they
+kill
+boys
+who
+have
+been
+murderers
+instead
+of
+teaching
+them
+while
+they
+are
+young
+Isn
+t
+is
+right
+that
+they
+should
+be
+taught
+to
+do
+better
+and
+to
+live
+better
+lives
+The
+time
+will
+come
+when
+the
+world
+will
+have
+to
+understand
+that
+it
+must
+overcome
+selfishness
+There
+will
+be
+lots
+of
+trouble
+before
+that
+time
+comes
+There
+will
+be
+much
+destruction
+but
+after
+that
+things
+will
+be
+better
+I
+am
+now
+doing
+my
+work
+in
+the
+spirit
+world
+and
+I
+thank
+you
+for
+bringing
+me
+to
+a
+realization
+and
+waking
+me
+up
+I
+have
+little
+meetings
+here
+and
+there
+I
+give
+little
+thoughts
+of
+cheer
+to
+those
+in
+darkness
+I
+am
+up
+against
+a
+very
+hard
+condition
+and
+that
+is
+to
+get
+my
+mother
+to
+understand
+I
+wish
+you
+would
+all
+send
+good
+kind
+thoughts
+to
+her
+because
+she
+only
+had
+hatred
+and
+selfishness
+and
+jealousy
+in
+her
+heart
+She
+was
+so
+wrapped
+up
+in
+herself
+that
+now
+she
+will
+not
+listen
+to
+any
+one
+Help
+me
+to
+wake
+her
+up
+and
+realize
+the
+true
+condition
+of
+life
+Oh
+how
+I
+thank
+you
+for
+helping
+me
+At
+heart
+I
+was
+not
+a
+murderer
+yet
+I
+was
+hung
+for
+murder
+I
+was
+not
+with
+the
+gang
+that
+was
+doing
+the
+work
+all
+I
+did
+was
+to
+watch
+I
+was
+there
+with
+them
+and
+that
+was
+enough
+for
+the
+jury
+I
+had
+the
+name
+Now
+I
+am
+trying
+to
+do
+my
+part
+but
+I
+have
+much
+to
+learn
+I
+was
+very
+ignorant
+of
+the
+real
+life
+My
+father
+wanted
+me
+to
+go
+to
+Sunday
+School
+Mother
+told
+me
+I
+didn
+t
+need
+to
+go
+but
+I
+went
+and
+I
+didn
+t
+find
+anything
+there
+that
+appealed
+to
+me
+so
+I
+quit
+going
+I
+know
+now
+that
+God
+is
+everywhere
+and
+that
+I
+am
+a
+part
+of
+God
+I
+had
+a
+hard
+time
+getting
+rid
+of
+selfishness
+jealousy
+and
+ignorance
+they
+are
+the
+root
+of
+all
+evil
+When
+they
+are
+gone
+love
+kindness
+and
+sympathy
+take
+their
+place
+Get
+an
+understanding
+of
+the
+higher
+life
+and
+you
+will
+be
+happy
+All
+should
+be
+brothers
+and
+sisters
+on
+earth
+as
+we
+are
+in
+the
+higher
+life
+In
+the
+spirit
+world
+our
+real
+eyes
+are
+opened
+You
+cannot
+progress
+until
+you
+have
+learned
+the
+lessons
+of
+life
+You
+know
+a
+school
+boy
+cannot
+go
+to
+University
+until
+after
+he
+gets
+through
+his
+school
+books
+He
+must
+go
+to
+Kindergarten
+before
+he
+can
+enter
+the
+University
+and
+he
+has
+to
+get
+there
+step
+by
+step
+So
+it
+is
+in
+the
+spirit
+world
+It
+is
+the
+world
+of
+happiness
+We
+cannot
+appreciate
+it
+until
+we
+have
+it
+before
+us
+Everybody
+should
+know
+these
+things
+before
+they
+step
+over
+the
+Borderland
+We
+cannot
+go
+to
+the
+spirit
+world
+until
+we
+have
+an
+understanding
+of
+it
+When
+we
+are
+one
+with
+God
+then
+we
+have
+happiness
+I
+do
+not
+know
+much
+and
+I
+cannot
+say
+much
+because
+I
+have
+seen
+so
+little
+of
+it
+I
+have
+much
+work
+to
+do
+before
+I
+go
+on
+The
+spirit
+world
+is
+like
+going
+into
+a
+garden
+and
+seeing
+one
+beautiful
+flower
+here
+and
+another
+there
+The
+flowers
+all
+stand
+up
+so
+straight
+and
+look
+at
+you
+and
+seem
+to
+say
+Please
+take
+me
+This
+one
+has
+a
+certain
+odor
+and
+that
+one
+another
+but
+all
+are
+beautiful
+and
+fragrant
+The
+spirit
+world
+is
+like
+a
+flower
+bed
+all
+is
+beauty
+and
+harmony
+I
+mean
+there
+is
+no
+selfishness
+One
+shines
+more
+than
+another
+because
+he
+has
+more
+understanding
+We
+will
+all
+get
+there
+but
+we
+have
+to
+gain
+advancement
+for
+ourselves
+No
+one
+needs
+to
+get
+discouraged
+all
+will
+get
+there
+but
+it
+takes
+time
+Thank
+you
+for
+having
+helped
+me
+to
+an
+understanding
+and
+a
+home
+But
+for
+that
+I
+should
+have
+been
+an
+earthbound
+spirit
+doing
+more
+harm
+than
+good
+for
+I
+had
+hatred
+in
+my
+heart
+I
+am
+very
+happy
+but
+I
+want
+you
+all
+to
+send
+a
+good
+thought
+to
+my
+mother
+so
+that
+I
+can
+wake
+her
+up
+and
+help
+her
+to
+overcome
+her
+selfishness
+jealousy
+and
+ignorance
+Just
+give
+me
+a
+chance
+to
+wake
+her
+up
+I
+thank
+you
+all
+CHAPTER
+VII
+Spirits
+and
+Suicide
+A
+GREAT
+NUMBER
+of
+unaccountable
+suicides
+are
+due
+to
+the
+obsessing
+or
+possessing
+influence
+of
+earthbound
+spirits
+Some
+of
+these
+spirits
+are
+actuated
+by
+a
+desire
+to
+torment
+their
+victims
+others
+who
+have
+ended
+their
+physical
+existence
+as
+suicides
+find
+themselves
+still
+alive
+and
+having
+no
+knowledge
+of
+a
+spirit
+world
+labor
+under
+the
+delusion
+that
+their
+self
+destructive
+attempts
+have
+failed
+and
+continue
+their
+suicidal
+efforts
+When
+these
+intelligences
+come
+in
+contact
+with
+mortal
+sensitives
+they
+mistake
+the
+physical
+bodies
+for
+their
+own
+and
+impress
+the
+sensitives
+with
+morbid
+thoughts
+and
+instigate
+them
+to
+deeds
+of
+self
+destruction
+The
+fate
+of
+a
+suicide
+is
+invariably
+one
+of
+deepest
+misery
+his
+rash
+act
+holding
+him
+in
+the
+earth
+sphere
+until
+such
+time
+as
+his
+physical
+life
+would
+have
+had
+a
+natural
+ending
+One
+suicide
+case
+which
+we
+contacted
+was
+the
+spirit
+of
+a
+woman
+Mrs
+X
+who
+had
+been
+my
+Sunday
+School
+teacher
+when
+I
+was
+a
+boy
+in
+Europe
+but
+of
+whom
+Mrs
+Wickland
+had
+never
+heard
+This
+lady
+had
+been
+intelligent
+and
+spiritual
+an
+earnest
+church
+member
+happily
+married
+and
+the
+mother
+of
+several
+children
+Without
+any
+warning
+while
+apparently
+happy
+and
+contented
+she
+had
+suddenly
+hung
+herself
+and
+the
+horrified
+husband
+and
+children
+could
+in
+no
+way
+account
+for
+the
+tragedy
+One
+winter
+day
+ten
+years
+later
+when
+Mrs
+Wickland
+and
+I
+were
+alone
+in
+our
+home
+in
+Chicago
+Mrs
+Wickland
+was
+unexpectedly
+controlled
+by
+a
+spirit
+who
+gasped
+for
+breath
+and
+seemed
+to
+be
+strangling
+This
+spirit
+like
+so
+many
+others
+was
+unconscious
+of
+controlling
+a
+body
+not
+its
+own
+and
+upon
+contacting
+matter
+again
+experienced
+its
+last
+death
+struggle
+After
+much
+questioning
+I
+learned
+to
+my
+great
+surprise
+that
+this
+was
+the
+spirit
+of
+my
+former
+friend
+who
+had
+ended
+her
+physical
+life
+by
+hanging
+herself
+She
+was
+still
+bound
+to
+the
+earth
+sphere
+and
+related
+the
+indescribable
+mental
+hell
+she
+had
+been
+in
+during
+all
+those
+years
+As
+soon
+as
+I
+found
+myself
+out
+of
+my
+body
+I
+saw
+at
+once
+the
+cause
+for
+my
+rash
+act
+Evil
+spirits
+who
+had
+been
+attracted
+to
+me
+by
+the
+jealous
+thoughts
+of
+other
+persons
+were
+standing
+near
+grinning
+with
+devilish
+satisfaction
+at
+their
+work
+They
+had
+influenced
+me
+to
+end
+my
+life
+I
+had
+no
+occasion
+to
+even
+think
+of
+such
+folly
+An
+irresistible
+impulse
+had
+suddenly
+come
+over
+me
+I
+fastened
+the
+rope
+around
+my
+neck
+and
+only
+realized
+what
+I
+had
+done
+when
+it
+was
+too
+late
+I
+would
+have
+given
+the
+world
+to
+have
+been
+able
+to
+regain
+possession
+of
+my
+body
+Oh
+what
+horrors
+of
+despair
+and
+remorse
+I
+have
+gone
+through
+My
+home
+shattered
+my
+husband
+brokenhearted
+and
+discouraged
+and
+my
+little
+ones
+needing
+my
+care
+They
+do
+not
+know
+that
+I
+come
+to
+them
+and
+try
+to
+comfort
+them
+and
+I
+have
+seen
+nothing
+but
+gloom
+and
+darkness
+until
+now
+Comforted
+and
+reassured
+by
+an
+explanation
+of
+the
+true
+spiritual
+realms
+this
+spirit
+was
+eager
+to
+go
+with
+the
+higher
+intelligences
+and
+learn
+how
+she
+might
+be
+of
+service
+to
+her
+loved
+ones
+on
+earth
+Many
+years
+later
+when
+we
+had
+with
+us
+a
+patient
+of
+strong
+suicidal
+tendencies
+this
+spirit
+returned
+to
+warn
+her
+against
+carrying
+out
+her
+intentions
+EXPERIENCE
+NOVEMBER
+Spirit
+MRS
+X
+Psychic
+MRS
+WICKLAND
+It
+is
+a
+long
+time
+since
+I
+have
+been
+here
+I
+should
+like
+to
+say
+a
+few
+words
+to
+this
+young
+lady
+who
+is
+contemplating
+suicide
+Many
+years
+ago
+I
+was
+a
+happy
+wife
+with
+two
+dear
+children
+and
+a
+very
+kind
+husband
+We
+lived
+together
+happily
+since
+we
+were
+both
+of
+a
+cheerful
+disposition
+and
+because
+of
+this
+there
+were
+many
+jealous
+thoughts
+centered
+upon
+us
+I
+did
+not
+know
+at
+that
+time
+that
+I
+was
+a
+psychic
+because
+I
+belonged
+to
+the
+Baptist
+Church
+I
+did
+the
+very
+best
+I
+could
+around
+the
+home
+but
+somebody
+started
+to
+upset
+us
+One
+day
+when
+my
+husband
+went
+to
+work
+I
+kissed
+him
+goodby
+and
+was
+very
+happy
+but
+after
+he
+was
+gone
+all
+in
+a
+moment
+something
+got
+hold
+of
+me
+I
+did
+not
+know
+what
+I
+was
+doing
+I
+didn
+t
+know
+a
+thing
+I
+remember
+feeling
+very
+strange
+as
+if
+somebody
+had
+taken
+complete
+hold
+of
+me
+and
+I
+did
+not
+realize
+what
+was
+taking
+place
+After
+awhile
+everything
+changed
+I
+saw
+my
+husband
+in
+terrible
+mental
+agony
+and
+he
+was
+crying
+very
+bitterly
+When
+things
+became
+a
+little
+clearer
+to
+me
+I
+saw
+my
+body
+hanging
+there
+Oh
+if
+you
+could
+only
+realize
+what
+a
+condition
+I
+was
+in
+My
+husband
+stood
+there
+in
+the
+shed
+looking
+at
+my
+hanging
+body
+he
+was
+crying
+heart
+brokenly
+but
+I
+could
+do
+nothing
+to
+help
+him
+There
+I
+stood
+at
+his
+side
+wishing
+with
+all
+my
+power
+that
+I
+could
+have
+that
+body
+again
+but
+I
+could
+not
+There
+were
+my
+two
+little
+children
+weeping
+for
+me
+and
+I
+could
+not
+help
+them
+I
+did
+not
+know
+what
+was
+the
+matter
+until
+I
+saw
+some
+evil
+spirits
+standing
+near
+laughing
+at
+us
+They
+had
+gotten
+hold
+of
+me
+and
+made
+me
+kill
+myself
+because
+they
+wanted
+to
+break
+up
+our
+happy
+home
+My
+husband
+could
+never
+forget
+the
+sight
+of
+my
+body
+hanging
+in
+the
+shed
+My
+children
+were
+small
+and
+needed
+my
+help
+but
+the
+responsibility
+of
+raising
+them
+was
+thrown
+on
+my
+husband
+It
+should
+have
+been
+my
+duty
+to
+have
+shared
+that
+responsibility
+Although
+I
+had
+been
+influenced
+to
+do
+what
+I
+did
+for
+ten
+long
+years
+I
+could
+see
+nothing
+before
+me
+but
+what
+I
+had
+done
+I
+could
+see
+how
+much
+the
+children
+needed
+me
+but
+I
+could
+do
+nothing
+for
+them
+and
+oh
+how
+I
+suffered
+My
+poor
+poor
+children
+One
+day
+a
+very
+cold
+day
+I
+felt
+that
+I
+had
+come
+to
+life
+again
+I
+felt
+a
+new
+warmth
+I
+did
+not
+know
+where
+I
+was
+but
+I
+felt
+that
+I
+had
+come
+to
+life
+I
+found
+myself
+talking
+to
+Dr
+Wickland
+He
+told
+me
+what
+had
+happened
+and
+explained
+that
+I
+was
+only
+temporarily
+controlling
+Mrs
+Wickland
+and
+that
+friends
+would
+take
+me
+to
+the
+spirit
+world
+After
+this
+I
+felt
+somewhat
+better
+and
+I
+thank
+you
+for
+having
+helped
+me
+to
+the
+beautiful
+condition
+I
+have
+now
+But
+oh
+how
+I
+suffered
+during
+those
+ten
+long
+years
+All
+I
+could
+see
+was
+my
+body
+hanging
+before
+me
+and
+the
+children
+s
+need
+of
+me
+My
+husband
+and
+children
+How
+they
+needed
+my
+care
+but
+I
+was
+powerless
+to
+help
+them
+I
+want
+to
+warn
+anybody
+who
+is
+thinking
+of
+trying
+to
+get
+out
+of
+the
+physical
+body
+Do
+not
+do
+it
+under
+any
+circumstances
+You
+do
+not
+know
+you
+cannot
+realize
+what
+a
+hell
+you
+will
+find
+yourself
+in
+You
+cannot
+step
+into
+your
+body
+again
+after
+you
+once
+leave
+it
+and
+you
+cannot
+do
+your
+duty
+to
+others
+Think
+of
+my
+children
+always
+having
+the
+thought
+that
+their
+mother
+committed
+suicide
+Neither
+my
+husband
+nor
+children
+can
+ever
+really
+forgive
+me
+Even
+though
+I
+was
+controlled
+when
+I
+did
+what
+I
+did
+I
+have
+had
+to
+suffer
+If
+you
+had
+an
+understanding
+of
+the
+laws
+of
+the
+spirit
+side
+of
+life
+you
+would
+not
+commit
+suicide
+knowing
+the
+results
+Overcome
+any
+thoughts
+of
+taking
+your
+life
+Be
+happy
+on
+this
+earth
+plane
+until
+the
+time
+comes
+for
+you
+to
+go
+to
+the
+spirit
+world
+The
+ten
+years
+that
+I
+suffered
+was
+the
+time
+I
+should
+have
+remained
+on
+earth
+before
+passing
+to
+the
+spirit
+side
+of
+life
+After
+my
+ten
+years
+had
+expired
+I
+should
+have
+left
+my
+body
+for
+my
+life
+would
+have
+been
+lived
+out
+but
+during
+that
+time
+I
+could
+have
+given
+help
+to
+my
+husband
+and
+children
+I
+should
+not
+have
+reached
+the
+spirit
+side
+of
+life
+before
+my
+allotted
+time
+and
+my
+punishment
+was
+to
+constantly
+see
+my
+body
+hanging
+before
+me
+for
+ten
+years
+All
+that
+time
+I
+could
+realize
+that
+my
+husband
+and
+children
+were
+in
+great
+need
+of
+my
+help
+Now
+I
+am
+as
+happy
+as
+I
+can
+be
+until
+my
+family
+is
+reunited
+and
+I
+am
+doing
+all
+I
+can
+to
+help
+my
+children
+I
+want
+you
+to
+send
+my
+love
+to
+my
+dear
+husband
+He
+feels
+that
+he
+is
+all
+alone
+I
+am
+with
+him
+but
+I
+can
+do
+nothing
+to
+comfort
+him
+in
+his
+loneliness
+Goodbye
+On
+November
+while
+Mrs
+Wickland
+and
+I
+were
+visiting
+with
+friends
+in
+Chicago
+a
+circle
+had
+been
+formed
+for
+a
+psychic
+demonstration
+when
+Mrs
+Wickland
+heard
+some
+one
+say
+I
+am
+in
+the
+dark
+She
+inquired
+who
+had
+made
+the
+remark
+but
+no
+one
+in
+the
+room
+had
+uttered
+a
+word
+however
+the
+gentleman
+sitting
+beside
+Mrs
+Wickland
+declared
+that
+he
+too
+had
+heard
+the
+voice
+A
+moment
+later
+Mrs
+Wickland
+became
+entranced
+and
+fell
+to
+the
+floor
+the
+spirit
+clutching
+at
+the
+throat
+and
+crying
+Take
+the
+rope
+away
+Take
+the
+rope
+away
+I
+am
+in
+the
+dark
+Why
+did
+I
+do
+it
+Oh
+why
+did
+I
+do
+it
+When
+the
+excited
+spirit
+had
+been
+somewhat
+quieted
+she
+told
+us
+that
+her
+name
+was
+Minnie
+Harmening
+that
+she
+was
+a
+young
+girl
+and
+had
+lived
+on
+a
+farm
+near
+Palatine
+As
+she
+was
+speaking
+brokenly
+between
+sobs
+it
+was
+difficult
+to
+distinguish
+her
+words
+and
+I
+understood
+her
+to
+say
+that
+she
+came
+from
+Palestine
+which
+seemed
+rather
+strange
+The
+spirit
+was
+in
+great
+grief
+because
+she
+had
+hung
+herself
+and
+thought
+the
+body
+of
+the
+psychic
+was
+her
+own
+and
+that
+the
+rope
+was
+still
+about
+her
+neck
+She
+said
+that
+on
+October
+without
+any
+cause
+or
+premeditation
+she
+had
+been
+overpowered
+by
+a
+desire
+to
+take
+her
+life
+and
+when
+alone
+had
+gone
+to
+the
+barn
+and
+hung
+herself
+A
+big
+man
+with
+a
+black
+beard
+made
+me
+do
+it
+Spirit
+He
+met
+me
+in
+the
+barnyard
+and
+hypnotized
+me
+and
+made
+me
+hang
+myself
+to
+a
+rafter
+but
+I
+don
+t
+know
+why
+I
+did
+it
+My
+brother
+John
+found
+me
+and
+cut
+me
+down
+and
+my
+parents
+were
+almost
+beside
+themselves
+But
+I
+am
+not
+dead
+I
+am
+at
+home
+all
+the
+time
+and
+I
+talk
+to
+my
+mother
+and
+father
+I
+try
+to
+comfort
+them
+and
+make
+them
+know
+that
+I
+am
+not
+dead
+but
+they
+do
+not
+notice
+me
+and
+do
+not
+answer
+me
+My
+folks
+all
+sit
+around
+the
+table
+crying
+and
+there
+is
+my
+empty
+chair
+but
+no
+one
+answers
+me
+Why
+don
+t
+they
+answer
+me
+We
+could
+not
+at
+first
+convince
+her
+that
+she
+was
+expressing
+herself
+through
+the
+body
+of
+another
+but
+after
+a
+lengthy
+conversation
+she
+was
+somewhat
+enlightened
+and
+comforted
+and
+left
+with
+spirit
+friends
+Previous
+to
+this
+incident
+neither
+Mrs
+Wickland
+nor
+I
+had
+heard
+of
+the
+Harmening
+suicide
+mystery
+and
+we
+did
+not
+know
+that
+such
+a
+girl
+had
+ever
+existed
+Several
+days
+later
+a
+reporter
+from
+one
+of
+the
+Chicago
+dailies
+came
+to
+interview
+us
+regarding
+our
+research
+work
+and
+I
+related
+our
+recent
+experience
+with
+the
+Harmening
+girl
+In
+great
+surprise
+he
+said
+that
+he
+himself
+had
+been
+the
+reporter
+on
+the
+Harmening
+case
+and
+that
+the
+girl
+had
+lived
+in
+Palatine
+Cook
+County
+Illinois
+The
+dead
+body
+of
+the
+girl
+had
+been
+found
+hanging
+in
+her
+father
+s
+barn
+but
+no
+one
+knew
+of
+any
+cause
+for
+suicide
+although
+the
+girl
+had
+always
+been
+peculiar
+There
+was
+a
+suspicion
+of
+murder
+because
+the
+clothes
+about
+the
+chest
+had
+been
+torn
+and
+the
+neck
+badly
+scratched
+leading
+the
+authorities
+to
+believe
+that
+a
+crime
+had
+been
+committed
+and
+the
+body
+hung
+up
+to
+avert
+suspicion
+On
+Thanksgiving
+Day
+November
+the
+spirit
+of
+Minnie
+Harmening
+came
+to
+us
+again
+still
+grieving
+because
+of
+the
+suffering
+of
+her
+parents
+and
+the
+intolerant
+attitude
+assumed
+toward
+her
+family
+by
+the
+villagers
+and
+church
+members
+who
+considered
+the
+family
+disgraced
+The
+girl
+had
+been
+a
+devout
+member
+of
+a
+German
+Lutheran
+Church
+but
+because
+she
+had
+died
+a
+suicide
+the
+pastor
+had
+refused
+to
+allow
+the
+funeral
+service
+to
+be
+held
+in
+the
+church
+nor
+would
+the
+congregation
+permit
+the
+body
+to
+be
+buried
+in
+the
+consecrated
+ground
+of
+the
+churchyard
+Minnie
+said
+that
+the
+funeral
+service
+had
+been
+held
+at
+the
+home
+of
+her
+parents
+but
+the
+minister
+had
+considered
+the
+viewing
+of
+the
+body
+such
+a
+sacrilege
+that
+he
+had
+stepped
+outside
+the
+house
+while
+others
+paid
+their
+last
+tribute
+and
+this
+had
+added
+still
+more
+to
+the
+grief
+of
+her
+already
+distracted
+parents
+These
+statements
+I
+found
+corroborated
+in
+the
+papers
+afterward
+I
+asked
+the
+spirit
+why
+her
+clothes
+had
+been
+torn
+and
+she
+answered
+I
+did
+that
+myself
+The
+big
+man
+spirit
+with
+the
+beard
+told
+me
+to
+hang
+myself
+but
+as
+soon
+as
+I
+had
+kicked
+the
+box
+away
+from
+my
+feet
+I
+felt
+the
+rope
+tightening
+around
+my
+neck
+and
+came
+to
+my
+senses
+I
+clawed
+at
+the
+rope
+and
+tried
+to
+loosen
+it
+but
+I
+only
+tightened
+it
+and
+scratched
+myself
+Fourteen
+years
+later
+the
+spirit
+of
+Minnie
+Harmening
+spoke
+to
+us
+again
+EXPERIENCE
+OCTOBER
+Spirit
+MINNIE
+HARMENING
+Psychic
+MRS
+WICKLAND
+I
+want
+to
+thank
+you
+for
+all
+the
+help
+you
+have
+given
+me
+When
+I
+committed
+the
+act
+which
+took
+my
+life
+I
+was
+only
+a
+young
+girl
+of
+sixteen
+I
+had
+so
+much
+suffering
+afterwards
+and
+was
+very
+very
+miserable
+I
+could
+see
+my
+father
+and
+mother
+sitting
+at
+the
+table
+crying
+and
+I
+could
+not
+help
+them
+When
+the
+time
+came
+for
+my
+body
+to
+be
+buried
+the
+minister
+would
+not
+take
+it
+into
+the
+church
+and
+would
+not
+bury
+it
+because
+he
+said
+I
+had
+committed
+a
+sin
+in
+taking
+my
+own
+life
+He
+also
+said
+that
+I
+could
+not
+be
+buried
+in
+the
+graveyard
+because
+of
+my
+act
+and
+he
+would
+not
+even
+look
+at
+the
+funeral
+as
+it
+passed
+by
+I
+did
+not
+do
+the
+deed
+myself
+I
+was
+obsessed
+It
+was
+very
+hard
+for
+my
+father
+and
+mother
+and
+sisters
+The
+minister
+would
+not
+even
+come
+into
+the
+room
+where
+my
+body
+lay
+but
+spoke
+from
+another
+room
+he
+was
+too
+holy
+to
+be
+where
+the
+body
+was
+This
+made
+it
+much
+harder
+for
+my
+parents
+Do
+not
+think
+that
+by
+taking
+your
+own
+life
+you
+can
+bury
+yourself
+in
+the
+hereafter
+I
+was
+obsessed
+when
+I
+took
+my
+life
+and
+did
+not
+know
+what
+I
+was
+doing
+but
+I
+am
+suffering
+because
+my
+father
+and
+mother
+are
+still
+mourning
+for
+me
+Very
+often
+I
+go
+to
+see
+my
+poor
+old
+mother
+and
+she
+is
+very
+old
+now
+I
+am
+the
+girl
+who
+lived
+at
+Palatine
+You
+remember
+me
+don
+t
+you
+The
+neighbors
+made
+it
+still
+harder
+for
+my
+folks
+because
+they
+told
+mother
+what
+a
+disgrace
+it
+was
+for
+the
+family
+I
+feel
+very
+badly
+about
+the
+matter
+I
+want
+to
+thank
+you
+for
+the
+help
+I
+received
+here
+It
+was
+through
+you
+that
+I
+received
+light
+and
+understanding
+I
+am
+happy
+in
+a
+way
+but
+not
+real
+happy
+because
+I
+feel
+the
+grief
+my
+father
+and
+mother
+have
+When
+I
+lived
+I
+did
+not
+understand
+obsession
+After
+I
+had
+hung
+myself
+I
+saw
+a
+man
+beside
+me
+staring
+at
+me
+Just
+when
+the
+rope
+was
+around
+my
+neck
+I
+came
+to
+I
+tried
+my
+best
+to
+get
+it
+off
+my
+neck
+but
+I
+had
+kicked
+the
+box
+from
+under
+myself
+and
+my
+whole
+weight
+was
+in
+the
+rope
+and
+I
+could
+do
+nothing
+I
+scratched
+my
+body
+in
+an
+effort
+to
+free
+myself
+but
+it
+was
+no
+use
+If
+one
+takes
+his
+own
+life
+he
+goes
+through
+a
+bitter
+experience
+and
+suffers
+greatly
+yes
+suffers
+greatly
+I
+thank
+you
+very
+much
+for
+the
+light
+and
+understanding
+I
+have
+received
+for
+it
+has
+been
+a
+great
+help
+to
+me
+Another
+experience
+illustrating
+the
+power
+exercised
+over
+sensitive
+mortals
+by
+malignant
+earthbound
+spirits
+occurred
+in
+Chicago
+Mrs
+Wickland
+and
+I
+were
+resting
+on
+a
+bench
+in
+Lincoln
+Park
+on
+July
+when
+an
+elderly
+gentleman
+seated
+himself
+beside
+us
+Mrs
+Wickland
+at
+first
+saw
+two
+men
+on
+the
+bench
+but
+upon
+looking
+again
+noticed
+only
+one
+A
+conversation
+ensued
+which
+drifted
+into
+occultism
+and
+when
+the
+stranger
+Mr
+F
+expressed
+an
+interest
+in
+psychic
+phenomena
+we
+invited
+him
+to
+call
+at
+our
+home
+On
+the
+following
+evening
+Mr
+F
+called
+upon
+us
+and
+later
+Mrs
+Wickland
+became
+entranced
+by
+the
+spirit
+of
+a
+man
+who
+was
+greatly
+agitated
+He
+called
+Mr
+F
+by
+name
+saying
+he
+was
+his
+friend
+Mr
+B
+of
+Cleveland
+who
+had
+been
+with
+him
+in
+Lincoln
+Park
+the
+previous
+week
+and
+had
+had
+an
+appointment
+to
+meet
+him
+there
+again
+on
+that
+very
+day
+Mr
+F
+was
+greatly
+startled
+by
+this
+communication
+for
+his
+friend
+had
+committed
+suicide
+in
+his
+club
+at
+Cleveland
+the
+preceding
+Sunday
+Mr
+B
+had
+lived
+in
+Cleveland
+and
+had
+come
+to
+Chicago
+the
+week
+before
+to
+close
+a
+real
+estate
+deal
+but
+before
+final
+negotiations
+were
+completed
+had
+returned
+for
+a
+week
+end
+visit
+to
+Cleveland
+He
+was
+in
+a
+cheerful
+frame
+of
+mind
+when
+he
+left
+his
+home
+on
+Sunday
+morning
+but
+after
+conversing
+with
+a
+group
+of
+friends
+at
+his
+club
+he
+had
+gone
+into
+an
+adjoining
+room
+placed
+carbolic
+acid
+in
+his
+glass
+of
+wine
+and
+drinking
+it
+had
+fallen
+dead
+Mr
+B
+had
+been
+a
+man
+of
+wealth
+and
+position
+to
+all
+appearances
+singularly
+fortunate
+and
+happy
+and
+there
+seemed
+no
+reason
+for
+his
+suicide
+The
+spirit
+of
+Mr
+B
+was
+greatly
+troubled
+and
+bewildered
+and
+asked
+his
+friend
+what
+was
+the
+matter
+with
+him
+I
+go
+home
+to
+my
+wife
+and
+children
+but
+they
+do
+not
+seem
+to
+see
+me
+or
+hear
+me
+I
+have
+been
+with
+you
+for
+several
+days
+but
+you
+will
+not
+talk
+to
+me
+What
+is
+the
+matter
+Calming
+the
+spirit
+we
+finally
+made
+him
+realize
+that
+to
+the
+world
+he
+was
+dead
+and
+after
+explaining
+the
+suicide
+to
+him
+we
+asked
+why
+he
+had
+taken
+his
+life
+I
+did
+not
+take
+my
+life
+I
+went
+to
+the
+club
+and
+was
+talking
+to
+my
+friends
+then
+I
+went
+into
+another
+room
+but
+I
+do
+not
+know
+what
+happened
+after
+that
+The
+next
+thing
+that
+I
+remember
+is
+that
+I
+saw
+my
+body
+lying
+on
+the
+floor
+and
+a
+man
+spirit
+watching
+me
+and
+laughing
+After
+learning
+more
+of
+his
+condition
+the
+spirit
+urged
+his
+friend
+to
+write
+to
+his
+wife
+and
+tell
+her
+that
+in
+reality
+he
+was
+not
+dead
+at
+all
+On
+the
+evening
+of
+the
+Mr
+F
+called
+again
+when
+the
+spirit
+of
+Mr
+B
+came
+a
+second
+time
+still
+greatly
+disturbed
+and
+asked
+his
+friend
+why
+he
+had
+not
+written
+to
+his
+wife
+and
+urgently
+begged
+him
+to
+do
+so
+I
+know
+now
+that
+I
+was
+influenced
+to
+commit
+suicide
+by
+evil
+spirits
+who
+were
+opposed
+to
+my
+carrying
+out
+that
+real
+estate
+deal
+Rather
+than
+see
+my
+purpose
+accomplished
+they
+determined
+to
+kill
+me
+Please
+tell
+my
+wife
+the
+truth
+and
+warn
+all
+the
+world
+to
+be
+wiser
+While
+the
+trial
+of
+a
+young
+man
+who
+was
+accused
+of
+killing
+a
+college
+girl
+Marion
+Lambert
+was
+in
+progress
+in
+Waukegan
+Illinois
+the
+spirit
+of
+the
+murdered
+girl
+was
+brought
+to
+us
+on
+June
+entrancing
+Mrs
+Wickland
+She
+was
+weeping
+uncontrollably
+and
+in
+such
+distress
+that
+she
+was
+at
+first
+unable
+to
+speak
+then
+suddenly
+cried
+out
+I
+did
+it
+I
+did
+it
+Nobody
+can
+help
+me
+now
+If
+I
+only
+could
+tell
+them
+and
+make
+them
+understand
+but
+they
+will
+not
+listen
+I
+am
+in
+the
+dark
+and
+can
+see
+only
+the
+past
+and
+everything
+foolish
+I
+have
+done
+Oh
+what
+a
+foolish
+girl
+I
+was
+What
+is
+your
+name
+Marion
+Lambert
+Where
+do
+you
+think
+you
+are
+I
+do
+not
+know
+I
+am
+not
+acquainted
+with
+any
+one
+here
+Crying
+They
+talk
+of
+hell
+but
+that
+could
+not
+be
+as
+bad
+as
+what
+I
+have
+gone
+through
+just
+because
+of
+my
+foolishness
+I
+would
+like
+very
+much
+to
+get
+out
+of
+all
+this
+trouble
+I
+took
+my
+own
+life
+I
+didn
+t
+mean
+to
+kill
+myself
+I
+only
+meant
+to
+take
+enough
+cyanide
+of
+potassium
+to
+scare
+him
+And
+now
+they
+blame
+him
+for
+my
+death
+I
+would
+so
+like
+to
+do
+something
+to
+make
+them
+understand
+he
+is
+not
+guilty
+Oh
+but
+they
+will
+not
+believe
+me
+I
+talk
+to
+the
+different
+people
+at
+the
+court
+house
+but
+they
+take
+no
+notice
+of
+me
+and
+will
+not
+listen
+to
+me
+Everything
+is
+so
+strange
+I
+don
+t
+know
+what
+to
+do
+I
+was
+such
+a
+foolish
+girl
+Oh
+my
+poor
+father
+and
+mother
+I
+m
+half
+crazy
+with
+trouble
+and
+worry
+If
+I
+could
+only
+go
+to
+the
+court
+house
+and
+show
+them
+that
+I
+am
+not
+dead
+but
+that
+I
+am
+alive
+Why
+don
+t
+they
+listen
+to
+me
+I
+go
+to
+the
+court
+house
+but
+nobody
+will
+speak
+to
+me
+and
+I
+have
+spoken
+to
+so
+many
+people
+I
+am
+in
+such
+agony
+I
+don
+t
+know
+what
+to
+do
+If
+I
+had
+had
+more
+sense
+I
+would
+never
+have
+done
+what
+I
+did
+but
+it
+s
+no
+use
+saying
+that
+now
+it
+is
+too
+late
+I
+wish
+I
+could
+be
+in
+my
+body
+again
+I
+studied
+a
+great
+deal
+but
+I
+was
+so
+foolish
+it
+did
+me
+no
+good
+and
+now
+I
+am
+suffering
+Everything
+is
+so
+dark
+and
+I
+am
+in
+such
+trouble
+The
+spirit
+was
+so
+hysterical
+that
+it
+was
+exceedingly
+difficult
+to
+make
+her
+understand
+that
+she
+could
+best
+help
+by
+keeping
+away
+from
+the
+court
+house
+go
+with
+kindly
+intelligences
+to
+the
+spirit
+world
+and
+learn
+the
+higher
+purposes
+of
+life
+In
+July
+the
+interest
+of
+the
+American
+public
+was
+centered
+in
+a
+murder
+case
+in
+Los
+Angeles
+in
+which
+Harry
+New
+was
+accused
+of
+killing
+his
+sweetheart
+Freda
+Lesser
+The
+tragedy
+had
+taken
+place
+on
+July
+in
+Topanga
+Canyon
+where
+Harry
+and
+Freda
+had
+driven
+late
+in
+the
+day
+Near
+the
+crest
+a
+shot
+was
+fired
+which
+ended
+the
+girl
+s
+life
+and
+Harry
+New
+was
+arrested
+on
+a
+charge
+of
+murder
+The
+girl
+had
+been
+expecting
+motherhood
+and
+this
+fact
+was
+used
+in
+the
+trial
+as
+a
+motive
+for
+the
+crime
+Harry
+New
+was
+convicted
+of
+second
+degree
+murder
+and
+sentenced
+to
+San
+Quentin
+for
+ten
+years
+During
+the
+trial
+we
+had
+an
+interesting
+experience
+which
+would
+have
+thrown
+new
+light
+on
+the
+case
+could
+it
+have
+been
+accepted
+as
+evidence
+in
+court
+EXPERIENCE
+JANUARY
+Spirit
+FREDA
+LESSER
+Psychic
+MRS
+WICKLAND
+The
+controlling
+spirit
+was
+crying
+pathetically
+and
+seemed
+bewildered
+Doctor
+What
+is
+the
+matter
+with
+you
+Spirit
+Oh
+I
+feel
+so
+bad
+Dr
+What
+seems
+to
+be
+the
+trouble
+Sp
+Lots
+of
+trouble
+Dr
+Possibly
+we
+may
+be
+able
+to
+help
+you
+Sp
+That
+s
+impossible
+Oh
+I
+feel
+so
+bad
+Weeping
+Dr
+How
+long
+have
+you
+been
+dead
+SP
+I
+am
+not
+dead
+I
+am
+sick
+and
+downhearted
+Dr
+Why
+should
+you
+be
+downhearted
+Sp
+Because
+of
+my
+own
+foolishness
+Dr
+What
+have
+you
+been
+doing
+Sp
+Lots
+of
+things
+Dr
+What
+in
+particular
+Have
+you
+been
+happy
+Sp
+Oh
+no
+I
+have
+not
+been
+happy
+Wringing
+hands
+in
+anguish
+I
+wish
+I
+wish
+I
+wish
+I
+had
+not
+been
+so
+foolish
+Dr
+Did
+something
+happen
+to
+you
+Sp
+Yes
+everything
+happened
+Dr
+What
+is
+your
+name
+Is
+it
+John
+Sp
+I
+m
+not
+a
+man
+Oh
+all
+those
+people
+And
+that
+big
+crowd
+And
+they
+will
+not
+listen
+when
+I
+tell
+them
+about
+it
+Dr
+What
+is
+your
+name
+Sp
+I
+feel
+so
+bad
+I
+can
+t
+think
+Oh
+Harry
+Harry
+It
+was
+not
+your
+fault
+What
+are
+those
+people
+doing
+with
+him
+He
+hasn
+t
+done
+anything
+it
+was
+my
+foolishness
+Dr
+What
+did
+you
+do
+Sp
+I
+fought
+with
+him
+I
+got
+hold
+of
+the
+revolver
+and
+was
+going
+to
+fool
+him
+He
+tried
+to
+take
+the
+revolver
+away
+from
+me
+and
+we
+both
+fought
+for
+it
+I
+was
+only
+trying
+to
+fool
+him
+I
+go
+to
+see
+him
+but
+I
+don
+t
+know
+what
+to
+do
+Dr
+Why
+did
+you
+take
+the
+revolver
+Sp
+I
+was
+only
+trying
+to
+scare
+him
+Dr
+Did
+you
+fire
+the
+revolver
+Sp
+He
+tried
+to
+take
+the
+revolver
+away
+from
+me
+and
+it
+exploded
+I
+feel
+so
+bad
+and
+he
+will
+not
+talk
+to
+me
+and
+there
+are
+all
+those
+people
+bothering
+him
+He
+did
+not
+do
+anything
+It
+was
+all
+my
+foolishness
+He
+was
+a
+good
+fellow
+but
+I
+fooled
+him
+Where
+am
+I
+now
+Dr
+You
+are
+in
+Highland
+Park
+Los
+Angeles
+Sp
+Why
+did
+I
+come
+here
+Dr
+Some
+good
+friend
+brought
+you
+here
+Sp
+Why
+I
+went
+to
+Harry
+Dr
+Do
+you
+refer
+to
+Harry
+New
+Sp
+Yes
+of
+course
+I
+do
+Dr
+Did
+you
+care
+for
+him
+Sp
+I
+care
+for
+him
+more
+than
+ever
+because
+I
+cannot
+get
+to
+him
+He
+did
+not
+do
+it
+he
+did
+not
+shoot
+me
+I
+told
+him
+that
+I
+would
+kill
+myself
+and
+I
+went
+and
+got
+the
+revolver
+He
+didn
+t
+get
+it
+I
+got
+it
+from
+his
+auto
+and
+I
+had
+it
+I
+didn
+t
+mean
+to
+do
+anything
+I
+was
+just
+going
+to
+frighten
+him
+It
+was
+just
+foolishness
+foolishness
+foolishness
+Dr
+What
+is
+your
+name
+Sp
+Freda
+Freda
+Lesser
+Dr
+Do
+you
+realize
+that
+you
+have
+lost
+your
+body
+Sp
+I
+don
+t
+know
+anything
+except
+that
+I
+go
+to
+mother
+and
+Harry
+and
+all
+over
+and
+no
+one
+pays
+any
+attention
+to
+me
+I
+want
+to
+tell
+them
+how
+things
+happened
+but
+no
+one
+will
+listen
+to
+me
+not
+any
+one
+I
+am
+so
+distressed
+and
+I
+don
+t
+know
+why
+I
+cannot
+be
+heard
+when
+I
+talk
+I
+am
+so
+unhappy
+Dr
+The
+people
+you
+refer
+to
+do
+not
+know
+that
+you
+are
+there
+You
+are
+invisible
+to
+them
+Sp
+Oh
+that
+poor
+fellow
+is
+suffering
+for
+my
+foolishness
+You
+don
+t
+know
+what
+my
+condition
+is
+No
+one
+will
+listen
+to
+what
+I
+say
+not
+one
+Dr
+They
+do
+not
+know
+you
+are
+there
+You
+are
+invisible
+to
+us
+we
+cannot
+see
+you
+Sp
+Why
+can
+t
+you
+see
+me
+Crying
+again
+and
+wringing
+her
+hands
+Foolish
+girl
+foolish
+girl
+Dr
+You
+must
+try
+to
+control
+yourself
+You
+have
+been
+brought
+here
+by
+kind
+spirits
+and
+allowed
+to
+control
+my
+wife
+s
+body
+and
+brain
+for
+a
+short
+time
+You
+can
+only
+use
+this
+body
+temporarily
+Sp
+Why
+can
+t
+you
+tell
+those
+people
+that
+it
+was
+all
+my
+foolishness
+Dr
+They
+would
+not
+believe
+me
+if
+I
+did
+tell
+them
+Sp
+Tell
+them
+what
+Dr
+That
+a
+spirit
+came
+and
+talked
+to
+us
+Do
+you
+not
+realize
+that
+at
+the
+time
+the
+revolver
+went
+off
+you
+lost
+your
+body
+Sp
+I
+thought
+I
+had
+only
+hurt
+myself
+Oh
+how
+I
+suffered
+I
+do
+not
+see
+how
+I
+could
+be
+dead
+because
+when
+you
+die
+you
+never
+suffer
+any
+more
+and
+I
+have
+suffered
+Dr
+No
+one
+actually
+dies
+only
+the
+physical
+body
+is
+lost
+Your
+suffering
+was
+mental
+Sp
+But
+my
+head
+hurts
+so
+much
+Dr
+That
+is
+a
+mental
+condition
+also
+Sp
+Why
+can
+t
+Harry
+talk
+to
+me
+Dr
+He
+does
+not
+know
+you
+are
+there
+He
+cannot
+see
+you
+Sp
+I
+go
+where
+he
+is
+and
+try
+to
+tell
+them
+that
+the
+whole
+thing
+was
+caused
+by
+my
+foolishness
+Oh
+if
+I
+could
+only
+change
+things
+I
+took
+that
+revolver
+and
+said
+I
+was
+going
+to
+kill
+myself
+but
+I
+thought
+I
+would
+only
+scare
+him
+When
+he
+saw
+I
+had
+the
+revolver
+I
+he
+fought
+with
+me
+to
+get
+it
+away
+I
+didn
+t
+mean
+anything
+I
+was
+only
+fooling
+I
+love
+him
+and
+he
+loves
+me
+He
+did
+not
+know
+how
+the
+revolver
+came
+in
+his
+hands
+He
+had
+it
+in
+his
+auto
+I
+picked
+it
+up
+and
+hid
+it
+in
+my
+clothes
+for
+a
+while
+and
+then
+I
+told
+him
+I
+was
+going
+to
+kill
+myself
+Dr
+Had
+you
+any
+idea
+of
+marrying
+him
+Sp
+Yes
+some
+idea
+Dr
+Did
+you
+really
+care
+for
+him
+enough
+to
+marry
+him
+Sp
+Yes
+We
+had
+no
+quarrel
+I
+was
+just
+going
+to
+scare
+him
+but
+you
+know
+girls
+do
+foolish
+things
+sometimes
+I
+wanted
+to
+test
+him
+to
+see
+if
+he
+cared
+for
+me
+Crying
+Dr
+Remember
+you
+are
+using
+my
+wife
+s
+brain
+and
+body
+and
+must
+try
+to
+calm
+yourself
+Look
+around
+and
+you
+will
+find
+kind
+spirit
+friends
+who
+will
+help
+you
+Sp
+I
+can
+never
+be
+helped
+any
+more
+I
+m
+so
+unhappy
+Dr
+When
+you
+leave
+here
+you
+will
+be
+taken
+to
+the
+spirit
+world
+You
+have
+not
+yet
+found
+it
+because
+you
+have
+been
+so
+disturbed
+with
+your
+trouble
+Spirit
+friends
+are
+around
+you
+waiting
+to
+help
+you
+Sp
+I
+want
+to
+tell
+those
+men
+bow
+things
+happened
+but
+they
+will
+not
+listen
+to
+me
+They
+don
+t
+seem
+to
+hear
+me
+or
+see
+me
+I
+go
+to
+Harry
+and
+because
+he
+feels
+me
+around
+him
+sometimes
+they
+think
+that
+he
+is
+crazy
+Dr
+You
+are
+a
+free
+spirit
+now
+and
+you
+must
+listen
+to
+the
+spirit
+friends
+who
+are
+here
+They
+will
+teach
+you
+how
+to
+obtain
+understanding
+and
+overcome
+your
+troubles
+Sp
+Will
+they
+kill
+Harry
+for
+my
+foolishness
+Dr
+I
+hardly
+think
+so
+Sp
+Poor
+fellow
+poor
+fellow
+I
+feel
+so
+sorry
+for
+him
+and
+his
+mother
+They
+both
+cry
+and
+my
+mother
+cries
+Why
+did
+I
+do
+such
+a
+foolish
+thing
+It
+was
+a
+piece
+of
+folly
+Dr
+Now
+look
+around
+and
+see
+if
+you
+can
+see
+friends
+who
+will
+help
+you
+Sp
+There
+s
+a
+young
+lady
+standing
+there
+spirit
+and
+she
+says
+that
+she
+was
+helped
+here
+and
+she
+says
+she
+brought
+me
+here
+She
+says
+she
+was
+in
+the
+same
+trouble
+I
+was
+and
+that
+she
+was
+helped
+and
+is
+so
+happy
+now
+and
+that
+she
+can
+help
+me
+She
+says
+she
+was
+just
+as
+foolish
+as
+I
+was
+she
+took
+poison
+to
+scare
+her
+fellow
+and
+killed
+herself
+Dr
+Does
+she
+tell
+you
+her
+name
+Sp
+She
+says
+she
+has
+been
+around
+me
+because
+she
+does
+missionary
+work
+helping
+to
+take
+care
+of
+girls
+in
+the
+same
+trouble
+as
+myself
+Dr
+Does
+she
+look
+sorrowful
+Sp
+No
+she
+looks
+happy
+She
+says
+she
+goes
+around
+and
+finds
+unfortunate
+girls
+who
+are
+in
+the
+same
+condition
+she
+was
+in
+when
+she
+went
+to
+spirit
+life
+Crying
+Dr
+Don
+t
+allow
+yourself
+to
+become
+excited
+You
+do
+not
+realize
+what
+a
+privilege
+you
+have
+in
+being
+allowed
+to
+control
+a
+mortal
+body
+and
+obtain
+understanding
+Many
+remain
+in
+a
+bewildered
+condition
+for
+years
+and
+years
+Sp
+The
+lady
+standing
+there
+says
+you
+helped
+her
+when
+she
+was
+in
+the
+same
+trouble
+I
+am
+Dr
+What
+washer
+name
+Sp
+She
+says
+her
+name
+is
+Marion
+Lambert
+She
+says
+she
+works
+hard
+to
+help
+unfortunate
+girls
+who
+are
+in
+trouble
+and
+do
+foolish
+things
+and
+that
+she
+tries
+to
+help
+them
+to
+happiness
+She
+says
+that
+is
+her
+mission
+and
+that
+is
+why
+she
+brought
+me
+here
+Crying
+Dr
+Try
+to
+understand
+that
+you
+are
+using
+the
+body
+of
+this
+psychic
+only
+temporarily
+and
+must
+not
+misuse
+it
+by
+becoming
+excited
+This
+girl
+you
+see
+came
+to
+us
+some
+years
+ago
+in
+the
+same
+distressed
+condition
+that
+you
+are
+in
+Now
+she
+tells
+you
+that
+she
+is
+happy
+and
+doing
+missionary
+work
+Sp
+Can
+I
+ever
+be
+happy
+Dr
+Of
+course
+you
+can
+This
+is
+only
+a
+temporary
+trouble
+you
+are
+in
+No
+one
+ever
+dies
+it
+is
+only
+the
+physical
+body
+which
+is
+lost
+The
+spirit
+cannot
+die
+Sp
+But
+I
+never
+understood
+that
+I
+never
+heard
+anything
+about
+spirits
+before
+Dr
+If
+any
+one
+had
+spoken
+to
+you
+about
+spirits
+while
+you
+were
+in
+earth
+life
+you
+would
+probably
+have
+laughed
+at
+the
+idea
+Sp
+The
+lady
+says
+she
+will
+take
+care
+of
+me
+she
+wants
+me
+to
+rest
+I
+am
+so
+tired
+She
+says
+that
+I
+must
+go
+with
+her
+and
+also
+that
+I
+must
+thank
+you
+for
+the
+opportunity
+of
+coming
+here
+Will
+I
+have
+any
+more
+of
+that
+awful
+crying
+Dr
+No
+You
+will
+be
+taught
+the
+real
+lesson
+of
+life
+Physical
+life
+is
+only
+temporary
+Every
+one
+has
+troubles
+of
+one
+kind
+or
+another
+but
+through
+trouble
+we
+become
+wiser
+Sp
+Gazing
+intently
+at
+some
+spirit
+her
+face
+brightened
+then
+she
+shook
+her
+head
+No
+no
+that
+cannot
+be
+Crying
+Dr
+What
+do
+you
+see
+Sp
+I
+was
+expecting
+a
+baby
+and
+a
+girl
+has
+come
+holding
+a
+baby
+which
+she
+says
+belongs
+to
+me
+Can
+I
+have
+it
+Dr
+Certainly
+you
+can
+Sp
+But
+I
+am
+not
+worthy
+They
+will
+look
+down
+on
+me
+Dr
+You
+are
+not
+going
+to
+remain
+on
+earth
+Sp
+I
+feel
+much
+happier
+than
+I
+did
+when
+I
+came
+When
+did
+the
+baby
+come
+Dr
+The
+baby
+was
+freed
+when
+you
+lost
+your
+body
+Sp
+I
+don
+t
+see
+how
+that
+could
+happen
+Dr
+Many
+things
+happen
+with
+which
+you
+are
+not
+familiar
+You
+do
+not
+understand
+the
+wonderful
+mystery
+of
+life
+Sp
+Did
+I
+kill
+the
+baby
+too
+when
+the
+revolver
+went
+off
+Dr
+When
+your
+body
+was
+killed
+the
+spirit
+of
+the
+little
+on
+was
+also
+liberated
+While
+you
+are
+talking
+through
+this
+body
+we
+cannot
+see
+you
+The
+real
+things
+of
+life
+are
+invisible
+Did
+you
+ever
+see
+music
+Sp
+I
+have
+heard
+it
+I
+hear
+beautiful
+music
+now
+Dr
+You
+are
+beginning
+to
+realize
+the
+real
+things
+of
+life
+Sp
+Another
+beautiful
+lady
+with
+white
+hair
+is
+here
+and
+she
+says
+she
+will
+be
+my
+mother
+for
+the
+present
+and
+she
+will
+take
+care
+of
+me
+She
+says
+she
+belongs
+to
+the
+Mercy
+Band
+Dr
+The
+Mercy
+Band
+of
+spirits
+is
+trying
+to
+bring
+before
+the
+world
+the
+fact
+that
+there
+is
+no
+death
+and
+for
+many
+years
+we
+have
+been
+cooperating
+with
+them
+helping
+spirits
+who
+are
+in
+trouble
+and
+darkness
+Sp
+This
+lady
+is
+very
+beautiful
+She
+is
+not
+the
+one
+who
+was
+here
+first
+nor
+the
+one
+with
+the
+baby
+This
+one
+says
+her
+name
+is
+Mrs
+Case
+Dr
+When
+she
+was
+on
+earth
+she
+was
+greatly
+interested
+in
+this
+work
+Sp
+The
+other
+lady
+says
+she
+will
+take
+care
+of
+my
+baby
+because
+that
+is
+her
+work
+She
+says
+her
+name
+is
+Abbie
+Judson
+and
+she
+takes
+care
+of
+the
+waif
+children
+She
+says
+she
+was
+a
+Spiritualist
+when
+on
+earth
+and
+that
+she
+wrote
+Oh
+I
+feel
+so
+sorry
+for
+poor
+Harry
+Will
+he
+ever
+forgive
+me
+Dr
+He
+knows
+the
+circumstances
+and
+he
+will
+forgive
+you
+Sp
+Please
+can
+I
+go
+with
+these
+people
+Will
+I
+cry
+any
+more
+I
+have
+been
+crying
+so
+much
+that
+my
+eyes
+hurt
+me
+Dr
+The
+spirit
+friends
+will
+enlighten
+you
+and
+will
+teach
+you
+life
+s
+lessons
+and
+you
+will
+be
+happy
+A
+sudden
+death
+undoubtedly
+attributable
+to
+spirit
+influence
+was
+that
+of
+Olive
+T
+well
+known
+motion
+picture
+actress
+The
+newspapers
+reported
+that
+Olive
+T
+had
+committed
+suicide
+See
+Chap
+Page
+Spirit
+Mrs
+Case
+See
+Chap
+Page
+Spirit
+Olive
+T
+one
+evening
+in
+the
+early
+fall
+of
+in
+Paris
+France
+and
+six
+days
+later
+her
+chum
+Anna
+D
+also
+ended
+her
+life
+Shortly
+after
+the
+following
+occurred
+EXPERIENCE
+SEPTEMBER
+Spirit
+OLIVE
+T
+Psychic
+MRS
+WICKLAND
+The
+spirit
+seemed
+to
+be
+in
+painful
+contortions
+and
+was
+crying
+wretchedly
+Doctor
+Who
+are
+you
+friend
+Come
+tell
+us
+who
+you
+are
+Tell
+us
+what
+is
+troubling
+you
+and
+why
+you
+are
+crying
+You
+have
+been
+brought
+here
+to
+be
+helped
+Spirit
+Oh
+look
+Look
+at
+that
+Dr
+What
+do
+you
+see
+Sp
+Look
+there
+Oh
+look
+Isn
+t
+that
+horrible
+that
+face
+Alluding
+to
+an
+invisible
+entity
+Dr
+Do
+you
+know
+where
+you
+are
+You
+are
+in
+California
+Sp
+Help
+me
+Oh
+help
+me
+Dr
+You
+must
+be
+reasonable
+Sp
+Give
+me
+something
+to
+drink
+champagne
+give
+me
+some
+champagne
+Dr
+You
+are
+now
+a
+spirit
+and
+will
+have
+no
+further
+use
+for
+champagne
+You
+have
+lost
+your
+body
+and
+are
+now
+in
+California
+Sp
+Writhing
+with
+face
+distorted
+as
+if
+in
+intense
+pain
+Oh
+look
+Help
+me
+Dr
+Try
+to
+realize
+that
+you
+have
+lost
+your
+own
+body
+and
+are
+now
+controlling
+the
+body
+of
+my
+wife
+who
+is
+a
+psychic
+sensitive
+Intelligent
+spirits
+have
+brought
+you
+here
+that
+you
+might
+be
+helped
+You
+can
+only
+stay
+a
+short
+time
+Sp
+Give
+me
+something
+to
+drink
+Dr
+Who
+are
+you
+What
+is
+your
+name
+We
+have
+nothing
+to
+drink
+and
+would
+not
+give
+it
+to
+you
+if
+we
+had
+Try
+to
+realize
+your
+situation
+Sp
+Take
+me
+out
+of
+this
+Dr
+Out
+of
+what
+Try
+to
+be
+reasonable
+and
+the
+intelligent
+spirits
+can
+help
+you
+and
+bring
+you
+to
+a
+better
+understanding
+Sp
+With
+intense
+excitement
+Get
+some
+champagne
+for
+me
+Dr
+You
+must
+not
+act
+so
+wildly
+Realize
+that
+you
+are
+now
+a
+spirit
+My
+wife
+is
+a
+psychic
+intermediary
+and
+allows
+spirits
+like
+yourself
+to
+control
+her
+body
+that
+they
+may
+be
+helped
+Don
+t
+you
+understand
+that
+you
+are
+in
+a
+strange
+condition
+Sp
+I
+don
+t
+care
+Dr
+You
+will
+not
+gain
+anything
+by
+acting
+in
+this
+way
+Excitement
+will
+only
+add
+to
+your
+misery
+Sp
+Complaining
+a
+great
+pain
+I
+want
+champagne
+and
+I
+want
+it
+quick
+Dr
+You
+won
+t
+get
+any
+more
+champagne
+that
+life
+is
+past
+Your
+earthly
+life
+is
+over
+Come
+to
+a
+realization
+of
+your
+actual
+situation
+Intelligent
+spirits
+will
+help
+you
+and
+bring
+you
+to
+a
+better
+condition
+in
+the
+spirit
+life
+Sp
+Give
+me
+a
+cigarette
+Dr
+You
+will
+not
+get
+any
+more
+cigarettes
+Tell
+us
+who
+you
+are
+and
+what
+your
+situation
+is
+Your
+only
+salvation
+now
+is
+to
+realize
+your
+condition
+then
+you
+will
+have
+understanding
+and
+progress
+in
+spirit
+life
+Where
+did
+you
+come
+from
+You
+cannot
+satisfy
+your
+earthly
+cravings
+any
+longer
+Tell
+us
+your
+troubles
+Do
+you
+know
+that
+you
+are
+in
+Los
+Angeles
+California
+Sp
+Becoming
+greatly
+excited
+and
+pointing
+Look
+at
+that
+man
+standing
+over
+there
+Spirit
+He
+s
+horrible
+horrible
+I
+am
+so
+afraid
+of
+him
+Don
+t
+let
+him
+come
+near
+me
+He
+looks
+terrible
+Don
+t
+let
+him
+touch
+me
+Dr
+Listen
+to
+us
+we
+are
+your
+friends
+We
+understand
+your
+condition
+Tell
+us
+who
+you
+are
+Sp
+I
+cannot
+tell
+just
+now
+I
+am
+too
+afraid
+Oh
+I
+m
+so
+afraid
+of
+that
+man
+He
+haunts
+me
+he
+s
+with
+me
+all
+the
+time
+What
+is
+this
+place
+Dr
+This
+is
+a
+psychic
+circle
+where
+we
+help
+spirits
+that
+are
+in
+darkness
+and
+ignorance
+If
+you
+will
+calm
+yourself
+and
+try
+to
+be
+quiet
+we
+shall
+be
+able
+to
+help
+you
+Believe
+what
+I
+tell
+you
+then
+we
+can
+help
+you
+Sp
+The
+man
+over
+there
+is
+making
+such
+horrible
+faces
+at
+me
+that
+it
+frightens
+me
+Dr
+Try
+to
+compose
+yourself
+then
+our
+spirit
+forces
+can
+aid
+you
+Sp
+I
+don
+t
+understand
+you
+Dr
+You
+are
+a
+spirit
+and
+the
+man
+you
+see
+is
+also
+a
+spirit
+You
+have
+lost
+your
+physical
+body
+and
+now
+have
+a
+spirit
+body
+Sp
+I
+don
+t
+understand
+you
+and
+I
+m
+so
+afraid
+Dr
+You
+do
+not
+need
+to
+fear
+just
+listen
+Our
+spirit
+forces
+will
+help
+you
+if
+you
+will
+be
+quiet
+Sp
+Suddenly
+animated
+at
+the
+sight
+of
+some
+invisible
+Oh
+Anna
+Anna
+D
+Where
+did
+you
+come
+from
+She
+s
+afraid
+of
+that
+man
+too
+He
+is
+going
+over
+to
+Anna
+Don
+t
+let
+him
+get
+her
+Dr
+Tell
+us
+who
+you
+are
+then
+we
+can
+help
+you
+more
+easily
+Sp
+I
+am
+Olive
+T
+Dr
+Then
+you
+passed
+out
+just
+before
+Anna
+D
+did
+Neither
+of
+you
+realizes
+that
+you
+have
+lost
+your
+physical
+body
+She
+also
+needs
+help
+Sp
+She
+s
+not
+dead
+Dr
+She
+does
+not
+realize
+any
+more
+than
+you
+do
+that
+she
+has
+passed
+out
+of
+her
+physical
+body
+Sp
+Anna
+how
+did
+you
+get
+here
+Dr
+You
+are
+both
+spirits
+and
+can
+stay
+here
+only
+a
+short
+time
+Do
+you
+not
+realize
+that
+you
+have
+passed
+out
+of
+your
+bodies
+that
+something
+strange
+has
+taken
+place
+To
+Olive
+T
+You
+were
+in
+Paris
+and
+now
+you
+are
+in
+California
+Sp
+California
+Please
+tell
+me
+who
+that
+nice
+looking
+lady
+is
+standing
+over
+there
+Spirit
+Dr
+Probably
+she
+is
+some
+spirit
+who
+brought
+you
+here
+for
+help
+Ask
+her
+who
+she
+is
+Sp
+Why
+it
+s
+Anna
+H
+Dr
+She
+is
+serving
+those
+who
+are
+in
+trouble
+Sp
+Crying
+I
+can
+t
+see
+any
+more
+What
+s
+the
+matter
+with
+me
+Where
+am
+I
+Dr
+You
+are
+in
+Los
+Angeles
+California
+Sp
+Yes
+but
+I
+m
+not
+with
+my
+own
+folks
+Where
+are
+they
+all
+Dr
+According
+to
+reports
+you
+were
+in
+Paris
+and
+had
+been
+out
+one
+evening
+after
+which
+you
+went
+to
+your
+apartment
+and
+committed
+suicide
+Sp
+There
+s
+the
+fellow
+that
+made
+me
+do
+that
+that
+man
+standing
+over
+there
+the
+one
+who
+made
+such
+horrible
+faces
+Spirit
+Dr
+He
+will
+not
+be
+able
+to
+bother
+you
+any
+more
+Sp
+He
+says
+he
+took
+me
+to
+that
+place
+where
+I
+was
+Crying
+Why
+should
+he
+do
+that
+I
+got
+so
+that
+I
+could
+not
+sleep
+because
+of
+that
+fellow
+he
+bothered
+me
+all
+the
+time
+Dr
+You
+must
+have
+been
+a
+psychic
+Sp
+Don
+t
+let
+him
+come
+near
+me
+I
+have
+already
+suffered
+so
+much
+through
+him
+Nobody
+knows
+bow
+I
+have
+suffered
+No
+one
+understood
+my
+different
+moods
+Dr
+How
+could
+they
+when
+they
+knew
+nothing
+about
+spirits
+troubling
+people
+You
+were
+obsessed
+and
+very
+few
+understand
+obsession
+Sp
+I
+feel
+very
+sick
+but
+please
+do
+not
+let
+me
+die
+I
+want
+to
+live
+See
+Chap
+Pages
+Spirit
+Anna
+H
+Dr
+Nobody
+ever
+dies
+only
+the
+physical
+body
+is
+lost
+You
+have
+lost
+your
+physical
+body
+and
+from
+now
+on
+you
+will
+begin
+to
+live
+in
+the
+spirit
+world
+Sp
+Say
+Anna
+D
+why
+are
+you
+here
+Dr
+Does
+she
+know
+that
+she
+has
+passed
+away
+Sp
+Agitated
+and
+weeping
+anew
+with
+fright
+That
+fellow
+standing
+over
+there
+he
+is
+the
+cause
+of
+her
+death
+he
+says
+so
+Dr
+You
+are
+using
+my
+wife
+s
+brain
+and
+body
+and
+you
+must
+try
+to
+quiet
+yourself
+Anna
+H
+brought
+you
+here
+for
+help
+Sp
+She
+doesn
+t
+care
+for
+me
+Dr
+Listen
+to
+what
+she
+says
+be
+calm
+and
+listen
+By
+being
+quiet
+you
+can
+be
+helped
+You
+must
+have
+some
+regard
+for
+my
+wife
+s
+nervous
+system
+She
+allows
+spirits
+like
+you
+to
+control
+her
+body
+so
+you
+must
+not
+misuse
+it
+Listen
+to
+what
+Anna
+H
+says
+Sp
+Anna
+H
+says
+that
+she
+is
+now
+serving
+those
+who
+are
+in
+the
+dark
+because
+of
+their
+foolishness
+selfishness
+and
+the
+misuse
+of
+money
+She
+is
+striving
+to
+do
+her
+part
+Crying
+again
+If
+I
+had
+only
+understood
+Dr
+You
+would
+not
+have
+listened
+to
+anything
+about
+spirits
+when
+you
+had
+your
+body
+Sp
+I
+don
+t
+know
+what
+you
+mean
+Dr
+I
+mean
+that
+you
+have
+lost
+your
+mortal
+body
+and
+are
+now
+controlling
+my
+wife
+s
+body
+We
+are
+talking
+to
+you
+but
+we
+do
+not
+see
+you
+Sp
+Where
+am
+I
+Dr
+You
+are
+in
+Highland
+Park
+Los
+Angeles
+Sp
+I
+can
+t
+understand
+things
+Anna
+Anna
+DJ
+How
+did
+you
+come
+here
+Are
+you
+in
+Paris
+too
+Dr
+What
+does
+she
+say
+Sp
+She
+says
+she
+doesn
+t
+know
+anything
+she
+feels
+so
+strange
+Dr
+She
+is
+also
+a
+spirit
+and
+does
+not
+understand
+her
+condition
+Sp
+Anna
+H
+brought
+her
+here
+too
+She
+says
+that
+by
+serving
+others
+she
+has
+progressed
+Dr
+She
+controlled
+this
+psychic
+about
+two
+years
+ago
+Sp
+She
+says
+that
+she
+will
+take
+care
+of
+us
+both
+and
+that
+I
+can
+get
+rest
+and
+sleep
+I
+will
+go
+with
+her
+and
+will
+take
+Anna
+D
+along
+with
+me
+because
+Anna
+H
+brought
+us
+two
+together
+She
+says
+Anna
+D
+also
+needs
+help
+Dr
+You
+will
+find
+many
+intelligent
+spirits
+who
+will
+be
+willing
+to
+help
+you
+Sp
+That
+horrible
+fellow
+cannot
+bother
+me
+any
+more
+can
+he
+He
+scared
+both
+Anna
+D
+and
+me
+We
+were
+together
+so
+much
+Dr
+The
+man
+you
+speak
+of
+is
+also
+a
+spirit
+He
+will
+not
+trouble
+you
+any
+more
+Sp
+I
+got
+so
+that
+I
+could
+not
+sleep
+and
+I
+felt
+so
+badly
+Dr
+I
+presume
+that
+the
+spirit
+you
+speak
+of
+impressed
+you
+to
+do
+the
+things
+you
+did
+Sp
+Yes
+that
+is
+so
+Dr
+Now
+you
+must
+go
+with
+Anna
+H
+she
+and
+the
+others
+will
+help
+you
+Sp
+She
+says
+I
+can
+go
+to
+sleep
+and
+rest
+I
+see
+so
+many
+people
+and
+I
+don
+t
+know
+who
+they
+are
+Spirits
+I
+am
+tired
+and
+want
+to
+rest
+I
+have
+not
+had
+any
+rest
+for
+years
+it
+seems
+but
+it
+is
+only
+a
+short
+time
+I
+suppose
+Now
+I
+will
+go
+with
+Anna
+H
+Goodbye
+Shortly
+after
+the
+death
+of
+Virginia
+R
+cinema
+star
+who
+died
+in
+San
+Francisco
+the
+spirit
+of
+the
+girl
+was
+brought
+by
+Olive
+T
+to
+our
+circle
+to
+be
+awakened
+and
+afterward
+Olive
+T
+herself
+spoke
+through
+the
+psychic
+EXPERIENCE
+APRIL
+Spirit
+OLIVE
+T
+Psychic
+MRS
+WICKLAND
+I
+felt
+that
+I
+must
+come
+in
+and
+thank
+you
+for
+the
+glory
+that
+has
+been
+bestowed
+upon
+me
+since
+the
+time
+I
+was
+here
+last
+During
+our
+childhood
+we
+should
+be
+taught
+the
+real
+lesson
+of
+life
+and
+made
+to
+understand
+life
+in
+its
+true
+sense
+Let
+pictures
+be
+shown
+of
+the
+real
+life
+If
+they
+would
+put
+on
+the
+screen
+the
+pictures
+of
+the
+real
+life
+the
+real
+understanding
+and
+teach
+the
+people
+that
+there
+is
+no
+death
+teach
+them
+of
+the
+beautiful
+conditions
+on
+the
+other
+side
+of
+life
+which
+are
+waiting
+for
+every
+one
+entitled
+to
+them
+after
+they
+understand
+the
+higher
+life
+the
+world
+would
+be
+different
+I
+lived
+in
+a
+life
+of
+make
+believe
+and
+we
+tried
+to
+amuse
+humanity
+I
+am
+sorry
+for
+the
+girls
+who
+fall
+into
+a
+life
+of
+sport
+They
+think
+they
+have
+a
+good
+time
+yes
+for
+a
+while
+But
+there
+is
+always
+some
+little
+voice
+conscience
+that
+bothers
+you
+no
+matter
+how
+you
+try
+to
+kill
+it
+Oh
+if
+I
+could
+only
+teach
+the
+young
+girls
+tell
+them
+of
+the
+folly
+of
+such
+a
+life
+If
+I
+could
+only
+teach
+them
+to
+look
+up
+to
+the
+higher
+life
+and
+show
+them
+the
+truth
+of
+that
+life
+We
+should
+teach
+people
+to
+live
+for
+others
+not
+for
+self
+We
+should
+teach
+the
+girls
+the
+principles
+of
+life
+One
+thing
+that
+is
+very
+detrimental
+to
+the
+world
+is
+drink
+and
+morphine
+As
+conditions
+are
+now
+they
+are
+driving
+the
+girls
+and
+boys
+to
+misery
+People
+condemn
+without
+acting
+and
+what
+do
+they
+gain
+They
+drive
+the
+young
+to
+the
+depths
+because
+when
+the
+law
+forbids
+things
+they
+want
+them
+and
+in
+some
+way
+or
+another
+they
+get
+them
+They
+enjoy
+them
+more
+because
+they
+are
+forbidden
+There
+is
+also
+something
+else
+You
+know
+whiskey
+and
+the
+other
+alcoholic
+drinks
+have
+a
+thousand
+yes
+a
+million
+thoughts
+that
+go
+with
+them
+The
+cranks
+concentrate
+their
+minds
+on
+drink
+and
+condemn
+it
+and
+when
+sensitives
+get
+it
+they
+become
+wild
+They
+become
+crazy
+with
+all
+the
+thoughts
+that
+are
+sent
+with
+it
+It
+drives
+them
+down
+and
+down
+Man
+should
+live
+and
+learn
+of
+God
+s
+wonderful
+manifestations
+God
+is
+the
+Life
+of
+All
+but
+man
+is
+the
+devil
+I
+do
+not
+mean
+man
+alone
+when
+I
+say
+man
+but
+I
+mean
+humanity
+God
+gave
+us
+a
+free
+will
+but
+we
+misuse
+it
+People
+should
+be
+taught
+the
+true
+teachings
+of
+Christ
+They
+say
+Did
+not
+Christ
+make
+wine
+And
+did
+He
+not
+give
+it
+to
+the
+people
+They
+do
+not
+understand
+that
+it
+was
+the
+Wine
+of
+Life
+Christ
+spoke
+about
+the
+spiritual
+The
+majority
+of
+people
+think
+he
+spoke
+of
+the
+material
+Understand
+God
+right
+Do
+not
+let
+us
+fear
+Him
+He
+is
+not
+a
+man
+sitting
+on
+a
+throne
+but
+He
+is
+the
+Spirit
+of
+All
+Life
+Everything
+around
+us
+is
+a
+part
+of
+this
+Divine
+Life
+Evil
+has
+its
+place
+just
+as
+the
+good
+has
+If
+we
+had
+no
+evil
+we
+could
+not
+know
+the
+good
+It
+is
+only
+from
+the
+experiences
+we
+pass
+through
+that
+we
+learn
+the
+lessons
+of
+life
+that
+we
+gain
+wisdom
+and
+I
+learn
+of
+the
+life
+everlasting
+that
+lies
+before
+us
+My
+salvation
+came
+in
+the
+spirit
+world
+when
+I
+found
+the
+truth
+because
+I
+had
+been
+through
+misery
+After
+I
+had
+gone
+through
+the
+fire
+of
+conscience
+I
+was
+purified
+I
+was
+anxious
+to
+find
+the
+truth
+and
+after
+I
+found
+it
+there
+was
+no
+doubting
+I
+wanted
+peace
+and
+harmony
+and
+I
+was
+then
+ready
+for
+it
+You
+find
+gold
+after
+it
+has
+gone
+through
+the
+fire
+of
+purification
+After
+my
+soul
+had
+gone
+through
+the
+fire
+of
+conscience
+I
+found
+God
+within
+myself
+not
+on
+the
+outside
+Find
+God
+and
+be
+content
+within
+yourself
+Learn
+to
+understand
+yourself
+first
+before
+you
+judge
+others
+then
+you
+will
+not
+judge
+Let
+us
+be
+friends
+to
+all
+do
+good
+to
+all
+and
+do
+good
+whenever
+we
+can
+Let
+us
+conquer
+self
+Whenever
+self
+rises
+within
+you
+to
+torment
+you
+and
+tries
+to
+make
+you
+give
+way
+to
+anger
+and
+give
+way
+to
+drinking
+and
+all
+kinds
+of
+trouble
+say
+to
+yourself
+that
+you
+are
+not
+angry
+and
+that
+you
+will
+not
+give
+way
+to
+things
+Then
+instead
+of
+saying
+anything
+to
+others
+get
+up
+and
+turn
+around
+and
+your
+anger
+will
+be
+gone
+because
+you
+will
+not
+say
+what
+you
+wanted
+to
+and
+many
+times
+in
+that
+way
+you
+will
+have
+harmony
+When
+we
+are
+in
+a
+state
+of
+anger
+we
+say
+things
+that
+afterwards
+we
+are
+sorry
+for
+and
+sometimes
+these
+things
+can
+never
+be
+forgotten
+So
+let
+us
+always
+think
+if
+we
+feel
+anger
+coming
+over
+us
+that
+we
+will
+not
+give
+way
+to
+it
+let
+us
+turn
+around
+and
+say
+No
+I
+will
+conquer
+self
+I
+will
+look
+to
+higher
+things
+not
+the
+lower
+I
+will
+conquer
+and
+you
+cannot
+come
+in
+and
+torment
+I
+was
+in
+that
+state
+of
+anger
+and
+it
+was
+my
+death
+What
+did
+I
+do
+I
+killed
+myself
+I
+did
+not
+mean
+to
+kill
+myself
+but
+I
+did
+it
+in
+a
+mood
+of
+anger
+Conquer
+self
+before
+it
+is
+too
+late
+Conquer
+your
+anger
+before
+it
+goes
+too
+far
+I
+was
+swept
+by
+anger
+and
+what
+happened
+I
+killed
+myself
+Then
+when
+I
+woke
+up
+and
+saw
+what
+I
+had
+done
+I
+was
+in
+anguish
+It
+was
+through
+anger
+anger
+and
+selfishness
+Let
+us
+conquer
+and
+when
+anger
+comes
+in
+let
+us
+say
+Get
+thee
+behind
+me
+Satan
+Turnaround
+and
+that
+will
+shutout
+any
+spirit
+that
+would
+take
+possession
+of
+you
+If
+I
+had
+turned
+around
+I
+would
+not
+have
+done
+what
+I
+did
+If
+I
+could
+only
+tell
+people
+of
+the
+life
+they
+should
+live
+and
+have
+them
+put
+pictures
+on
+the
+screen
+of
+the
+true
+life
+and
+teachings
+of
+Jesus
+and
+the
+lessons
+He
+taught
+and
+how
+much
+good
+we
+could
+all
+do
+for
+humanity
+it
+would
+turn
+many
+criminals
+and
+they
+would
+become
+good
+men
+and
+omen
+This
+is
+Olive
+T
+Good
+Night
+Mrs
+R
+was
+a
+patient
+with
+such
+strong
+suicidal
+inclinations
+that
+she
+was
+unable
+to
+eat
+or
+sleep
+constantly
+scratched
+the
+hair
+from
+her
+head
+and
+had
+wasted
+away
+to
+a
+mere
+shadow
+She
+declared
+that
+she
+had
+killed
+five
+hundred
+persons
+and
+her
+one
+thought
+was
+to
+end
+her
+own
+life
+and
+since
+there
+seemed
+no
+hope
+of
+recovery
+she
+was
+placed
+in
+a
+sanitarium
+where
+she
+was
+confined
+in
+a
+locked
+room
+for
+three
+years
+After
+being
+placed
+in
+our
+care
+she
+made
+several
+attempts
+at
+self
+destruction
+but
+within
+a
+few
+weeks
+she
+was
+freed
+from
+a
+gloomy
+spirit
+who
+had
+himself
+committed
+suicide
+and
+from
+that
+time
+there
+was
+no
+further
+recurrence
+of
+the
+suicidal
+impulse
+Mrs
+R
+remained
+with
+us
+for
+some
+time
+gaining
+steadily
+in
+weight
+strength
+and
+health
+she
+became
+entirely
+normal
+and
+returned
+to
+live
+with
+her
+relatives
+taking
+up
+all
+her
+former
+occupations
+EXPERIENCE
+FEBRUARY
+Spirit
+RALPH
+STEVENSON
+Patient
+MRS
+R
+Psychic
+MRS
+WICKLAND
+Doctor
+Where
+did
+you
+come
+from
+Spirit
+I
+was
+straggling
+along
+and
+saw
+a
+light
+so
+I
+came
+in
+Dr
+Can
+you
+tell
+us
+who
+you
+are
+Sp
+No
+I
+don
+t
+know
+Dr
+Can
+t
+you
+remember
+what
+your
+name
+is
+Sp
+I
+can
+t
+seem
+to
+remember
+anything
+What
+is
+the
+matter
+with
+my
+head
+It
+hurts
+me
+so
+badly
+Dr
+What
+seems
+to
+be
+the
+matter
+with
+your
+head
+Sp
+It
+is
+difficult
+for
+me
+to
+think
+What
+am
+I
+here
+for
+Who
+are
+you
+Dr
+They
+call
+me
+Dr
+Wickland
+Sp
+What
+kind
+of
+a
+doctor
+are
+you
+Dr
+Medical
+What
+is
+your
+name
+Sp
+My
+name
+It
+is
+strange
+but
+I
+can
+t
+remember
+my
+name
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+Dead
+you
+say
+Why
+I
+m
+not
+dead
+I
+wish
+I
+were
+Dr
+Is
+life
+so
+unpleasant
+for
+you
+Sp
+Yes
+it
+is
+If
+I
+am
+dead
+then
+it
+is
+very
+hard
+to
+be
+dead
+I
+have
+tried
+and
+tried
+to
+die
+but
+it
+seems
+every
+single
+time
+I
+come
+to
+life
+again
+Why
+is
+it
+that
+I
+cannot
+die
+Dr
+There
+is
+no
+actual
+death
+Sp
+Of
+course
+there
+is
+Dr
+How
+do
+you
+know
+there
+is
+such
+a
+thing
+as
+death
+Sp
+I
+don
+t
+know
+anything
+In
+great
+distress
+I
+want
+to
+die
+I
+want
+to
+die
+Life
+is
+so
+dark
+and
+gloomy
+I
+wish
+I
+could
+die
+and
+forget
+forget
+just
+forget
+Why
+can
+t
+I
+die
+I
+think
+sometimes
+I
+am
+dead
+then
+all
+at
+once
+I
+am
+alive
+again
+I
+want
+to
+forget
+all
+the
+trouble
+and
+agony
+that
+I
+have
+Where
+shall
+I
+go
+so
+that
+I
+can
+die
+Sometimes
+I
+get
+in
+places
+auras
+but
+I
+am
+always
+pushed
+out
+in
+the
+dark
+again
+and
+I
+go
+from
+place
+to
+place
+I
+cannot
+find
+my
+home
+and
+I
+cannot
+die
+What
+is
+the
+matter
+Oh
+let
+me
+forget
+just
+for
+a
+little
+while
+Let
+me
+be
+free
+from
+my
+thoughts
+and
+this
+horrible
+darkness
+Why
+can
+t
+I
+die
+Dr
+You
+are
+on
+the
+wrong
+path
+friend
+Sp
+Then
+where
+shall
+I
+find
+the
+right
+path
+Dr
+Within
+yourself
+Sp
+There
+was
+a
+time
+when
+I
+believed
+in
+a
+God
+and
+there
+was
+a
+time
+when
+I
+believed
+in
+Heaven
+and
+hell
+but
+not
+any
+more
+It
+is
+dark
+and
+gloomy
+and
+my
+conscience
+accuses
+me
+so
+Let
+me
+forget
+I
+want
+to
+forget
+oh
+how
+I
+want
+to
+forget
+Dr
+Do
+you
+know
+that
+you
+have
+lost
+your
+physical
+body
+Sp
+I
+do
+not
+know
+anything
+about
+it
+Dr
+Why
+are
+you
+here
+Sp
+I
+see
+you
+people
+I
+don
+t
+know
+any
+of
+you
+but
+as
+I
+look
+in
+your
+faces
+you
+appear
+to
+be
+good
+Will
+you
+take
+me
+in
+and
+give
+me
+a
+little
+light
+and
+some
+happiness
+I
+have
+not
+seen
+either
+for
+years
+and
+years
+Dr
+What
+is
+causing
+all
+your
+trouble
+Sp
+Why
+is
+it
+there
+is
+no
+God
+Why
+does
+He
+let
+me
+be
+in
+this
+darkness
+and
+gloom
+I
+was
+once
+a
+good
+boy
+but
+I
+was
+oh
+I
+can
+t
+say
+it
+I
+must
+not
+say
+it
+No
+no
+I
+must
+not
+Greatly
+agitated
+Dr
+Tell
+us
+what
+is
+on
+your
+mind
+Sp
+I
+have
+done
+a
+great
+wrong
+I
+can
+never
+be
+forgiven
+God
+would
+not
+forgive
+any
+one
+like
+me
+no
+no
+no
+Dr
+Try
+to
+understand
+your
+condition
+we
+can
+help
+you
+You
+say
+you
+are
+a
+man
+Sp
+I
+am
+a
+man
+Dr
+You
+are
+using
+a
+woman
+s
+body
+Sp
+I
+cannot
+think
+how
+I
+could
+have
+become
+a
+woman
+in
+my
+sorrows
+and
+not
+know
+it
+Seeing
+an
+invisible
+and
+becoming
+wildly
+excited
+Don
+t
+come
+here
+don
+t
+don
+t
+Go
+away
+Look
+look
+Look
+over
+there
+Go
+away
+I
+can
+t
+stand
+it
+Dr
+What
+have
+you
+done
+Sp
+If
+I
+should
+tell
+you
+I
+would
+be
+arrested
+I
+cannot
+stay
+any
+longer
+I
+must
+go
+now
+I
+must
+run
+away
+I
+must
+The
+patient
+Mrs
+R
+had
+a
+number
+of
+times
+attempted
+to
+run
+away
+They
+are
+coming
+after
+me
+and
+if
+I
+stay
+they
+will
+catch
+me
+Let
+me
+go
+There
+they
+are
+my
+accusers
+Dr
+Where
+do
+you
+think
+you
+are
+Sp
+In
+New
+York
+Dr
+You
+are
+far
+from
+New
+York
+you
+are
+in
+Los
+Angeles
+California
+What
+year
+do
+you
+think
+it
+is
+Do
+you
+know
+it
+is
+Sp
+That
+can
+t
+be
+Dr
+What
+year
+do
+you
+think
+it
+is
+Sp
+Dr
+That
+was
+seventeen
+years
+ago
+Can
+t
+you
+realize
+that
+You
+have
+lost
+your
+physical
+body
+There
+is
+no
+actual
+death
+only
+transition
+Only
+the
+physical
+body
+is
+lost
+Did
+you
+ever
+study
+the
+problems
+of
+life
+and
+death
+Sp
+No
+I
+never
+studied
+anything
+I
+only
+believed
+My
+name
+is
+Ralph
+but
+I
+forget
+my
+last
+name
+My
+father
+is
+dead
+Dr
+No
+more
+than
+you
+are
+Sp
+Of
+course
+I
+am
+not
+dead
+I
+wish
+I
+were
+Will
+you
+please
+take
+me
+away
+from
+here
+and
+kill
+me
+so
+that
+I
+can
+die
+Mrs
+R
+had
+often
+begged
+to
+be
+killed
+Oh
+here
+they
+are
+coming
+again
+I
+will
+not
+confess
+If
+I
+do
+they
+will
+put
+me
+in
+prison
+and
+I
+am
+in
+trouble
+enough
+Dr
+You
+are
+in
+darkness
+owing
+to
+your
+ignorance
+Confess
+and
+we
+will
+help
+you
+Sp
+I
+cannot
+confess
+I
+have
+tried
+before
+but
+I
+could
+not
+My
+past
+stands
+out
+right
+before
+me
+Dr
+From
+what
+you
+say
+you
+have
+evidently
+been
+obsessing
+people
+and
+in
+your
+effort
+to
+kill
+yourself
+you
+have
+probably
+caused
+others
+to
+commit
+suicide
+Haven
+t
+you
+found
+yourself
+in
+queer
+circumstances
+at
+times
+Sp
+I
+did
+not
+try
+to
+understand
+myself
+In
+alarm
+Oh
+Alice
+Spirit
+No
+no
+I
+am
+afraid
+I
+did
+not
+mean
+to
+do
+what
+I
+did
+No
+Alice
+don
+t
+accuse
+me
+Dr
+If
+you
+will
+tell
+us
+what
+your
+trouble
+is
+we
+can
+help
+you
+Sp
+We
+told
+each
+other
+that
+we
+would
+die
+but
+we
+did
+not
+die
+Alice
+why
+did
+you
+tell
+me
+to
+kill
+you
+Why
+did
+you
+I
+killed
+you
+first
+and
+then
+I
+killed
+myself
+but
+I
+could
+not
+die
+Oh
+Alice
+Alice
+Dr
+She
+probably
+understands
+conditions
+better
+than
+you
+do
+Sp
+She
+says
+Ralph
+we
+were
+foolish
+I
+will
+tell
+you
+but
+I
+know
+I
+shall
+be
+arrested
+when
+I
+get
+through
+Alice
+and
+I
+were
+engaged
+to
+be
+married
+but
+her
+parents
+did
+not
+want
+us
+to
+marry
+because
+they
+thought
+I
+was
+not
+what
+I
+should
+be
+We
+loved
+each
+other
+very
+dearly
+so
+we
+decided
+that
+I
+should
+kill
+her
+then
+kill
+myself
+I
+did
+it
+but
+I
+never
+could
+kill
+myself
+and
+I
+guess
+as
+Alice
+is
+here
+I
+did
+not
+kill
+her
+either
+Ever
+since
+I
+tried
+to
+kill
+her
+she
+comes
+and
+accuses
+me
+Alice
+and
+I
+were
+together
+and
+she
+said
+all
+the
+time
+Now
+kill
+me
+Quick
+quick
+Kill
+me
+Go
+ahead
+Do
+it
+Do
+it
+I
+hesitated
+because
+I
+loved
+her
+but
+she
+kept
+on
+saying
+Do
+it
+quick
+Do
+it
+I
+still
+hesitated
+but
+Alice
+said
+Come
+now
+do
+it
+Be
+quick
+I
+could
+not
+so
+she
+said
+since
+she
+could
+not
+go
+home
+again
+and
+we
+could
+not
+marry
+why
+not
+die
+together
+But
+she
+would
+not
+do
+the
+deed
+herself
+I
+could
+not
+do
+it
+either
+She
+kept
+urging
+me
+to
+kill
+her
+so
+at
+last
+I
+shut
+my
+eyes
+and
+shot
+her
+and
+then
+I
+shot
+myself
+before
+I
+saw
+her
+fall
+I
+saw
+her
+lying
+on
+the
+floor
+and
+I
+tried
+to
+run
+away
+after
+I
+got
+up
+and
+I
+ran
+and
+ran
+and
+ran
+and
+I
+have
+been
+running
+and
+walking
+ever
+since
+trying
+to
+forget
+but
+I
+cannot
+Sometimes
+Alice
+comes
+to
+me
+but
+I
+always
+say
+No
+I
+am
+the
+cause
+of
+your
+death
+so
+stay
+away
+from
+me
+I
+ran
+and
+ran
+to
+get
+away
+from
+the
+police
+and
+everybody
+else
+A
+while
+ago
+I
+felt
+I
+was
+an
+old
+woman
+and
+I
+could
+not
+get
+away
+from
+being
+a
+woman
+for
+a
+long
+time
+I
+got
+away
+but
+after
+a
+while
+I
+was
+that
+old
+woman
+again
+Dr
+You
+were
+obsessing
+somebody
+at
+that
+time
+Sp
+Obsessing
+What
+do
+you
+mean
+by
+that
+Dr
+Did
+you
+ever
+read
+in
+the
+Bible
+of
+unclean
+spirits
+Sp
+Yes
+I
+did
+But
+when
+I
+was
+that
+old
+woman
+I
+wanted
+to
+die
+and
+I
+could
+not
+I
+could
+not
+get
+rid
+of
+that
+old
+woman
+hanging
+around
+me
+either
+I
+could
+not
+get
+her
+away
+from
+me
+I
+don
+t
+want
+to
+be
+around
+that
+old
+woman
+any
+more
+Excitedly
+Oh
+Alice
+don
+t
+come
+When
+I
+was
+with
+the
+old
+woman
+there
+were
+such
+sharp
+sparks
+like
+lightning
+on
+me
+I
+thought
+they
+would
+kill
+me
+and
+I
+wanted
+to
+die
+The
+patient
+had
+often
+said
+that
+she
+hoped
+the
+electrical
+treatments
+would
+kill
+her
+They
+seemed
+to
+be
+like
+a
+streak
+of
+lightning
+and
+it
+struck
+me
+but
+I
+did
+not
+die
+Dr
+Those
+sparks
+were
+caused
+by
+static
+electricity
+which
+was
+given
+to
+one
+of
+our
+patients
+whom
+you
+have
+evidently
+been
+obsessing
+She
+always
+talked
+of
+dying
+just
+as
+you
+are
+doing
+you
+have
+been
+controlling
+her
+and
+ruining
+her
+life
+The
+electricity
+drove
+you
+away
+from
+her
+she
+will
+be
+well
+and
+you
+will
+now
+be
+helped
+When
+you
+leave
+here
+you
+will
+go
+with
+Alice
+who
+will
+help
+you
+to
+understand
+your
+condition
+You
+do
+not
+yet
+realize
+that
+you
+have
+lost
+your
+physical
+body
+and
+that
+you
+are
+still
+alive
+Alice
+is
+a
+spirit
+just
+as
+you
+are
+You
+are
+an
+invisible
+spirit
+and
+are
+controlling
+my
+wife
+s
+body
+Spirit
+and
+mind
+never
+die
+Sp
+Do
+you
+think
+I
+shall
+ever
+find
+peace
+I
+should
+like
+to
+have
+just
+one
+hour
+of
+peace
+Dr
+You
+have
+all
+eternity
+before
+you
+Sp
+Will
+I
+be
+forgiven
+for
+what
+I
+have
+done
+Dr
+Your
+own
+confession
+and
+sorrow
+are
+sufficient
+Be
+patient
+and
+willing
+to
+learn
+and
+you
+will
+be
+helped
+Sp
+There
+s
+my
+mother
+Spirit
+Mother
+I
+am
+not
+worthy
+to
+be
+called
+your
+son
+I
+loved
+you
+very
+dearly
+but
+I
+can
+t
+have
+you
+come
+to
+me
+now
+Weeping
+Oh
+Mother
+will
+you
+forgive
+me
+I
+love
+you
+still
+Will
+you
+take
+your
+wayward
+son
+and
+forgive
+him
+Will
+you
+give
+me
+happiness
+for
+a
+little
+while
+I
+have
+suffered
+oh
+so
+much
+Please
+take
+me
+with
+you
+if
+you
+can
+forgive
+me
+My
+own
+mother
+Dr
+Does
+your
+mother
+answer
+you
+Sp
+Mother
+says
+My
+son
+my
+son
+a
+mother
+s
+love
+is
+stronger
+than
+anything
+else
+I
+have
+tried
+so
+much
+and
+so
+many
+times
+to
+come
+close
+to
+you
+but
+you
+were
+always
+running
+away
+The
+first
+spirit
+left
+and
+the
+mother
+then
+spoke
+through
+the
+psychic
+Spirit
+MRS
+STEVENSON
+I
+am
+now
+united
+with
+my
+dear
+son
+For
+a
+long
+time
+I
+have
+tried
+to
+come
+in
+close
+touch
+with
+him
+but
+could
+not
+Each
+time
+that
+I
+thought
+I
+was
+going
+to
+reach
+him
+he
+would
+run
+away
+from
+me
+He
+has
+seen
+me
+many
+times
+but
+was
+afraid
+because
+he
+was
+taught
+the
+false
+doctrine
+that
+when
+we
+die
+we
+are
+dead
+and
+that
+is
+why
+people
+are
+afraid
+of
+the
+dead
+We
+do
+not
+die
+we
+simply
+pass
+on
+to
+the
+spirit
+side
+of
+life
+to
+a
+beautiful
+condition
+if
+we
+realize
+the
+truth
+But
+we
+must
+learn
+much
+regarding
+the
+next
+life
+while
+we
+are
+on
+earth
+Study
+your
+own
+life
+and
+yourself
+because
+if
+you
+do
+not
+you
+will
+be
+like
+my
+dear
+son
+He
+has
+been
+running
+for
+years
+trying
+to
+get
+away
+from
+me
+and
+his
+sweetheart
+and
+also
+from
+every
+policeman
+he
+has
+seen
+while
+in
+the
+earth
+sphere
+He
+has
+been
+obsessing
+a
+lady
+for
+some
+time
+and
+he
+had
+to
+stay
+in
+her
+magnetic
+aura
+because
+he
+did
+not
+know
+how
+to
+get
+away
+He
+has
+been
+in
+hell
+not
+a
+hell
+of
+fire
+but
+a
+hell
+of
+ignorance
+Look
+into
+conditions
+of
+the
+next
+life
+so
+that
+you
+may
+be
+prepared
+for
+death
+comes
+when
+it
+is
+not
+expected
+Be
+prepared
+not
+by
+belief
+but
+by
+actual
+knowledge
+Find
+out
+what
+is
+beyond
+the
+veil
+of
+death
+Then
+when
+the
+time
+comes
+for
+you
+to
+go
+to
+the
+spirit
+side
+of
+life
+you
+will
+go
+with
+open
+eyes
+and
+know
+where
+you
+are
+going
+and
+you
+will
+not
+be
+like
+my
+poor
+son
+an
+earthbound
+spirit
+My
+poor
+boy
+He
+is
+so
+tired
+and
+worried
+he
+is
+sick
+men
+tally
+I
+will
+nurse
+him
+and
+teach
+him
+of
+the
+life
+everlasting
+so
+that
+he
+can
+realize
+the
+beautiful
+condition
+in
+the
+spirit
+world
+Do
+not
+merely
+believe
+if
+you
+only
+believe
+you
+will
+stay
+just
+where
+you
+are
+We
+must
+all
+practice
+the
+Golden
+Rule
+to
+live
+for
+others
+and
+serve
+others
+then
+we
+will
+attain
+happiness
+when
+we
+pass
+to
+the
+spirit
+side
+of
+life
+Thank
+you
+for
+the
+help
+you
+have
+given
+my
+son
+A
+mother
+s
+love
+is
+strong
+and
+when
+you
+see
+my
+boy
+again
+he
+will
+be
+better
+because
+all
+doubt
+will
+be
+gone
+Doubt
+is
+a
+wall
+it
+is
+a
+wall
+we
+build
+for
+ourselves
+between
+life
+and
+death
+and
+that
+doubt
+can
+never
+bring
+mother
+and
+son
+together
+He
+ran
+away
+from
+me
+whenever
+he
+saw
+me
+and
+neither
+Alice
+nor
+I
+could
+come
+near
+him
+He
+thought
+he
+was
+alive
+and
+that
+he
+had
+not
+killed
+himself
+Some
+time
+ago
+he
+came
+in
+contact
+with
+a
+sensitive
+person
+a
+woman
+and
+has
+been
+obsessing
+her
+but
+he
+thought
+he
+was
+in
+prison
+I
+thank
+you
+all
+tonight
+for
+the
+help
+given
+my
+son
+and
+may
+God
+bless
+you
+for
+the
+work
+you
+are
+doing
+Goodbye
+CHAPTER
+VIII
+Spirits
+and
+Narcotics
+Inebriety
+Amnesia
+RELENTLESS
+as
+is
+the
+grip
+which
+the
+drug
+habit
+holds
+on
+its
+mortal
+victims
+the
+power
+of
+narcotics
+extends
+even
+more
+tyrannically
+beyond
+the
+grave
+The
+desire
+is
+implanted
+in
+the
+very
+soul
+itself
+and
+the
+agony
+of
+earthbound
+spirits
+whose
+cravings
+for
+gratification
+are
+in
+vain
+is
+beyond
+description
+Such
+spirits
+frequently
+obtain
+partial
+satisfaction
+through
+controlling
+mortal
+sensitives
+and
+forcing
+them
+to
+become
+addicts
+of
+some
+drug
+Often
+spirits
+suffering
+from
+the
+narcotic
+evil
+have
+come
+to
+our
+circle
+and
+many
+urgent
+warnings
+have
+been
+given
+by
+discarnate
+intelligences
+who
+were
+formerly
+subject
+to
+this
+slavery
+Twenty
+five
+years
+after
+the
+first
+conversation
+with
+Minnie
+Morgan
+which
+occurred
+during
+my
+dissecting
+work
+this
+spirit
+who
+had
+been
+a
+morphine
+fiend
+returned
+and
+told
+of
+earth
+sphere
+conditions
+as
+well
+as
+of
+the
+higher
+spirit
+world
+EXPERIENCE
+JULY
+Spirit
+MINNIE
+MORGAN
+Psychic
+MRS
+WICKLAND
+I
+feel
+that
+I
+am
+one
+of
+you
+although
+I
+do
+not
+know
+you
+I
+was
+helped
+by
+you
+I
+certainly
+had
+wonderful
+help
+in
+being
+brought
+to
+understand
+that
+there
+is
+a
+real
+life
+In
+the
+spirit
+world
+we
+know
+each
+other
+as
+we
+should
+be
+known
+not
+as
+you
+know
+each
+other
+in
+earth
+life
+with
+all
+kinds
+of
+hidden
+thoughts
+You
+wander
+like
+wild
+cattle
+on
+the
+battle
+field
+of
+selfishness
+and
+jealousy
+Love
+is
+so
+little
+understood
+You
+do
+not
+know
+what
+real
+love
+is
+because
+God
+is
+Love
+and
+God
+dwells
+in
+Love
+The
+majority
+of
+people
+only
+believe
+and
+think
+there
+is
+some
+place
+in
+the
+sky
+to
+which
+they
+go
+when
+they
+die
+Whenever
+I
+gave
+that
+subject
+any
+thought
+I
+made
+up
+my
+mind
+that
+I
+would
+have
+a
+good
+time
+while
+I
+could
+and
+then
+when
+the
+time
+came
+to
+die
+I
+would
+be
+ready
+to
+go
+because
+at
+the
+last
+I
+could
+throw
+my
+sins
+on
+Jesus
+and
+be
+washed
+as
+white
+as
+snow
+I
+started
+out
+in
+life
+with
+that
+belief
+I
+said
+See
+Chap
+Page
+Spirit
+Minnie
+Morgan
+Why
+can
+t
+I
+have
+a
+good
+time
+like
+others
+The
+future
+will
+take
+care
+of
+itself
+With
+that
+thought
+many
+persons
+go
+out
+to
+sow
+their
+wild
+oats
+thinking
+that
+when
+the
+proper
+time
+comes
+they
+will
+be
+prayed
+for
+and
+that
+then
+they
+will
+step
+into
+the
+glory
+of
+Heaven
+That
+is
+what
+I
+thought
+I
+tried
+to
+live
+a
+life
+of
+glory
+or
+what
+I
+thought
+was
+glory
+What
+does
+that
+mean
+It
+means
+to
+have
+a
+good
+time
+to
+live
+and
+not
+care
+what
+becomes
+of
+one
+s
+soul
+I
+said
+Let
+us
+have
+a
+good
+time
+while
+we
+can
+and
+I
+started
+out
+in
+life
+that
+way
+I
+had
+my
+sorrows
+and
+I
+had
+my
+good
+time
+as
+I
+called
+it
+but
+that
+is
+not
+a
+good
+time
+We
+cannot
+for
+one
+minute
+step
+over
+the
+laws
+of
+nature
+except
+we
+suffer
+in
+some
+way
+or
+other
+If
+we
+go
+too
+far
+in
+anything
+we
+suffer
+for
+it
+both
+mentally
+and
+physically
+We
+keep
+on
+going
+and
+going
+sometimes
+our
+good
+time
+is
+better
+sometimes
+worse
+I
+lived
+a
+very
+fast
+life
+and
+called
+it
+a
+glorious
+time
+but
+grief
+and
+adversity
+came
+In
+the
+way
+of
+the
+world
+I
+lived
+very
+fast
+I
+went
+to
+church
+once
+in
+a
+while
+to
+be
+sure
+my
+soul
+would
+be
+taken
+care
+of
+I
+paid
+money
+to
+the
+church
+so
+I
+would
+be
+all
+right
+and
+then
+I
+drowned
+myself
+in
+the
+glory
+of
+the
+world
+It
+was
+all
+right
+for
+a
+while
+Each
+time
+I
+had
+glory
+as
+I
+called
+it
+I
+suffered
+both
+physically
+and
+mentally
+I
+tried
+to
+shake
+it
+off
+and
+go
+on
+a
+little
+longer
+I
+fell
+by
+the
+wayside
+After
+a
+while
+my
+physical
+body
+wore
+out
+and
+I
+had
+misery
+and
+sickness
+At
+one
+time
+I
+was
+considered
+a
+very
+pretty
+girl
+I
+had
+my
+beaux
+and
+all
+that
+goes
+with
+a
+good
+time
+but
+I
+went
+down
+and
+down
+to
+the
+very
+lowest
+I
+was
+a
+physical
+wreck
+but
+I
+was
+still
+on
+earth
+Never
+let
+any
+one
+give
+you
+the
+least
+bit
+of
+morphine
+When
+you
+start
+on
+that
+road
+you
+are
+lost
+Not
+that
+a
+soul
+is
+ever
+lost
+but
+you
+are
+lost
+for
+a
+time
+while
+you
+are
+a
+slave
+to
+the
+drug
+You
+suffer
+agony
+There
+is
+nothing
+worse
+than
+to
+crave
+morphine
+and
+be
+unable
+to
+get
+it
+It
+seems
+like
+every
+nerve
+in
+your
+body
+is
+creeping
+I
+got
+wild
+because
+I
+could
+not
+get
+it
+I
+did
+not
+care
+for
+anything
+I
+would
+have
+sold
+my
+very
+soul
+if
+I
+could
+only
+have
+gotten
+morphine
+I
+lost
+all
+decency
+I
+lost
+everything
+All
+I
+wanted
+was
+morphine
+It
+was
+terrible
+It
+burned
+to
+my
+very
+heart
+I
+felt
+it
+in
+every
+nerve
+and
+I
+felt
+as
+if
+I
+were
+on
+fire
+If
+only
+some
+one
+would
+have
+gotten
+morphine
+for
+me
+Just
+a
+little
+Just
+a
+little
+bit
+A
+little
+bit
+I
+felt
+I
+couldn
+t
+stand
+it
+any
+longer
+I
+wanted
+just
+a
+little
+a
+little
+bit
+Only
+a
+little
+The
+spirit
+seemed
+to
+live
+again
+all
+the
+agony
+she
+had
+endured
+when
+in
+earth
+life
+It
+also
+seemed
+evident
+that
+in
+addition
+to
+the
+visible
+circle
+of
+investigators
+she
+was
+addressing
+an
+audience
+of
+earthbound
+spirits
+I
+died
+in
+that
+terrible
+condition
+My
+physical
+body
+was
+gone
+I
+had
+worn
+it
+out
+just
+worn
+it
+out
+Then
+I
+was
+operated
+on
+post
+mortem
+but
+I
+still
+lived
+I
+wanted
+to
+get
+to
+my
+body
+They
+operated
+on
+me
+and
+after
+a
+while
+I
+felt
+that
+something
+was
+picking
+me
+to
+small
+pieces
+Dissection
+I
+cried
+and
+I
+fought
+because
+I
+wanted
+that
+body
+so
+I
+could
+satisfy
+my
+very
+soul
+I
+was
+burning
+up
+They
+picked
+at
+every
+nerve
+they
+looked
+at
+my
+heart
+my
+shoulder
+and
+down
+to
+the
+leg
+pick
+pick
+pick
+all
+the
+time
+I
+got
+so
+desperate
+I
+fought
+with
+all
+my
+power
+and
+I
+seared
+some
+away
+from
+my
+body
+They
+never
+touched
+it
+again
+There
+were
+five
+or
+six
+men
+with
+knives
+all
+wanting
+to
+do
+something
+with
+my
+body
+pick
+pick
+pick
+But
+there
+came
+another
+he
+looked
+and
+looked
+at
+me
+and
+picked
+and
+picked
+and
+he
+drove
+me
+wild
+I
+thought
+if
+I
+could
+only
+get
+hold
+of
+him
+I
+would
+fix
+him
+He
+paid
+no
+attention
+to
+me
+I
+tried
+to
+scare
+him
+as
+I
+had
+seared
+the
+others
+but
+I
+could
+not
+budge
+him
+He
+would
+not
+move
+one
+inch
+from
+that
+body
+of
+mine
+I
+followed
+him
+and
+thought
+I
+would
+haunt
+him
+but
+all
+at
+once
+I
+got
+well
+controlled
+the
+psychic
+and
+began
+to
+fight
+him
+with
+all
+the
+strength
+and
+power
+I
+had
+for
+picking
+me
+to
+pieces
+To
+my
+great
+surprise
+after
+this
+gentleman
+Dr
+W
+talked
+to
+me
+I
+found
+I
+was
+dead
+I
+did
+not
+know
+I
+had
+lost
+my
+body
+for
+I
+had
+not
+been
+dead
+at
+all
+This
+gentleman
+told
+me
+that
+the
+people
+working
+on
+my
+body
+were
+students
+and
+that
+it
+was
+necessary
+for
+them
+to
+work
+on
+a
+dead
+body
+before
+they
+were
+able
+to
+pass
+their
+examinations
+I
+seared
+five
+of
+them
+and
+they
+never
+touched
+me
+again
+but
+I
+could
+not
+scare
+this
+one
+To
+Dr
+W
+Now
+I
+come
+to
+thank
+you
+You
+were
+the
+one
+who
+enlightened
+me
+and
+gave
+me
+an
+understanding
+of
+the
+real
+life
+beyond
+I
+found
+I
+could
+not
+throw
+my
+sins
+on
+Christ
+He
+was
+our
+teacher
+but
+we
+must
+live
+our
+own
+lives
+as
+He
+taught
+us
+to
+live
+and
+not
+throw
+our
+sins
+and
+troubles
+on
+Him
+That
+is
+a
+false
+doctrine
+He
+is
+the
+Life
+the
+Light
+and
+theWay
+He
+said
+I
+am
+the
+Light
+of
+the
+world
+he
+that
+followeth
+me
+shall
+not
+walk
+in
+darkness
+Many
+others
+before
+Him
+taught
+the
+same
+lesson
+of
+life
+I
+found
+that
+in
+the
+past
+there
+had
+been
+many
+teachers
+like
+Christ
+Confucius
+was
+one
+He
+taught
+the
+same
+as
+did
+Christ
+In
+the
+Old
+Testament
+we
+find
+the
+same
+principles
+as
+Christ
+taught
+His
+sayings
+are
+the
+same
+in
+the
+Old
+as
+in
+the
+New
+Let
+us
+all
+do
+what
+we
+can
+to
+find
+God
+within
+us
+Learn
+to
+live
+according
+to
+Christ
+s
+teachings
+Love
+the
+Lord
+thy
+God
+with
+all
+thy
+heart
+and
+thy
+neighbor
+as
+thyself
+I
+would
+not
+have
+the
+home
+in
+the
+spirit
+world
+that
+I
+have
+if
+I
+had
+not
+been
+disturbed
+and
+received
+an
+understanding
+of
+the
+real
+life
+I
+was
+very
+wicked
+and
+you
+know
+the
+desire
+I
+had
+for
+morphine
+That
+desire
+was
+with
+me
+even
+after
+I
+left
+my
+body
+The
+desire
+for
+anything
+belongs
+to
+the
+soul
+not
+to
+the
+body
+The
+body
+is
+only
+a
+cloak
+or
+dress
+for
+your
+soul
+All
+the
+desires
+of
+life
+all
+the
+faculties
+that
+belong
+to
+the
+soul
+go
+with
+you
+to
+the
+grave
+and
+beyond
+the
+grave
+What
+would
+I
+have
+been
+if
+I
+had
+not
+been
+given
+an
+understanding
+of
+how
+to
+overcome
+my
+desires
+I
+would
+have
+been
+an
+earthbound
+spirit
+and
+would
+have
+gotten
+into
+some
+sensitive
+person
+s
+magnetism
+and
+made
+that
+sensitive
+a
+morphine
+fiend
+so
+I
+could
+have
+had
+my
+desire
+fulfilled
+and
+the
+life
+of
+the
+sensitive
+would
+have
+been
+ruined
+I
+would
+have
+lived
+in
+the
+earth
+sphere
+for
+years
+and
+years
+if
+I
+had
+gotten
+into
+that
+condition
+I
+would
+have
+ruined
+one
+and
+then
+another
+and
+so
+I
+would
+have
+kept
+on
+Find
+out
+what
+belongs
+to
+the
+soul
+and
+what
+belongs
+to
+the
+body
+If
+this
+were
+done
+we
+would
+not
+have
+so
+much
+trouble
+and
+crime
+nor
+so
+much
+sickness
+We
+would
+have
+Love
+and
+Heaven
+on
+earth
+because
+we
+would
+have
+pity
+for
+the
+unfortunate
+ones
+who
+are
+living
+just
+for
+their
+own
+desires
+It
+says
+in
+the
+Bible
+Prove
+all
+things
+hold
+fast
+that
+which
+is
+good
+That
+means
+do
+not
+have
+any
+desire
+for
+anything
+If
+you
+use
+too
+much
+of
+anything
+in
+this
+earth
+life
+such
+as
+morphine
+whiskey
+or
+tobacco
+then
+you
+are
+a
+slave
+and
+must
+stop
+its
+use
+Many
+people
+condemn
+many
+things
+and
+that
+thought
+of
+condemnation
+is
+very
+hard
+for
+a
+sensitive
+person
+Everything
+on
+earth
+is
+meant
+for
+us
+to
+use
+but
+not
+misuse
+Many
+people
+condemn
+liquor
+tobacco
+morphine
+opium
+but
+it
+is
+their
+misuse
+which
+should
+be
+condemned
+They
+are
+all
+necessary
+things
+if
+they
+are
+used
+rightly
+Isn
+t
+an
+opiate
+a
+good
+thing
+if
+you
+must
+undergo
+an
+operation
+To
+be
+operated
+upon
+without
+an
+opiate
+would
+be
+wrong
+the
+suffering
+would
+be
+too
+great
+Opiates
+help
+pain
+Many
+people
+use
+these
+things
+because
+they
+are
+forbidden
+They
+say
+Forbidden
+fruit
+tastes
+best
+When
+things
+are
+forbidden
+everybody
+wants
+them
+and
+they
+ruin
+themselves
+using
+them
+I
+lived
+in
+the
+lower
+world
+the
+underworld
+and
+I
+know
+what
+I
+am
+talking
+about
+I
+took
+anything
+to
+keep
+my
+nerves
+quiet
+Anything
+used
+moderately
+in
+a
+sensible
+way
+is
+all
+right
+When
+a
+man
+who
+works
+very
+hard
+either
+physically
+or
+mentally
+sits
+down
+to
+rest
+he
+is
+nervous
+and
+fatigued
+Give
+him
+a
+good
+cigar
+and
+let
+him
+relax
+His
+nervousness
+goes
+and
+he
+becomes
+stronger
+It
+is
+a
+thorough
+relaxation
+he
+smokes
+and
+feels
+better
+With
+this
+complete
+relaxation
+comes
+quietude
+the
+man
+sleeps
+and
+is
+rested
+for
+his
+work
+the
+next
+day
+If
+people
+would
+have
+more
+love
+for
+each
+other
+and
+less
+condemnation
+they
+would
+be
+more
+like
+brothers
+and
+sisters
+That
+is
+the
+life
+in
+the
+higher
+realms
+We
+cannot
+reach
+that
+stage
+until
+we
+have
+gotten
+rid
+of
+all
+desires
+all
+hatred
+all
+selfishness
+all
+envy
+We
+cannot
+progress
+until
+we
+have
+thrown
+away
+all
+these
+things
+and
+said
+God
+help
+me
+to
+love
+my
+enemies
+and
+friends
+better
+than
+myself
+Then
+we
+will
+be
+ready
+to
+travel
+the
+road
+Some
+people
+think
+that
+after
+they
+learn
+the
+lesson
+of
+truth
+they
+will
+step
+into
+the
+glory
+of
+Heaven
+But
+Heaven
+is
+a
+condition
+In
+conquering
+my
+desire
+for
+morphine
+I
+had
+to
+do
+so
+little
+by
+little
+step
+by
+step
+until
+I
+could
+say
+No
+more
+morphine
+for
+me
+After
+I
+had
+conquered
+my
+friends
+and
+relatives
+met
+me
+and
+said
+Now
+you
+are
+ready
+to
+come
+with
+us
+to
+the
+home
+that
+has
+been
+prepared
+for
+you
+Before
+that
+time
+I
+had
+to
+live
+all
+by
+myself
+I
+was
+not
+in
+a
+dark
+dungeon
+like
+some
+are
+but
+all
+around
+me
+was
+myself
+nothing
+else
+I
+had
+to
+learn
+and
+strive
+to
+overcome
+It
+says
+in
+the
+Big
+Book
+that
+Christ
+went
+to
+the
+lower
+spheres
+to
+give
+help
+and
+teach
+We
+all
+have
+to
+teach
+and
+help
+the
+fallen
+ones
+and
+give
+them
+strength
+to
+overcome
+their
+desires
+I
+wish
+I
+could
+take
+you
+along
+with
+me
+for
+a
+few
+moments
+to
+see
+the
+conditions
+in
+the
+lower
+sphere
+what
+they
+call
+the
+earth
+sphere
+Here
+is
+the
+sphere
+of
+whiskey
+here
+the
+sphere
+of
+morphine
+here
+the
+sphere
+of
+the
+opium
+fiend
+here
+the
+sphere
+of
+selfishness
+and
+here
+the
+sphere
+of
+misers
+Of
+all
+these
+conditions
+that
+of
+the
+miser
+is
+the
+worst
+He
+sacrifices
+everything
+for
+money
+He
+will
+not
+eat
+because
+he
+thinks
+he
+cannot
+afford
+it
+He
+starves
+his
+mind
+because
+he
+wants
+money
+money
+and
+what
+is
+the
+result
+In
+the
+earth
+sphere
+he
+is
+in
+the
+dark
+but
+he
+sees
+his
+money
+being
+spent
+and
+he
+is
+in
+hell
+He
+suffers
+terribly
+He
+sees
+his
+relatives
+get
+his
+money
+it
+is
+divided
+some
+going
+here
+some
+there
+If
+it
+were
+all
+in
+one
+place
+he
+could
+count
+it
+over
+and
+that
+would
+be
+all
+right
+but
+his
+relatives
+all
+want
+their
+share
+to
+spend
+Now
+imagine
+that
+money
+has
+been
+his
+treasure
+Each
+cent
+that
+is
+spent
+is
+like
+cutting
+a
+piece
+from
+his
+body
+because
+his
+whole
+mind
+and
+soul
+were
+in
+that
+money
+and
+to
+see
+it
+scattered
+and
+spent
+is
+hell
+for
+him
+Think
+what
+that
+means
+to
+him
+He
+cannot
+be
+helped
+until
+he
+feels
+that
+he
+no
+longer
+wants
+his
+money
+then
+his
+soul
+or
+better
+nature
+will
+open
+up
+and
+he
+will
+be
+helped
+He
+will
+be
+under
+the
+guidance
+of
+a
+teacher
+and
+will
+be
+taught
+that
+money
+belongs
+to
+the
+earth
+life
+not
+to
+the
+spirit
+He
+then
+has
+to
+do
+good
+A
+miser
+never
+gets
+his
+money
+in
+the
+right
+way
+He
+may
+not
+be
+a
+thief
+but
+if
+he
+loans
+money
+he
+charges
+too
+high
+a
+rate
+of
+interest
+For
+every
+cent
+he
+got
+in
+the
+wrong
+way
+he
+has
+to
+do
+right
+He
+must
+do
+some
+kind
+act
+and
+help
+poor
+people
+in
+their
+work
+He
+has
+to
+lay
+down
+his
+life
+and
+earn
+everything
+before
+he
+can
+gain
+happiness
+in
+the
+spirit
+world
+He
+has
+to
+serve
+first
+and
+he
+must
+help
+those
+from
+whom
+he
+took
+money
+to
+get
+it
+back
+You
+know
+a
+sin
+against
+the
+Holy
+Ghost
+cannot
+be
+forgiven
+It
+must
+be
+atoned
+for
+That
+is
+his
+life
+in
+the
+spirit
+world
+We
+have
+to
+look
+at
+a
+murderer
+differently
+There
+are
+ten
+different
+degrees
+of
+murder
+There
+is
+murder
+by
+quick
+temper
+that
+is
+not
+real
+murder
+It
+is
+committed
+under
+stress
+of
+strong
+quick
+temper
+At
+heart
+the
+man
+is
+not
+a
+murderer
+he
+simply
+lost
+control
+of
+his
+temper
+Of
+course
+he
+has
+to
+suffer
+and
+do
+good
+where
+he
+did
+wrong
+Temper
+is
+a
+very
+hard
+thing
+to
+conquer
+but
+it
+must
+be
+conquered
+because
+it
+kills
+our
+better
+nature
+and
+makes
+us
+do
+many
+wrong
+and
+unkind
+things
+Then
+we
+have
+the
+cunning
+murderer
+He
+plans
+and
+schemes
+he
+wants
+a
+man
+s
+money
+He
+is
+nice
+and
+sweet
+and
+goes
+to
+church
+He
+plans
+and
+schemes
+to
+get
+that
+man
+s
+life
+in
+some
+way
+or
+another
+but
+he
+does
+it
+slowly
+He
+has
+evil
+thoughts
+In
+the
+spirit
+world
+this
+man
+has
+to
+suffer
+a
+great
+deal
+and
+must
+atone
+for
+his
+actions
+from
+the
+time
+he
+began
+to
+plan
+and
+scheme
+to
+murder
+Then
+there
+is
+the
+psychic
+sensitive
+who
+does
+not
+care
+for
+anybody
+He
+doesn
+t
+belong
+to
+one
+church
+or
+another
+he
+takes
+things
+easy
+What
+is
+not
+done
+today
+can
+be
+done
+tomorrow
+or
+the
+next
+day
+He
+does
+not
+use
+his
+will
+A
+cunning
+spirit
+gets
+into
+this
+man
+s
+magnetic
+aura
+and
+controls
+him
+He
+commits
+some
+crime
+The
+man
+will
+hang
+for
+his
+deed
+but
+he
+never
+did
+it
+He
+will
+probably
+say
+he
+does
+not
+know
+that
+he
+did
+anything
+Or
+he
+may
+say
+I
+must
+have
+been
+drunk
+when
+I
+did
+it
+for
+I
+don
+t
+remember
+anything
+about
+it
+But
+it
+was
+not
+liquor
+that
+did
+it
+Liquor
+never
+does
+that
+When
+a
+man
+is
+drunk
+his
+mind
+is
+in
+a
+stupor
+It
+is
+a
+spirit
+that
+does
+the
+work
+If
+that
+spirit
+has
+been
+wronged
+in
+life
+all
+he
+wants
+is
+revenge
+The
+law
+does
+not
+really
+find
+out
+whether
+the
+man
+is
+guilty
+or
+not
+he
+is
+hung
+The
+majority
+of
+murders
+and
+hold
+ups
+are
+committed
+by
+spirits
+They
+scheme
+and
+scheme
+and
+use
+mortals
+as
+tools
+until
+they
+wake
+up
+and
+realize
+what
+wrong
+they
+have
+been
+doing
+Often
+honesty
+and
+modesty
+have
+both
+been
+killed
+When
+I
+was
+a
+child
+I
+was
+very
+modest
+but
+when
+I
+killed
+modesty
+I
+was
+ruined
+Then
+I
+did
+not
+care
+for
+anything
+Honesty
+is
+a
+virtue
+we
+should
+all
+cultivate
+Judges
+lawyers
+and
+ministers
+in
+the
+majority
+of
+cases
+do
+not
+give
+justice
+they
+look
+for
+gain
+They
+kill
+justice
+honesty
+and
+truth
+Let
+us
+do
+all
+we
+can
+to
+keep
+those
+three
+to
+the
+front
+Honesty
+and
+truth
+will
+convert
+the
+world
+You
+cannot
+convert
+it
+by
+condemnation
+People
+are
+not
+taught
+the
+truth
+Have
+wisdom
+and
+human
+kindness
+and
+you
+will
+see
+better
+results
+Teach
+wisdom
+and
+let
+more
+of
+the
+Christ
+spirit
+be
+in
+every
+one
+Live
+as
+He
+taught
+do
+as
+He
+did
+then
+happiness
+will
+reign
+I
+am
+sorry
+to
+have
+taken
+up
+so
+much
+time
+but
+I
+did
+not
+know
+I
+would
+talk
+so
+long
+Even
+now
+I
+feel
+I
+have
+more
+to
+say
+but
+I
+must
+stop
+My
+name
+when
+I
+lived
+in
+Chicago
+was
+Minnie
+Morgan
+but
+that
+name
+does
+not
+belong
+to
+me
+and
+I
+do
+not
+want
+it
+any
+more
+That
+name
+has
+a
+horror
+for
+me
+Even
+when
+I
+repeat
+that
+name
+I
+feel
+a
+horror
+of
+it
+My
+own
+name
+is
+not
+to
+be
+given
+tonight
+We
+have
+to
+earn
+our
+names
+and
+I
+have
+no
+name
+until
+I
+have
+earned
+it
+After
+all
+these
+twenty
+five
+years
+it
+was
+in
+that
+I
+passed
+out
+I
+have
+not
+advanced
+sufficiently
+to
+have
+even
+a
+name
+I
+am
+happy
+and
+I
+will
+earn
+a
+name
+and
+then
+I
+will
+be
+called
+by
+it
+My
+name
+was
+down
+in
+the
+very
+lowest
+place
+If
+any
+one
+of
+you
+should
+pass
+out
+you
+would
+have
+a
+name
+that
+is
+honest
+and
+good
+Your
+name
+will
+follow
+you
+and
+you
+will
+want
+it
+I
+would
+not
+cling
+to
+mine
+for
+it
+has
+such
+a
+horror
+for
+me
+Can
+you
+see
+the
+difference
+When
+you
+have
+done
+the
+best
+you
+could
+in
+earth
+life
+you
+have
+traveled
+the
+right
+road
+and
+when
+you
+pass
+to
+the
+spirit
+side
+of
+life
+your
+relatives
+and
+friends
+will
+meet
+you
+I
+had
+no
+one
+to
+meet
+me
+No
+friends
+came
+I
+had
+gone
+too
+low
+My
+friend
+was
+morphine
+Isn
+t
+that
+a
+terrible
+condition
+You
+know
+when
+I
+wanted
+morphine
+I
+did
+not
+always
+get
+it
+in
+the
+right
+way
+During
+my
+earth
+life
+I
+sometimes
+stole
+money
+to
+get
+morphine
+Now
+I
+have
+to
+do
+good
+step
+by
+step
+I
+have
+been
+doing
+work
+in
+the
+slums
+helping
+those
+as
+unfortunate
+as
+I
+had
+been
+I
+lived
+with
+those
+who
+craved
+morphine
+Now
+I
+can
+help
+them
+to
+overcome
+their
+desire
+for
+it
+That
+is
+my
+work
+It
+is
+not
+pleasant
+but
+I
+have
+to
+do
+it
+Some
+one
+has
+to
+do
+it
+so
+why
+not
+I
+I
+suffer
+with
+them
+I
+can
+give
+them
+sympathy
+for
+I
+too
+have
+suffered
+Give
+these
+unfortunate
+ones
+your
+sympathy
+and
+loving
+thoughts
+for
+it
+will
+help
+them
+You
+have
+not
+lived
+as
+they
+have
+and
+you
+do
+not
+know
+what
+their
+condition
+means
+Each
+one
+that
+I
+help
+to
+the
+right
+road
+is
+Heaven
+to
+me
+Remember
+each
+one
+is
+Heaven
+to
+me
+The
+more
+I
+help
+the
+more
+happiness
+I
+find
+Some
+day
+I
+shall
+say
+goodbye
+to
+this
+condition
+and
+progress
+to
+the
+spirit
+side
+of
+life
+Do
+not
+condemn
+those
+who
+have
+fallen
+remember
+they
+have
+no
+will
+of
+their
+own
+Send
+kind
+thoughts
+to
+them
+and
+say
+a
+prayer
+God
+help
+them
+to
+have
+a
+will
+of
+their
+own
+to
+overcome
+their
+desire
+Send
+out
+thoughts
+to
+help
+them
+overcome
+do
+not
+send
+evil
+unkind
+thoughts
+The
+next
+time
+I
+come
+you
+will
+know
+what
+my
+name
+is
+because
+by
+that
+time
+I
+shall
+have
+earned
+it
+Thank
+you
+for
+helping
+me
+to
+the
+right
+road
+because
+I
+am
+happy
+in
+helping
+others
+but
+I
+shall
+have
+a
+hard
+climb
+to
+find
+bliss
+Good
+Night
+and
+I
+again
+thank
+you
+for
+having
+helped
+me
+The
+day
+after
+receiving
+a
+request
+by
+telephone
+from
+an
+adjoining
+city
+that
+we
+concentrate
+for
+a
+pharmacist
+who
+was
+a
+drug
+addict
+and
+evidently
+obsessed
+the
+spirit
+of
+a
+morphine
+fiend
+was
+removed
+from
+him
+and
+brought
+to
+our
+circle
+an
+entity
+in
+torment
+convulsed
+with
+the
+drug
+craving
+and
+wildly
+begging
+for
+just
+one
+grain
+EXPERIENCE
+MARCH
+Spirit
+ELIZABETH
+NOBLE
+Psychic
+MRS
+WICKLAND
+Spirit
+Don
+t
+bother
+me
+I
+want
+rest
+Doctor
+Haven
+t
+you
+rested
+long
+enough
+Do
+you
+want
+to
+rest
+forever
+Sp
+I
+have
+been
+running
+I
+have
+not
+been
+resting
+Dr
+What
+have
+you
+been
+running
+away
+from
+The
+police
+The
+spirit
+began
+to
+cough
+severely
+Dr
+Forget
+your
+old
+condition
+that
+is
+all
+past
+Tell
+us
+who
+you
+are
+and
+where
+you
+came
+from
+Sp
+I
+am
+so
+sick
+Coughing
+more
+violently
+Dr
+Do
+not
+bring
+that
+condition
+with
+you
+You
+lost
+your
+body
+probably
+a
+long
+time
+ago
+Do
+you
+know
+you
+are
+a
+spirit
+What
+is
+the
+matter
+Sp
+I
+don
+t
+know
+Another
+paroxysm
+of
+coughing
+Dr
+You
+ought
+to
+know
+This
+is
+not
+your
+body
+you
+are
+not
+sick
+now
+You
+are
+free
+from
+your
+physical
+body
+Think
+yourself
+well
+and
+you
+will
+be
+well
+Sp
+I
+am
+sick
+you
+do
+not
+know
+Who
+are
+you
+Dr
+I
+am
+a
+doctor
+and
+if
+you
+do
+as
+you
+are
+told
+you
+will
+become
+well
+This
+is
+not
+your
+body
+You
+are
+now
+an
+invisible
+spirit
+Sp
+I
+am
+sick
+Dr
+You
+only
+hold
+that
+idea
+in
+your
+mind
+This
+body
+is
+not
+your
+own
+You
+are
+not
+sick
+Sp
+You
+don
+t
+know
+Dr
+You
+are
+ignorant
+of
+your
+condition
+and
+do
+not
+realize
+that
+you
+have
+lost
+your
+body
+Sp
+I
+am
+sick
+Dr
+In
+your
+mind
+only
+that
+is
+an
+old
+habit
+Sp
+I
+am
+dying
+I
+want
+to
+lie
+down
+Coughing
+Dr
+You
+are
+only
+using
+this
+body
+temporarily
+Your
+coughing
+body
+is
+in
+the
+grave
+You
+must
+stop
+coughing
+Sp
+I
+have
+no
+coughing
+body
+This
+is
+my
+body
+I
+can
+t
+help
+coughing
+Dr
+Where
+did
+you
+come
+from
+Sp
+I
+don
+t
+know
+Why
+do
+you
+tell
+me
+I
+can
+t
+cough
+Dr
+There
+is
+no
+need
+of
+it
+Sp
+You
+don
+t
+know
+anything
+about
+it
+Dr
+The
+body
+which
+you
+are
+using
+now
+is
+not
+sick
+Sp
+I
+am
+sick
+You
+give
+me
+some
+medicine
+and
+give
+it
+to
+me
+quick
+Give
+me
+some
+before
+I
+get
+too
+sick
+Dr
+You
+like
+to
+be
+sick
+Don
+t
+you
+want
+to
+be
+well
+Sp
+I
+am
+sick
+and
+ought
+to
+be
+in
+bed
+Think
+of
+a
+poor
+sick
+woman
+having
+to
+stay
+here
+Coughing
+Dr
+Think
+strongly
+that
+you
+are
+not
+sick
+and
+you
+will
+not
+be
+Sp
+Give
+me
+some
+medicine
+I
+want
+a
+little
+morphine
+my
+heart
+is
+bad
+Dr
+You
+have
+lost
+your
+body
+and
+are
+a
+spirit
+now
+Sp
+Give
+me
+some
+medicine
+then
+I
+ll
+feel
+better
+Give
+me
+fifteen
+grains
+My
+cough
+is
+so
+bad
+Give
+me
+some
+Give
+me
+some
+morphine
+I
+said
+Just
+a
+little
+Only
+a
+little
+then
+just
+one
+grain
+Give
+it
+to
+me
+in
+the
+arm
+I
+like
+it
+in
+the
+arm
+best
+Dr
+You
+must
+stop
+this
+foolish
+talk
+Sp
+Shrieking
+wildly
+You
+must
+give
+me
+something
+quick
+I
+can
+t
+stand
+it
+any
+longer
+I
+said
+give
+me
+some
+One
+grain
+just
+one
+grain
+I
+must
+have
+it
+With
+face
+distorted
+hands
+clawing
+the
+air
+fiercely
+Dr
+I
+thought
+you
+said
+you
+were
+sick
+Sp
+I
+am
+sick
+Dr
+From
+selfishness
+Try
+to
+understand
+your
+condition
+Sp
+You
+give
+me
+some
+morphine
+before
+I
+die
+Dr
+You
+must
+be
+quiet
+then
+we
+can
+help
+you
+Where
+did
+you
+come
+from
+Sp
+Oh
+my
+God
+Give
+me
+some
+morphine
+I
+want
+medicine
+Won
+t
+you
+please
+please
+give
+me
+just
+one
+grain
+Dr
+What
+is
+your
+name
+Sp
+Claw
+like
+fingers
+desperately
+clutching
+about
+My
+God
+just
+give
+me
+one
+grain
+just
+one
+Dr
+Do
+you
+know
+that
+you
+are
+in
+California
+Sp
+No
+Dr
+You
+are
+in
+Los
+Angeles
+California
+Where
+do
+you
+think
+you
+are
+Sp
+I
+don
+t
+care
+Just
+give
+me
+one
+little
+grain
+I
+must
+have
+it
+Dr
+Forget
+that
+and
+think
+of
+something
+else
+You
+have
+lost
+your
+physical
+body
+Sp
+I
+have
+such
+a
+bad
+cough
+and
+my
+heart
+is
+bad
+I
+m
+dying
+Dr
+How
+can
+you
+die
+when
+you
+have
+already
+lost
+your
+physical
+body
+Sp
+If
+I
+have
+another
+body
+I
+m
+just
+the
+same
+as
+I
+was
+before
+Dr
+Forget
+your
+old
+habits
+and
+you
+will
+feel
+better
+Sp
+I
+want
+morphine
+When
+you
+want
+it
+you
+want
+it
+badly
+Striking
+right
+and
+left
+I
+can
+t
+stand
+it
+any
+longer
+Give
+me
+some
+Dr
+If
+you
+listen
+to
+us
+you
+can
+be
+helped
+out
+of
+your
+present
+condition
+Intelligent
+spirits
+will
+also
+help
+you
+If
+you
+do
+not
+want
+to
+listen
+you
+will
+have
+to
+go
+You
+must
+overcome
+old
+habits
+your
+physical
+body
+is
+gone
+Sp
+Please
+give
+me
+fifteen
+grains
+Dr
+I
+will
+give
+you
+nothing
+You
+no
+longer
+have
+a
+physical
+body
+which
+craves
+morphine
+You
+now
+have
+an
+opportunity
+to
+be
+helped
+Sp
+Give
+me
+some
+oh
+give
+me
+some
+If
+you
+will
+only
+give
+me
+some
+morphine
+I
+ll
+be
+all
+right
+Struggling
+Dr
+If
+you
+do
+not
+quiet
+yourself
+you
+will
+have
+to
+go
+Sp
+That
+is
+nice
+I
+am
+sick
+I
+only
+ask
+you
+for
+morphine
+Dr
+You
+are
+very
+selfish
+Sp
+I
+have
+been
+running
+trying
+to
+get
+some
+morphine
+Why
+won
+t
+you
+give
+me
+some
+Dr
+No
+more
+of
+that
+You
+have
+lost
+your
+mortal
+body
+and
+are
+now
+using
+my
+wife
+s
+body
+You
+can
+be
+helped
+if
+you
+will
+listen
+Understand
+you
+are
+a
+spirit
+Sp
+I
+have
+such
+a
+bad
+cough
+I
+need
+morphine
+Dr
+No
+doubt
+you
+have
+been
+in
+the
+earth
+plane
+in
+darkness
+for
+a
+long
+time
+You
+no
+longer
+have
+your
+own
+body
+Sp
+I
+have
+my
+own
+body
+Dr
+The
+body
+you
+are
+struggling
+with
+is
+not
+yours
+Will
+you
+try
+to
+understand
+Sp
+Yes
+but
+I
+m
+very
+sick
+Dr
+You
+are
+not
+sick
+you
+are
+very
+selfish
+Why
+don
+t
+you
+pay
+attention
+and
+try
+to
+understand
+that
+you
+are
+a
+spirit
+Sp
+That
+s
+all
+right
+I
+need
+morphine
+just
+the
+same
+Dr
+Get
+that
+idea
+out
+of
+your
+mind
+You
+only
+imagine
+you
+are
+sick
+Did
+you
+not
+say
+you
+had
+been
+running
+Sp
+Yes
+I
+have
+been
+to
+every
+drug
+store
+in
+town
+to
+get
+morphine
+I
+get
+it
+once
+in
+a
+while
+through
+some
+sensitive
+but
+it
+doesn
+t
+last
+long
+Dr
+You
+get
+it
+by
+obsessing
+some
+one
+you
+have
+no
+physical
+body
+now
+Sp
+I
+have
+a
+body
+Dr
+Not
+a
+physical
+body
+You
+are
+using
+my
+wife
+s
+body
+Intelligent
+spirits
+have
+brought
+you
+here
+to
+be
+helped
+Sp
+All
+the
+help
+I
+want
+is
+morphine
+When
+I
+think
+I
+can
+t
+get
+it
+it
+makes
+me
+sick
+Dr
+That
+is
+only
+because
+you
+hold
+that
+thought
+in
+your
+mind
+Tell
+us
+where
+you
+came
+from
+Sp
+I
+don
+t
+know
+Dr
+You
+don
+t
+seem
+to
+care
+Sp
+No
+I
+want
+morphine
+Dr
+Do
+you
+know
+what
+year
+it
+is
+Sp
+I
+don
+t
+care
+about
+that
+all
+I
+want
+is
+morphine
+I
+have
+been
+to
+every
+store
+in
+town
+Dr
+Which
+town
+Sp
+I
+don
+t
+know
+I
+can
+t
+remember
+I
+never
+stayed
+in
+any
+place
+long
+because
+I
+wanted
+to
+see
+the
+world
+Dr
+What
+is
+the
+last
+place
+you
+remember
+Sp
+I
+can
+t
+remember
+Dr
+What
+is
+your
+name
+Sp
+I
+haven
+t
+heard
+it
+for
+so
+many
+years
+that
+I
+don
+t
+know
+what
+they
+would
+call
+me
+now
+Dr
+Try
+to
+recall
+what
+year
+it
+is
+Sp
+I
+want
+morphine
+so
+bad
+that
+I
+can
+t
+think
+or
+talk
+about
+anything
+else
+Dr
+What
+was
+your
+mother
+s
+name
+Sp
+My
+mother
+s
+name
+Dr
+Was
+it
+Mrs
+Brown
+or
+Green
+or
+White
+Sp
+No
+color
+at
+all
+If
+you
+would
+give
+me
+just
+one
+grain
+everything
+would
+be
+fine
+If
+you
+are
+a
+doctor
+then
+give
+me
+some
+They
+always
+do
+Dr
+You
+will
+not
+get
+any
+this
+time
+Sp
+Then
+you
+are
+not
+a
+doctor
+Dr
+You
+are
+controlling
+my
+wife
+s
+body
+you
+are
+a
+spirit
+Sp
+I
+don
+t
+care
+anything
+about
+that
+Dr
+If
+you
+cannot
+be
+sincere
+you
+will
+have
+to
+go
+Overcome
+your
+old
+habits
+we
+can
+help
+you
+Sp
+I
+am
+a
+sick
+woman
+Dr
+Were
+you
+married
+Sp
+Yes
+Dr
+What
+was
+your
+husband
+s
+name
+Sp
+Frank
+Noble
+Dr
+What
+did
+Frank
+call
+you
+Sp
+Elizabeth
+Dr
+What
+did
+your
+husband
+do
+for
+a
+living
+Sp
+Anything
+Dr
+How
+old
+are
+you
+Sp
+I
+am
+forty
+two
+years
+old
+Dr
+Who
+is
+President
+Sp
+I
+don
+t
+know
+and
+I
+don
+t
+care
+I
+never
+entered
+politics
+My
+husband
+was
+crazy
+over
+politics
+I
+was
+busy
+keeping
+my
+house
+clean
+My
+husband
+called
+me
+Betty
+He
+used
+to
+say
+Betty
+you
+are
+a
+good
+girl
+Dr
+Where
+is
+Frank
+Sp
+I
+haven
+t
+seen
+him
+for
+ages
+He
+was
+a
+pretty
+good
+fellow
+Dr
+Where
+is
+your
+mother
+Sp
+My
+mother
+is
+dead
+Dr
+Where
+did
+you
+come
+from
+SP
+I
+came
+from
+from
+El
+Paso
+Texas
+Dr
+Were
+you
+born
+there
+Sp
+Ask
+my
+husband
+Moaning
+I
+am
+too
+sick
+Dr
+Can
+t
+you
+realize
+that
+you
+have
+no
+physical
+body
+but
+are
+a
+spirit
+Sp
+Then
+I
+can
+go
+to
+Heaven
+and
+sing
+I
+used
+to
+go
+to
+church
+Dr
+What
+church
+did
+you
+go
+to
+Sp
+The
+Methodist
+Dr
+Did
+your
+husband
+go
+too
+Sp
+Frank
+was
+such
+a
+good
+fellow
+I
+have
+not
+seen
+him
+for
+a
+long
+time
+He
+liked
+me
+and
+I
+liked
+him
+In
+a
+shrill
+voice
+Frank
+I
+want
+to
+see
+you
+Frankie
+Frankie
+will
+you
+help
+me
+Are
+you
+here
+Frankle
+Dr
+Don
+t
+speak
+that
+way
+Sp
+Would
+you
+give
+me
+some
+morphine
+Frankie
+always
+gave
+it
+to
+me
+Dr
+Russell
+always
+told
+me
+that
+I
+should
+take
+it
+for
+my
+heart
+Affectedly
+Frankie
+Frankie
+Dr
+Why
+do
+you
+call
+Frankie
+in
+that
+way
+Sp
+Oh
+I
+always
+call
+him
+in
+time
+for
+dinner
+I
+always
+used
+to
+call
+him
+he
+is
+a
+lovely
+little
+fellow
+Dr
+Don
+t
+be
+so
+foolish
+Be
+sincere
+Sp
+Oh
+I
+m
+sincere
+when
+I
+call
+Frankie
+I
+m
+thinking
+of
+Frankie
+I
+love
+him
+But
+I
+love
+morphine
+too
+Oh
+Frankle
+is
+standing
+there
+Spirit
+When
+did
+you
+come
+Frankie
+Give
+me
+some
+morphine
+Dr
+Does
+he
+answer
+you
+Sp
+He
+says
+he
+will
+not
+give
+me
+anything
+Frankie
+you
+used
+to
+go
+to
+the
+drug
+store
+for
+me
+Be
+a
+good
+fellow
+now
+Just
+give
+me
+one
+shot
+Frankie
+and
+I
+won
+t
+ask
+you
+again
+You
+know
+I
+m
+awful
+sick
+You
+love
+me
+don
+t
+you
+Frankie
+Then
+just
+give
+me
+a
+little
+and
+we
+will
+both
+be
+so
+happy
+together
+The
+spirit
+was
+taken
+away
+and
+her
+husband
+controlled
+the
+psychic
+Spirit
+FRANK
+NOBLE
+Psychic
+MRs
+WICKKLAND
+Spirit
+I
+am
+Frank
+Noble
+I
+have
+been
+trying
+very
+hard
+for
+some
+time
+to
+bring
+my
+wife
+here
+for
+help
+Doctor
+It
+must
+have
+required
+a
+good
+deal
+of
+patience
+on
+your
+part
+Sp
+Thank
+you
+for
+bringing
+her
+to
+me
+Dr
+We
+are
+glad
+to
+have
+been
+of
+any
+help
+Sp
+My
+wife
+was
+very
+sick
+Once
+the
+doctor
+gave
+her
+morphine
+to
+help
+her
+pain
+and
+from
+that
+time
+she
+had
+spells
+so
+severe
+that
+we
+could
+do
+nothing
+but
+call
+the
+doctor
+to
+give
+her
+morphine
+It
+was
+an
+awful
+habit
+to
+get
+into
+Many
+many
+times
+she
+played
+sick
+I
+know
+when
+she
+wanted
+morphine
+She
+had
+played
+that
+game
+so
+long
+that
+it
+really
+was
+very
+easy
+for
+her
+to
+play
+sick
+to
+scare
+us
+all
+and
+to
+ask
+for
+morphine
+What
+could
+a
+fellow
+do
+After
+she
+had
+it
+she
+would
+be
+well
+sometimes
+for
+whole
+weeks
+and
+sometimes
+for
+a
+month
+The
+spells
+she
+had
+were
+very
+bad
+Dr
+Where
+did
+you
+live
+Sp
+We
+came
+from
+El
+Paso
+Texas
+Dr
+Do
+you
+know
+when
+you
+passed
+out
+Sp
+No
+I
+can
+t
+tell
+you
+It
+has
+been
+very
+strange
+for
+me
+I
+had
+a
+hard
+time
+Of
+course
+I
+was
+not
+a
+rich
+man
+I
+had
+to
+earn
+my
+living
+doing
+what
+I
+could
+Dr
+That
+is
+no
+disgrace
+Sp
+I
+had
+no
+education
+so
+had
+to
+do
+whatever
+I
+could
+Sometimes
+I
+worked
+at
+mining
+other
+times
+I
+worked
+in
+the
+woods
+and
+sometimes
+I
+was
+a
+carpenter
+I
+did
+anything
+to
+keep
+my
+home
+together
+At
+one
+time
+Elizabeth
+was
+a
+very
+good
+girl
+One
+time
+when
+she
+had
+a
+child
+she
+was
+very
+sick
+and
+in
+great
+pain
+The
+doctor
+gave
+her
+pills
+and
+after
+a
+while
+she
+wanted
+more
+and
+more
+and
+at
+last
+she
+went
+insane
+over
+morphine
+She
+was
+very
+hard
+to
+get
+along
+with
+until
+she
+got
+it
+and
+after
+that
+she
+was
+happy
+and
+she
+would
+not
+have
+another
+spell
+for
+a
+while
+The
+habit
+grew
+on
+her
+She
+had
+bad
+coughing
+spells
+and
+she
+died
+in
+one
+of
+them
+She
+took
+a
+pill
+and
+in
+some
+way
+or
+other
+she
+choked
+to
+death
+She
+went
+through
+the
+death
+scene
+here
+tonight
+Dr
+She
+would
+have
+coughed
+a
+great
+deal
+more
+if
+I
+had
+not
+checked
+her
+Sp
+For
+a
+long
+time
+I
+tried
+to
+find
+her
+but
+when
+I
+came
+near
+her
+she
+ran
+away
+and
+only
+called
+for
+morphine
+Once
+in
+a
+while
+I
+lost
+her
+completely
+and
+I
+did
+not
+know
+where
+she
+was
+It
+is
+strange
+When
+you
+think
+of
+people
+you
+are
+right
+with
+them
+Finally
+I
+was
+always
+able
+to
+find
+my
+wife
+whenever
+I
+lost
+her
+Sometimes
+she
+got
+into
+another
+person
+I
+found
+her
+again
+but
+she
+was
+so
+afraid
+of
+me
+I
+died
+before
+she
+did
+Dr
+Did
+you
+have
+any
+knowledge
+of
+the
+spirit
+world
+before
+you
+passed
+on
+Sp
+My
+mother
+was
+a
+medium
+and
+I
+learned
+the
+truth
+from
+her
+Elizabeth
+would
+never
+believe
+it
+because
+she
+was
+a
+Methodist
+She
+thought
+I
+would
+go
+to
+hell
+because
+I
+believed
+in
+Spiritualism
+Look
+into
+the
+truth
+and
+you
+will
+be
+much
+better
+off
+Do
+not
+have
+creeds
+dogmas
+or
+doubts
+Thank
+you
+for
+helping
+us
+because
+when
+my
+wife
+gets
+out
+of
+this
+stupor
+she
+is
+in
+she
+will
+be
+better
+They
+put
+her
+to
+sleep
+under
+morphine
+when
+she
+was
+in
+the
+hospital
+Now
+she
+will
+not
+bother
+others
+any
+more
+and
+we
+shall
+be
+together
+Thank
+you
+for
+helping
+us
+Good
+night
+The
+spirit
+of
+Olive
+T
+who
+had
+controlled
+the
+psychic
+upon
+several
+occasions
+returned
+one
+evening
+and
+speaking
+of
+the
+real
+happiness
+of
+service
+urged
+that
+all
+those
+subject
+to
+the
+temptations
+of
+society
+life
+and
+the
+excitement
+of
+the
+movie
+world
+be
+warned
+against
+the
+use
+of
+drugs
+and
+asked
+if
+she
+might
+bring
+in
+a
+spirit
+who
+was
+in
+trouble
+and
+needed
+to
+be
+awakened
+A
+spirit
+who
+seemed
+to
+be
+in
+a
+drowsy
+state
+then
+controlled
+the
+psychic
+collapsing
+weakly
+but
+when
+spoken
+to
+began
+to
+struggle
+desperately
+as
+if
+in
+the
+throes
+of
+great
+pain
+and
+agony
+EXPERIENCE
+OCTOBER
+Spirit
+WALLACE
+R
+PSYCHIC
+MRS
+WICKLAND
+Doctor
+Tell
+us
+who
+you
+are
+Do
+you
+realize
+that
+you
+have
+lost
+your
+physical
+body
+The
+spirit
+did
+not
+seem
+to
+hear
+but
+moaned
+incessantly
+and
+writhed
+as
+if
+in
+torture
+Dr
+Can
+you
+talk
+Understand
+that
+you
+are
+now
+a
+spirit
+See
+Chap
+Pages
+Spirit
+Olive
+T
+Still
+no
+answer
+the
+contortions
+of
+the
+body
+continued
+Dr
+Try
+to
+talk
+Who
+are
+you
+Sp
+Faintly
+Wally
+Dr
+Wally
+who
+Sp
+Wally
+R
+Dr
+Make
+an
+effort
+to
+talk
+use
+your
+will
+Will
+to
+be
+your
+rational
+self
+Try
+to
+understand
+your
+condition
+then
+we
+can
+help
+you
+The
+spirit
+continued
+to
+struggle
+and
+groan
+Dr
+Try
+to
+talk
+you
+can
+Forget
+your
+old
+condition
+forget
+your
+old
+habit
+You
+no
+longer
+have
+your
+old
+physical
+body
+You
+are
+controlling
+the
+body
+of
+another
+Make
+an
+effort
+to
+talk
+wake
+up
+No
+answer
+Dr
+Forget
+your
+trouble
+and
+start
+anew
+Do
+you
+know
+Olive
+T
+Who
+had
+preceded
+this
+spirit
+The
+intelligence
+moaned
+and
+held
+out
+imploring
+hands
+Sp
+Weakly
+My
+wife
+Dr
+Your
+wife
+is
+not
+here
+Sp
+Where
+is
+she
+Dr
+She
+is
+not
+here
+Friends
+have
+brought
+you
+here
+Try
+to
+rouse
+yourself
+Often
+when
+persons
+pass
+out
+of
+the
+physical
+under
+the
+conditions
+you
+did
+under
+the
+influence
+of
+narcotics
+they
+remain
+in
+a
+stupor
+for
+some
+time
+But
+it
+is
+time
+for
+you
+to
+waken
+now
+Can
+you
+see
+Olive
+T
+here
+Sp
+In
+a
+whisper
+I
+am
+sick
+Dr
+You
+must
+forget
+that
+Your
+sickness
+is
+over
+You
+passed
+out
+of
+your
+physical
+body
+quite
+a
+while
+ago
+Do
+you
+realize
+that
+You
+are
+what
+people
+call
+dead
+But
+you
+are
+not
+actually
+dead
+you
+have
+only
+lost
+your
+physical
+body
+You
+yourself
+are
+still
+living
+You
+are
+using
+another
+body
+temporarily
+Olive
+T
+and
+others
+brought
+you
+here
+to
+be
+helped
+You
+have
+been
+in
+a
+stupified
+condition
+for
+a
+long
+time
+You
+feel
+much
+better
+now
+don
+t
+you
+The
+spirit
+motioned
+languidly
+as
+if
+noticing
+a
+group
+of
+invisibles
+Dr
+Whom
+do
+you
+see
+Endeavor
+to
+talk
+Understand
+you
+no
+longer
+have
+a
+physical
+body
+you
+are
+here
+in
+spirit
+controlling
+this
+body
+which
+belongs
+to
+my
+wife
+You
+have
+been
+brought
+here
+for
+the
+purpose
+of
+being
+helped
+Try
+to
+be
+your
+own
+natural
+self
+We
+always
+enjoyed
+your
+pictures
+Wake
+up
+and
+be
+yourself
+Do
+not
+think
+you
+are
+dreaming
+you
+are
+not
+The
+spirit
+again
+stretched
+out
+his
+hands
+Dr
+Do
+you
+see
+friends
+Sp
+I
+am
+going
+to
+die
+Dr
+You
+have
+already
+done
+that
+as
+much
+as
+you
+ever
+will
+You
+have
+only
+lost
+your
+physical
+body
+Do
+you
+see
+friends
+Sp
+Yes
+but
+I
+am
+going
+to
+die
+Dr
+You
+cannot
+die
+again
+Sp
+I
+see
+so
+many
+who
+have
+died
+Dr
+They
+are
+not
+actually
+dead
+at
+all
+They
+are
+spirits
+like
+yourself
+You
+have
+already
+passed
+out
+of
+your
+mortal
+body
+You
+are
+a
+spirit
+but
+do
+not
+understand
+the
+fact
+This
+body
+which
+you
+are
+using
+is
+not
+yours
+You
+have
+lost
+your
+body
+and
+have
+not
+wakened
+to
+your
+real
+condition
+Friends
+have
+brought
+you
+here
+for
+help
+But
+the
+spirit
+could
+not
+be
+roused
+again
+and
+was
+taken
+away
+One
+of
+the
+guiding
+intelligences
+then
+came
+in
+and
+said
+The
+other
+spirit
+was
+so
+tired
+that
+we
+could
+not
+waken
+him
+but
+now
+we
+will
+be
+able
+to
+take
+care
+of
+him
+He
+is
+so
+weak
+He
+has
+not
+overcome
+his
+old
+habit
+We
+brought
+him
+here
+so
+that
+we
+could
+take
+him
+to
+the
+spirit
+world
+Olive
+T
+and
+others
+work
+to
+help
+the
+ones
+who
+are
+in
+that
+particular
+trouble
+earthbound
+spirits
+who
+have
+the
+craving
+for
+morphine
+Often
+people
+do
+not
+have
+the
+habit
+but
+they
+are
+influenced
+by
+spirits
+who
+have
+the
+craving
+and
+who
+get
+into
+their
+magnetic
+auras
+Many
+persons
+are
+easily
+influenced
+because
+they
+live
+such
+nervous
+sensitive
+lives
+that
+they
+are
+half
+in
+spirit
+They
+then
+become
+influenced
+by
+earthbound
+spirits
+who
+are
+so
+much
+in
+earth
+life
+that
+they
+obsess
+people
+We
+are
+going
+to
+help
+this
+young
+man
+and
+sometime
+he
+will
+come
+again
+when
+he
+is
+stronger
+and
+tell
+his
+experience
+but
+he
+cannot
+talk
+tonight
+He
+has
+gradually
+been
+awakening
+for
+some
+time
+but
+he
+is
+still
+bewildered
+and
+he
+could
+not
+realize
+the
+higher
+life
+He
+has
+been
+in
+many
+places
+and
+with
+his
+wife
+much
+of
+the
+time
+She
+helped
+him
+in
+fighting
+his
+habit
+but
+he
+was
+too
+weak
+to
+properly
+understand
+He
+had
+no
+resistive
+power
+left
+After
+he
+passed
+out
+his
+spirit
+was
+in
+a
+kind
+of
+sleep
+from
+morphine
+Still
+he
+has
+been
+wandering
+in
+a
+twilight
+state
+on
+earth
+life
+to
+find
+his
+home
+and
+family
+and
+trying
+to
+realize
+where
+he
+was
+He
+thought
+he
+was
+lost
+We
+have
+tried
+to
+reach
+him
+from
+our
+side
+of
+life
+but
+it
+has
+been
+very
+hard
+We
+will
+now
+take
+care
+of
+him
+One
+week
+later
+the
+spirit
+of
+Wallace
+R
+returned
+somewhat
+stronger
+and
+telling
+of
+his
+suffering
+made
+an
+anguished
+appeal
+to
+others
+to
+overcome
+the
+drug
+habit
+EXPERIENCE
+OCTOBER
+Spirit
+WALLACE
+R
+Psychic
+MRS
+WICKLAND
+The
+spirit
+seemed
+very
+weak
+and
+was
+at
+first
+unable
+to
+talk
+Doctor
+Whom
+have
+we
+here
+Rouse
+yourself
+and
+talk
+Do
+not
+think
+of
+any
+sickness
+Just
+talk
+as
+you
+used
+to
+do
+Spirit
+Faintly
+That
+is
+easy
+to
+say
+Dr
+Make
+the
+effort
+you
+will
+find
+it
+easy
+Sp
+I
+wanted
+to
+come
+in
+to
+get
+a
+little
+more
+understanding
+I
+could
+not
+get
+much
+the
+last
+time
+I
+am
+in
+the
+dark
+I
+am
+in
+the
+darkness
+having
+to
+overcome
+my
+physical
+habit
+which
+is
+attached
+to
+the
+soul
+Dr
+Have
+you
+been
+here
+before
+Sp
+Yes
+I
+was
+here
+not
+long
+ago
+and
+I
+thank
+you
+for
+helping
+me
+but
+I
+need
+more
+help
+Please
+give
+me
+strength
+to
+overcome
+my
+physical
+habit
+of
+using
+drugs
+I
+had
+little
+understanding
+of
+the
+life
+hereafter
+I
+lived
+from
+day
+to
+day
+the
+life
+of
+the
+world
+I
+did
+not
+realize
+what
+it
+would
+mean
+to
+be
+on
+the
+other
+side
+of
+life
+Dr
+Very
+few
+interest
+themselves
+in
+higher
+things
+Sp
+I
+also
+want
+to
+thank
+you
+for
+having
+helped
+me
+during
+the
+time
+I
+was
+sick
+At
+that
+time
+I
+felt
+such
+a
+strong
+power
+trying
+to
+help
+me
+to
+overcome
+and
+trying
+to
+give
+me
+strength
+I
+felt
+drawn
+somewhere
+but
+I
+was
+too
+weak
+to
+realize
+the
+power
+that
+was
+sent
+out
+to
+help
+me
+Dr
+We
+concentrated
+for
+you
+during
+the
+time
+you
+were
+sick
+as
+we
+thought
+there
+might
+be
+some
+obsession
+there
+SP
+I
+was
+too
+weak
+to
+realize
+Dr
+Of
+course
+you
+did
+not
+understand
+SP
+I
+had
+no
+power
+and
+there
+was
+no
+battery
+at
+our
+end
+to
+help
+me
+My
+only
+hope
+was
+to
+try
+to
+conquer
+I
+was
+in
+such
+misery
+and
+so
+helpless
+that
+many
+spirits
+demonstrated
+through
+me
+and
+I
+had
+no
+one
+who
+understood
+how
+to
+help
+me
+conquer
+the
+soul
+craving
+The
+spirit
+kept
+the
+hands
+across
+the
+chest
+and
+constantly
+twisted
+the
+fingers
+one
+over
+the
+other
+People
+think
+when
+they
+take
+drugs
+that
+the
+habit
+will
+end
+when
+they
+pass
+out
+of
+the
+physical
+I
+tried
+to
+conquer
+but
+when
+my
+mortal
+body
+had
+gone
+and
+my
+dear
+noble
+wife
+could
+not
+be
+with
+me
+to
+help
+me
+battle
+in
+the
+hard
+struggle
+I
+seemed
+helpless
+She
+is
+a
+dear
+noble
+soul
+she
+stood
+by
+me
+and
+helped
+me
+but
+I
+had
+not
+the
+power
+to
+conquer
+After
+I
+had
+lost
+all
+the
+surroundings
+of
+earth
+I
+went
+into
+a
+kind
+of
+sleep
+for
+awhile
+but
+oh
+how
+I
+longed
+for
+my
+wife
+and
+children
+Also
+how
+I
+longed
+to
+conquer
+but
+could
+not
+I
+suffered
+writhing
+painfully
+oh
+how
+I
+suffered
+I
+tried
+to
+go
+somewhere
+to
+get
+help
+to
+get
+help
+to
+overcome
+but
+I
+must
+thank
+you
+you
+gave
+me
+both
+strength
+and
+power
+I
+wish
+I
+could
+have
+had
+more
+power
+from
+your
+good
+thoughts
+Since
+last
+I
+was
+here
+I
+have
+gained
+much
+I
+am
+not
+strong
+yet
+but
+I
+am
+able
+to
+see
+and
+realize
+how
+I
+can
+win
+my
+battle
+From
+the
+little
+I
+have
+seen
+of
+the
+spirit
+world
+since
+I
+was
+here
+last
+I
+realize
+how
+wonderful
+things
+are
+Earnestly
+I
+wish
+I
+could
+warn
+many
+I
+knew
+and
+tell
+them
+not
+to
+play
+with
+drugs
+They
+think
+it
+is
+fun
+in
+the
+beginning
+but
+how
+they
+will
+have
+to
+suffer
+at
+the
+last
+Even
+the
+soul
+burns
+from
+the
+craving
+They
+should
+do
+everything
+they
+can
+to
+over
+come
+the
+habit
+They
+not
+only
+suffer
+here
+but
+they
+suffer
+terribly
+after
+they
+pass
+out
+then
+the
+soul
+is
+on
+fire
+With
+an
+agonized
+expression
+hands
+and
+fingers
+working
+nervously
+Many
+yes
+many
+come
+back
+and
+try
+to
+get
+the
+drug
+try
+to
+get
+even
+a
+little
+and
+they
+ruin
+others
+against
+their
+will
+I
+knew
+many
+times
+that
+I
+myself
+did
+not
+want
+it
+but
+there
+was
+such
+a
+strong
+power
+back
+of
+me
+Obsession
+If
+the
+world
+could
+only
+know
+My
+dear
+noble
+wife
+is
+trying
+very
+hard
+to
+warn
+others
+so
+they
+will
+not
+meet
+the
+same
+fate
+and
+death
+I
+did
+It
+was
+awful
+After
+the
+death
+of
+Wallace
+R
+his
+wife
+Mrs
+R
+played
+a
+leading
+role
+in
+a
+moving
+picture
+which
+vividly
+portrayed
+the
+horrors
+of
+the
+narcotic
+evil
+Thanks
+to
+you
+here
+I
+have
+found
+relief
+I
+feel
+better
+I
+will
+gain
+now
+I
+have
+opened
+my
+soul
+s
+eyes
+and
+I
+find
+there
+are
+great
+possibilities
+for
+me
+and
+in
+time
+there
+will
+be
+relief
+for
+me
+Oh
+if
+I
+could
+only
+warn
+and
+help
+others
+So
+many
+are
+taking
+that
+deadly
+drug
+They
+think
+they
+can
+forget
+sorrow
+and
+gain
+strength
+from
+the
+drug
+They
+do
+for
+a
+while
+but
+it
+only
+lasts
+a
+little
+time
+then
+it
+is
+worse
+They
+take
+it
+a
+second
+time
+and
+it
+is
+a
+little
+worse
+a
+third
+time
+still
+worse
+and
+so
+on
+When
+people
+drink
+whiskey
+it
+makes
+them
+drunk
+but
+after
+a
+good
+sleep
+they
+get
+over
+it
+and
+they
+do
+not
+have
+the
+terrible
+craving
+that
+they
+do
+from
+drugs
+The
+world
+will
+go
+mad
+if
+the
+narcotic
+evil
+is
+not
+stopped
+soon
+Shutting
+out
+liquor
+did
+great
+harm
+because
+people
+must
+have
+a
+stimulant
+of
+some
+kind
+They
+work
+hard
+very
+hard
+in
+the
+movies
+and
+it
+is
+nerve
+racking
+work
+As
+I
+said
+they
+must
+have
+something
+to
+stimulate
+their
+nerves
+so
+they
+can
+go
+on
+If
+they
+took
+some
+wine
+or
+beer
+or
+even
+some
+whiskey
+to
+quiet
+their
+nerves
+it
+would
+not
+be
+such
+a
+detriment
+as
+morphine
+is
+Most
+of
+them
+use
+morphine
+and
+oh
+moaning
+in
+anguish
+if
+I
+could
+only
+come
+back
+and
+warn
+them
+If
+only
+they
+would
+believe
+me
+I
+would
+tell
+them
+to
+overcome
+and
+let
+them
+know
+what
+a
+terrible
+thing
+it
+is
+to
+be
+a
+slave
+to
+a
+drug
+If
+they
+only
+would
+realize
+what
+is
+beyond
+they
+would
+never
+use
+drugs
+Dr
+The
+condition
+of
+the
+spirits
+who
+have
+taken
+drugs
+during
+earth
+life
+must
+be
+terrible
+on
+the
+other
+side
+Sp
+Shuddering
+I
+don
+t
+want
+to
+go
+there
+The
+earth
+sphere
+I
+saw
+one
+glimpse
+of
+it
+Thank
+you
+for
+concentrating
+for
+me
+it
+has
+been
+of
+such
+help
+I
+was
+weak
+but
+through
+your
+concentration
+they
+have
+been
+able
+to
+help
+me
+on
+this
+side
+and
+give
+me
+strength
+and
+also
+to
+put
+me
+to
+sleep
+so
+I
+can
+gain
+strength
+I
+was
+trying
+to
+come
+back
+somewhere
+to
+get
+help
+at
+some
+psychic
+circle
+but
+I
+could
+not
+do
+very
+much
+I
+did
+not
+understand
+then
+Since
+I
+was
+here
+the
+last
+time
+and
+you
+talked
+to
+me
+I
+am
+stronger
+and
+I
+have
+come
+now
+to
+thank
+you
+and
+to
+say
+I
+am
+on
+the
+way
+to
+health
+and
+happiness
+I
+wish
+I
+had
+know
+about
+you
+when
+I
+was
+first
+taken
+sick
+I
+could
+probably
+have
+overcome
+and
+conquered
+If
+I
+could
+only
+talk
+to
+my
+dear
+noble
+wife
+and
+thank
+her
+for
+helping
+me
+and
+for
+trying
+to
+warn
+others
+who
+are
+on
+the
+same
+road
+I
+was
+I
+will
+conquer
+now
+and
+then
+I
+want
+the
+world
+to
+know
+I
+want
+to
+warn
+the
+grown
+ups
+to
+warn
+children
+to
+warn
+young
+men
+to
+warn
+young
+women
+to
+never
+never
+start
+taking
+that
+deadly
+drug
+I
+would
+rather
+have
+pain
+than
+take
+it
+For
+a
+while
+it
+kills
+pain
+then
+opens
+the
+wound
+worse
+than
+ever
+You
+do
+not
+know
+how
+terrible
+the
+suffering
+is
+I
+could
+not
+tell
+You
+If
+I
+were
+burning
+in
+hell
+it
+could
+not
+be
+worse
+than
+having
+every
+nerve
+in
+my
+body
+burning
+It
+drives
+one
+mad
+No
+one
+can
+realize
+it
+except
+through
+experience
+Dr
+The
+spirit
+friends
+can
+help
+you
+Sp
+I
+have
+help
+now
+and
+I
+do
+thank
+you
+Next
+time
+if
+I
+can
+come
+again
+I
+may
+be
+able
+to
+tell
+of
+my
+progression
+in
+the
+other
+world
+I
+have
+seen
+very
+little
+but
+I
+will
+learn
+I
+am
+in
+a
+school
+a
+hospital
+where
+I
+am
+learning
+to
+overcome
+People
+think
+that
+when
+they
+die
+all
+troubles
+will
+be
+ended
+That
+is
+the
+first
+time
+you
+really
+live
+and
+all
+your
+desires
+and
+cravings
+are
+with
+you
+because
+they
+belong
+to
+the
+soul
+not
+the
+body
+The
+body
+is
+only
+the
+dress
+Now
+I
+am
+in
+school
+to
+learn
+the
+lessons
+of
+life
+from
+the
+real
+standpoint
+and
+I
+am
+learning
+Thank
+you
+all
+for
+helping
+me
+and
+also
+for
+giving
+me
+the
+opportunity
+of
+learning
+the
+lessons
+of
+life
+I
+wish
+many
+places
+had
+circles
+like
+this
+to
+help
+spirits
+in
+darkness
+Some
+time
+send
+my
+love
+to
+my
+dear
+noble
+wife
+I
+will
+try
+when
+I
+am
+stronger
+to
+impress
+her
+that
+I
+am
+there
+with
+her
+Dr
+Be
+brave
+and
+forget
+all
+about
+your
+trouble
+Let
+the
+Mercy
+Band
+of
+Spirit
+Forces
+help
+you
+then
+you
+will
+gradually
+overcome
+Sp
+Yes
+I
+will
+and
+thank
+you
+Goodbye
+Spirits
+of
+former
+drunkards
+no
+longer
+able
+to
+satisfy
+their
+desire
+for
+liquor
+in
+the
+usual
+way
+may
+attach
+themselves
+to
+susceptible
+mortals
+and
+through
+suggestive
+influence
+force
+the
+latter
+to
+drink
+for
+them
+Victims
+of
+such
+obsession
+have
+been
+brought
+to
+our
+observation
+the
+most
+recent
+case
+being
+that
+of
+Mrs
+V
+a
+periodic
+inebriate
+who
+for
+some
+time
+had
+endeavored
+in
+vain
+to
+overcome
+the
+tendency
+to
+drink
+Having
+again
+failed
+to
+conquer
+this
+irresistible
+impulse
+she
+came
+to
+us
+one
+evening
+strongly
+under
+the
+influence
+of
+liquor
+and
+asked
+to
+be
+given
+a
+treatment
+After
+her
+departure
+we
+held
+a
+concentration
+circle
+when
+the
+spirit
+of
+a
+drunkard
+dislodged
+from
+Mrs
+V
+controlled
+Mrs
+Wickland
+EXPERIENCE
+APRIL
+Spirit
+PAUL
+HoPKINS
+Patient
+MRS
+V
+Psychic
+MRS
+WICKLAND
+Doctor
+Are
+you
+a
+stranger
+to
+us
+Where
+did
+you
+come
+from
+Spirit
+Attempting
+to
+fight
+It
+s
+too
+warm
+Why
+did
+you
+pull
+me
+away
+when
+I
+was
+just
+going
+to
+have
+a
+drink
+and
+a
+good
+time
+Dr
+Aren
+t
+you
+ashamed
+of
+yourself
+Do
+you
+think
+that
+controlling
+a
+lady
+and
+ruining
+her
+life
+is
+a
+good
+time
+Sp
+When
+a
+fellow
+feels
+so
+blue
+what
+can
+he
+do
+Dr
+You
+must
+overcome
+your
+old
+habit
+Sp
+I
+m
+so
+warm
+I
+m
+awfully
+hot
+Dr
+Where
+did
+you
+come
+from
+Sp
+Give
+me
+something
+quick
+I
+m
+so
+dry
+Dr
+You
+have
+had
+all
+you
+are
+going
+to
+have
+Sp
+I
+m
+burning
+up
+Dr
+You
+made
+a
+lady
+drink
+for
+you
+Do
+you
+know
+that
+you
+are
+dead
+and
+are
+now
+a
+spirit
+Sp
+All
+I
+know
+is
+I
+m
+hot
+It
+was
+pouring
+fire
+all
+over
+me
+Static
+treatment
+given
+patient
+Dr
+That
+was
+good
+for
+you
+Sp
+I
+ran
+away
+when
+all
+that
+hot
+fire
+came
+down
+on
+me
+It
+s
+the
+first
+time
+I
+ever
+felt
+anything
+like
+that
+It
+was
+so
+hot
+that
+I
+thought
+I
+was
+in
+an
+oven
+They
+must
+have
+new
+things
+these
+days
+Dr
+What
+do
+you
+mean
+Sp
+Fire
+pouring
+down
+on
+my
+back
+I
+am
+dry
+I
+m
+awful
+dry
+Give
+me
+something
+just
+a
+few
+drops
+Dr
+Can
+t
+you
+understand
+that
+you
+have
+lost
+your
+mortal
+body
+and
+are
+a
+spirit
+Do
+you
+understand
+what
+I
+am
+talking
+about
+Sp
+No
+I
+don
+t
+know
+you
+Dr
+But
+you
+understand
+me
+do
+you
+not
+You
+are
+a
+spirit
+Sp
+You
+give
+me
+something
+to
+drink
+I
+m
+awful
+dry
+Give
+me
+something
+I
+tell
+you
+I
+only
+got
+a
+very
+few
+drops
+when
+you
+took
+me
+away
+Dr
+Why
+don
+t
+you
+behave
+yourself
+SP
+I
+can
+t
+any
+more
+Just
+give
+me
+a
+little
+only
+a
+few
+drops
+Dr
+If
+you
+don
+t
+behave
+yourself
+you
+will
+find
+yourself
+in
+the
+dark
+Sp
+Say
+will
+you
+tell
+that
+druggist
+that
+he
+didn
+t
+give
+it
+to
+me
+strong
+enough
+Tell
+him
+will
+you
+Dr
+You
+are
+done
+with
+druggists
+Sp
+I
+want
+something
+to
+drink
+Dr
+Do
+you
+think
+it
+is
+honorable
+to
+influence
+a
+woman
+and
+make
+her
+drink
+to
+satisfy
+you
+Sp
+I
+ve
+got
+to
+get
+it
+some
+way
+Dr
+Should
+you
+influence
+that
+lady
+to
+drink
+whiskey
+for
+you
+Sp
+Lady
+I
+drank
+it
+myself
+No
+lady
+got
+any
+I
+want
+it
+all
+myself
+You
+can
+t
+get
+very
+much
+these
+days
+and
+when
+you
+get
+it
+you
+don
+t
+give
+it
+away
+You
+want
+it
+all
+yourself
+Dr
+Don
+t
+you
+realize
+that
+you
+are
+getting
+it
+through
+a
+lady
+Sp
+You
+give
+me
+some
+and
+give
+it
+to
+me
+quick
+Dr
+I
+want
+you
+to
+understand
+your
+condition
+Sp
+I
+m
+always
+a
+good
+fellow
+Dr
+Good
+for
+nothing
+Sp
+No
+Dr
+That
+s
+it
+exactly
+good
+for
+nothing
+What
+have
+you
+been
+doing
+lately
+Sp
+I
+haven
+t
+been
+working
+for
+some
+time
+Dr
+Do
+you
+know
+what
+year
+it
+is
+Sp
+I
+don
+t
+care
+Dr
+You
+have
+been
+interfering
+with
+the
+life
+of
+a
+woman
+This
+is
+not
+your
+own
+body
+can
+you
+understand
+that
+It
+is
+a
+woman
+s
+body
+Sp
+Woman
+s
+Dr
+Yes
+See
+your
+skirts
+Sp
+I
+don
+t
+wear
+skirts
+But
+I
+ve
+been
+a
+woman
+once
+in
+a
+while
+Dr
+And
+through
+that
+woman
+you
+got
+the
+whiskey
+You
+should
+be
+ashamed
+of
+yourself
+You
+are
+not
+satisfied
+with
+abusing
+yourself
+but
+you
+must
+also
+control
+a
+woman
+Sp
+Why
+should
+I
+be
+ashamed
+I
+have
+done
+nothing
+but
+drink
+some
+innocent
+whiskey
+Dr
+You
+know
+that
+you
+are
+in
+a
+strange
+condition
+Sp
+I
+know
+I
+feel
+funny
+once
+in
+a
+while
+Dr
+You
+have
+been
+brought
+here
+and
+allowed
+to
+temporarily
+control
+this
+body
+so
+you
+may
+be
+made
+to
+understand
+that
+you
+must
+leave
+that
+lady
+alone
+Her
+name
+is
+Mrs
+V
+do
+you
+know
+her
+Sp
+That
+s
+not
+my
+name
+I
+haven
+t
+heard
+my
+name
+for
+a
+long
+time
+Once
+in
+a
+while
+I
+feel
+kind
+of
+queer
+I
+am
+not
+so
+correct
+about
+things
+as
+I
+used
+to
+be
+Dr
+Should
+you
+not
+ask
+the
+reason
+The
+fact
+is
+you
+have
+lost
+your
+physical
+body
+Sp
+What
+s
+the
+matter
+with
+me
+Dr
+You
+are
+a
+spirit
+and
+are
+invisible
+to
+us
+We
+cannot
+see
+you
+Sp
+Can
+t
+you
+see
+me
+Dr
+No
+Sp
+You
+don
+t
+see
+me
+I
+m
+a
+big
+fellow
+Don
+t
+you
+see
+me
+Why
+Probably
+you
+have
+had
+something
+to
+drink
+too
+Say
+you
+give
+me
+a
+drink
+will
+you
+We
+will
+be
+pretty
+good
+fellows
+together
+I
+shall
+be
+happy
+if
+you
+will
+give
+some
+whiskey
+Dr
+You
+would
+be
+in
+a
+fine
+condition
+then
+Sp
+If
+you
+will
+give
+me
+whiskey
+I
+will
+remember
+you
+in
+my
+will
+You
+give
+me
+something
+to
+drink
+then
+we
+will
+be
+pretty
+good
+fellows
+together
+Dr
+I
+will
+do
+nothing
+of
+the
+kind
+Sp
+Won
+t
+you
+help
+a
+poor
+fellow
+when
+he
+gets
+so
+dry
+Dr
+We
+want
+to
+help
+you
+but
+not
+in
+that
+way
+Sp
+Why
+did
+you
+give
+me
+that
+hot
+fire
+Dr
+I
+was
+giving
+an
+electrical
+treatment
+to
+a
+lady
+not
+to
+you
+The
+lady
+asked
+me
+to
+We
+drove
+you
+away
+from
+her
+but
+that
+does
+not
+seem
+to
+interest
+you
+does
+it
+Sp
+How
+would
+you
+have
+liked
+that
+Dr
+You
+deserved
+it
+Sp
+Say
+can
+t
+you
+give
+me
+some
+whiskey
+Dr
+You
+are
+only
+wasting
+time
+What
+we
+are
+trying
+to
+do
+is
+to
+make
+you
+understand
+your
+condition
+You
+are
+an
+invisible
+spirit
+controlling
+the
+body
+of
+this
+woman
+Sp
+What
+s
+the
+matter
+with
+that
+other
+woman
+Why
+do
+I
+always
+have
+to
+go
+with
+her
+Dr
+You
+have
+been
+obsessing
+her
+You
+are
+selfish
+and
+have
+been
+controlling
+and
+influencing
+her
+It
+is
+not
+the
+woman
+s
+fault
+it
+is
+your
+own
+fault
+Did
+you
+ever
+read
+the
+Bible
+Sp
+The
+Bible
+Dr
+Do
+you
+remember
+how
+Jesus
+cast
+out
+unclean
+spirits
+You
+are
+such
+a
+spirit
+Sp
+Looking
+at
+hands
+These
+rings
+do
+not
+belong
+to
+me
+and
+yet
+how
+in
+the
+devil
+could
+they
+belong
+to
+any
+one
+else
+Dr
+Do
+you
+recognize
+these
+hands
+Sp
+No
+I
+must
+have
+had
+a
+little
+too
+much
+But
+I
+don
+t
+seem
+so
+very
+tipsy
+I
+guess
+I
+have
+had
+a
+little
+too
+much
+probably
+You
+can
+hypnotize
+people
+in
+many
+ways
+maybe
+that
+s
+it
+Or
+probably
+I
+ve
+had
+too
+little
+and
+you
+had
+better
+give
+me
+more
+whiskey
+so
+I
+can
+see
+just
+a
+few
+drops
+I
+am
+blind
+Give
+me
+something
+and
+be
+a
+good
+fellow
+Give
+me
+just
+one
+glass
+more
+then
+I
+shall
+be
+all
+right
+Will
+you
+do
+it
+Dr
+You
+will
+have
+to
+leave
+if
+you
+are
+not
+sensible
+Sp
+You
+can
+t
+drive
+me
+out
+and
+there
+s
+not
+many
+fellows
+who
+could
+either
+I
+m
+pretty
+strong
+you
+can
+see
+that
+Dr
+We
+cannot
+see
+you
+at
+all
+Sp
+I
+could
+fight
+all
+of
+you
+I
+have
+done
+it
+before
+with
+people
+Rolling
+up
+sleeves
+You
+d
+better
+look
+out
+Dr
+Why
+can
+t
+you
+listen
+to
+what
+I
+am
+telling
+you
+You
+are
+invisible
+to
+us
+Sp
+Can
+t
+you
+see
+me
+Dr
+No
+You
+have
+lost
+your
+own
+body
+This
+is
+not
+your
+body
+Sp
+It
+isn
+t
+Attempting
+to
+fight
+Give
+me
+something
+to
+drink
+Dr
+Aren
+t
+you
+ashamed
+of
+yourself
+Sp
+Why
+should
+I
+be
+ashamed
+All
+I
+had
+was
+a
+drink
+Dr
+You
+do
+not
+understand
+your
+condition
+Sp
+Why
+didn
+t
+you
+tell
+that
+woman
+to
+wait
+a
+minute
+The
+patient
+had
+left
+after
+her
+treatment
+She
+ran
+away
+What
+for
+Tell
+her
+to
+wait
+a
+minute
+Dr
+You
+will
+be
+taken
+care
+of
+and
+will
+not
+disturb
+any
+more
+persons
+Sp
+She
+s
+a
+pretty
+good
+woman
+When
+I
+want
+whiskey
+she
+is
+always
+ready
+with
+the
+money
+and
+gives
+it
+to
+me
+Dr
+That
+will
+not
+happen
+any
+more
+Sp
+I
+am
+not
+alone
+there
+are
+many
+others
+with
+me
+Dr
+Did
+they
+all
+want
+to
+drink
+Sp
+Yes
+Dr
+You
+were
+ruining
+a
+woman
+s
+life
+You
+drank
+through
+that
+woman
+You
+controlled
+her
+and
+she
+drank
+for
+you
+Sp
+Do
+you
+mean
+that
+big
+fat
+woman
+Say
+she
+s
+good
+hearted
+She
+s
+always
+ready
+to
+treat
+me
+We
+have
+very
+good
+times
+together
+glorious
+times
+Laughing
+Dr
+You
+have
+had
+your
+last
+good
+time
+Do
+you
+think
+you
+are
+doing
+something
+honorable
+when
+you
+upset
+a
+woman
+s
+life
+and
+make
+a
+drunkard
+of
+her
+Sp
+I
+m
+no
+drunkard
+I
+can
+walk
+just
+as
+straight
+and
+fast
+as
+any
+one
+I
+have
+sense
+We
+both
+have
+a
+good
+drink
+together
+Dr
+There
+is
+no
+sense
+of
+shame
+in
+you
+Try
+to
+realize
+that
+you
+are
+an
+invisible
+spirit
+and
+have
+lost
+your
+own
+body
+It
+is
+now
+Do
+you
+know
+that
+you
+are
+in
+Los
+Angeles
+California
+You
+lost
+your
+body
+probably
+many
+years
+ago
+and
+have
+been
+hovering
+around
+in
+the
+earth
+sphere
+ever
+since
+Sp
+I
+want
+something
+to
+drink
+right
+now
+Dr
+Is
+that
+what
+you
+call
+a
+glorious
+time
+Sp
+It
+s
+a
+good
+time
+for
+a
+while
+Dr
+You
+were
+ruining
+a
+lady
+s
+life
+Sp
+I
+haven
+t
+done
+that
+Dr
+When
+you
+wanted
+whiskey
+you
+made
+that
+lady
+drink
+it
+for
+you
+Sp
+I
+did
+not
+I
+drank
+it
+myself
+Dr
+Yes
+through
+the
+lady
+Don
+t
+act
+so
+innocent
+You
+impressed
+the
+woman
+to
+get
+whiskey
+for
+you
+Sp
+Well
+she
+has
+the
+money
+I
+don
+t
+make
+any
+money
+any
+more
+Dr
+Is
+it
+right
+to
+influence
+that
+woman
+just
+to
+satisfy
+yourself
+Did
+your
+mother
+teach
+you
+such
+things
+Sp
+My
+mother
+died
+long
+ago
+Dr
+Suppose
+your
+mother
+were
+alive
+would
+you
+like
+to
+see
+her
+a
+slave
+to
+an
+earthbound
+spirit
+Sp
+I
+am
+not
+an
+earthbound
+spirit
+Dr
+Would
+you
+like
+to
+see
+your
+mother
+surrounded
+by
+a
+crowd
+of
+earthbound
+spirits
+who
+were
+making
+her
+drink
+Would
+that
+make
+you
+happy
+Sp
+She
+wouldn
+t
+do
+it
+This
+woman
+is
+good
+enough
+for
+me
+She
+only
+buys
+whiskey
+Dr
+Yes
+and
+you
+drink
+it
+through
+her
+Sp
+I
+drink
+it
+myself
+Dr
+By
+controlling
+the
+lady
+Mrs
+V
+just
+as
+you
+are
+now
+controlling
+the
+body
+of
+this
+lady
+Sp
+I
+am
+not
+controlling
+any
+one
+I
+ve
+only
+had
+a
+drink
+Dr
+Try
+to
+be
+sensible
+This
+body
+is
+not
+yours
+Sp
+Whose
+is
+it
+then
+Dr
+It
+belongs
+to
+my
+wife
+She
+is
+a
+psychic
+sensitive
+through
+whom
+spirits
+can
+talk
+Sp
+Will
+she
+have
+a
+drink
+with
+me
+Will
+you
+Dr
+No
+Sp
+I
+ll
+treat
+the
+crowd
+Dr
+I
+thought
+you
+had
+no
+money
+Sp
+I
+always
+get
+some
+money
+from
+the
+lady
+Dr
+She
+is
+not
+here
+Sp
+You
+get
+it
+and
+I
+ll
+treat
+the
+crowd
+Come
+on
+with
+me
+everybody
+I
+ll
+treat
+you
+all
+Dr
+Does
+the
+lady
+pay
+the
+bills
+with
+money
+that
+you
+earn
+SP
+She
+s
+splendid
+There
+s
+another
+man
+helps
+her
+to
+pay
+for
+things
+Dr
+That
+is
+her
+husband
+SP
+Husband
+Dr
+Yes
+husband
+You
+are
+making
+a
+slave
+of
+the
+woman
+and
+making
+a
+drunkard
+of
+her
+Suppose
+it
+were
+your
+mother
+who
+was
+being
+tormented
+Sp
+My
+mother
+Dr
+Yes
+think
+that
+over
+carefully
+Suppose
+somebody
+should
+make
+a
+drunkard
+of
+your
+mother
+how
+would
+you
+feel
+Or
+of
+your
+sister
+Sp
+They
+know
+better
+Dr
+Is
+your
+conduct
+honorable
+Sp
+I
+m
+a
+good
+fellow
+and
+I
+always
+want
+to
+be
+on
+the
+best
+side
+of
+the
+women
+Women
+are
+always
+my
+best
+friends
+They
+always
+have
+money
+and
+are
+willing
+to
+spend
+it
+Dr
+Now
+listen
+to
+me
+You
+have
+actually
+lost
+your
+physical
+body
+probably
+many
+years
+ago
+Who
+is
+the
+President
+Sp
+I
+don
+t
+know
+I
+can
+t
+recall
+any
+one
+Dr
+Is
+Lincoln
+the
+President
+Sp
+No
+that
+was
+a
+long
+time
+ago
+Dr
+Cleveland
+Sp
+No
+Dr
+McKinley
+Arthur
+Sp
+He
+was
+President
+a
+long
+time
+ago
+Dr
+Do
+you
+remember
+Wilson
+Sp
+Wilson
+I
+don
+t
+know
+that
+fellow
+Dr
+Do
+you
+know
+about
+the
+big
+war
+in
+Europe
+with
+twenty
+three
+nations
+fighting
+Sp
+I
+don
+t
+care
+all
+I
+want
+is
+a
+drink
+I
+am
+getting
+so
+thirsty
+What
+do
+I
+care
+for
+war
+If
+they
+want
+to
+kill
+themselves
+what
+do
+I
+care
+They
+are
+better
+off
+If
+they
+don
+t
+know
+any
+better
+than
+to
+kill
+each
+other
+let
+them
+go
+ahead
+Dr
+What
+did
+your
+mother
+call
+you
+Sp
+She
+called
+me
+Paul
+Dr
+What
+was
+your
+surname
+Sp
+It
+is
+a
+long
+time
+since
+I
+heard
+it
+Dr
+What
+did
+they
+call
+your
+father
+Sp
+They
+called
+him
+John
+Hopkins
+Dr
+Then
+you
+must
+be
+Paul
+Hopkins
+What
+state
+were
+you
+born
+in
+Sp
+I
+have
+forgotten
+Of
+yes
+I
+was
+born
+in
+Yuma
+Arizona
+Dr
+Were
+you
+ever
+in
+Los
+Angeles
+Sp
+Yes
+once
+in
+a
+while
+They
+used
+to
+have
+pretty
+good
+saloons
+on
+Main
+Street
+and
+I
+suppose
+they
+are
+there
+now
+Dr
+No
+they
+are
+all
+gone
+Sp
+Then
+I
+don
+t
+know
+what
+became
+of
+them
+Dr
+They
+have
+all
+been
+done
+away
+with
+Sp
+They
+were
+on
+Main
+Street
+between
+Second
+and
+Third
+Dr
+What
+would
+your
+mother
+think
+of
+your
+condition
+Sp
+My
+mother
+is
+dead
+Dr
+Her
+spirit
+did
+not
+die
+She
+would
+be
+sorry
+to
+find
+you
+in
+this
+condition
+Sp
+I
+m
+in
+an
+all
+right
+condition
+I
+feel
+tip
+top
+I
+get
+a
+glass
+of
+whiskey
+when
+I
+want
+it
+and
+it
+makes
+me
+feel
+good
+and
+happy
+Dr
+Does
+it
+make
+you
+happy
+to
+see
+a
+man
+lying
+drunk
+in
+the
+gutter
+Sp
+I
+have
+never
+seen
+it
+But
+liquor
+is
+good
+Oh
+ho
+Who
+is
+that
+Seeing
+some
+spirit
+Dr
+Who
+is
+it
+Sp
+I
+will
+have
+to
+sit
+up
+and
+take
+notice
+She
+s
+a
+nice
+lady
+To
+spirit
+Who
+are
+you
+Dr
+Perhaps
+it
+is
+you
+own
+mother
+Sp
+She
+was
+an
+old
+lady
+This
+lady
+says
+she
+knew
+my
+mother
+My
+mother
+was
+a
+good
+Christian
+woman
+I
+suppose
+she
+is
+with
+God
+in
+Heaven
+sitting
+near
+the
+throne
+Dr
+Jesus
+taught
+that
+God
+is
+Spirit
+and
+God
+is
+Love
+You
+cannot
+find
+such
+a
+God
+sitting
+on
+a
+throne
+Sp
+Where
+does
+He
+sit
+Dr
+God
+is
+Spirit
+and
+is
+not
+in
+any
+particular
+place
+He
+is
+the
+Life
+of
+all
+Nature
+You
+are
+an
+expression
+of
+God
+himself
+Understand
+that
+you
+are
+an
+ignorant
+spirit
+and
+must
+overcome
+your
+old
+habits
+and
+that
+you
+will
+then
+progress
+Sp
+This
+lady
+says
+if
+I
+behave
+myself
+I
+can
+go
+to
+bed
+and
+rest
+I
+m
+awfully
+tired
+I
+am
+a
+pretty
+tired
+fellow
+Will
+they
+let
+me
+rest
+myself
+Dr
+Yes
+and
+when
+you
+wake
+you
+will
+realize
+that
+you
+are
+a
+spirit
+and
+that
+you
+must
+overcome
+old
+habits
+and
+progress
+as
+you
+should
+on
+the
+spirit
+side
+of
+life
+Sp
+That
+lady
+is
+a
+nurse
+Dr
+We
+cannot
+see
+her
+as
+you
+do
+We
+do
+not
+see
+you
+You
+are
+controlling
+my
+wife
+s
+body
+SP
+I
+do
+not
+understand
+that
+I
+want
+to
+go
+to
+that
+bed
+Dr
+You
+must
+learn
+the
+purpose
+of
+life
+SP
+They
+say
+if
+I
+lie
+down
+in
+that
+bed
+I
+will
+not
+get
+any
+more
+whiskey
+Dr
+You
+will
+be
+taught
+how
+to
+progress
+Sp
+Can
+I
+have
+any
+more
+whiskey
+Dr
+No
+Sp
+Well
+I
+don
+t
+care
+I
+m
+tired
+and
+I
+feel
+happy
+What
+can
+a
+fellow
+do
+I
+have
+no
+home
+and
+no
+place
+to
+go
+You
+must
+have
+a
+good
+time
+sometimes
+a
+jollification
+time
+Dr
+You
+did
+not
+understand
+your
+condition
+Sp
+This
+lady
+says
+I
+will
+have
+a
+home
+with
+my
+mother
+I
+will
+go
+to
+my
+mother
+Will
+she
+like
+me
+Dr
+Mother
+love
+never
+dies
+After
+you
+acquire
+understanding
+you
+must
+help
+this
+lady
+whom
+you
+have
+been
+tormenting
+You
+have
+made
+that
+poor
+lady
+a
+drunkard
+Sp
+Have
+I
+I
+didn
+t
+know
+that
+I
+wanted
+something
+to
+drink
+but
+I
+did
+not
+know
+I
+was
+doing
+any
+harm
+Dr
+When
+she
+came
+here
+tonight
+she
+was
+drunk
+and
+I
+gave
+her
+a
+treatment
+Sp
+I
+had
+that
+Dr
+You
+made
+her
+drunk
+she
+herself
+does
+not
+want
+to
+drink
+She
+tries
+to
+resist
+the
+impulse
+She
+is
+a
+sensitive
+and
+you
+hypnotized
+her
+and
+made
+her
+drink
+Sp
+It
+s
+pretty
+hard
+for
+a
+fellow
+to
+give
+it
+up
+Dr
+You
+will
+have
+to
+do
+your
+duty
+and
+help
+her
+Sp
+I
+feel
+pretty
+tired
+I
+want
+to
+go
+to
+that
+bed
+Dr
+Think
+yourself
+in
+that
+bed
+and
+you
+will
+be
+there
+Sp
+I
+will
+By
+thinking
+Dr
+Yes
+be
+perfectly
+quiet
+and
+think
+yourself
+in
+that
+bed
+Sp
+Remember
+me
+I
+am
+a
+good
+fellow
+and
+I
+like
+you
+anyhow
+even
+if
+you
+gave
+me
+that
+fire
+I
+mean
+well
+Dr
+The
+lady
+whom
+you
+see
+will
+be
+your
+nurse
+and
+will
+look
+after
+you
+Sp
+My
+mother
+is
+here
+Oh
+mother
+my
+dear
+will
+you
+forgive
+me
+I
+was
+not
+a
+good
+fellow
+I
+will
+not
+drink
+any
+more
+whiskey
+Mother
+says
+she
+will
+help
+me
+God
+bless
+you
+for
+the
+work
+you
+have
+done
+for
+me
+After
+the
+foregoing
+experience
+a
+friend
+reported
+a
+marked
+change
+for
+the
+better
+in
+Mrs
+V
+saying
+that
+no
+further
+desire
+for
+intoxicants
+was
+manifested
+Mrs
+V
+herself
+acknowledged
+this
+change
+and
+expressed
+her
+gratitude
+for
+the
+relief
+obtained
+Not
+at
+all
+uncommon
+are
+the
+cases
+of
+amnesia
+when
+total
+lapse
+of
+memory
+occurs
+all
+sense
+of
+identity
+is
+lost
+and
+the
+victim
+wanders
+to
+strange
+places
+returning
+to
+his
+normal
+self
+without
+any
+knowledge
+of
+his
+recent
+actions
+We
+have
+abundant
+demonstration
+that
+this
+state
+is
+frequently
+due
+to
+the
+influence
+of
+obsessing
+spirits
+One
+case
+was
+that
+of
+a
+young
+man
+C
+B
+who
+shortly
+after
+he
+had
+established
+himself
+in
+business
+with
+his
+father
+rose
+early
+one
+morning
+and
+left
+his
+home
+without
+the
+knowledge
+of
+his
+parents
+No
+trace
+of
+him
+could
+be
+found
+and
+after
+several
+weeks
+of
+anxiety
+the
+parents
+asked
+us
+to
+concentrate
+for
+their
+missing
+son
+We
+did
+so
+emphasizing
+that
+the
+young
+man
+should
+have
+no
+rest
+until
+he
+would
+write
+to
+his
+parents
+The
+following
+morning
+he
+wrote
+to
+them
+saying
+he
+was
+on
+board
+a
+United
+States
+Man
+of
+War
+at
+San
+Francisco
+that
+he
+had
+enlisted
+in
+the
+Navy
+and
+would
+be
+gone
+for
+several
+years
+The
+boy
+s
+parents
+were
+anxious
+to
+have
+him
+at
+home
+with
+them
+and
+wrote
+him
+to
+that
+effect
+saying
+they
+would
+do
+all
+they
+could
+to
+obtain
+his
+release
+The
+day
+before
+our
+next
+concentration
+circle
+C
+wrote
+his
+parents
+that
+they
+should
+do
+nothing
+regarding
+his
+discharge
+for
+he
+was
+entirely
+willing
+to
+serve
+his
+term
+of
+enlistment
+The
+following
+evening
+we
+again
+concentrated
+for
+C
+B
+and
+a
+spirit
+controlled
+Mrs
+Wickland
+as
+related
+in
+the
+succeeding
+article
+clearly
+giving
+indication
+of
+having
+been
+the
+cause
+of
+the
+young
+man
+s
+recent
+actions
+EXPERIENCE
+DECEMBER
+Spirit
+JOHN
+EDWARDS
+Patient
+C
+B
+Psychic
+MRS
+WICKLAND
+While
+singing
+Throw
+out
+the
+Life
+Line
+an
+amusing
+episode
+occurred
+As
+the
+intelligence
+assumed
+control
+of
+Mrs
+Wickland
+he
+seemed
+to
+be
+pulling
+himself
+along
+hand
+over
+hand
+as
+if
+by
+a
+rope
+and
+then
+made
+the
+motions
+of
+swimming
+Doctor
+Did
+you
+hold
+on
+to
+the
+life
+line
+Have
+you
+been
+drifting
+about
+Where
+did
+you
+come
+from
+You
+do
+not
+need
+to
+swim
+on
+dry
+land
+What
+is
+the
+matter
+with
+you
+Spirit
+I
+want
+to
+find
+out
+what
+s
+the
+matter
+with
+me
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+To
+audience
+He
+calls
+me
+dead
+I
+am
+not
+dead
+but
+not
+so
+much
+alive
+either
+Dr
+Where
+did
+you
+come
+from
+Sp
+Lots
+of
+people
+brought
+me
+here
+Dr
+Who
+brought
+you
+Sp
+A
+whole
+lot
+of
+people
+Dr
+I
+don
+t
+see
+them
+Sp
+I
+don
+t
+see
+why
+they
+want
+me
+I
+want
+to
+be
+out
+at
+sea
+Dr
+Have
+you
+been
+out
+before
+Sp
+Yes
+Dr
+Why
+do
+you
+want
+to
+go
+out
+to
+sea
+Have
+you
+been
+out
+many
+times
+Sp
+Quite
+a
+little
+Dr
+Don
+t
+you
+want
+to
+be
+on
+shore
+Sp
+I
+don
+t
+want
+to
+be
+a
+dry
+crab
+I
+was
+all
+ready
+to
+go
+out
+but
+you
+pulled
+me
+to
+shore
+I
+don
+t
+see
+why
+they
+should
+pull
+me
+to
+shore
+Dr
+Were
+you
+drowned
+at
+sea
+Sp
+If
+I
+had
+been
+how
+could
+I
+be
+here
+Dr
+Your
+spirit
+could
+be
+here
+Sp
+You
+mean
+the
+soul
+Dr
+Yes
+Sp
+Then
+that
+should
+be
+with
+God
+Dr
+Where
+is
+God
+Sp
+If
+you
+don
+t
+know
+that
+then
+you
+ought
+to
+go
+to
+Sunday
+School
+Dr
+I
+did
+go
+but
+I
+did
+not
+find
+out
+there
+Sp
+Then
+you
+did
+not
+go
+to
+the
+right
+one
+Dr
+Which
+one
+should
+I
+have
+gone
+to
+Sp
+There
+are
+all
+kinds
+of
+denominations
+they
+are
+not
+all
+alike
+but
+they
+all
+know
+about
+God
+Dr
+What
+church
+did
+you
+go
+to
+Sp
+The
+church
+where
+I
+go
+is
+where
+I
+can
+be
+all
+alone
+I
+do
+not
+go
+there
+very
+often
+I
+can
+belong
+to
+any
+denomination
+When
+you
+are
+on
+the
+water
+you
+can
+t
+go
+to
+church
+you
+go
+to
+service
+Dr
+Which
+church
+did
+you
+like
+best
+Sp
+They
+are
+all
+alike
+It
+s
+just
+a
+matter
+of
+form
+They
+all
+belong
+to
+one
+God
+and
+teach
+a
+hereafter
+a
+Heaven
+and
+a
+hell
+and
+that
+Christ
+died
+for
+our
+sins
+So
+you
+see
+I
+feel
+like
+this
+you
+can
+just
+as
+well
+belong
+to
+one
+as
+another
+They
+all
+praise
+God
+so
+it
+makes
+no
+difference
+Dr
+You
+were
+a
+liberal
+man
+Sp
+I
+don
+t
+know
+that
+I
+was
+that
+either
+I
+don
+t
+know
+what
+kind
+of
+a
+man
+I
+was
+I
+had
+my
+own
+religion
+in
+a
+way
+I
+had
+to
+go
+to
+church
+once
+in
+a
+while
+to
+show
+the
+Captain
+that
+I
+could
+Dr
+What
+ship
+were
+you
+on
+Sp
+I
+was
+on
+all
+kinds
+Dr
+Were
+you
+an
+ordinary
+sailor
+Sp
+I
+was
+in
+the
+Navy
+Dr
+Can
+you
+tell
+us
+what
+year
+it
+is
+Sp
+I
+don
+t
+even
+know
+what
+month
+it
+is
+Dr
+Do
+you
+know
+the
+year
+Sp
+I
+do
+not
+know
+Sp
+Is
+it
+Sp
+No
+That
+s
+not
+the
+year
+Dr
+What
+should
+it
+be
+Sp
+Dr
+Where
+were
+you
+sailing
+Sp
+One
+time
+I
+went
+around
+on
+the
+battleship
+Cincinnati
+Dr
+Where
+did
+you
+go
+Sp
+One
+time
+around
+the
+Coast
+Dr
+Did
+you
+ever
+go
+through
+the
+Panama
+Canal
+Sp
+No
+I
+was
+near
+it
+once
+but
+not
+through
+Dr
+What
+did
+you
+do
+on
+ship
+Sp
+I
+just
+did
+anything
+that
+came
+along
+Dr
+How
+old
+were
+you
+Sp
+I
+can
+t
+seem
+to
+remember
+Dr
+And
+now
+you
+want
+to
+go
+to
+sea
+again
+Sp
+Yes
+I
+don
+t
+want
+to
+be
+on
+land
+because
+I
+don
+t
+feel
+I
+belong
+there
+There
+is
+something
+in
+life
+when
+you
+are
+on
+the
+ocean
+something
+to
+it
+You
+have
+regular
+meals
+and
+no
+worry
+if
+your
+work
+is
+done
+all
+right
+Dr
+Is
+there
+much
+work
+to
+do
+Sp
+Oh
+yes
+lots
+of
+scrubbing
+there
+is
+always
+something
+to
+do
+The
+Captain
+does
+not
+want
+his
+men
+to
+be
+idle
+If
+we
+were
+left
+alone
+we
+would
+have
+a
+good
+time
+If
+there
+is
+nothing
+else
+to
+do
+we
+have
+to
+polish
+all
+the
+time
+I
+know
+something
+about
+it
+We
+have
+to
+polish
+the
+stairways
+the
+machinery
+and
+the
+fixings
+around
+it
+all
+have
+to
+be
+polished
+Every
+day
+we
+polish
+the
+knobs
+the
+machinery
+and
+the
+stairs
+It
+is
+all
+bright
+and
+shining
+It
+s
+a
+big
+ship
+Dr
+Were
+you
+on
+a
+battleship
+Sp
+I
+was
+on
+different
+battleships
+Dr
+Were
+you
+under
+fire
+at
+any
+time
+Sp
+No
+we
+did
+not
+fight
+The
+Cuban
+War
+was
+not
+much
+of
+a
+war
+The
+Philippines
+was
+more
+Dr
+Were
+you
+there
+Sp
+We
+were
+outside
+We
+did
+not
+get
+in
+the
+Bay
+not
+all
+of
+us
+only
+a
+few
+Dewey
+went
+in
+I
+was
+there
+but
+not
+on
+his
+ship
+I
+was
+outside
+cruising
+around
+Some
+had
+to
+be
+on
+guard
+and
+watch
+If
+we
+had
+all
+gone
+in
+we
+would
+have
+been
+trapped
+There
+were
+others
+around
+there
+Dr
+What
+is
+your
+name
+Sp
+My
+name
+It
+has
+been
+so
+long
+since
+I
+heard
+it
+I
+have
+forgotten
+it
+My
+name
+is
+John
+Dr
+John
+what
+Sp
+John
+Edwards
+Dr
+Were
+you
+ever
+on
+the
+Pacific
+Coast
+Sp
+Yes
+we
+were
+around
+there
+one
+time
+I
+was
+more
+on
+the
+Eastern
+Coast
+Dr
+Were
+you
+discharged
+when
+you
+left
+the
+vessel
+Sp
+Slowly
+Left
+the
+vessel
+Dr
+Didn
+t
+you
+leave
+the
+vessel
+Or
+did
+you
+have
+an
+accident
+of
+some
+kind
+Sp
+I
+don
+t
+know
+Dr
+Were
+you
+sick
+Sp
+I
+don
+t
+know
+Dr
+Is
+Manila
+Bay
+the
+last
+you
+remember
+Sp
+No
+that
+s
+a
+long
+time
+ago
+Dr
+Where
+did
+you
+go
+from
+there
+Sp
+I
+was
+quite
+young
+when
+we
+were
+in
+Manila
+Bay
+Dr
+That
+must
+have
+been
+in
+How
+long
+were
+you
+at
+sea
+Sp
+I
+don
+t
+know
+The
+last
+I
+remember
+is
+Dr
+What
+happened
+to
+you
+in
+Were
+you
+sick
+Sp
+I
+seem
+confused
+It
+seems
+to
+me
+that
+we
+were
+I
+do
+not
+remember
+very
+well
+we
+were
+painting
+the
+boat
+I
+do
+not
+know
+what
+place
+it
+was
+I
+can
+t
+think
+In
+some
+way
+we
+were
+not
+in
+the
+Navy
+Yard
+it
+was
+a
+little
+outside
+We
+were
+on
+the
+scaffold
+on
+the
+side
+of
+the
+vessel
+Dr
+Did
+something
+happen
+to
+you
+Sp
+My
+head
+got
+so
+funny
+I
+think
+I
+had
+some
+kind
+of
+a
+vertigo
+spell
+I
+felt
+funny
+It
+seemed
+like
+my
+head
+was
+swimming
+Dr
+Were
+you
+painting
+the
+boat
+Sp
+We
+were
+cleaning
+and
+fixing
+it
+up
+Dr
+Were
+you
+in
+dry
+dock
+Sp
+I
+cannot
+remember
+what
+it
+was
+Something
+happened
+so
+I
+got
+in
+the
+water
+Dr
+You
+probably
+dropped
+off
+the
+scaffold
+Sp
+I
+don
+t
+know
+but
+I
+got
+well
+right
+away
+Dr
+It
+is
+very
+likely
+that
+you
+lost
+your
+body
+at
+that
+time
+and
+became
+a
+spirit
+Sp
+A
+spirit
+What
+do
+you
+mean
+Dr
+I
+mean
+you
+lost
+your
+mortal
+body
+You
+are
+invisible
+to
+us
+Sp
+But
+I
+was
+going
+to
+sea
+I
+felt
+as
+if
+a
+part
+of
+me
+was
+a
+sailor
+but
+I
+also
+felt
+that
+I
+was
+teaching
+some
+sailor
+Through
+obsessing
+C
+B
+I
+could
+smell
+the
+salt
+air
+around
+him
+Sailors
+have
+a
+kind
+of
+atmosphere
+around
+them
+you
+can
+tell
+them
+when
+you
+see
+them
+I
+wanted
+to
+go
+back
+again
+You
+feel
+funny
+when
+you
+are
+on
+land
+You
+feel
+you
+do
+not
+belong
+there
+The
+land
+is
+so
+solid
+you
+do
+not
+feel
+right
+I
+feel
+the
+ocean
+is
+the
+bosom
+of
+a
+mother
+you
+are
+rocked
+to
+sleep
+You
+feel
+so
+fine
+when
+the
+waves
+rock
+you
+to
+sleep
+Dr
+When
+you
+fell
+from
+the
+boat
+you
+probably
+lost
+your
+body
+and
+you
+have
+been
+a
+spirit
+since
+then
+This
+is
+not
+your
+body
+Look
+at
+these
+hands
+Sp
+Noticing
+hands
+of
+psychic
+That
+is
+not
+my
+hand
+Laughing
+No
+I
+should
+say
+not
+I
+had
+big
+big
+hands
+That
+hand
+has
+not
+pulled
+any
+ropes
+That
+s
+funny
+I
+have
+a
+hand
+like
+that
+Laughing
+with
+amusement
+Dr
+And
+you
+have
+a
+dress
+and
+long
+hair
+Are
+those
+the
+feet
+of
+a
+sailor
+Sp
+They
+are
+not
+mine
+Oh
+I
+see
+One
+time
+a
+long
+time
+ago
+you
+know
+we
+used
+to
+go
+to
+one
+town
+then
+another
+I
+was
+not
+on
+the
+battleship
+all
+the
+time
+You
+know
+my
+father
+was
+a
+sea
+Captain
+and
+of
+course
+we
+were
+on
+water
+all
+the
+time
+He
+sailed
+from
+New
+York
+to
+India
+and
+around
+there
+Dr
+On
+a
+sailing
+vessel
+Sp
+Yes
+He
+had
+a
+sailing
+vessel
+first
+when
+I
+was
+just
+a
+little
+kid
+Then
+he
+had
+a
+vessel
+He
+went
+between
+Calcutta
+New
+York
+and
+England
+Dr
+With
+a
+merchant
+vessel
+Sp
+Yes
+He
+had
+a
+lot
+of
+stuff
+Then
+he
+went
+to
+Australia
+one
+time
+he
+dealt
+in
+cotton
+and
+wool
+When
+I
+grew
+up
+I
+felt
+I
+wanted
+to
+be
+in
+the
+employ
+of
+the
+Government
+so
+I
+joined
+the
+Navy
+to
+my
+father
+s
+disgust
+He
+did
+not
+like
+it
+but
+he
+said
+I
+was
+a
+sailor
+born
+I
+think
+I
+was
+born
+on
+the
+water
+I
+do
+not
+know
+the
+land
+My
+mother
+taught
+me
+to
+read
+and
+write
+and
+that
+was
+all
+the
+schooling
+I
+had
+We
+were
+always
+on
+the
+water
+Mother
+was
+a
+pretty
+good
+woman
+Dr
+Did
+your
+mother
+die
+Sp
+My
+mother
+is
+not
+living
+and
+my
+father
+is
+dead
+too
+They
+both
+died
+some
+years
+ago
+But
+this
+was
+not
+what
+I
+was
+going
+to
+talk
+about
+Dr
+You
+were
+talking
+about
+these
+hands
+and
+this
+dress
+Sp
+I
+do
+not
+see
+how
+I
+could
+get
+a
+woman
+s
+hands
+and
+dress
+That
+was
+what
+I
+was
+going
+to
+talk
+about
+when
+I
+drifted
+away
+I
+do
+not
+know
+but
+I
+should
+judge
+I
+was
+about
+eighteen
+or
+nineteen
+when
+we
+were
+in
+Calcutta
+I
+like
+to
+go
+around
+and
+see
+everything
+and
+I
+like
+to
+talk
+I
+drifted
+into
+a
+meeting
+one
+time
+In
+India
+Calcutta
+is
+a
+pretty
+good
+town
+and
+has
+a
+nice
+climate
+I
+drifted
+into
+this
+meeting
+and
+I
+got
+a
+whole
+lot
+of
+books
+They
+called
+this
+meeting
+Theosophy
+They
+were
+nice
+people
+but
+queer
+When
+they
+talk
+before
+you
+know
+it
+you
+believe
+in
+reincarnation
+Is
+this
+skirt
+reincarnation
+You
+said
+I
+am
+dead
+so
+now
+how
+can
+you
+explain
+it
+in
+any
+other
+way
+That
+must
+explain
+it
+because
+I
+am
+back
+as
+a
+woman
+Dr
+You
+might
+call
+this
+reincarnation
+in
+a
+way
+When
+you
+pass
+out
+you
+leave
+your
+mortal
+body
+and
+become
+a
+spirit
+Sp
+You
+know
+they
+go
+to
+Devachan
+and
+that
+is
+a
+long
+way
+off
+Say
+Madam
+Blavatsky
+was
+a
+great
+speaker
+I
+heard
+her
+in
+Calcutta
+Then
+there
+was
+Leadbeater
+I
+was
+only
+a
+kid
+but
+you
+know
+when
+you
+get
+something
+in
+your
+head
+when
+you
+are
+a
+kid
+it
+stays
+there
+My
+father
+said
+John
+don
+t
+you
+believe
+that
+you
+will
+go
+crazy
+I
+said
+It
+is
+better
+than
+nothing
+it
+tells
+good
+things
+That
+salvation
+scheme
+is
+not
+right
+My
+heart
+felt
+so
+big
+when
+I
+said
+that
+It
+swelled
+up
+when
+I
+got
+those
+books
+It
+may
+be
+that
+I
+am
+back
+again
+as
+a
+woman
+I
+didn
+t
+think
+I
+would
+be
+a
+woman
+I
+wanted
+to
+be
+a
+sailor
+again
+Dr
+You
+are
+using
+a
+woman
+s
+body
+only
+temporarily
+Sp
+So
+I
+am
+a
+woman
+temporarily
+Laughing
+Dr
+You
+are
+a
+spirit
+and
+probably
+have
+been
+since
+It
+is
+now
+You
+have
+been
+out
+of
+your
+body
+ten
+years
+Sp
+How
+do
+you
+know
+I
+died
+then
+Dr
+You
+say
+that
+is
+the
+last
+date
+you
+remember
+Sp
+Do
+you
+go
+by
+that
+Then
+I
+have
+been
+in
+Devachan
+Maybe
+sailors
+don
+t
+stay
+in
+Devachan
+so
+long
+maybe
+their
+vibrations
+are
+better
+I
+know
+the
+vibrations
+are
+much
+more
+vibrating
+on
+a
+steamboat
+especially
+when
+there
+are
+storms
+Laughing
+Really
+and
+truly
+have
+I
+reincarnated
+Dr
+It
+is
+likely
+that
+you
+passed
+out
+of
+your
+body
+at
+the
+time
+you
+spoke
+of
+and
+you
+have
+been
+a
+spirit
+but
+were
+not
+aware
+of
+your
+condition
+Sp
+So
+I
+do
+not
+know
+anything
+Dr
+Whatever
+your
+condition
+has
+been
+you
+have
+been
+brought
+here
+tonight
+to
+acquire
+understanding
+We
+are
+investigators
+of
+psychic
+phenomena
+and
+spirit
+obsession
+Sometimes
+spirits
+take
+control
+of
+mortals
+and
+cause
+them
+to
+do
+strange
+things
+You
+have
+been
+attracted
+here
+and
+are
+controlling
+this
+body
+which
+belongs
+to
+my
+wife
+You
+are
+using
+it
+temporarily
+We
+do
+not
+see
+you
+we
+only
+hear
+you
+talk
+Sp
+Then
+in
+reality
+I
+am
+in
+a
+woman
+I
+am
+only
+fooling
+you
+then
+Dr
+My
+wife
+is
+so
+constituted
+that
+spirits
+can
+use
+her
+body
+temporarily
+Have
+you
+ever
+heard
+of
+mediums
+Sp
+Yes
+I
+have
+been
+to
+mediums
+to
+have
+my
+fortune
+told
+You
+know
+they
+are
+only
+controlled
+by
+Indians
+Dr
+Indians
+are
+excellent
+gate
+keepers
+They
+are
+good
+protectors
+for
+mediums
+Sp
+Why
+did
+I
+come
+here
+Dr
+For
+understanding
+You
+have
+evidently
+been
+doing
+mischief
+unconsciously
+You
+are
+in
+Los
+Angeles
+California
+Sp
+I
+know
+I
+was
+in
+San
+Francisco
+once
+I
+have
+not
+been
+there
+for
+a
+long
+time
+It
+was
+in
+Dr
+You
+probably
+made
+a
+young
+man
+leave
+his
+home
+and
+parents
+without
+any
+provocation
+at
+all
+and
+made
+him
+enlist
+as
+a
+sailor
+in
+the
+Navy
+Sp
+He
+had
+no
+business
+to
+do
+that
+Dr
+He
+is
+interested
+in
+other
+work
+He
+seemed
+to
+lose
+himself
+and
+enlisted
+in
+the
+Navy
+He
+is
+San
+Francisco
+now
+There
+is
+evidence
+in
+his
+case
+that
+some
+spirit
+has
+been
+interfering
+with
+him
+and
+I
+surmise
+that
+you
+are
+the
+one
+Sp
+For
+goodness
+sake
+I
+wouldn
+t
+do
+that
+I
+woke
+up
+one
+morning
+and
+I
+felt
+I
+was
+on
+land
+for
+some
+reason
+or
+other
+and
+I
+wanted
+to
+be
+on
+water
+Dr
+You
+were
+drifting
+about
+and
+came
+in
+contact
+with
+this
+young
+man
+who
+is
+sensitive
+to
+spirit
+influence
+He
+had
+been
+studying
+too
+hard
+and
+so
+made
+himself
+sensitive
+You
+got
+into
+his
+magnetic
+aura
+acted
+through
+him
+and
+caused
+him
+to
+do
+things
+he
+did
+not
+want
+to
+do
+Did
+you
+enlist
+very
+recently
+to
+go
+out
+to
+sea
+again
+Sp
+It
+seems
+I
+woke
+up
+early
+one
+morning
+and
+wanted
+to
+go
+back
+to
+the
+water
+I
+felt
+I
+was
+lost
+Dr
+Didn
+t
+you
+realize
+that
+you
+did
+not
+have
+full
+control
+of
+yourself
+Sp
+I
+felt
+queer
+In
+a
+way
+I
+was
+in
+a
+dreamy
+state
+Say
+I
+didn
+t
+mean
+to
+do
+anything
+wrong
+Dr
+We
+understand
+your
+position
+and
+know
+you
+are
+a
+good
+fellow
+We
+don
+t
+blame
+you
+Sp
+Who
+is
+that
+boy
+Dr
+His
+name
+is
+B
+he
+is
+a
+young
+boy
+of
+seventeen
+Sp
+He
+claimed
+he
+was
+twenty
+one
+or
+he
+could
+not
+have
+joined
+Dr
+He
+is
+large
+and
+looks
+older
+than
+he
+is
+We
+concentrated
+for
+him
+and
+I
+suppose
+we
+pulled
+you
+to
+shore
+Sp
+I
+felt
+some
+one
+pull
+me
+and
+then
+I
+felt
+I
+was
+in
+the
+water
+I
+recall
+we
+were
+in
+New
+York
+or
+somewhere
+around
+there
+and
+it
+was
+awfully
+stormy
+and
+icy
+I
+was
+doing
+something
+and
+fell
+in
+the
+water
+There
+was
+ice
+all
+around
+me
+We
+had
+been
+there
+for
+a
+while
+but
+I
+do
+not
+know
+any
+more
+How
+did
+I
+get
+into
+that
+boy
+Dr
+You
+drifted
+into
+his
+aura
+Sp
+Why
+here
+comes
+my
+mother
+I
+haven
+t
+seen
+her
+for
+a
+long
+time
+She
+died
+in
+New
+York
+She
+says
+Oh
+John
+I
+have
+been
+hunting
+for
+you
+for
+so
+long
+I
+didn
+t
+know
+it
+If
+I
+am
+dead
+why
+didn
+t
+I
+go
+to
+her
+Dr
+Many
+fall
+into
+a
+sleep
+and
+remain
+in
+that
+condition
+for
+some
+time
+Sp
+Oh
+I
+was
+in
+Devachan
+That
+is
+where
+I
+was
+sleeping
+to
+reincarnate
+Dr
+Now
+you
+must
+go
+with
+your
+mother
+She
+will
+take
+you
+to
+her
+home
+Sp
+I
+will
+go
+to
+my
+mother
+and
+father
+my
+old
+father
+Dr
+Does
+he
+have
+understanding
+now
+Sp
+Mother
+says
+Yes
+but
+she
+had
+a
+time
+with
+him
+He
+wanted
+to
+see
+the
+Savior
+I
+never
+quite
+believed
+in
+that
+story
+I
+wanted
+to
+find
+out
+about
+it
+but
+never
+did
+I
+think
+Theosophy
+is
+the
+best
+because
+they
+do
+not
+have
+that
+blood
+question
+to
+deal
+with
+I
+don
+t
+believe
+in
+one
+person
+being
+killed
+for
+others
+If
+I
+did
+anything
+wrong
+why
+should
+I
+not
+suffer
+myself
+God
+is
+Love
+and
+He
+never
+wanted
+any
+one
+killed
+to
+save
+another
+Such
+damned
+foolish
+things
+The
+church
+people
+are
+so
+down
+on
+Jews
+and
+yet
+Jesus
+was
+a
+Jew
+Dr
+Now
+you
+must
+go
+with
+your
+father
+and
+mother
+Sp
+I
+ve
+been
+in
+a
+nice
+crowd
+This
+has
+been
+a
+good
+night
+I
+feel
+pretty
+good
+It
+has
+been
+a
+good
+night
+to
+speak
+with
+nice
+people
+and
+spend
+a
+couple
+of
+hours
+having
+a
+good
+time
+You
+say
+you
+cannot
+see
+these
+others
+here
+but
+there
+are
+quite
+a
+few
+Now
+mother
+says
+my
+dear
+little
+mother
+she
+says
+I
+must
+go
+She
+has
+not
+seen
+her
+son
+for
+a
+long
+time
+We
+have
+lots
+to
+talk
+about
+together
+I
+told
+you
+my
+mother
+was
+good
+I
+must
+say
+goodbye
+to
+you
+all
+Trying
+to
+rise
+but
+unable
+to
+do
+so
+Why
+what
+s
+the
+matter
+with
+my
+legs
+I
+cannot
+stand
+on
+them
+Dr
+You
+are
+only
+controlling
+the
+upper
+part
+of
+the
+body
+Sp
+Then
+I
+m
+only
+half
+a
+man
+Laughing
+heartily
+Worse
+and
+worse
+Only
+half
+woman
+half
+sailor
+Now
+I
+must
+go
+with
+my
+dear
+little
+mother
+Dr
+You
+must
+learn
+to
+think
+Sp
+Think
+Have
+I
+not
+been
+thinking
+before
+Laughing
+Excuse
+me
+but
+everything
+seems
+a
+joke
+Dr
+That
+s
+all
+right
+You
+will
+have
+to
+travel
+by
+thinking
+Sp
+Not
+by
+my
+legs
+Will
+I
+not
+need
+my
+legs
+any
+more
+I
+haven
+t
+any
+you
+know
+I
+m
+only
+half
+a
+man
+Dr
+Just
+think
+yourself
+with
+your
+mother
+and
+you
+will
+be
+there
+Sp
+Think
+myself
+with
+my
+mother
+and
+I
+will
+be
+there
+I
+am
+going
+now
+But
+you
+folks
+are
+so
+jolly
+that
+I
+think
+I
+ll
+come
+again
+some
+day
+You
+don
+t
+mind
+if
+I
+come
+do
+you
+By
+the
+way
+will
+you
+please
+tell
+that
+boy
+I
+feel
+sorry
+if
+I
+did
+him
+mischief
+Dr
+Will
+you
+try
+to
+help
+him
+You
+can
+Sp
+I
+can
+How
+Dr
+By
+impressing
+him
+to
+return
+home
+Your
+mother
+will
+explain
+to
+you
+Sp
+My
+mother
+says
+I
+should
+thank
+you
+for
+finding
+me
+But
+she
+found
+her
+son
+in
+a
+woman
+She
+did
+not
+recognize
+me
+in
+a
+woman
+but
+we
+have
+to
+take
+things
+as
+they
+come
+Now
+I
+will
+go
+Good
+Night
+The
+day
+after
+this
+the
+attitude
+of
+C
+B
+changed
+entirely
+He
+then
+wrote
+to
+his
+parents
+urging
+them
+to
+do
+everything
+possible
+to
+secure
+his
+release
+as
+he
+wanted
+to
+come
+home
+and
+continue
+his
+work
+He
+added
+that
+he
+could
+not
+understand
+why
+he
+had
+enlisted
+and
+that
+he
+seemed
+to
+have
+been
+in
+a
+daze
+Since
+the
+young
+man
+had
+enlisted
+as
+being
+of
+age
+while
+in
+reality
+only
+seventeen
+he
+was
+after
+many
+difficulties
+and
+delays
+released
+from
+service
+and
+he
+returned
+to
+his
+home
+once
+more
+his
+normal
+self
+CHAPTER
+IX
+Psychic
+Invalidism
+SPIRITS
+who
+are
+ignorant
+of
+having
+lost
+their
+physical
+bodies
+often
+hold
+firmly
+in
+mind
+the
+thought
+of
+their
+former
+physical
+condition
+and
+continue
+to
+suffer
+pain
+This
+error
+of
+the
+mortal
+mind
+persists
+until
+an
+understanding
+of
+transition
+and
+spiritual
+laws
+is
+reached
+when
+freedom
+from
+ideas
+of
+physical
+limitations
+is
+attained
+When
+spirits
+who
+are
+under
+this
+delusion
+of
+suffering
+and
+disease
+come
+into
+the
+auras
+of
+mortals
+their
+condition
+is
+conveyed
+to
+the
+sensitives
+and
+chronic
+lassitude
+pseudo
+illness
+and
+psychic
+invalidism
+result
+These
+sensitives
+endure
+all
+the
+pain
+of
+the
+spirits
+former
+physical
+condition
+and
+ordinary
+methods
+of
+treatment
+fail
+to
+cure
+for
+the
+only
+permanent
+relief
+is
+found
+through
+the
+dislodgement
+of
+the
+ignorant
+entities
+While
+we
+were
+in
+Chicago
+a
+friend
+of
+ours
+Miss
+F
+W
+a
+companion
+to
+Mrs
+McA
+prominent
+modiste
+in
+the
+city
+asked
+us
+to
+concentrate
+for
+Mrs
+McA
+who
+was
+a
+chronic
+invalid
+The
+latter
+had
+been
+ordered
+by
+her
+physicians
+to
+take
+a
+rest
+cure
+and
+could
+not
+be
+induced
+to
+get
+up
+again
+She
+was
+suffering
+intense
+pains
+in
+the
+head
+and
+was
+subject
+to
+many
+changeable
+moods
+Miss
+F
+W
+and
+Mrs
+McA
+s
+masseuse
+were
+present
+during
+the
+following
+occurrence
+EXPERIENCE
+APRIL
+Spirit
+GRACE
+BRUSTED
+Patient
+MRS
+MCA
+Psychic
+MRS
+WICKLAND
+The
+spirit
+at
+first
+spoke
+with
+great
+difficulty
+complained
+of
+being
+very
+sick
+and
+was
+unable
+to
+sit
+up
+She
+insisted
+that
+she
+was
+too
+sick
+to
+be
+up
+and
+wished
+to
+go
+to
+bed
+When
+asked
+whether
+she
+knew
+any
+one
+in
+the
+room
+she
+at
+once
+recognized
+Mrs
+McA
+s
+masseuse
+and
+demanded
+that
+she
+take
+her
+to
+bed
+inimediately
+wait
+upon
+her
+and
+draw
+down
+the
+shades
+as
+the
+light
+was
+too
+strong
+for
+a
+sick
+person
+For
+origin
+of
+Mrs
+Eddy
+s
+Mortal
+Mind
+teaching
+see
+Chap
+Page
+Spirit
+Mrs
+Eddy
+See
+Chap
+Page
+Spirit
+Harry
+Hayward
+Patient
+Mrs
+McA
+She
+gave
+her
+name
+as
+Grace
+Brusted
+of
+Boston
+said
+she
+was
+a
+Universalist
+and
+that
+the
+year
+was
+She
+had
+been
+sick
+for
+a
+long
+time
+and
+felt
+as
+if
+she
+were
+two
+persons
+at
+times
+herself
+and
+at
+other
+times
+another
+person
+She
+was
+often
+called
+Mrs
+McA
+but
+was
+tired
+of
+answering
+to
+that
+name
+as
+she
+did
+not
+like
+Mrs
+McA
+Recently
+she
+had
+had
+to
+do
+entirely
+too
+much
+work
+having
+had
+to
+give
+orders
+to
+the
+sewing
+girls
+futhermore
+Miss
+F
+W
+would
+have
+to
+do
+things
+in
+her
+way
+or
+be
+discharged
+The
+spirit
+repeated
+again
+that
+she
+was
+tired
+of
+living
+a
+double
+life
+that
+she
+could
+not
+understand
+it
+and
+was
+more
+than
+ready
+to
+die
+The
+way
+of
+progression
+was
+then
+explained
+and
+the
+spirit
+s
+grandmother
+and
+mother
+appeared
+to
+her
+saying
+that
+she
+had
+always
+been
+a
+spoiled
+child
+but
+would
+now
+have
+to
+learn
+to
+serve
+others
+Miss
+F
+W
+and
+the
+masseuse
+said
+that
+Mrs
+McA
+had
+been
+acting
+in
+the
+same
+manner
+as
+this
+spirit
+even
+using
+the
+identical
+language
+and
+they
+later
+reported
+that
+on
+the
+following
+morning
+Mrs
+MCA
+was
+in
+a
+very
+genial
+mood
+remarking
+that
+it
+was
+the
+first
+time
+for
+many
+months
+that
+she
+had
+wakened
+without
+a
+headache
+After
+this
+she
+improved
+rapidly
+left
+her
+bed
+and
+resumed
+her
+usual
+activities
+For
+over
+a
+period
+of
+six
+years
+a
+friend
+of
+ours
+an
+elderly
+gentleman
+eighty
+four
+years
+old
+was
+afflicted
+with
+unaccountable
+pains
+in
+the
+back
+of
+the
+neck
+and
+a
+peculiar
+dizziness
+and
+vertigo
+which
+came
+upon
+him
+with
+increasing
+frequency
+When
+seized
+with
+these
+attacks
+he
+felt
+that
+walls
+and
+buildings
+would
+fall
+and
+crush
+him
+an
+extreme
+nausea
+accompanied
+these
+sensations
+and
+if
+seated
+he
+would
+fall
+forward
+with
+his
+head
+below
+his
+knees
+and
+for
+some
+time
+would
+be
+unable
+to
+straighten
+himself
+without
+help
+Unable
+to
+find
+any
+physical
+cause
+for
+his
+distress
+the
+possibility
+of
+spirit
+interference
+was
+suggested
+and
+we
+concentrated
+for
+him
+at
+our
+psychic
+circle
+A
+spirit
+then
+controlled
+Mrs
+Wickland
+and
+fell
+forward
+with
+head
+between
+the
+knees
+We
+labored
+with
+the
+entity
+for
+some
+time
+until
+he
+was
+finally
+able
+to
+tell
+us
+that
+his
+name
+was
+Jack
+Finch
+that
+he
+was
+about
+sixty
+five
+years
+old
+and
+had
+been
+an
+inmate
+of
+an
+institution
+near
+Madison
+Wisconsin
+He
+said
+that
+when
+he
+was
+quite
+small
+some
+one
+probably
+his
+sister
+had
+been
+carrying
+him
+and
+had
+dropped
+him
+to
+the
+floor
+and
+that
+this
+fall
+had
+broken
+his
+back
+and
+left
+him
+helpless
+As
+he
+grew
+older
+he
+became
+a
+great
+care
+his
+mother
+neglected
+him
+and
+he
+was
+finally
+placed
+in
+an
+institution
+He
+remembered
+he
+had
+been
+in
+a
+cyclone
+at
+one
+time
+and
+that
+something
+had
+struck
+him
+on
+the
+back
+of
+the
+neck
+adding
+still
+further
+to
+his
+misery
+He
+had
+always
+been
+in
+great
+pain
+and
+his
+broken
+back
+and
+injured
+neck
+produced
+dizzy
+spells
+which
+would
+cause
+him
+to
+double
+over
+and
+remain
+in
+a
+cramped
+position
+until
+aid
+was
+given
+When
+this
+dizziness
+came
+upon
+him
+he
+would
+feel
+as
+if
+he
+were
+sliding
+off
+a
+roof
+or
+as
+if
+the
+walls
+were
+crushing
+him
+again
+he
+often
+felt
+as
+if
+the
+bed
+would
+fall
+on
+him
+and
+as
+if
+everything
+were
+spinning
+around
+He
+said
+that
+because
+of
+his
+helpless
+condition
+no
+one
+had
+ever
+cared
+for
+him
+with
+the
+single
+exception
+of
+a
+nurse
+by
+the
+name
+of
+Anasteena
+who
+had
+been
+very
+kind
+to
+him
+at
+the
+institution
+and
+had
+always
+fed
+him
+But
+everything
+is
+changed
+now
+Sometimes
+I
+feel
+like
+a
+small
+man
+and
+sometimes
+like
+a
+woman
+or
+like
+a
+big
+man
+Sensations
+experienced
+when
+influencing
+different
+mortals
+When
+the
+spirit
+was
+brought
+to
+a
+realization
+that
+he
+had
+lost
+his
+mortal
+body
+and
+could
+no
+longer
+have
+any
+physical
+pain
+he
+asked
+If
+I
+have
+lost
+my
+body
+and
+if
+I
+am
+dead
+then
+why
+haven
+t
+I
+seen
+God
+Where
+is
+He
+This
+led
+to
+an
+explanation
+of
+the
+true
+nature
+of
+God
+His
+manifestation
+in
+all
+things
+and
+the
+existence
+of
+the
+spirit
+world
+Being
+told
+to
+look
+about
+to
+see
+whether
+some
+one
+was
+present
+whom
+he
+had
+known
+on
+earth
+he
+said
+Why
+there
+is
+my
+mother
+She
+wants
+me
+to
+go
+with
+her
+to
+her
+home
+she
+says
+she
+will
+take
+care
+of
+me
+now
+She
+says
+I
+never
+knew
+what
+real
+life
+was
+on
+account
+of
+my
+crippled
+body
+but
+that
+I
+will
+commence
+to
+really
+live
+from
+now
+on
+While
+speaking
+he
+saw
+in
+the
+distance
+another
+spirit
+coming
+toward
+him
+and
+he
+exclaimed
+with
+great
+joy
+It
+is
+Anasteena
+Can
+I
+go
+with
+her
+too
+Assured
+that
+he
+could
+go
+with
+his
+mother
+and
+friend
+that
+he
+would
+be
+well
+cared
+for
+and
+would
+begin
+a
+life
+of
+happiness
+he
+said
+fervently
+God
+bless
+you
+and
+was
+then
+taken
+away
+The
+next
+day
+the
+friend
+who
+had
+suffered
+from
+the
+vertigo
+attacks
+found
+himself
+free
+from
+the
+ailment
+and
+said
+he
+had
+so
+much
+surplus
+energy
+that
+he
+felt
+he
+must
+be
+forty
+eight
+instead
+of
+eighty
+four
+Nor
+was
+he
+ever
+subject
+to
+any
+recurrence
+of
+his
+former
+trouble
+Mr
+Z
+from
+the
+neighboring
+town
+of
+Burbank
+who
+had
+suffered
+for
+twenty
+five
+years
+from
+sleeplessness
+and
+an
+intense
+nausea
+without
+having
+been
+able
+to
+obtain
+relief
+was
+brought
+to
+us
+by
+a
+physician
+who
+suspected
+obsession
+in
+the
+case
+During
+the
+consultation
+Mrs
+Wickland
+saw
+the
+spirit
+of
+a
+man
+standing
+behind
+the
+patient
+and
+when
+she
+described
+this
+spirit
+the
+patient
+recognized
+an
+old
+friend
+who
+had
+passed
+out
+a
+number
+of
+years
+before
+After
+an
+electrical
+treatment
+had
+been
+given
+to
+the
+patient
+this
+spirit
+left
+him
+and
+taking
+control
+of
+Mrs
+Wickland
+spoke
+to
+his
+friend
+recalling
+incidents
+of
+their
+former
+acquaintanceship
+Mr
+Z
+had
+at
+one
+time
+been
+engaged
+to
+the
+daughter
+of
+this
+spirit
+but
+for
+religious
+reasons
+the
+engagement
+had
+been
+broken
+The
+two
+men
+had
+however
+continued
+friendly
+relations
+and
+when
+the
+father
+found
+himself
+in
+financial
+straits
+Mr
+Z
+had
+aided
+him
+in
+a
+business
+way
+When
+the
+father
+later
+died
+of
+cancer
+of
+the
+stomach
+he
+was
+attracted
+to
+Mr
+Z
+because
+of
+his
+regard
+for
+him
+becoming
+enclosed
+in
+his
+aura
+he
+was
+unable
+to
+free
+himself
+and
+had
+remained
+with
+him
+for
+twenty
+five
+years
+conveying
+to
+his
+mortal
+friend
+the
+symptoms
+of
+the
+disease
+from
+which
+he
+had
+suffered
+while
+in
+earth
+life
+After
+receiving
+an
+explanation
+of
+the
+laws
+of
+the
+higher
+life
+he
+left
+repentantly
+and
+Mr
+Z
+was
+no
+longer
+troubled
+with
+the
+nausa
+condition
+An
+unusual
+type
+of
+psychic
+invalidism
+due
+to
+spirit
+influence
+was
+the
+case
+of
+Mrs
+G
+who
+had
+for
+many
+years
+suffered
+in
+tensely
+from
+a
+peculiar
+spinal
+affliction
+which
+baffled
+all
+skill
+of
+physicians
+After
+Mrs
+G
+had
+been
+under
+our
+care
+for
+some
+time
+a
+spirit
+who
+had
+died
+of
+a
+broken
+back
+and
+neck
+was
+removed
+and
+controlled
+Mrs
+Wickland
+The
+guiding
+intelligences
+explained
+that
+he
+had
+drifted
+into
+the
+aura
+of
+the
+patient
+when
+she
+was
+a
+child
+and
+had
+become
+enmeshed
+in
+her
+nervous
+system
+thus
+transferring
+to
+his
+victim
+the
+physical
+condition
+under
+which
+he
+had
+died
+and
+which
+he
+still
+believed
+himself
+to
+be
+suffering
+from
+With
+the
+removal
+of
+the
+spirit
+the
+patient
+was
+promptly
+relieved
+and
+suffered
+no
+more
+pain
+in
+the
+back
+EXPERIENCE
+JULY
+Spirit
+JAmEs
+HOXEN
+Patient
+MRs
+G
+Psychic
+MRS
+WICKLAND
+The
+controlling
+spirit
+seemed
+to
+be
+paralyzed
+with
+head
+hanging
+toward
+the
+shoulder
+At
+first
+unable
+to
+speak
+he
+pointed
+to
+the
+neck
+and
+moaned
+continually
+as
+if
+in
+great
+pain
+At
+these
+indications
+both
+Mr
+and
+Mrs
+G
+who
+were
+in
+the
+circle
+became
+intensely
+interested
+Doctor
+Overcome
+your
+old
+habits
+friend
+forget
+your
+pain
+Manipulating
+hands
+and
+arms
+See
+your
+arms
+are
+not
+stiff
+now
+Straighten
+up
+you
+are
+not
+paralyzed
+We
+are
+going
+to
+help
+you
+Understand
+that
+you
+have
+lost
+your
+old
+body
+You
+are
+a
+spirit
+and
+must
+not
+hover
+around
+the
+earth
+plane
+causing
+trouble
+Talk
+and
+tell
+us
+who
+you
+are
+Where
+did
+you
+come
+from
+Spirit
+Oh
+Making
+frantic
+efforts
+to
+reach
+Mrs
+G
+stretching
+forth
+both
+hands
+to
+her
+imploringly
+Mrs
+G
+No
+you
+cannot
+come
+back
+here
+I
+do
+not
+want
+you
+Sp
+Oh
+Beginning
+to
+cry
+and
+making
+another
+effort
+to
+reach
+Mrs
+G
+Dr
+You
+cannot
+be
+selfish
+any
+longer
+You
+must
+listen
+to
+intelligent
+spirits
+who
+will
+help
+you
+You
+can
+only
+find
+happi
+ness
+by
+forgetting
+your
+present
+condition
+Intelligent
+spirits
+will
+take
+you
+to
+the
+spirit
+world
+Moaning
+and
+crying
+will
+not
+help
+you
+Mrs
+G
+The
+gentleman
+who
+is
+speaking
+to
+you
+is
+a
+doctor
+and
+he
+will
+help
+you
+Dr
+Try
+to
+talk
+Sp
+I
+don
+t
+want
+any
+more
+fire
+Electric
+treatments
+given
+patient
+Dr
+You
+surely
+will
+have
+more
+if
+you
+stay
+around
+here
+Sp
+I
+don
+t
+want
+any
+more
+Struggling
+Oh
+that
+fire
+Dr
+Listen
+to
+me
+Something
+must
+have
+happened
+to
+you
+a
+long
+time
+ago
+Can
+you
+remember
+what
+occurred
+Mrs
+G
+Answer
+the
+doctor
+Dr
+Understand
+your
+true
+condition
+You
+died
+probably
+a
+long
+time
+ago
+Sp
+Oh
+My
+back
+my
+back
+Dr
+What
+is
+the
+matter
+with
+your
+back
+Sp
+It
+s
+broken
+Dr
+What
+happened
+to
+you
+Sp
+I
+fell
+off
+a
+horse
+Dr
+Where
+did
+you
+live
+Sp
+I
+can
+t
+tell
+just
+now
+I
+thought
+I
+was
+dead
+in
+a
+way
+but
+I
+don
+t
+feel
+like
+dying
+now
+My
+back
+and
+head
+and
+neck
+are
+all
+gone
+to
+pieces
+My
+head
+is
+going
+off
+my
+spine
+The
+patient
+had
+continually
+suffered
+from
+a
+sensation
+of
+the
+head
+being
+dislocated
+from
+the
+spine
+Dr
+When
+did
+the
+accident
+happen
+Sp
+I
+don
+t
+know
+I
+struck
+right
+here
+Left
+side
+of
+neck
+Dr
+Forget
+that
+condition
+you
+do
+not
+need
+to
+have
+that
+sensation
+now
+This
+body
+which
+you
+are
+controlling
+is
+all
+right
+Do
+you
+know
+you
+are
+invisible
+to
+us
+Sp
+I
+don
+t
+want
+any
+more
+fire
+It
+strikes
+my
+neck
+too
+hard
+Dr
+That
+was
+necessary
+to
+get
+you
+out
+Why
+did
+you
+influence
+that
+lady
+and
+bother
+her
+Sp
+My
+neck
+my
+neck
+and
+my
+head
+They
+ache
+so
+I
+can
+t
+stand
+it
+any
+longer
+Dr
+How
+long
+have
+you
+been
+troubled
+this
+way
+Sp
+Many
+years
+a
+long
+long
+time
+Mrs
+G
+Were
+you
+grown
+up
+or
+little
+when
+you
+fell
+off
+the
+horse
+Are
+you
+a
+boy
+or
+a
+girl
+Sp
+I
+am
+a
+boy
+I
+broke
+my
+neck
+a
+long
+time
+ago
+but
+it
+hurts
+yet
+Mrs
+G
+Where
+did
+this
+happen
+Was
+it
+in
+California
+Sp
+No
+far
+far
+away
+I
+don
+t
+know
+where
+Dr
+Think
+back
+and
+your
+memory
+will
+return
+Mr
+G
+Was
+it
+Illinois
+or
+Iowa
+Sp
+I
+have
+been
+asleep
+and
+you
+ll
+have
+to
+wait
+a
+minute
+My
+head
+aches
+so
+and
+my
+neck
+My
+neck
+is
+broken
+My
+head
+has
+gone
+from
+my
+spine
+Mr
+G
+You
+no
+longer
+have
+a
+physical
+head
+Sp
+But
+the
+fire
+gets
+on
+top
+of
+it
+Mrs
+G
+That
+is
+good
+for
+you
+it
+will
+help
+you
+Sp
+It
+s
+fire
+fire
+Mrs
+G
+Your
+neck
+does
+not
+hurt
+you
+at
+all
+now
+Sp
+Yes
+it
+does
+Dr
+No
+it
+does
+not
+Sp
+I
+got
+paralyzed
+My
+spine
+I
+can
+t
+move
+and
+oh
+my
+neck
+I
+can
+t
+move
+My
+neck
+is
+broken
+Dr
+Can
+t
+you
+understand
+that
+your
+broken
+neck
+went
+to
+the
+grave
+Your
+physical
+body
+is
+gone
+This
+body
+is
+all
+right
+but
+you
+will
+use
+it
+for
+only
+a
+little
+while
+Sp
+You
+don
+t
+know
+how
+everything
+hurts
+Dr
+Because
+you
+hold
+that
+idea
+in
+your
+mind
+How
+could
+your
+body
+hurt
+you
+now
+when
+it
+is
+in
+the
+grave
+Sp
+How
+do
+you
+know
+it
+is
+Dr
+This
+is
+not
+your
+body
+Sp
+How
+do
+you
+know
+my
+body
+is
+in
+the
+grave
+Dr
+Because
+you
+yourself
+are
+here
+This
+body
+you
+are
+talking
+through
+is
+not
+yours
+Sp
+How
+do
+you
+know
+Dr
+You
+do
+not
+want
+to
+understand
+You
+are
+a
+selfish
+spirit
+You
+know
+that
+is
+true
+Sp
+I
+have
+been
+to
+church
+and
+I
+know
+about
+Jesus
+Christ
+Mrs
+G
+To
+what
+church
+did
+you
+go
+Sp
+To
+the
+Mennonite
+Church
+Mrs
+G
+had
+grown
+up
+among
+the
+Mennonites
+Mrs
+G
+Where
+was
+that
+Sp
+In
+Kansas
+a
+long
+time
+ago
+Mrs
+G
+had
+lived
+in
+Kansas
+for
+some
+years
+Mr
+G
+In
+what
+town
+Sp
+N
+Mr
+G
+What
+is
+your
+name
+Sp
+I
+lost
+it
+My
+neck
+is
+so
+bad
+Mr
+G
+Did
+you
+live
+in
+town
+Sp
+No
+on
+a
+farm
+about
+a
+mile
+north
+of
+the
+College
+Mr
+G
+What
+is
+your
+name
+Sp
+I
+had
+a
+name
+but
+it
+is
+such
+a
+long
+time
+since
+I
+heard
+it
+Mr
+G
+How
+did
+you
+happen
+to
+fall
+from
+the
+horse
+Sp
+We
+were
+going
+up
+the
+hill
+and
+my
+horse
+got
+scared
+of
+some
+rabbits
+Then
+he
+went
+off
+quick
+I
+did
+not
+get
+hold
+of
+the
+reins
+quick
+enough
+Mr
+G
+You
+were
+not
+a
+good
+rider
+Sp
+I
+had
+no
+saddle
+How
+could
+I
+stick
+on
+Mr
+G
+Evidently
+it
+was
+not
+a
+gentleman
+s
+saddle
+horse
+Sp
+I
+was
+only
+a
+hired
+man
+Mr
+G
+How
+old
+were
+you
+Sp
+I
+was
+about
+sixteen
+or
+seventeen
+I
+think
+Mr
+G
+What
+did
+your
+mother
+call
+you
+Sp
+I
+don
+t
+know
+Dr
+Did
+she
+call
+you
+Mabel
+Sp
+They
+never
+call
+a
+boy
+that
+My
+shoulder
+and
+back
+are
+broken
+My
+neck
+has
+been
+broken
+for
+years
+and
+years
+Dr
+Will
+you
+understand
+that
+you
+have
+lost
+your
+body
+What
+is
+your
+name
+Sp
+My
+name
+is
+James
+Dr
+Was
+that
+all
+they
+called
+you
+Is
+this
+your
+hand
+Indicating
+hand
+of
+the
+psychic
+Sp
+No
+Jimmie
+never
+had
+a
+ring
+Dr
+You
+are
+using
+this
+hand
+temporarily
+it
+does
+not
+belong
+to
+you
+It
+belongs
+to
+my
+wife
+Sp
+I
+have
+seen
+that
+my
+hands
+have
+been
+small
+for
+a
+long
+time
+My
+name
+is
+James
+Hoxen
+Dr
+You
+may
+have
+lost
+your
+body
+after
+that
+accident
+Sp
+My
+head
+will
+drop
+off
+Dr
+Then
+we
+will
+have
+to
+pick
+it
+up
+You
+are
+an
+ignorant
+spirit
+and
+have
+been
+bothering
+that
+lady
+Sp
+What
+is
+a
+spirit
+Dr
+That
+is
+what
+I
+am
+talking
+to
+Sp
+This
+is
+James
+Dr
+I
+see
+my
+wife
+when
+I
+look
+at
+this
+body
+Ask
+any
+of
+these
+people
+whose
+body
+you
+are
+speaking
+through
+Sp
+Then
+I
+belong
+to
+some
+one
+else
+Dr
+To
+whom
+Sp
+Stretching
+his
+arms
+toward
+Mrs
+G
+I
+want
+to
+come
+back
+to
+you
+I
+like
+you
+Mrs
+G
+You
+will
+never
+come
+back
+to
+me
+any
+more
+You
+will
+have
+to
+go
+to
+the
+spirit
+world
+Sp
+Where
+is
+that
+Dr
+It
+is
+the
+invisible
+world
+around
+the
+earth
+plane
+Sp
+Affectedly
+I
+want
+to
+see
+Jesus
+Christ
+Dr
+Why
+do
+you
+whine
+Sp
+That
+is
+my
+way
+to
+talk
+Will
+you
+cure
+my
+neck
+Dr
+Yes
+by
+making
+you
+understand
+your
+true
+condition
+As
+an
+ignorant
+spirit
+you
+have
+been
+bothering
+a
+lady
+By
+using
+the
+fire
+as
+you
+call
+it
+we
+drove
+you
+away
+You
+are
+temporarily
+controlling
+my
+wife
+s
+body
+You
+have
+lost
+your
+physical
+body
+and
+you
+must
+obtain
+understanding
+of
+the
+invisible
+side
+of
+life
+where
+you
+are
+now
+Mr
+G
+Do
+you
+know
+my
+name
+Did
+you
+know
+any
+one
+by
+the
+name
+of
+G
+Sp
+They
+lived
+far
+away
+Mr
+G
+Did
+you
+know
+anybody
+by
+the
+name
+of
+K
+Mrs
+G
+s
+maiden
+name
+Sp
+They
+were
+in
+another
+town
+Mr
+G
+Were
+you
+born
+in
+the
+place
+where
+you
+had
+the
+accident
+Sp
+I
+was
+born
+far
+out
+in
+the
+country
+Mrs
+G
+What
+year
+do
+think
+it
+is
+Sp
+I
+don
+t
+know
+Dr
+Who
+is
+the
+President
+Sp
+I
+never
+read
+very
+much
+about
+things
+I
+lived
+on
+a
+farm
+and
+did
+the
+chores
+That
+was
+long
+ago
+For
+a
+while
+there
+has
+been
+so
+much
+fire
+Dr
+I
+gave
+you
+that
+fire
+it
+is
+electricity
+Sp
+I
+saw
+fire
+it
+is
+not
+electricity
+You
+hold
+electricity
+in
+your
+hand
+and
+it
+jerks
+Dr
+I
+caused
+that
+fire
+Sp
+You
+Shame
+on
+you
+Shame
+on
+you
+You
+To
+do
+that
+to
+an
+innocent
+little
+fellow
+like
+me
+Shame
+on
+you
+Dr
+You
+have
+been
+bothering
+that
+lady
+for
+a
+long
+time
+and
+she
+could
+not
+live
+her
+own
+free
+life
+I
+put
+the
+fire
+on
+you
+and
+you
+left
+Look
+around
+and
+you
+will
+see
+intelligent
+spirits
+here
+who
+will
+help
+you
+Sp
+There
+s
+a
+lot
+of
+people
+here
+Suddenly
+becoming
+greatly
+excited
+and
+beginning
+to
+cry
+Mother
+Oh
+Oh
+Mother
+Dr
+She
+has
+come
+to
+help
+you
+Sp
+Oh
+Mother
+why
+did
+you
+die
+I
+was
+only
+a
+little
+boy
+and
+when
+you
+died
+everything
+was
+broken
+up
+and
+I
+had
+to
+earn
+my
+own
+living
+Dr
+What
+does
+your
+mother
+say
+Sp
+She
+says
+Oh
+Jimmie
+where
+have
+you
+been
+She
+has
+been
+looking
+for
+me
+but
+could
+not
+find
+me
+Dr
+That
+is
+because
+you
+have
+been
+with
+that
+lady
+making
+a
+great
+deal
+of
+trouble
+Now
+you
+can
+go
+with
+your
+mother
+Sp
+It
+s
+a
+long
+time
+since
+I
+saw
+my
+mother
+Dr
+It
+is
+now
+Sp
+No
+Dr
+It
+is
+the
+fourth
+of
+July
+and
+you
+are
+in
+Los
+Angeles
+California
+Sp
+No
+it
+must
+be
+Dr
+That
+was
+thirty
+years
+ago
+Sp
+But
+I
+was
+living
+in
+after
+the
+accident
+I
+was
+crippled
+for
+years
+The
+last
+I
+remember
+it
+was
+Dr
+That
+was
+twenty
+seven
+year
+ago
+Sp
+How
+can
+all
+those
+years
+be
+gone
+Have
+I
+been
+sleeping
+Dr
+Only
+partially
+You
+have
+been
+bothering
+people
+Sp
+I
+have
+been
+kept
+shut
+up
+for
+years
+and
+years
+In
+aura
+of
+patient
+I
+thought
+I
+was
+going
+to
+die
+once
+but
+after
+I
+had
+been
+shut
+up
+for
+a
+while
+I
+felt
+different
+I
+had
+lady
+s
+clothes
+on
+and
+I
+felt
+like
+a
+woman
+but
+my
+neck
+bothered
+me
+so
+and
+my
+head
+was
+like
+it
+came
+off
+my
+spine
+Dr
+You
+got
+into
+that
+lady
+s
+magnetic
+aura
+and
+bothered
+her
+When
+you
+lost
+your
+body
+you
+still
+had
+the
+idea
+that
+your
+neck
+was
+broken
+but
+your
+body
+went
+to
+the
+grave
+Sp
+But
+I
+had
+a
+neck
+that
+always
+hurt
+Dr
+You
+held
+the
+idea
+in
+your
+mind
+that
+you
+still
+had
+a
+broken
+neck
+As
+a
+man
+thinketh
+in
+his
+heart
+so
+is
+he
+Your
+mind
+was
+on
+your
+broken
+neck
+and
+you
+did
+not
+realize
+that
+a
+change
+had
+occurred
+This
+body
+which
+belongs
+to
+my
+wife
+has
+no
+broken
+neck
+Sp
+Your
+wife
+Where
+is
+she
+Dr
+Sleeping
+Look
+at
+your
+feet
+they
+are
+not
+really
+yours
+Sp
+Am
+I
+a
+woman
+Dr
+Only
+temporarily
+Now
+you
+must
+go
+with
+your
+mother
+Sp
+Mother
+will
+you
+take
+me
+with
+you
+Dr
+What
+does
+she
+say
+Sp
+She
+says
+yes
+but
+I
+must
+ask
+that
+lady
+to
+forgive
+me
+But
+I
+could
+not
+help
+it
+I
+could
+not
+get
+out
+I
+was
+shut
+up
+such
+a
+long
+time
+and
+I
+m
+tired
+Now
+I
+will
+go
+with
+my
+mother
+Oh
+Mother
+come
+and
+take
+me
+I
+will
+be
+a
+good
+boy
+Dr
+Now
+you
+will
+find
+understanding
+Sp
+I
+feel
+I
+am
+dying
+My
+head
+is
+off
+again
+Dr
+That
+is
+only
+a
+temporary
+sensation
+When
+you
+leave
+you
+may
+feel
+as
+if
+you
+were
+dying
+but
+that
+is
+only
+because
+you
+are
+losing
+control
+You
+could
+not
+die
+if
+you
+tried
+Nobody
+ever
+really
+dies
+Spirit
+never
+dies
+Sp
+Will
+I
+have
+a
+better
+body
+Dr
+Yes
+Now
+forget
+your
+broken
+neck
+and
+your
+pain
+Sp
+I
+am
+going
+with
+my
+mother
+Please
+forgive
+me
+lady
+Mrs
+G
+That
+s
+all
+right
+James
+Forget
+the
+past
+Dr
+Intelligent
+spirits
+will
+help
+you
+and
+will
+teach
+you
+won
+derful
+things
+Think
+yourself
+with
+your
+mother
+and
+with
+the
+Mercy
+Band
+of
+spirits
+Goodbye
+Sp
+Goodbye
+In
+the
+summer
+of
+a
+gentleman
+Mr
+I
+consulted
+us
+about
+his
+wife
+who
+for
+nine
+months
+had
+been
+confined
+to
+her
+bed
+suffering
+from
+intense
+pain
+in
+the
+head
+diagnosed
+by
+others
+as
+due
+to
+brain
+tumor
+and
+from
+a
+seemingly
+paralyzed
+condition
+of
+one
+arm
+which
+was
+helpless
+We
+made
+several
+calls
+at
+the
+home
+of
+the
+invalid
+giving
+electrical
+treatments
+which
+strengthened
+the
+patient
+but
+Mrs
+Wickland
+clairvoyantly
+saw
+the
+spirit
+of
+a
+man
+with
+a
+ghastly
+head
+wound
+and
+a
+woman
+with
+a
+crippled
+arm
+hovering
+about
+At
+our
+next
+concentration
+circle
+the
+spirit
+of
+this
+man
+controlled
+Mrs
+Wickland
+and
+we
+learned
+that
+in
+life
+he
+had
+been
+a
+house
+painter
+who
+had
+fallen
+from
+a
+scaffold
+and
+as
+he
+said
+split
+open
+his
+head
+He
+did
+not
+know
+that
+he
+had
+died
+and
+declared
+that
+he
+was
+suffering
+from
+agonizing
+pains
+in
+the
+head
+but
+that
+lately
+he
+had
+a
+very
+comfortable
+bed
+to
+rest
+in
+Convinced
+of
+his
+true
+condition
+he
+was
+taken
+away
+and
+from
+that
+time
+Mrs
+I
+had
+no
+further
+pain
+in
+the
+head
+She
+still
+remained
+in
+bed
+however
+feeling
+weak
+and
+suffer
+ing
+with
+the
+paralyzed
+arm
+After
+another
+treatment
+we
+re
+turned
+to
+our
+home
+inviting
+Mr
+I
+to
+attend
+our
+concentration
+circle
+that
+evening
+When
+he
+came
+he
+said
+that
+after
+our
+departure
+his
+wife
+felt
+so
+much
+better
+that
+she
+had
+risen
+and
+for
+the
+first
+time
+in
+nine
+months
+spent
+the
+day
+out
+of
+bed
+The
+events
+of
+the
+evening
+therefore
+were
+of
+great
+interest
+to
+the
+gentleman
+as
+the
+controlling
+spirit
+complained
+of
+pains
+corresponding
+exactly
+with
+those
+endured
+by
+his
+wife
+EXPERIENCE
+JULY
+Spirit
+MRS
+Lizzy
+Davidson
+Patient
+MRS
+I
+Psychic
+MRS
+WICKLAND
+The
+spirit
+held
+one
+arm
+pressed
+tightly
+to
+the
+body
+moaning
+incessantly
+Doctor
+Good
+evening
+Have
+we
+some
+one
+here
+who
+it
+sick
+Is
+this
+one
+who
+has
+passed
+out
+with
+some
+sickness
+and
+still
+holds
+the
+trouble
+in
+his
+mind
+What
+is
+the
+matter
+Spirit
+Groaning
+My
+arm
+Oh
+my
+arm
+Dr
+What
+is
+the
+matter
+with
+it
+Sp
+It
+hurts
+me
+Dr
+What
+happened
+to
+it
+Sp
+Where
+s
+my
+bed
+I
+m
+sick
+Dr
+Are
+you
+sleepy
+Sp
+I
+m
+sick
+in
+bed
+I
+ought
+to
+be
+in
+bed
+Dr
+Haven
+t
+you
+been
+in
+bed
+long
+enough
+Sp
+I
+m
+awfully
+sick
+Dr
+How
+many
+years
+have
+you
+been
+sick
+Sp
+A
+long
+long
+time
+Dr
+How
+long
+is
+it
+since
+you
+died
+Sp
+Died
+I
+m
+sick
+I
+said
+I
+am
+not
+dead
+I
+said
+sick
+you
+do
+not
+know
+about
+me
+I
+am
+so
+sick
+Dr
+I
+realize
+that
+you
+are
+sick
+in
+your
+mind
+Otherwise
+you
+are
+not
+sick
+Sp
+Oh
+Oh
+I
+m
+a
+very
+sick
+woman
+Don
+t
+touch
+me
+My
+arm
+My
+arm
+Dr
+Was
+it
+hurt
+Sp
+Why
+did
+you
+take
+me
+away
+when
+I
+was
+so
+comfortable
+in
+bed
+Oh
+that
+nice
+comfortable
+bed
+To
+Mr
+I
+He
+Dr
+W
+took
+me
+away
+just
+when
+I
+was
+going
+to
+lie
+down
+and
+sleep
+Mr
+I
+I
+am
+very
+glad
+to
+see
+you
+here
+Sp
+He
+took
+me
+along
+with
+him
+and
+I
+wanted
+to
+sleep
+I
+am
+a
+very
+sick
+woman
+Dr
+We
+are
+going
+to
+cure
+your
+arm
+Sp
+Oh
+I
+want
+to
+be
+in
+that
+bed
+It
+s
+so
+nice
+and
+comfortable
+It
+s
+such
+a
+nice
+bed
+and
+there
+is
+such
+a
+nice
+gentleman
+to
+wait
+on
+me
+Dr
+You
+will
+never
+be
+in
+that
+bed
+again
+Sp
+I
+am
+a
+very
+sick
+woman
+You
+had
+better
+call
+a
+doctor
+Mr
+G
+That
+gentleman
+is
+a
+doctor
+Dr
+How
+long
+have
+you
+been
+sick
+Sp
+Recognizing
+Dr
+W
+Why
+you
+are
+the
+one
+who
+gave
+me
+those
+sparks
+Take
+me
+away
+from
+him
+Mr
+G
+That
+was
+an
+electrical
+treatment
+Sp
+He
+told
+me
+I
+should
+go
+with
+him
+He
+said
+Any
+one
+who
+is
+around
+this
+lady
+must
+come
+with
+me
+so
+I
+went
+with
+him
+Why
+did
+you
+tell
+me
+to
+come
+with
+you
+and
+then
+hold
+me
+like
+this
+To
+Mr
+I
+Can
+t
+you
+do
+something
+to
+protect
+me
+Mr
+I
+This
+is
+a
+good
+place
+for
+you
+Sp
+You
+think
+so
+Why
+did
+you
+let
+this
+man
+bring
+me
+here
+Mr
+G
+He
+did
+not
+want
+you
+to
+make
+an
+invalid
+of
+his
+wife
+Sp
+Can
+t
+you
+tell
+this
+man
+to
+leave
+me
+alone
+To
+Mr
+I
+Mr
+I
+No
+I
+think
+you
+are
+in
+good
+hands
+Sp
+No
+No
+No
+I
+don
+t
+want
+to
+stay
+here
+Stamping
+feet
+furiously
+Dr
+Do
+you
+want
+to
+hover
+around
+this
+gentleman
+s
+wife
+and
+ruin
+her
+life
+Sp
+He
+can
+take
+care
+of
+us
+so
+nicely
+I
+like
+him
+and
+I
+want
+to
+stay
+there
+Angrily
+stamping
+feet
+Mr
+I
+They
+will
+take
+good
+care
+of
+you
+here
+Dr
+You
+are
+not
+sick
+but
+you
+have
+a
+bad
+temper
+Sp
+I
+am
+sick
+with
+my
+arm
+Dr
+Only
+in
+your
+mind
+Sp
+Can
+t
+I
+go
+back
+to
+that
+bed
+To
+Mr
+I
+You
+are
+such
+a
+nice
+nurse
+Dr
+You
+have
+been
+bothering
+his
+wife
+hovering
+around
+her
+That
+gentleman
+is
+taking
+care
+of
+his
+wife
+and
+incidentally
+has
+been
+taking
+care
+of
+you
+You
+are
+a
+spirit
+He
+doesn
+t
+want
+you
+there
+any
+more
+SP
+Coaxingly
+to
+Mr
+I
+Don
+t
+you
+want
+to
+take
+care
+of
+me
+again
+Mr
+I
+No
+Sp
+You
+mean
+thing
+you
+Crying
+Dr
+You
+must
+obtain
+understanding
+Are
+you
+a
+cry
+baby
+Sp
+No
+I
+am
+not
+a
+cry
+baby
+Stamping
+feet
+again
+Dr
+Then
+it
+is
+just
+temper
+Now
+behave
+and
+understand
+that
+you
+have
+lost
+your
+mortal
+body
+Sp
+I
+have
+not
+lost
+my
+body
+Dr
+You
+have
+lost
+your
+physical
+body
+that
+is
+in
+the
+grave
+Sp
+I
+am
+not
+in
+the
+grave
+Dr
+But
+your
+body
+is
+Sp
+My
+body
+is
+myself
+No
+I
+am
+not
+in
+the
+grave
+this
+is
+my
+body
+Dr
+Look
+at
+your
+hands
+they
+are
+not
+yours
+Sp
+Where
+did
+I
+get
+these
+rings
+I
+had
+more
+stones
+in
+mine
+didn
+t
+I
+To
+Mr
+I
+Mr
+I
+My
+wife
+had
+Sp
+You
+gave
+me
+a
+nice
+ring
+Mr
+I
+No
+I
+did
+not
+I
+gave
+it
+to
+my
+wife
+Sp
+Yes
+you
+did
+Mr
+I
+No
+I
+did
+not
+Dr
+You
+are
+a
+selfish
+earthbound
+spirit
+Sp
+Spirit
+I
+m
+no
+spirit
+I
+am
+a
+good
+woman
+a
+good
+religious
+womant
+I
+love
+Jesus
+Dr
+Then
+why
+are
+you
+not
+with
+him
+You
+have
+evidently
+been
+dead
+a
+long
+time
+Sp
+I
+say
+I
+am
+not
+dead
+Oh
+My
+arm
+my
+arm
+Mr
+G
+You
+forgot
+that
+you
+had
+a
+crippled
+arm
+You
+have
+been
+moving
+it
+about
+Sp
+Yes
+I
+forgot
+but
+I
+know
+where
+my
+pains
+are
+Stamping
+feet
+Dr
+When
+you
+have
+a
+temper
+you
+forget
+your
+pains
+Sp
+You
+do
+not
+I
+have
+pains
+just
+the
+same
+Don
+t
+you
+know
+that
+Dr
+I
+know
+you
+have
+a
+temper
+Sp
+I
+am
+a
+good
+Christian
+lady
+I
+love
+Jesus
+with
+all
+my
+heart
+and
+all
+my
+soul
+He
+is
+my
+Savior
+Mr
+G
+To
+save
+you
+from
+what
+Sp
+From
+sin
+Dr
+Then
+you
+cannot
+be
+so
+very
+good
+if
+you
+have
+sins
+Sp
+Is
+that
+so
+Say
+are
+we
+in
+church
+Look
+at
+all
+the
+people
+Did
+you
+take
+me
+to
+church
+Dr
+This
+is
+a
+place
+where
+we
+release
+earthbound
+spirits
+Sp
+Earthbound
+spirits
+What
+are
+you
+talking
+about
+Will
+you
+pray
+and
+sing
+Jesus
+Lover
+of
+my
+Soul
+Dr
+No
+we
+will
+not
+Where
+did
+you
+come
+from
+Sp
+I
+get
+so
+mad
+when
+I
+think
+of
+that
+bed
+Why
+did
+you
+take
+me
+away
+from
+that
+nice
+bed
+I
+feel
+so
+sad
+My
+back
+and
+my
+arm
+hurt
+me
+so
+much
+My
+arm
+is
+paralyzed
+I
+was
+shot
+in
+my
+arm
+Dr
+Who
+shot
+you
+Sp
+Ask
+them
+Dr
+Did
+they
+use
+a
+hypodermic
+Sp
+Yes
+that
+s
+what
+I
+mean
+I
+would
+like
+to
+have
+one
+more
+shot
+Will
+you
+give
+me
+just
+a
+little
+Oh
+please
+just
+a
+little
+bit
+Give
+me
+just
+a
+little
+shot
+in
+the
+arm
+Dr
+Were
+you
+a
+drug
+addict
+Sp
+I
+was
+sick
+such
+a
+long
+time
+and
+I
+couldn
+t
+sleep
+so
+they
+put
+something
+in
+my
+arm
+They
+put
+it
+in
+so
+many
+times
+that
+my
+arm
+got
+sore
+then
+it
+seemed
+to
+be
+paralyzed
+They
+put
+in
+too
+much
+Dr
+Well
+now
+we
+must
+hurry
+it
+is
+getting
+late
+Sp
+What
+s
+the
+hurry
+Where
+are
+you
+going
+out
+Dr
+We
+are
+going
+to
+help
+you
+understand
+your
+condition
+You
+have
+lost
+your
+mortal
+body
+and
+are
+a
+spirit
+This
+is
+not
+your
+body
+Sp
+Is
+that
+so
+You
+only
+think
+so
+Dr
+This
+is
+not
+your
+body
+at
+all
+you
+are
+only
+borrowing
+it
+temporarily
+Sp
+How
+do
+you
+know
+Dr
+This
+is
+my
+wife
+s
+body
+Sp
+I
+never
+married
+you
+Dr
+I
+did
+not
+say
+that
+SP
+You
+said
+I
+was
+your
+wife
+Yes
+you
+did
+I
+heard
+it
+myself
+Dr
+I
+said
+you
+were
+talking
+through
+my
+wife
+s
+body
+Sp
+Have
+you
+ever
+heard
+of
+any
+one
+talking
+through
+another
+person
+s
+body
+Dr
+Tell
+us
+who
+you
+are
+Sp
+Hold
+my
+hand
+not
+my
+arm
+Dr
+We
+will
+treat
+your
+arm
+then
+it
+will
+be
+well
+Manipulating
+arm
+Sp
+Oh
+That
+electric
+man
+Dr
+Now
+your
+arm
+is
+not
+paralyzed
+at
+all
+Look
+at
+your
+dress
+Is
+it
+yours
+Where
+did
+you
+get
+it
+Sp
+Did
+you
+buy
+this
+dress
+Dr
+My
+wife
+did
+What
+is
+your
+name
+Sp
+Lizzie
+Dr
+Lizzie
+what
+Sp
+Mrs
+Lizzie
+Davidson
+and
+I
+don
+t
+want
+to
+be
+called
+Lizzie
+When
+you
+speak
+to
+me
+you
+must
+call
+me
+Mrs
+Davidson
+Dr
+Now
+listen
+to
+me
+I
+am
+telling
+you
+a
+fact
+when
+I
+say
+you
+have
+lost
+your
+own
+body
+but
+you
+do
+not
+realize
+it
+You
+have
+been
+bothering
+that
+gentleman
+s
+wife
+Mrs
+I
+for
+a
+long
+time
+You
+have
+made
+her
+an
+invalid
+Sp
+I
+have
+not
+been
+his
+wife
+Dr
+No
+but
+you
+have
+been
+bothering
+his
+wife
+Sp
+Coquettishly
+to
+Mr
+I
+You
+are
+a
+nice
+nurse
+and
+I
+like
+you
+Don
+t
+you
+like
+me
+Mr
+I
+No
+Sp
+I
+don
+t
+want
+your
+wife
+to
+go
+to
+sleep
+because
+when
+she
+sleeps
+I
+can
+t
+stay
+and
+I
+want
+to
+sleep
+in
+that
+nice
+bed
+and
+have
+you
+wait
+on
+me
+Dr
+You
+have
+been
+keeping
+that
+lady
+awake
+all
+night
+Sp
+Because
+when
+she
+sleeps
+I
+have
+to
+go
+Dr
+That
+is
+selfishness
+Sp
+I
+have
+no
+home
+so
+I
+have
+to
+make
+my
+home
+with
+her
+She
+s
+an
+awful
+nice
+lady
+Dr
+Now
+you
+will
+have
+to
+find
+a
+home
+of
+your
+own
+in
+the
+spirit
+world
+Sp
+Where
+is
+that
+Dr
+It
+is
+the
+invisible
+world
+about
+the
+earth
+plane
+Do
+you
+believe
+in
+Heaven
+Sp
+Yes
+where
+God
+is
+and
+Jesus
+Christ
+and
+the
+Holy
+Ghost
+I
+am
+going
+to
+Heaven
+Dr
+Use
+a
+little
+reason
+You
+lost
+your
+physical
+body
+long
+ago
+Sp
+Where
+did
+I
+lose
+it
+Dr
+We
+cannot
+tell
+that
+Sp
+Then
+how
+did
+you
+find
+it
+out
+Dr
+You
+are
+proving
+the
+fact
+yourself
+Do
+you
+realize
+that
+this
+is
+the
+hand
+of
+my
+wife
+that
+I
+am
+holding
+Sp
+You
+are
+holding
+my
+hand
+and
+I
+am
+not
+your
+wife
+Stamping
+Dr
+I
+am
+holding
+my
+wife
+s
+hands
+and
+you
+are
+talking
+through
+her
+Sp
+You
+are
+not
+going
+to
+hold
+me
+any
+longer
+Dr
+You
+are
+talking
+to
+us
+but
+we
+cannot
+see
+you
+You
+are
+invisible
+to
+us
+Every
+one
+here
+sees
+that
+this
+is
+my
+wife
+s
+body
+Mr
+I
+Did
+you
+follow
+Dr
+Wickland
+here
+this
+morning
+Sp
+He
+put
+those
+awful
+things
+in
+me
+Electricity
+Then
+he
+said
+Everybody
+come
+along
+with
+me
+To
+Dr
+W
+Why
+did
+you
+do
+that
+and
+make
+me
+get
+out
+And
+that
+Indian
+girl
+Silver
+Star
+one
+of
+Mrs
+Wickland
+s
+guides
+who
+had
+controlled
+for
+a
+brief
+time
+that
+morning
+telling
+funny
+stories
+to
+attract
+the
+spirit
+s
+attention
+She
+made
+me
+laugh
+until
+I
+got
+so
+weak
+and
+sick
+that
+before
+I
+knew
+it
+I
+was
+away
+from
+that
+lady
+I
+m
+so
+mad
+If
+I
+could
+only
+get
+hold
+of
+that
+Indian
+I
+would
+wring
+her
+neck
+all
+right
+Dr
+I
+thought
+you
+said
+you
+were
+a
+Christian
+Sp
+Yes
+I
+am
+God
+forgive
+me
+for
+saying
+that
+Let
+me
+pray
+I
+made
+a
+mistake
+Mr
+I
+You
+said
+the
+doctor
+brought
+you
+here
+Sp
+He
+did
+not
+bring
+me
+in
+this
+body
+Mr
+I
+That
+body
+has
+been
+here
+all
+day
+you
+came
+with
+the
+doctor
+and
+his
+wife
+in
+their
+auto
+this
+morning
+Sp
+What
+do
+you
+mean
+by
+auto
+Dr
+Don
+t
+you
+know
+what
+an
+automobile
+is
+Sp
+What
+is
+it
+Dr
+It
+is
+a
+car
+that
+runs
+by
+itself
+There
+are
+millions
+of
+them
+in
+use
+now
+You
+lost
+your
+body
+evidently
+a
+long
+time
+ago
+Sp
+Are
+you
+sure
+about
+it
+When
+did
+I
+lose
+it
+Dr
+I
+do
+not
+know
+We
+do
+not
+know
+you
+Sp
+I
+told
+you
+I
+am
+Lizzie
+Davidson
+Let
+us
+pray
+Dr
+I
+think
+you
+are
+two
+faced
+Sp
+I
+think
+so
+too
+sometimes
+Sometimes
+I
+have
+dark
+hair
+and
+sometimes
+light
+The
+patient
+had
+dark
+hair
+Dr
+How
+can
+you
+explain
+that
+Sp
+I
+don
+t
+know
+and
+I
+don
+t
+care
+I
+only
+love
+Jesus
+Dr
+Where
+did
+you
+come
+from
+Do
+you
+know
+where
+you
+are
+You
+are
+in
+Los
+Angeles
+California
+SP
+I
+am
+not
+I
+never
+have
+been
+I
+never
+was
+I
+had
+no
+money
+to
+go
+there
+Dr
+Where
+did
+you
+live
+Sp
+In
+New
+York
+Mr
+I
+Was
+it
+down
+on
+Twenty
+seventh
+Street
+Sp
+No
+it
+wasn
+t
+Dr
+It
+must
+be
+a
+long
+time
+since
+you
+were
+on
+earth
+for
+you
+have
+not
+seen
+automobiles
+that
+run
+without
+horses
+Sp
+Does
+the
+devil
+run
+them
+Dr
+No
+internal
+combustion
+Sp
+Blab
+Blab
+Internal
+combustion
+Dr
+What
+year
+do
+you
+think
+this
+is
+We
+think
+it
+is
+SP
+Then
+you
+re
+off
+It
+is
+Dr
+Who
+is
+President
+Sp
+Don
+t
+you
+know
+Mr
+G
+Yes
+we
+know
+but
+we
+want
+to
+see
+if
+you
+know
+Dr
+I
+think
+it
+is
+Harding
+Sp
+Wait
+a
+little
+I
+have
+to
+think
+It
+is
+Arthur
+Garfield
+was
+shot
+in
+in
+July
+Dr
+Is
+that
+the
+last
+you
+remember
+Can
+you
+recall
+any
+President
+later
+than
+that
+Sp
+No
+just
+Arthur
+He
+became
+President
+after
+Garfield
+was
+shot
+Dr
+We
+have
+had
+many
+Presidents
+since
+then
+Cleveland
+Harrison
+Taft
+and
+many
+others
+Sp
+I
+had
+a
+brother
+in
+law
+named
+Cleveland
+Dr
+Was
+he
+the
+President
+Sp
+Not
+much
+He
+didn
+t
+know
+very
+much
+anyway
+What
+kind
+of
+people
+are
+you
+Dr
+We
+are
+all
+investigators
+Do
+you
+know
+what
+becomes
+of
+the
+dead
+Sp
+They
+go
+to
+Heaven
+and
+see
+Christ
+and
+the
+Holy
+Ghost
+and
+the
+Father
+sitting
+on
+the
+throne
+and
+the
+people
+sitting
+at
+His
+feet
+I
+love
+Jesus
+I
+never
+loved
+anybody
+as
+much
+as
+I
+do
+Jesus
+Dr
+You
+say
+it
+is
+that
+is
+forty
+years
+ago
+It
+is
+now
+Why
+are
+you
+not
+in
+Heaven
+since
+you
+have
+been
+dead
+all
+that
+time
+Sp
+I
+have
+not
+been
+dead
+Dr
+You
+are
+dead
+only
+to
+the
+world
+you
+lost
+your
+physical
+body
+forty
+years
+ago
+Sp
+How
+do
+you
+know
+Dr
+From
+your
+own
+words
+We
+are
+now
+listening
+to
+what
+people
+call
+a
+dead
+person
+You
+are
+talking
+through
+my
+wife
+s
+body
+Sp
+Seeing
+a
+spirit
+Who
+is
+that
+over
+there
+Dr
+Ask
+them
+who
+they
+are
+Sp
+There
+s
+Cleveland
+my
+brother
+in
+law
+Hell
+What
+do
+you
+want
+Mr
+G
+Hello
+Cleveland
+How
+are
+you
+today
+Sp
+Angrily
+to
+Mr
+G
+You
+keep
+still
+You
+don
+t
+know
+him
+Mr
+G
+What
+was
+his
+business
+Sp
+He
+was
+a
+shoemaker
+Mr
+G
+He
+was
+probably
+a
+good
+one
+Sp
+He
+was
+not
+nice
+to
+my
+sister
+I
+don
+t
+like
+you
+Cleveland
+You
+always
+made
+trouble
+Dr
+Listen
+to
+what
+he
+says
+Sp
+To
+spirit
+Cleveland
+You
+devil
+you
+Dr
+That
+is
+fine
+talk
+for
+a
+Christian
+Sp
+God
+forgive
+me
+God
+forgive
+me
+Dr
+Be
+serious
+and
+forgive
+Cleveland
+Sp
+I
+will
+never
+forgive
+him
+never
+He
+went
+away
+and
+took
+my
+sister
+with
+him
+To
+spirit
+You
+devil
+You
+went
+away
+with
+my
+sister
+and
+it
+broke
+my
+heart
+when
+you
+took
+her
+Not
+now
+nor
+in
+the
+world
+to
+come
+will
+I
+ever
+forgive
+you
+no
+not
+much
+Get
+away
+there
+Dr
+Is
+that
+Christian
+charity
+Is
+that
+the
+teaching
+of
+Christ
+Sp
+People
+forget
+themselves
+sometimes
+Dr
+You
+will
+have
+to
+forgive
+him
+and
+ask
+him
+to
+forgive
+you
+Sp
+I
+will
+ask
+forgiveness
+from
+Christ
+From
+Cleveland
+I
+never
+will
+Dr
+Jesus
+said
+Forgive
+and
+ye
+shall
+be
+forgiven
+Sp
+Yes
+but
+nobody
+practices
+it
+I
+will
+pray
+and
+that
+will
+help
+Dr
+No
+it
+will
+not
+Praying
+won
+t
+help
+you
+any
+in
+this
+case
+You
+have
+been
+in
+darkness
+forty
+years
+Sp
+Sometimes
+I
+have
+been
+a
+man
+and
+sometimes
+a
+lady
+Dr
+You
+have
+been
+obsessing
+people
+Sp
+Here
+you
+Cleveland
+you
+have
+no
+business
+to
+come
+here
+and
+torment
+me
+again
+What
+have
+you
+done
+with
+my
+sister
+you
+devil
+you
+Dr
+I
+thought
+you
+belonged
+to
+the
+Holy
+of
+Holies
+Sp
+Cora
+Spirit
+My
+sister
+Why
+did
+you
+go
+with
+that
+man
+I
+will
+never
+forgive
+him
+I
+suffered
+so
+much
+I
+thought
+you
+would
+be
+with
+me
+for
+the
+rest
+of
+your
+life
+I
+promised
+mother
+I
+would
+take
+care
+of
+you
+all
+my
+life
+then
+you
+ran
+away
+with
+that
+thing
+You
+broke
+my
+heart
+Dr
+What
+does
+she
+say
+Sp
+No
+she
+says
+she
+loved
+him
+There
+is
+no
+such
+thing
+as
+loving
+any
+man
+Say
+there
+s
+David
+too
+I
+suppose
+you
+think
+you
+are
+going
+to
+make
+up
+with
+me
+Not
+much
+you
+aren
+t
+I
+never
+will
+forgive
+you
+either
+Dr
+Who
+is
+David
+Sp
+My
+husband
+Dr
+What
+was
+the
+matter
+with
+him
+Sp
+He
+was
+a
+fool
+Dr
+For
+marrying
+you
+Sp
+The
+world
+is
+coming
+to
+an
+end
+People
+are
+so
+full
+of
+sin
+that
+God
+does
+not
+know
+what
+to
+do
+with
+them
+He
+will
+have
+to
+teach
+them
+in
+some
+way
+so
+let
+us
+pray
+I
+want
+to
+go
+to
+Heaven
+Dr
+Do
+you
+think
+you
+have
+much
+chance
+of
+getting
+there
+Sp
+I
+will
+pray
+for
+you
+You
+know
+David
+you
+were
+no
+good
+I
+have
+had
+my
+troubles
+Dr
+Didn
+t
+you
+have
+any
+faults
+Sp
+No
+I
+prayed
+to
+God
+Dr
+Doesn
+t
+your
+conscience
+bother
+you
+Sp
+My
+conscience
+Dr
+Yes
+Doesn
+t
+it
+make
+you
+feel
+guilty
+Sp
+Cora
+you
+always
+loved
+me
+and
+you
+said
+you
+would
+always
+be
+with
+me
+for
+the
+rest
+of
+your
+life
+and
+then
+you
+ran
+away
+with
+that
+thing
+Dr
+What
+does
+she
+say
+Sp
+Cora
+says
+You
+did
+not
+let
+me
+go
+anywhere
+It
+was
+always
+church
+church
+and
+you
+wanted
+me
+to
+pray
+all
+the
+time
+I
+got
+tired
+of
+it
+and
+then
+Cleveland
+came
+and
+he
+promised
+to
+give
+me
+a
+home
+He
+was
+very
+good
+to
+me
+But
+I
+will
+not
+forgive
+him
+anyhow
+Dr
+You
+were
+a
+religious
+fanatic
+and
+your
+sister
+could
+not
+stand
+it
+Sp
+She
+ought
+to
+love
+Jesus
+Dr
+You
+have
+not
+found
+Jesus
+yourself
+Sp
+I
+haven
+t
+found
+Jesus
+because
+I
+am
+not
+dead
+Dr
+Will
+you
+not
+believe
+what
+your
+sister
+says
+to
+you
+Where
+did
+she
+live
+Sp
+She
+lived
+in
+New
+York
+then
+moved
+to
+Chicago
+Dr
+Ask
+her
+whether
+she
+is
+a
+spirit
+Sp
+She
+says
+she
+s
+dead
+To
+sister
+You
+re
+dead
+and
+you
+deserve
+it
+too
+because
+you
+became
+a
+spiritualist
+at
+the
+last
+you
+crazy
+thing
+you
+I
+got
+mad
+at
+you
+because
+you
+ran
+around
+to
+spiritualist
+meetings
+all
+the
+time
+That
+Cleveland
+took
+you
+because
+he
+belonged
+there
+and
+believed
+in
+spirits
+Dr
+I
+am
+sitting
+here
+with
+my
+wife
+and
+you
+an
+invisible
+spirit
+are
+talking
+to
+us
+through
+her
+Dr
+Does
+your
+sister
+say
+anything
+further
+Sp
+She
+says
+Lizzie
+come
+to
+your
+senses
+You
+don
+t
+need
+to
+tell
+me
+that
+Shut
+up
+with
+you
+They
+have
+crushed
+me
+Dr
+Were
+you
+always
+selfish
+Sp
+No
+David
+he
+was
+a
+good
+man
+at
+times
+He
+always
+worked
+and
+took
+care
+of
+me
+I
+had
+a
+good
+home
+but
+he
+did
+not
+want
+me
+to
+go
+to
+church
+so
+much
+He
+wouldn
+t
+pay
+his
+money
+to
+the
+church
+so
+I
+got
+mad
+and
+called
+him
+a
+stingy
+fool
+I
+told
+him
+if
+he
+did
+not
+go
+to
+church
+and
+pay
+money
+to
+the
+Lord
+he
+would
+go
+to
+hell
+And
+there
+he
+is
+Dr
+He
+is
+not
+in
+hell
+Sp
+Yes
+he
+is
+but
+I
+don
+t
+see
+how
+he
+skipped
+out
+David
+you
+died
+a
+long
+time
+ago
+and
+I
+have
+prayed
+for
+you
+because
+I
+thought
+you
+were
+in
+hell
+and
+you
+should
+have
+stayed
+there
+because
+you
+did
+not
+pay
+any
+money
+to
+the
+Lord
+Dr
+Ask
+him
+if
+he
+has
+been
+in
+hell
+Sp
+He
+says
+No
+there
+is
+no
+such
+place
+You
+big
+fool
+you
+are
+in
+hell
+Dr
+You
+yourself
+are
+in
+the
+hell
+of
+ignorance
+You
+are
+bound
+by
+selfishness
+and
+ignorance
+Sp
+Now
+David
+don
+t
+you
+bother
+me
+You
+go
+to
+hell
+because
+you
+belong
+there
+You
+did
+not
+go
+to
+church
+Dr
+Jesus
+said
+Judge
+not
+that
+ye
+be
+not
+judged
+Sp
+I
+have
+been
+born
+again
+in
+the
+blood
+of
+Jesus
+I
+paid
+all
+the
+money
+I
+could
+to
+the
+church
+Dr
+And
+kept
+yourself
+in
+ignorance
+Sp
+I
+have
+been
+baptized
+immersed
+and
+I
+am
+one
+of
+the
+holiest
+I
+was
+a
+good
+church
+member
+I
+worked
+hard
+for
+my
+money
+and
+have
+suffered
+so
+I
+will
+go
+to
+Heaven
+when
+I
+die
+Dr
+You
+never
+will
+really
+die
+Sp
+David
+is
+dead
+Dr
+If
+he
+himself
+were
+dead
+he
+could
+not
+talk
+to
+you
+Sp
+Cora
+died
+in
+Chicago
+Dr
+If
+they
+are
+dead
+how
+can
+they
+talk
+to
+you
+i
+Sp
+Frightened
+Why
+they
+are
+ghosts
+I
+forgot
+they
+are
+dead
+Dr
+Ghosts
+like
+yourself
+You
+are
+a
+ghost
+Sp
+But
+they
+are
+dead
+Dr
+Do
+they
+look
+as
+if
+they
+were
+dead
+Sp
+No
+they
+look
+much
+prettier
+than
+they
+did
+before
+I
+suppose
+they
+are
+in
+Heaven
+To
+the
+spirits
+Have
+you
+folks
+seen
+Christ
+and
+God
+Have
+you
+been
+in
+Heaven
+with
+Them
+Dr
+What
+do
+they
+say
+Sp
+They
+say
+No
+Then
+you
+are
+I
+thought
+so
+then
+you
+have
+been
+in
+hell
+Have
+you
+They
+say
+No
+Dr
+Ask
+them
+if
+the
+body
+you
+are
+using
+is
+yours
+Sp
+To
+invisibles
+Well
+what
+are
+you
+looking
+at
+Don
+t
+you
+know
+me
+They
+say
+not
+as
+I
+look
+now
+How
+is
+that
+Dr
+Have
+I
+not
+been
+telling
+you
+that
+you
+are
+invisible
+to
+us
+and
+that
+you
+are
+using
+my
+wife
+s
+body
+Sp
+How
+Dr
+Spirits
+can
+control
+mortals
+as
+you
+are
+now
+doing
+Jesus
+cast
+out
+unclean
+spirits
+Sp
+Unclean
+I
+m
+not
+unclean
+You
+insult
+me
+again
+Dr
+You
+influenced
+that
+gentleman
+s
+wife
+disturbed
+her
+life
+and
+made
+an
+invalid
+of
+her
+Mr
+I
+Don
+t
+you
+recognize
+me
+Sp
+Yes
+you
+are
+a
+very
+good
+nurse
+and
+I
+think
+I
+should
+like
+to
+have
+you
+nurse
+me
+again
+Dr
+He
+was
+not
+nursing
+you
+he
+was
+nursing
+his
+wife
+Sp
+We
+had
+such
+a
+nice
+bed
+I
+just
+love
+it
+You
+tell
+your
+wife
+that
+she
+must
+not
+get
+up
+because
+if
+she
+does
+I
+can
+t
+stay
+Dr
+You
+will
+never
+go
+there
+again
+Mr
+I
+My
+wife
+is
+up
+now
+She
+has
+been
+up
+the
+whole
+day
+Sp
+I
+want
+her
+in
+bed
+Mr
+I
+She
+has
+been
+up
+since
+the
+doctor
+left
+this
+morning
+She
+had
+to
+remain
+in
+bed
+for
+nine
+months
+That
+Indian
+girl
+made
+me
+laugh
+so
+hard
+that
+I
+could
+not
+stay
+with
+that
+nice
+lady
+It
+makes
+me
+so
+mad
+I
+was
+listen
+ing
+to
+what
+the
+Indian
+said
+and
+I
+laughed
+so
+hard
+at
+her
+that
+I
+lost
+control
+of
+the
+lady
+To
+Mr
+What
+did
+you
+come
+here
+for
+Dr
+He
+wanted
+to
+get
+rid
+of
+you
+Mr
+I
+I
+came
+here
+to
+see
+you
+tonight
+Sp
+Coyly
+Were
+you
+lonesome
+for
+me
+Mr
+I
+Emphatically
+No
+Sp
+I
+would
+like
+to
+go
+back
+with
+you
+can
+I
+Mr
+L
+No
+you
+cannot
+Dr
+You
+were
+very
+selfish
+but
+you
+will
+not
+acknowledge
+it
+Sp
+Here
+s
+my
+sister
+Cora
+and
+her
+husband
+Cleveland
+and
+my
+husband
+David
+No
+no
+Oh
+there
+s
+my
+mother
+Did
+you
+come
+from
+Heaven
+Mother
+Are
+you
+happy
+in
+Heaven
+Mother
+with
+Jesus
+and
+God
+Dr
+What
+does
+she
+say
+Sp
+She
+says
+Lizzie
+behave
+yourself
+Now
+Mother
+I
+was
+always
+a
+good
+girl
+to
+you
+Mother
+says
+You
+were
+always
+selfish
+Lizzie
+Dr
+That
+comes
+from
+your
+own
+mother
+Your
+conscience
+tells
+you
+the
+same
+thing
+You
+had
+a
+mean
+disposition
+ask
+your
+mother
+Sp
+Mother
+did
+you
+come
+from
+Heaven
+Mother
+I
+m
+not
+dead
+yet
+so
+I
+can
+t
+go
+to
+Heaven
+I
+have
+to
+die
+before
+I
+can
+go
+there
+Dr
+The
+Bible
+says
+Ye
+are
+the
+temple
+of
+God
+and
+the
+Spirit
+of
+God
+dwelleth
+in
+you
+Where
+will
+you
+find
+that
+God
+outside
+of
+yourself
+Sp
+It
+says
+in
+the
+Bible
+that
+God
+sits
+on
+a
+throne
+with
+Christ
+on
+His
+right
+hand
+Dr
+The
+Bible
+says
+God
+is
+Love
+and
+he
+that
+dwelleth
+in
+Love
+dwelleth
+in
+God
+Where
+will
+you
+find
+such
+a
+God
+Sp
+In
+Heaven
+Dr
+Jesus
+said
+God
+is
+Spirit
+and
+they
+that
+worship
+Him
+must
+worship
+Him
+in
+Spirit
+and
+in
+truth
+Did
+you
+do
+that
+No
+you
+simply
+accepted
+a
+dogma
+and
+pretended
+you
+were
+saintly
+but
+your
+conscience
+condemned
+you
+all
+the
+time
+did
+it
+not
+Sp
+I
+was
+not
+happy
+Dr
+Your
+conscience
+tells
+you
+that
+you
+were
+a
+hypocrite
+Sp
+How
+do
+you
+know
+it
+does
+Dr
+Your
+actions
+show
+that
+Does
+your
+mother
+say
+any
+thing
+more
+Sp
+She
+says
+Lizzie
+behave
+yourself
+What
+does
+she
+say
+that
+for
+She
+was
+always
+after
+me
+because
+she
+says
+I
+had
+such
+a
+tongue
+Dr
+You
+must
+change
+your
+attitude
+or
+the
+spirit
+forces
+will
+take
+you
+away
+and
+place
+you
+in
+a
+dark
+dungeon
+Sp
+God
+forgive
+me
+I
+will
+pray
+Dr
+You
+are
+not
+sincere
+Sp
+To
+Mr
+I
+Will
+you
+forgive
+me
+Dr
+If
+you
+are
+sincere
+in
+asking
+he
+will
+Sp
+David
+you
+were
+always
+good
+to
+me
+but
+I
+was
+not
+always
+a
+good
+wife
+to
+you
+I
+thought
+you
+were
+a
+devil
+and
+I
+always
+talked
+about
+you
+yes
+I
+did
+Crying
+Dr
+Crying
+will
+not
+help
+you
+Sp
+David
+I
+loved
+you
+anyhow
+Do
+you
+like
+me
+David
+I
+was
+your
+dear
+little
+wife
+He
+says
+Shame
+on
+you
+and
+that
+I
+was
+nice
+when
+I
+did
+not
+have
+a
+temper
+Dr
+Now
+you
+must
+hurry
+and
+go
+Sp
+I
+want
+to
+ask
+that
+nice
+man
+to
+please
+forgive
+me
+To
+Mr
+I
+Will
+you
+Mr
+I
+Yes
+Sp
+Cleveland
+I
+was
+mad
+at
+you
+You
+were
+good
+to
+my
+sister
+but
+why
+did
+you
+go
+away
+Why
+did
+you
+go
+to
+Chicago
+and
+take
+her
+away
+from
+me
+He
+says
+his
+business
+was
+there
+To
+Mr
+I
+Will
+you
+forgive
+me
+I
+mean
+it
+I
+really
+mean
+it
+this
+time
+will
+you
+If
+I
+never
+meant
+it
+in
+my
+life
+before
+I
+do
+now
+Mother
+will
+you
+forgive
+me
+Will
+you
+I
+love
+you
+I
+was
+very
+selfish
+I
+know
+now
+I
+can
+see
+it
+now
+I
+see
+every
+thing
+now
+My
+eyes
+have
+been
+opened
+Oh
+oh
+Crying
+Dr
+Crying
+does
+no
+good
+Listen
+to
+what
+your
+relatives
+say
+Sp
+Can
+I
+go
+with
+them
+to
+Heaven
+Dr
+Forget
+Heaven
+and
+be
+sensible
+You
+will
+never
+find
+God
+as
+you
+have
+imagined
+You
+must
+be
+honest
+with
+yourself
+Sp
+I
+have
+never
+in
+all
+my
+life
+been
+so
+humiliated
+as
+I
+have
+been
+tonight
+You
+forgive
+me
+David
+don
+t
+you
+And
+you
+Cora
+and
+Cleveland
+too
+Dr
+Do
+you
+know
+that
+you
+are
+in
+California
+Sp
+How
+did
+I
+get
+there
+Dr
+You
+evidently
+have
+been
+dead
+some
+forty
+years
+No
+one
+actually
+dies
+but
+the
+physical
+body
+is
+lost
+and
+people
+call
+that
+death
+Sp
+Part
+of
+the
+time
+I
+have
+been
+walking
+but
+for
+a
+very
+long
+time
+I
+have
+had
+such
+a
+good
+time
+in
+that
+nice
+bed
+Dr
+Yes
+disturbing
+that
+gentleman
+s
+wife
+Sp
+But
+he
+has
+been
+so
+good
+to
+me
+he
+s
+so
+nice
+Dr
+Aren
+t
+you
+ashamed
+to
+make
+an
+invalid
+of
+a
+poor
+mortal
+Sp
+David
+will
+you
+take
+me
+along
+with
+you
+Dr
+Now
+you
+must
+go
+Sp
+I
+am
+going
+Rising
+Dr
+You
+cannot
+go
+that
+way
+Sp
+How
+in
+the
+world
+will
+I
+go
+then
+That
+Indian
+girl
+won
+t
+take
+me
+away
+will
+she
+Dr
+She
+will
+teach
+you
+beautiful
+truths
+Sp
+But
+she
+laughed
+at
+me
+Dr
+Now
+think
+yourself
+with
+your
+relatives
+and
+you
+will
+be
+there
+Sp
+Now
+I
+will
+go
+Will
+I
+see
+God
+Dr
+Forget
+that
+You
+do
+not
+have
+the
+right
+understanding
+of
+God
+Sp
+Goodbye
+After
+this
+Mrs
+I
+recovered
+her
+strength
+and
+was
+soon
+walk
+ing
+and
+driving
+about
+Chapter
+X
+Orphans
+VARIOUS
+spirit
+orphans
+who
+have
+known
+no
+family
+ties
+during
+earth
+life
+have
+been
+brought
+to
+us
+for
+aid
+and
+these
+have
+usually
+been
+eager
+for
+knowledge
+and
+ready
+to
+accept
+the
+explanation
+of
+a
+higher
+life
+A
+lonely
+orphan
+came
+to
+us
+one
+evening
+a
+deserted
+waif
+but
+observant
+analytical
+and
+eager
+for
+understanding
+EXPERIENCE
+MAY
+Spirit
+MINNIE
+ON
+THE
+STEP
+Psychic
+MRS
+WICKLAND
+Doctor
+Where
+did
+you
+come
+from
+Spirit
+I
+don
+t
+know
+Dr
+What
+have
+you
+been
+doing
+Sp
+I
+don
+t
+know
+either
+Dr
+Should
+you
+not
+find
+out
+Sp
+What
+Dr
+Where
+you
+are
+and
+where
+you
+came
+from
+Sp
+I
+don
+t
+know
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+Dead
+I
+don
+t
+know
+I
+don
+t
+know
+anything
+Dr
+Has
+anybody
+come
+to
+you
+and
+told
+you
+that
+you
+have
+lost
+your
+body
+Sp
+No
+I
+have
+been
+going
+around
+everywhere
+and
+talking
+Dr
+To
+whom
+Sp
+To
+every
+body
+I
+could
+talk
+to
+But
+some
+way
+or
+another
+they
+don
+t
+seem
+to
+pay
+attention
+to
+me
+I
+go
+sometimes
+in
+a
+big
+crowd
+and
+think
+I
+will
+get
+hold
+of
+them
+all
+and
+sometimes
+I
+get
+right
+up
+on
+the
+platform
+and
+begin
+to
+ask
+them
+what
+is
+the
+matter
+with
+me
+but
+it
+s
+just
+like
+I
+was
+nobody
+and
+I
+think
+I
+am
+somebody
+I
+think
+I
+was
+good
+but
+nobody
+wants
+me
+Dr
+What
+can
+you
+remember
+before
+that
+time
+Sp
+Before
+that
+time
+I
+was
+somebody
+I
+am
+probably
+nobody
+now
+Dr
+Where
+did
+you
+live
+when
+you
+were
+somebody
+Sp
+Always
+in
+the
+same
+place
+Sometimes
+I
+get
+so
+tired
+then
+I
+go
+and
+lie
+down
+and
+sleep
+and
+sleep
+and
+then
+it
+seems
+after
+I
+have
+slept
+then
+I
+go
+on
+again
+Sometimes
+I
+only
+go
+around
+and
+around
+and
+do
+not
+go
+any
+further
+Dr
+Has
+nobody
+ever
+come
+to
+you
+Sp
+I
+see
+people
+who
+think
+I
+am
+nobody
+They
+do
+not
+notice
+me
+and
+do
+not
+think
+of
+me
+Sometimes
+I
+feel
+miserable
+and
+an
+other
+time
+I
+do
+not
+Dr
+Where
+is
+your
+mother
+Sp
+I
+don
+t
+know
+Sometimes
+I
+go
+hungry
+and
+sometimes
+I
+get
+so
+hungry
+I
+beg
+of
+people
+Sometimes
+I
+get
+something
+and
+sometimes
+not
+If
+I
+can
+get
+in
+the
+kitchen
+I
+get
+something
+to
+eat
+and
+I
+eat
+much
+then
+after
+that
+I
+go
+and
+then
+it
+seems
+I
+am
+out
+again
+Dr
+Out
+where
+Sp
+Everywhere
+Dr
+When
+you
+get
+something
+to
+eat
+do
+you
+feel
+like
+somebody
+else
+Sp
+I
+go
+hungry
+and
+I
+have
+to
+get
+something
+Dr
+Where
+do
+you
+get
+something
+to
+eat
+Sp
+It
+s
+the
+funniest
+thing
+Always
+somebody
+else
+pays
+the
+bill
+and
+I
+have
+nothing
+to
+pay
+that
+s
+the
+funniest
+of
+all
+I
+never
+pay
+for
+anything
+Once
+in
+a
+while
+I
+do
+not
+get
+what
+I
+like
+but
+I
+have
+to
+eat
+it
+Sometimes
+I
+feel
+so
+bad
+after
+eating
+that
+I
+get
+real
+sick
+I
+do
+not
+like
+things
+and
+I
+make
+faces
+Sometimes
+I
+eat
+a
+lot
+and
+sometimes
+a
+little
+Sometimes
+I
+am
+a
+man
+and
+sometimes
+a
+girl
+Obsessing
+different
+persons
+I
+don
+t
+know
+what
+is
+the
+matter
+with
+me
+Why
+is
+everything
+so
+funny
+I
+don
+t
+know
+myself
+I
+go
+and
+I
+walk
+and
+I
+like
+people
+to
+talk
+to
+me
+I
+have
+to
+talk
+all
+the
+time
+I
+only
+hear
+myself
+talk
+Once
+in
+a
+while
+I
+get
+in
+somewhere
+where
+they
+talk
+and
+I
+can
+sit
+down
+and
+some
+times
+I
+feel
+oh
+I
+don
+t
+know
+I
+feel
+like
+I
+was
+half
+a
+person
+sometimes
+somebody
+else
+Dr
+How
+old
+are
+you
+Sp
+How
+old
+am
+I
+I
+don
+t
+know
+Dr
+Don
+t
+you
+know
+how
+old
+you
+are
+Sp
+On
+my
+last
+birthday
+I
+was
+nineteen
+Dr
+Have
+you
+any
+father
+mother
+or
+sister
+Sp
+No
+I
+have
+not
+Dr
+Where
+did
+your
+parents
+live
+Sp
+I
+never
+saw
+my
+father
+or
+mother
+Dr
+Where
+did
+you
+live
+Sp
+I
+don
+t
+know
+if
+my
+father
+and
+mother
+are
+dead
+or
+where
+they
+are
+I
+never
+knew
+Dr
+Did
+you
+live
+in
+an
+institution
+Sp
+I
+was
+brought
+up
+in
+a
+Home
+with
+a
+lot
+of
+children
+Dr
+Did
+you
+know
+many
+of
+the
+children
+Sp
+There
+were
+so
+many
+Dr
+Where
+was
+that
+place
+Sp
+I
+don
+t
+exactly
+know
+It
+is
+kind
+of
+funny
+How
+are
+things
+I
+feel
+funny
+Dr
+It
+must
+be
+a
+strange
+situation
+Sp
+This
+is
+the
+first
+time
+somebody
+talked
+to
+me
+I
+came
+here
+when
+you
+were
+singing
+about
+that
+beautiful
+shore
+I
+thought
+I
+wanted
+to
+go
+on
+that
+other
+shore
+and
+I
+was
+just
+looking
+to
+see
+where
+it
+was
+Dr
+We
+will
+help
+you
+reach
+that
+shore
+Sp
+Before
+I
+knew
+it
+I
+could
+talk
+when
+you
+talked
+to
+me
+Controlled
+psychic
+This
+is
+what
+I
+have
+to
+say
+nobody
+talked
+directly
+to
+me
+for
+a
+long
+long
+time
+If
+I
+talked
+to
+any
+one
+someone
+else
+always
+answered
+I
+never
+seemed
+to
+have
+anything
+to
+say
+No
+one
+paid
+any
+attention
+to
+what
+I
+said
+That
+is
+the
+funniest
+thing
+of
+all
+That
+is
+funny
+I
+got
+out
+of
+the
+home
+that
+I
+was
+working
+in
+because
+they
+were
+awfully
+mean
+to
+me
+Dr
+What
+did
+they
+do
+Whip
+you
+Sp
+Not
+exactly
+I
+was
+working
+in
+a
+family
+somewhere
+I
+was
+so
+hungry
+and
+of
+course
+I
+did
+not
+do
+things
+as
+well
+as
+they
+wanted
+me
+to
+There
+came
+a
+lady
+and
+she
+said
+she
+would
+take
+me
+away
+from
+the
+Home
+I
+wished
+she
+had
+not
+In
+the
+Home
+it
+was
+pretty
+fair
+Of
+course
+we
+had
+hard
+times
+but
+it
+is
+better
+than
+to
+be
+scolded
+all
+the
+time
+In
+the
+Home
+we
+had
+lots
+of
+things
+we
+did
+not
+like
+but
+we
+had
+a
+good
+time
+too
+This
+woman
+took
+me
+and
+the
+first
+thing
+she
+said
+was
+that
+I
+should
+have
+to
+read
+the
+Bible
+from
+morning
+to
+night
+I
+got
+sick
+and
+tired
+of
+the
+Bible
+Then
+I
+had
+to
+pray
+My
+knees
+were
+so
+sore
+I
+could
+hardly
+walk
+on
+them
+I
+had
+to
+be
+on
+my
+knees
+all
+the
+time
+reading
+and
+praying
+She
+said
+I
+should
+walk
+with
+my
+knees
+not
+my
+feet
+She
+tried
+to
+save
+me
+She
+said
+I
+had
+never
+been
+a
+real
+good
+girl
+and
+if
+I
+did
+not
+do
+as
+she
+said
+I
+should
+go
+to
+some
+very
+hot
+place
+In
+the
+Home
+we
+prayed
+and
+the
+Mother
+was
+awful
+nice
+We
+prayed
+and
+believed
+in
+God
+When
+that
+woman
+took
+me
+I
+was
+fourteen
+That
+was
+my
+sorry
+day
+I
+had
+to
+work
+and
+work
+and
+earn
+something
+and
+she
+scolded
+me
+as
+she
+said
+I
+did
+not
+do
+as
+she
+wanted
+me
+to
+It
+was
+praying
+and
+reading
+all
+the
+time
+There
+was
+nothing
+to
+it
+I
+didn
+t
+pray
+I
+had
+to
+get
+down
+on
+my
+knees
+but
+I
+did
+not
+get
+in
+my
+mind
+what
+she
+was
+saying
+because
+my
+knees
+hurt
+me
+She
+got
+awful
+mad
+when
+I
+slipped
+down
+and
+she
+pulled
+my
+hair
+She
+had
+a
+cushion
+under
+her
+knees
+She
+could
+stay
+there
+for
+hours
+She
+said
+I
+was
+a
+sinner
+because
+I
+got
+tired
+Are
+you
+a
+sinner
+when
+you
+can
+t
+stay
+on
+your
+knees
+a
+long
+time
+I
+did
+not
+know
+very
+much
+but
+I
+thought
+many
+times
+really
+and
+truly
+don
+t
+tell
+anyone
+whispering
+confidentially
+but
+I
+thought
+God
+would
+be
+awfully
+tired
+to
+hear
+that
+all
+the
+time
+I
+was
+so
+tired
+that
+I
+went
+to
+sleep
+Then
+she
+pulled
+my
+hair
+and
+slapped
+me
+She
+prayed
+to
+God
+but
+she
+acted
+so
+bad
+She
+said
+if
+I
+was
+not
+good
+the
+devil
+would
+get
+hold
+of
+me
+I
+thought
+sometimes
+really
+and
+truly
+that
+she
+was
+one
+If
+I
+got
+on
+my
+knees
+and
+went
+to
+sleep
+she
+came
+to
+me
+and
+she
+prayed
+God
+help
+me
+out
+of
+this
+misery
+You
+know
+oh
+God
+how
+I
+love
+you
+She
+prayed
+for
+herself
+first
+and
+then
+for
+her
+sister
+her
+mother
+and
+her
+brother
+and
+father
+and
+her
+friends
+and
+at
+last
+she
+prayed
+for
+Minnie
+They
+did
+not
+know
+my
+other
+name
+I
+do
+not
+know
+who
+my
+really
+and
+truly
+father
+and
+mother
+were
+I
+never
+knew
+I
+never
+got
+my
+history
+but
+they
+said
+they
+found
+me
+on
+the
+step
+They
+often
+called
+me
+Minnie
+On
+The
+Step
+I
+got
+so
+mad
+at
+them
+They
+found
+me
+on
+the
+step
+they
+said
+They
+gave
+me
+the
+name
+of
+Minnie
+Dr
+Try
+to
+realize
+that
+you
+have
+lost
+your
+own
+body
+and
+that
+you
+are
+now
+a
+spirit
+Sp
+What
+is
+that
+I
+am
+a
+girl
+Dr
+You
+have
+been
+wandering
+around
+as
+a
+spirit
+Sp
+What
+do
+you
+mean
+Dr
+You
+have
+lost
+your
+body
+Sp
+Did
+I
+die
+I
+really
+and
+truly
+have
+not
+been
+washing
+dishes
+for
+a
+long
+time
+I
+have
+not
+had
+any
+one
+pull
+my
+hair
+for
+a
+long
+time
+either
+I
+ran
+away
+because
+the
+lady
+was
+so
+mean
+I
+was
+running
+away
+from
+her
+Then
+I
+had
+so
+little
+to
+eat
+I
+ran
+away
+and
+I
+got
+so
+hungry
+I
+had
+no
+money
+Dr
+What
+happened
+after
+that
+Sp
+I
+got
+far
+far
+off
+and
+I
+lost
+my
+way
+I
+was
+so
+hungry
+that
+I
+went
+to
+sleep
+It
+came
+so
+dark
+and
+I
+was
+in
+the
+woods
+I
+had
+to
+run
+in
+the
+woods
+so
+that
+she
+would
+not
+find
+me
+I
+walked
+and
+walked
+and
+I
+thought
+I
+would
+find
+some
+one
+to
+give
+me
+something
+to
+eat
+To
+the
+first
+house
+I
+did
+not
+go
+I
+went
+away
+hungry
+and
+I
+walked
+a
+whole
+day
+and
+night
+and
+it
+seems
+there
+was
+nothing
+but
+big
+trees
+and
+forest
+Then
+I
+went
+to
+sleep
+and
+I
+don
+t
+know
+any
+more
+that
+day
+Passed
+out
+Next
+day
+I
+felt
+better
+and
+I
+walked
+again
+and
+I
+got
+to
+the
+city
+I
+walked
+ever
+and
+ever
+so
+far
+and
+saw
+lots
+of
+people
+but
+they
+paid
+no
+attention
+to
+me
+I
+got
+hungry
+so
+I
+saw
+a
+woman
+go
+into
+a
+restaurant
+and
+we
+had
+some
+dinner
+She
+was
+eating
+it
+all
+I
+got
+a
+little
+She
+did
+not
+talk
+to
+me
+Then
+I
+went
+out
+again
+and
+I
+kept
+on
+walking
+and
+after
+a
+while
+I
+saw
+some
+one
+else
+go
+into
+a
+restaurant
+some
+other
+people
+We
+ate
+but
+they
+paid
+for
+it
+Dr
+Do
+you
+know
+what
+you
+were
+doing
+Sp
+No
+Dr
+You
+were
+obsessing
+some
+one
+As
+a
+spirit
+you
+were
+hovering
+around
+some
+mortal
+and
+were
+trying
+to
+satisfy
+your
+hunger
+through
+that
+person
+You
+probably
+lost
+your
+body
+in
+the
+woods
+Sp
+I
+was
+so
+thirsty
+The
+food
+I
+did
+not
+miss
+so
+much
+but
+I
+thought
+everything
+was
+drying
+up
+in
+my
+throat
+I
+thought
+I
+could
+drink
+a
+barrel
+of
+water
+Dr
+You
+carried
+your
+last
+physical
+sensations
+in
+your
+mind
+not
+realizing
+that
+you
+had
+lost
+your
+body
+Sp
+Did
+I
+What
+time
+was
+that
+Don
+t
+you
+know
+me
+then
+How
+did
+I
+get
+here
+Dr
+We
+cannot
+see
+you
+Sp
+Can
+you
+see
+my
+folks
+Dr
+No
+Sp
+Can
+you
+see
+me
+Dr
+No
+Sp
+What
+is
+the
+matter
+with
+me
+Dr
+You
+are
+invisible
+Sp
+Can
+you
+hear
+me
+talk
+Dr
+Yes
+Sp
+You
+can
+hear
+me
+talk
+but
+not
+see
+me
+Dr
+You
+are
+not
+talking
+through
+your
+own
+body
+Sp
+I
+am
+not
+Dr
+Look
+at
+your
+hands
+Do
+you
+recognize
+them
+Sp
+No
+Dr
+Do
+you
+know
+that
+dress
+Sp
+I
+never
+had
+one
+like
+that
+in
+my
+born
+days
+Dr
+You
+are
+using
+some
+one
+else
+s
+body
+Sp
+Some
+party
+probably
+gave
+me
+a
+dress
+I
+have
+a
+ring
+too
+Dr
+The
+ring
+is
+not
+yours
+nor
+is
+the
+hand
+Sp
+I
+commence
+to
+be
+sleepy
+again
+Dr
+You
+have
+been
+allowed
+to
+come
+in
+and
+control
+this
+body
+Sp
+Oh
+Look
+there
+Dr
+What
+do
+you
+see
+Sp
+I
+don
+t
+know
+myself
+There
+s
+a
+lady
+and
+she
+s
+crying
+Spirit
+Dr
+Ask
+her
+who
+she
+is
+Sp
+After
+listening
+in
+amazement
+Oh
+my
+no
+Dr
+What
+does
+she
+say
+Sp
+Don
+t
+cry
+so
+much
+lady
+I
+don
+t
+like
+to
+see
+crying
+faces
+I
+want
+to
+cry
+myself
+when
+she
+cries
+Dr
+What
+does
+she
+say
+Sp
+She
+says
+I
+am
+her
+child
+She
+probably
+is
+sorry
+she
+left
+me
+Is
+she
+my
+really
+and
+truly
+mother
+She
+says
+Oh
+my
+dear
+child
+She
+says
+she
+has
+been
+hunting
+me
+for
+dear
+life
+but
+she
+could
+not
+get
+me
+and
+she
+did
+not
+know
+what
+to
+do
+Dr
+You
+are
+both
+spirits
+and
+you
+will
+find
+intelligent
+spirits
+here
+who
+will
+help
+you
+Sp
+She
+was
+a
+good
+girl
+she
+says
+but
+some
+man
+got
+her
+in
+trouble
+She
+says
+she
+went
+to
+church
+and
+some
+man
+wanted
+to
+marry
+her
+He
+went
+away
+He
+left
+her
+after
+he
+got
+her
+in
+trouble
+she
+says
+and
+she
+had
+nobody
+She
+was
+so
+sick
+She
+felt
+so
+bad
+so
+she
+put
+me
+on
+the
+step
+of
+that
+big
+Home
+she
+says
+and
+she
+has
+never
+been
+happy
+from
+that
+time
+Then
+she
+got
+sick
+and
+died
+Dr
+Make
+her
+understand
+that
+she
+is
+a
+spirit
+like
+yourself
+You
+will
+find
+intelligent
+spirits
+who
+will
+help
+you
+both
+Sp
+My
+Mother
+I
+want
+to
+be
+with
+you
+I
+forgive
+you
+Mother
+Don
+t
+cry
+I
+have
+never
+had
+a
+mother
+and
+you
+will
+be
+my
+mother
+now
+She
+says
+she
+has
+been
+hunting
+me
+for
+a
+long
+time
+and
+somebody
+said
+they
+brought
+us
+here
+to
+this
+place
+so
+we
+could
+meet
+She
+says
+They
+said
+I
+should
+find
+my
+child
+Now
+she
+found
+me
+didn
+t
+she
+Can
+I
+cry
+for
+gladness
+I
+would
+love
+to
+I
+feel
+so
+glad
+I
+have
+a
+mother
+Dr
+You
+will
+both
+have
+a
+home
+in
+the
+spirit
+world
+Sp
+She
+says
+my
+name
+is
+Gladys
+She
+says
+her
+name
+is
+Clara
+Watsman
+Dr
+Where
+was
+her
+home
+Sp
+She
+says
+St
+Louis
+Dr
+You
+will
+find
+other
+spirits
+here
+who
+will
+take
+you
+to
+the
+spirit
+world
+Sp
+What
+is
+that
+Why
+here
+comes
+an
+Indian
+girl
+Spirit
+She
+s
+a
+nice
+little
+girl
+Dr
+She
+will
+teach
+both
+of
+you
+many
+wonderful
+things
+Sp
+Oh
+I
+do
+not
+want
+you
+to
+look
+so
+old
+Mother
+She
+was
+young
+a
+little
+while
+ago
+Dr
+That
+will
+all
+pass
+away
+That
+is
+only
+her
+condition
+of
+sorrow
+Sp
+The
+little
+Indian
+girl
+Silver
+Star
+put
+her
+hand
+over
+her
+and
+she
+said
+Think
+young
+and
+you
+will
+be
+young
+She
+is
+She
+is
+Thinking
+young
+she
+will
+be
+she
+says
+Now
+we
+go
+with
+her
+Don
+t
+forget
+my
+name
+is
+Gladys
+That
+s
+nicer
+than
+Minnie
+On
+The
+Step
+Are
+we
+going
+to
+Heaven
+to
+God
+Dr
+You
+will
+go
+to
+the
+spirit
+world
+and
+you
+will
+obtain
+understanding
+of
+the
+higher
+things
+of
+life
+Sp
+That
+woman
+always
+said
+God
+is
+Spirit
+God
+is
+Love
+God
+is
+everywhere
+Silver
+Star
+says
+we
+must
+thank
+the
+doctor
+Doctor
+what
+Dr
+Dr
+Wickland
+You
+are
+controlling
+my
+wife
+s
+body
+Sp
+My
+mother
+is
+young
+and
+pretty
+now
+Think
+young
+and
+you
+will
+be
+Silver
+Star
+said
+Can
+I
+come
+back
+here
+sometime
+Dr
+Certainly
+as
+far
+as
+I
+am
+concerned
+Sp
+Don
+t
+think
+of
+me
+as
+Minnie
+On
+The
+Step
+will
+you
+Think
+of
+me
+as
+Gladys
+Watsman
+Thank
+you
+all
+I
+am
+somebody
+now
+I
+ve
+got
+a
+name
+That
+s
+worth
+something
+to
+me
+Don
+t
+you
+want
+to
+be
+my
+Grandpa
+Dr
+Maybe
+Sp
+Thank
+you
+all
+for
+being
+patient
+with
+me
+Goodbye
+Minnie
+On
+The
+Step
+became
+an
+ardent
+helper
+of
+wandering
+spirit
+waifs
+and
+has
+brought
+a
+number
+of
+them
+to
+our
+circle
+for
+understanding
+the
+first
+one
+within
+a
+few
+weeks
+after
+her
+own
+enlightenment
+EXPERIENCE
+JULY
+Spirit
+ANNA
+MARY
+Psychic
+MRS
+WICKLAND
+Doctor
+Good
+Evening
+Do
+you
+know
+anyone
+here
+Spirit
+Somebody
+told
+me
+if
+I
+came
+in
+here
+I
+would
+get
+something
+to
+eat
+Dr
+You
+are
+spiritually
+hungry
+Sp
+Is
+that
+something
+to
+eat
+Dr
+No
+it
+is
+something
+for
+your
+mind
+Sp
+I
+don
+t
+know
+if
+I
+need
+anything
+for
+my
+mind
+I
+want
+something
+for
+my
+stomach
+I
+haven
+t
+had
+anything
+to
+eat
+for
+a
+long
+time
+Isn
+t
+it
+funny
+As
+soon
+as
+you
+talk
+to
+me
+I
+am
+not
+hungry
+I
+was
+awful
+hungry
+but
+now
+I
+m
+not
+Dr
+What
+have
+you
+been
+doing
+Sp
+Nothing
+I
+get
+so
+tired
+of
+doing
+nothing
+that
+I
+don
+t
+know
+what
+to
+do
+It
+is
+tiresome
+to
+have
+nothing
+whatever
+to
+do
+no
+aim
+in
+life
+You
+do
+not
+know
+what
+to
+do
+with
+yourself
+I
+want
+something
+to
+do
+You
+get
+so
+nervous
+when
+you
+do
+nothing
+I
+don
+t
+know
+what
+to
+do
+with
+myself
+I
+want
+to
+go
+here
+there
+and
+everywhere
+and
+when
+I
+get
+there
+I
+want
+to
+be
+some
+place
+else
+I
+get
+so
+tired
+wanting
+to
+know
+what
+I
+should
+do
+The
+road
+is
+always
+best
+on
+the
+other
+side
+Dr
+What
+is
+your
+name
+Sp
+They
+call
+me
+Mary
+but
+my
+name
+is
+Anna
+Mary
+Some
+call
+me
+Mary
+and
+some
+call
+me
+Anna
+Dr
+Where
+did
+your
+father
+and
+mother
+live
+Sp
+I
+don
+t
+know
+my
+mother
+and
+father
+Dr
+How
+old
+are
+you
+Sp
+I
+don
+t
+know
+Dr
+Were
+you
+ever
+in
+California
+Sp
+No
+never
+in
+all
+my
+life
+I
+never
+went
+that
+far
+away
+I
+never
+had
+so
+much
+money
+to
+go
+We
+had
+hot
+summers
+and
+cold
+winters
+Dr
+How
+did
+you
+come
+in
+here
+Sp
+Sure
+enough
+how
+did
+I
+come
+Dr
+Who
+brought
+you
+here
+Sp
+Minnie
+On
+The
+Step
+Dr
+Is
+she
+here
+now
+Sp
+Yes
+Dr
+Did
+you
+both
+live
+in
+the
+same
+place
+Sp
+Yes
+Dr
+Were
+you
+anything
+like
+Minnie
+On
+The
+Step
+Sp
+She
+was
+such
+a
+nice
+little
+girl
+I
+ran
+away
+from
+that
+place
+I
+wanted
+to
+see
+the
+world
+I
+did
+not
+want
+to
+stay
+in
+one
+place
+all
+the
+time
+I
+was
+in
+a
+Home
+where
+there
+were
+lots
+of
+children
+and
+Min
+nie
+On
+The
+Step
+was
+there
+too
+that
+was
+our
+home
+I
+worked
+awfully
+hard
+and
+had
+to
+scrub
+and
+scrub
+and
+carry
+water
+and
+I
+got
+tired
+of
+it
+so
+I
+ran
+away
+They
+always
+said
+I
+was
+foolish
+but
+I
+never
+thought
+I
+was
+Dr
+Ask
+Minnie
+On
+The
+Step
+if
+she
+brought
+you
+here
+Sp
+She
+says
+she
+did
+and
+that
+she
+has
+been
+hunting
+for
+me
+and
+then
+brought
+me
+here
+She
+says
+she
+has
+a
+home
+Staring
+in
+surprise
+For
+God
+s
+sake
+in
+Heaven
+If
+I
+ever
+saw
+such
+a
+nice
+place
+Look
+at
+that
+home
+It
+s
+Minnie
+On
+The
+Step
+s
+It
+s
+beautiful
+She
+says
+it
+is
+hers
+Well
+for
+Heaven
+s
+sake
+alive
+Dr
+Ask
+her
+how
+she
+got
+it
+Sp
+To
+Minnie
+On
+The
+Step
+How
+did
+you
+get
+it
+She
+say
+that
+you
+Dr
+W
+and
+you
+and
+you
+and
+you
+pointing
+to
+audience
+helped
+her
+to
+get
+that
+home
+She
+says
+her
+home
+is
+going
+to
+be
+for
+all
+the
+children
+she
+knew
+when
+she
+was
+at
+the
+Home
+and
+they
+are
+all
+going
+to
+that
+home
+that
+she
+can
+hunt
+up
+She
+s
+so
+happy
+I
+never
+knew
+she
+cared
+for
+me
+because
+she
+was
+a
+little
+better
+than
+I
+was
+For
+Heaven
+s
+sake
+alive
+that
+s
+a
+nice
+home
+Dr
+How
+did
+you
+die
+Sp
+I
+m
+not
+dead
+Can
+t
+you
+hear
+me
+talking
+Why
+there
+s
+Mary
+Bloom
+and
+Charlie
+Hoffman
+I
+don
+t
+like
+Charlie
+Hoff
+man
+He
+was
+stuck
+up
+They
+teased
+me
+He
+always
+got
+other
+boys
+and
+they
+all
+chased
+me
+they
+thought
+I
+was
+a
+horse
+They
+always
+pulled
+my
+hair
+They
+always
+hurt
+me
+those
+boys
+and
+Charlie
+Hoffman
+got
+them
+together
+They
+used
+to
+call
+me
+Tow
+Head
+but
+when
+I
+got
+mad
+they
+were
+scared
+They
+ran
+and
+I
+ran
+after
+them
+Then
+comes
+the
+Matron
+She
+grabbed
+hold
+of
+me
+and
+pulled
+my
+hair
+pretty
+good
+She
+was
+awful
+mad
+when
+they
+took
+me
+back
+Mary
+Bloom
+always
+scrubbed
+with
+me
+She
+says
+she
+don
+t
+have
+to
+scrub
+any
+more
+Mary
+Bloom
+s
+in
+Minnie
+s
+home
+Esther
+Bloom
+Mary
+s
+sister
+is
+here
+too
+Minnie
+says
+now
+I
+must
+be
+a
+good
+girl
+and
+then
+she
+will
+see
+after
+me
+I
+will
+have
+a
+nice
+home
+and
+I
+shall
+have
+something
+to
+do
+Dr
+Do
+you
+know
+who
+your
+mother
+was
+Sp
+I
+was
+always
+told
+my
+mother
+was
+a
+fine
+lady
+I
+know
+she
+lived
+in
+a
+beautiful
+house
+but
+she
+didn
+t
+like
+me
+because
+I
+was
+foolish
+Dr
+Was
+she
+ashamed
+of
+you
+Sp
+She
+never
+cared
+for
+me
+They
+said
+she
+was
+very
+beautiful
+Dr
+Do
+you
+want
+to
+go
+with
+Minnie
+On
+The
+Step
+Sp
+She
+s
+a
+lady
+now
+She
+doesn
+t
+look
+like
+she
+did
+She
+is
+beautiful
+Dr
+What
+does
+she
+say
+Sp
+She
+says
+that
+I
+must
+understand
+that
+I
+am
+in
+the
+spirit
+world
+Oh
+look
+at
+that
+pretty
+lady
+Dr
+What
+does
+she
+say
+Sp
+She
+says
+she
+has
+a
+home
+where
+she
+takes
+care
+of
+little
+waifs
+in
+the
+spirit
+world
+and
+teaches
+them
+the
+higher
+philosophy
+of
+God
+She
+is
+beautiful
+beautiful
+Such
+pretty
+white
+hair
+It
+is
+as
+white
+as
+silver
+When
+she
+smiles
+it
+is
+like
+sunshine
+Now
+she
+says
+Come
+my
+dear
+child
+with
+me
+You
+had
+no
+happiness
+in
+earth
+life
+but
+you
+will
+have
+it
+in
+spirit
+life
+with
+me
+because
+I
+gather
+together
+all
+such
+little
+children
+as
+you
+and
+teach
+them
+the
+real
+lesson
+of
+life
+Dr
+Ask
+the
+lady
+her
+name
+Sp
+She
+says
+her
+name
+is
+Abbie
+Judson
+Lady
+you
+won
+t
+call
+me
+foolish
+will
+you
+Will
+you
+be
+my
+mother
+Can
+I
+call
+you
+mother
+lady
+I
+never
+had
+a
+mother
+Will
+you
+take
+me
+in
+your
+arms
+and
+love
+me
+just
+once
+so
+that
+I
+can
+feel
+what
+mother
+love
+is
+Will
+you
+give
+me
+a
+mother
+s
+kiss
+Will
+you
+I
+never
+knew
+what
+that
+is
+She
+says
+Yes
+child
+I
+will
+be
+your
+mother
+I
+will
+watch
+and
+guide
+you
+You
+will
+have
+a
+home
+with
+me
+in
+the
+beautiful
+land
+beyond
+She
+kisses
+me
+Isn
+t
+she
+lovely
+Please
+love
+me
+a
+little
+more
+lady
+Thank
+God
+now
+I
+m
+happy
+for
+I
+have
+found
+a
+mother
+I
+shall
+try
+to
+be
+good
+to
+her
+then
+she
+will
+be
+my
+mother
+I
+have
+prayed
+to
+God
+many
+times
+for
+a
+mother
+and
+now
+I
+have
+one
+To
+an
+invisible
+Say
+will
+you
+forgive
+me
+for
+slapping
+you
+once
+And
+I
+m
+sorry
+that
+I
+kicked
+you
+but
+I
+got
+so
+mad
+at
+you
+I
+m
+so
+glad
+that
+Minnie
+On
+The
+Step
+brought
+me
+here
+cause
+now
+I
+have
+a
+mother
+Dr
+Now
+you
+will
+go
+to
+the
+spirit
+world
+where
+Happiness
+is
+Heaven
+and
+all
+is
+harmony
+Heaven
+is
+a
+condition
+of
+the
+mind
+Sp
+The
+lady
+says
+I
+must
+go
+with
+her
+now
+Dr
+We
+know
+the
+lady
+you
+speak
+of
+She
+has
+brought
+others
+here
+for
+help
+She
+was
+a
+teacher
+in
+earth
+life
+Sp
+She
+says
+she
+has
+a
+beautiful
+home
+Not
+like
+a
+home
+in
+earth
+life
+but
+a
+home
+where
+we
+shall
+be
+taught
+to
+praise
+God
+in
+every
+way
+Dr
+Think
+yourself
+with
+the
+lady
+and
+you
+will
+become
+disengaged
+from
+this
+body
+Sp
+Glory
+Hallelujah
+Minnie
+says
+that
+when
+I
+come
+with
+the
+lady
+I
+must
+not
+use
+those
+words
+for
+they
+are
+foolish
+But
+that
+s
+the
+way
+I
+always
+do
+talk
+when
+I
+m
+glad
+and
+happy
+Mary
+Bloom
+and
+Minnie
+On
+The
+Step
+say
+I
+must
+thank
+you
+for
+teaching
+me
+to
+go
+with
+them
+You
+can
+call
+me
+Anna
+Mary
+Will
+my
+new
+mother
+be
+ashamed
+of
+me
+I
+can
+t
+read
+cause
+I
+never
+had
+time
+to
+learn
+The
+big
+Home
+where
+I
+was
+gave
+me
+to
+a
+lady
+and
+she
+made
+me
+work
+very
+hard
+I
+got
+sick
+and
+I
+coughed
+very
+hard
+But
+I
+had
+to
+work
+just
+the
+same
+I
+got
+sick
+and
+then
+I
+don
+t
+remember
+any
+more
+Thank
+you
+for
+helping
+me
+Goodbye
+We
+had
+been
+concentrating
+for
+some
+time
+for
+a
+little
+girl
+R
+G
+who
+was
+very
+sensitive
+to
+psychic
+conditionA
+and
+troubled
+constantly
+by
+spirits
+During
+the
+weeks
+preceding
+the
+following
+experience
+she
+had
+been
+very
+disobedient
+developed
+a
+strong
+dislike
+for
+arithmetic
+and
+had
+been
+especially
+perverse
+when
+taken
+into
+the
+city
+shops
+The
+mother
+knowing
+that
+a
+spirit
+was
+influencing
+the
+child
+had
+several
+times
+given
+the
+little
+girl
+a
+cold
+shower
+with
+excellent
+result
+EXPERIENCE
+AUGUST
+Spirit
+LILY
+Patient
+R
+G
+Psychic
+MRS
+WICKLAND
+The
+controlling
+spirit
+stamped
+furiously
+and
+spoke
+angrily
+in
+an
+excited
+childish
+voice
+Spirit
+No
+do
+not
+touch
+me
+No
+no
+I
+don
+t
+want
+your
+hands
+on
+me
+I
+do
+not
+like
+you
+You
+have
+so
+much
+fire
+I
+am
+afraid
+of
+that
+fire
+Static
+treatment
+given
+patient
+Doctor
+Tell
+us
+who
+you
+are
+Sp
+I
+don
+t
+know
+Dr
+Where
+did
+you
+come
+from
+You
+must
+have
+come
+from
+some
+place
+Do
+you
+pay
+for
+your
+board
+Sp
+I
+don
+t
+pay
+for
+it
+but
+I
+always
+get
+something
+to
+eat
+I
+have
+no
+money
+Dr
+Who
+are
+you
+Sp
+I
+said
+I
+didn
+t
+know
+Dr
+Did
+your
+mother
+call
+you
+Jim
+Sp
+I
+m
+no
+boy
+Can
+t
+you
+see
+I
+don
+t
+want
+that
+fire
+on
+my
+back
+any
+more
+no
+I
+don
+t
+Stamping
+feet
+Dr
+Did
+you
+always
+have
+bad
+manners
+Sp
+Why
+did
+you
+take
+me
+away
+from
+where
+I
+was
+I
+have
+no
+place
+to
+go
+You
+made
+me
+get
+away
+with
+fire
+fire
+fire
+Stamping
+I
+want
+to
+be
+with
+that
+little
+girl
+Pointing
+to
+R
+G
+She
+belongs
+to
+me
+Dr
+What
+right
+have
+you
+to
+bother
+that
+little
+girl
+She
+does
+not
+belong
+to
+you
+She
+is
+no
+relation
+of
+yours
+Sp
+Crying
+I
+want
+her
+Dr
+Where
+did
+you
+come
+from
+Can
+t
+you
+understand
+that
+you
+are
+dead
+Sp
+I
+want
+to
+be
+with
+that
+little
+girl
+I
+want
+her
+I
+want
+her
+Crying
+You
+chased
+me
+out
+You
+You
+you
+mean
+thing
+Stamping
+Dr
+I
+m
+very
+glad
+of
+it
+What
+right
+have
+you
+to
+be
+with
+that
+little
+girl
+Sp
+I
+have
+no
+home
+Dr
+Can
+t
+you
+understand
+that
+you
+are
+a
+spirit
+You
+are
+invisible
+to
+us
+Sp
+I
+liked
+to
+ride
+in
+that
+automobile
+We
+had
+such
+nice
+times
+Dr
+You
+will
+not
+ride
+in
+that
+automobile
+any
+more
+You
+are
+going
+to
+the
+spirit
+world
+Sp
+To
+the
+mother
+of
+R
+G
+I
+don
+t
+like
+you
+You
+made
+me
+go
+in
+the
+water
+you
+ugly
+mean
+thing
+I
+like
+to
+ride
+in
+the
+auto
+but
+I
+don
+t
+like
+to
+go
+into
+that
+store
+I
+got
+mad
+I
+want
+that
+little
+girl
+I
+want
+her
+I
+got
+lost
+in
+that
+big
+store
+you
+went
+to
+You
+had
+no
+business
+to
+go
+there
+Dr
+You
+have
+no
+business
+to
+bother
+people
+You
+are
+very
+selfish
+Sp
+I
+got
+fire
+on
+my
+back
+Dr
+You
+will
+get
+more
+fire
+if
+you
+do
+not
+behave
+Sp
+Aren
+t
+you
+ashamed
+to
+give
+a
+little
+girl
+so
+much
+fire
+Dr
+That
+was
+what
+you
+needed
+Sp
+You
+gave
+me
+so
+much
+of
+it
+that
+it
+is
+burning
+my
+back
+yet
+I
+got
+so
+mad
+at
+you
+To
+Mrs
+G
+You
+made
+me
+go
+in
+the
+water
+It
+made
+me
+so
+mad
+at
+you
+I
+don
+t
+like
+the
+water
+She
+took
+me
+here
+and
+there
+in
+that
+store
+Dr
+You
+will
+not
+bother
+that
+little
+girl
+any
+more
+What
+is
+your
+name
+Sp
+My
+name
+is
+Lily
+I
+am
+a
+White
+Lily
+Dr
+You
+must
+not
+be
+so
+selfish
+or
+you
+cannot
+find
+a
+home
+in
+the
+spirit
+world
+Mrs
+G
+Where
+did
+you
+find
+my
+little
+girl
+Sp
+I
+saw
+this
+little
+girl
+so
+I
+picked
+up
+with
+her
+We
+had
+such
+nice
+times
+together
+There
+were
+lots
+of
+things
+to
+play
+with
+Dr
+You
+must
+understand
+that
+you
+no
+longer
+have
+a
+physical
+body
+Do
+you
+know
+that
+you
+are
+in
+California
+Sp
+I
+do
+not
+know
+anything
+Dr
+What
+did
+your
+father
+do
+Sp
+I
+did
+not
+know
+much
+about
+my
+father
+Dr
+Where
+is
+your
+mother
+Sp
+I
+do
+not
+know
+I
+ran
+away
+when
+mother
+spanked
+me
+I
+got
+mad
+at
+my
+mother
+and
+ran
+away
+My
+father
+and
+mother
+put
+me
+in
+a
+place
+with
+lots
+of
+other
+children
+but
+I
+ran
+away
+from
+there
+They
+put
+me
+in
+a
+big
+building
+They
+were
+mean
+and
+so
+was
+I
+They
+always
+teased
+me
+I
+got
+so
+mad
+at
+them
+I
+got
+into
+a
+fight
+and
+then
+I
+ran
+away
+Dr
+Where
+did
+you
+go
+when
+you
+ran
+away
+Sp
+I
+fell
+down
+and
+then
+I
+can
+t
+remember
+what
+happened
+Died
+Sometimes
+it
+seems
+like
+I
+am
+a
+very
+small
+girl
+but
+I
+was
+different
+I
+was
+eleven
+or
+twelve
+years
+old
+and
+after
+a
+while
+I
+was
+a
+little
+girl
+again
+It
+seems
+like
+I
+was
+five
+years
+old
+then
+Dr
+What
+did
+they
+call
+you
+when
+you
+were
+a
+little
+girl
+again
+Sp
+They
+called
+me
+R
+but
+that
+wasn
+t
+my
+name
+After
+I
+fell
+down
+it
+was
+dark
+for
+a
+long
+time
+then
+all
+at
+once
+I
+could
+walk
+and
+play
+with
+that
+little
+girl
+Dr
+Some
+accident
+must
+have
+happened
+to
+you
+when
+you
+ran
+away
+You
+lost
+your
+body
+and
+became
+a
+spirit
+We
+do
+not
+see
+you
+Sp
+I
+don
+t
+see
+you
+either
+Dr
+You
+are
+a
+little
+spit
+fire
+Sp
+You
+are
+a
+real
+bogy
+man
+I
+am
+a
+little
+girl
+and
+can
+t
+take
+care
+of
+myself
+You
+let
+go
+my
+hands
+Dr
+I
+m
+not
+holding
+your
+hands
+I
+am
+holding
+my
+wife
+s
+hands
+Sp
+I
+don
+t
+like
+you
+Dr
+You
+are
+using
+my
+wife
+s
+body
+but
+only
+for
+a
+short
+time
+You
+are
+an
+ignorant
+spirit
+and
+have
+been
+hovering
+around
+that
+little
+girl
+and
+have
+now
+been
+taken
+away
+from
+her
+Sp
+She
+is
+my
+little
+girl
+Dr
+Let
+me
+tell
+you
+something
+You
+cannot
+have
+a
+home
+if
+you
+do
+not
+behave
+yourself
+Intelligent
+spirits
+have
+brought
+you
+here
+and
+allowed
+you
+to
+control
+my
+wife
+s
+body
+so
+that
+we
+might
+help
+you
+You
+will
+find
+friendly
+spirits
+here
+who
+will
+help
+you
+and
+will
+show
+you
+the
+wonderful
+things
+in
+the
+spirit
+world
+There
+you
+will
+find
+happiness
+which
+you
+cannot
+find
+by
+hovering
+around
+the
+earth
+plane
+But
+you
+will
+have
+to
+overcome
+your
+temper
+Sp
+Will
+they
+be
+mean
+to
+me
+Everybody
+shoved
+me
+here
+and
+there
+So
+many
+boys
+teased
+me
+then
+I
+got
+mad
+and
+had
+to
+fight
+Dr
+Now
+you
+must
+go
+with
+Silver
+Star
+a
+little
+Indian
+girl
+who
+will
+be
+the
+best
+friend
+you
+ever
+had
+Forget
+your
+past
+Do
+not
+be
+ugly
+You
+will
+be
+shown
+every
+kindness
+and
+nobody
+will
+tease
+you
+Sp
+I
+always
+got
+so
+much
+whipping
+Dr
+The
+intelligent
+spirits
+will
+help
+you
+to
+progress
+Sp
+Why
+here
+comes
+Happy
+Daisy
+Spirit
+Dr
+Does
+she
+look
+as
+if
+she
+would
+scold
+you
+Sp
+No
+The
+boys
+used
+to
+call
+me
+Red
+Head
+and
+Freckles
+and
+I
+used
+to
+go
+for
+them
+Could
+I
+go
+with
+that
+pretty
+lady
+standing
+there
+Dr
+Yes
+and
+you
+will
+not
+have
+any
+more
+fire
+or
+sparks
+Sp
+You
+are
+sure
+you
+are
+not
+telling
+stories
+Happy
+Daisy
+says
+for
+me
+to
+go
+with
+her
+and
+she
+will
+take
+me
+to
+a
+nice
+home
+Will
+that
+be
+Heaven
+She
+says
+I
+must
+learn
+to
+do
+good
+and
+be
+good
+and
+after
+I
+learn
+I
+can
+come
+back
+and
+help
+this
+little
+girl
+and
+I
+m
+going
+to
+help
+her
+in
+school
+too
+Mrs
+G
+Do
+you
+like
+arithmetic
+Sp
+I
+don
+t
+like
+school
+at
+all
+Now
+I
+will
+go
+They
+say
+I
+am
+going
+to
+school
+but
+I
+don
+t
+like
+school
+Dr
+You
+will
+go
+to
+a
+different
+school
+the
+School
+of
+Life
+Sp
+Can
+t
+I
+have
+blue
+eyes
+and
+light
+curly
+hair
+Can
+I
+have
+it
+I
+want
+to
+be
+beautiful
+Dr
+You
+can
+become
+beautiful
+only
+as
+you
+help
+others
+Think
+beautiful
+thoughts
+and
+do
+kind
+acts
+and
+you
+will
+be
+beautiful
+You
+will
+have
+beauty
+of
+spirit
+Now
+go
+with
+these
+friends
+and
+after
+you
+have
+learned
+how
+to
+be
+of
+service
+you
+can
+help
+little
+R
+Think
+yourself
+with
+the
+others
+and
+you
+will
+be
+there
+Determine
+to
+begin
+a
+new
+life
+Sp
+I
+m
+going
+to
+help
+this
+little
+girl
+Goodbye
+A
+week
+after
+the
+interview
+with
+Lily
+another
+homeless
+spirit
+wanderer
+came
+to
+the
+circle
+a
+quaint
+investigative
+philosopher
+who
+had
+been
+drawn
+into
+the
+aura
+of
+Mrs
+G
+the
+mother
+of
+R
+G
+This
+spirit
+was
+an
+orphan
+who
+had
+known
+Mrs
+G
+in
+childhood
+she
+had
+at
+that
+time
+developed
+a
+strong
+affection
+for
+her
+and
+this
+love
+had
+attracted
+the
+spirit
+to
+Mrs
+G
+although
+she
+had
+not
+recognized
+in
+the
+grown
+woman
+the
+friend
+of
+her
+childhood
+EXPERIENCE
+AUGUST
+Spirit
+LAUGHING
+ELLA
+Patient
+MRS
+G
+Psychic
+MRS
+WICKLAND
+Doctor
+Why
+don
+t
+you
+join
+in
+the
+singing
+Spirit
+I
+never
+saw
+these
+people
+before
+so
+why
+should
+I
+join
+in
+the
+singing
+Dr
+Where
+did
+you
+come
+from
+Sp
+I
+don
+t
+know
+Dr
+We
+should
+like
+to
+know
+more
+about
+you
+Isn
+t
+it
+strange
+that
+you
+should
+be
+here
+Sp
+I
+don
+t
+know
+anything
+about
+it
+I
+shall
+have
+to
+find
+out
+Dr
+Tell
+us
+who
+you
+are
+and
+what
+your
+name
+is
+Sp
+Somebody
+said
+if
+I
+came
+here
+I
+would
+find
+a
+home
+Dr
+You
+certainly
+will
+Sp
+I
+have
+not
+had
+a
+home
+for
+a
+long
+time
+Dr
+What
+have
+you
+been
+doing
+Sp
+Walking
+around
+everywhere
+and
+sleeping
+where
+I
+could
+put
+my
+head
+Dr
+Are
+you
+a
+girl
+a
+man
+a
+woman
+or
+a
+boy
+Sp
+Don
+t
+you
+know
+I
+am
+a
+girl
+Dr
+How
+old
+are
+you
+Sp
+Probably
+but
+I
+m
+not
+sure
+but
+I
+think
+I
+am
+sixteen
+or
+seventeen
+Dr
+Where
+were
+you
+staying
+Sp
+I
+don
+t
+know
+Dr
+Try
+to
+think
+perhaps
+you
+can
+remember
+Sp
+I
+have
+been
+to
+so
+many
+places
+I
+should
+like
+to
+have
+a
+home
+Dr
+Have
+you
+no
+father
+and
+mother
+Sp
+No
+Dr
+Where
+did
+you
+stay
+when
+you
+were
+little
+Sp
+I
+always
+stayed
+in
+a
+big
+place
+where
+there
+were
+many
+children
+We
+were
+all
+together
+We
+used
+to
+fight
+and
+carry
+on
+all
+the
+time
+I
+don
+t
+think
+I
+ever
+had
+a
+mother
+I
+think
+I
+was
+born
+in
+that
+big
+place
+I
+was
+there
+as
+long
+as
+I
+can
+remember
+anything
+It
+was
+a
+big
+place
+with
+lots
+of
+boys
+and
+girls
+Some
+were
+good
+and
+some
+bad
+all
+kinds
+I
+did
+everything
+I
+could
+do
+I
+did
+what
+they
+told
+me
+to
+do
+and
+they
+kept
+me
+doing
+things
+all
+the
+time
+I
+kept
+on
+working
+like
+machinery
+They
+said
+Now
+Ella
+you
+go
+there
+and
+Ella
+you
+go
+there
+and
+after
+a
+little
+while
+it
+was
+Ella
+everywhere
+I
+had
+to
+fix
+so
+many
+little
+boys
+and
+girls
+that
+I
+think
+I
+was
+a
+mother
+to
+them
+all
+Dr
+Were
+they
+fond
+of
+you
+Sp
+They
+all
+came
+around
+me
+and
+I
+had
+to
+do
+things
+for
+them
+That
+was
+my
+work
+and
+I
+helped
+them
+all
+I
+could
+And
+it
+wasn
+t
+always
+easy
+to
+bathe
+and
+dress
+a
+dozen
+little
+children
+They
+were
+very
+noisy
+so
+I
+said
+for
+them
+to
+keep
+quiet
+I
+got
+mad
+sometimes
+You
+know
+I
+tried
+to
+do
+my
+very
+best
+but
+when
+they
+stepped
+on
+my
+toes
+I
+got
+mad
+Dr
+How
+long
+ago
+was
+that
+Sp
+I
+don
+t
+think
+it
+s
+so
+long
+ago
+You
+know
+I
+lost
+my
+way
+I
+went
+out
+walking
+one
+time
+and
+I
+couldn
+t
+find
+my
+way
+back
+Dr
+What
+happened
+after
+that
+Sp
+Nothing
+has
+happened
+I
+have
+been
+walking
+to
+find
+that
+Home
+again
+Dr
+Did
+you
+have
+an
+accident
+Sp
+No
+but
+I
+shall
+have
+to
+keep
+on
+walking
+until
+I
+find
+that
+Home
+Dr
+Do
+you
+want
+to
+understand
+why
+you
+have
+been
+walking
+and
+have
+no
+home
+Sp
+Somebody
+said
+if
+I
+came
+here
+I
+would
+have
+a
+home
+and
+they
+pushed
+me
+in
+and
+before
+I
+knew
+anything
+I
+was
+sitting
+here
+and
+you
+were
+singing
+I
+was
+crying
+and
+a
+girl
+said
+you
+had
+helped
+her
+and
+if
+I
+came
+here
+I
+would
+get
+happy
+When
+I
+walked
+it
+was
+half
+dark
+and
+half
+light
+I
+have
+been
+trying
+to
+find
+a
+home
+When
+I
+was
+with
+those
+children
+I
+had
+to
+work
+hard
+but
+it
+s
+better
+to
+have
+them
+than
+to
+have
+nothing
+to
+do
+I
+would
+rather
+have
+my
+children
+Dr
+Were
+they
+orphans
+like
+yourself
+Sp
+They
+thought
+I
+was
+not
+right
+in
+my
+mind
+but
+I
+was
+as
+good
+as
+any
+of
+them
+Dr
+You
+are
+talking
+to
+us
+but
+we
+cannot
+see
+you
+I
+can
+see
+my
+wife
+but
+not
+you
+Sp
+Your
+wife
+For
+land
+s
+sake
+alive
+Laughing
+heartily
+You
+know
+I
+always
+like
+to
+laugh
+and
+when
+all
+the
+children
+began
+to
+cry
+I
+started
+to
+laugh
+and
+I
+laughed
+and
+laughed
+until
+I
+got
+them
+still
+That
+was
+the
+only
+way
+I
+knew
+to
+get
+them
+all
+still
+when
+they
+were
+crying
+Then
+they
+got
+good
+natured
+again
+If
+you
+laugh
+hard
+when
+somebody
+cries
+they
+will
+stop
+crying
+and
+begin
+to
+laugh
+Sometimes
+they
+called
+me
+Laughing
+Ella
+Dr
+Where
+did
+you
+get
+this
+ring
+Sp
+I
+never
+had
+a
+ring
+before
+Greatly
+pleased
+and
+laughing
+again
+Dr
+This
+is
+not
+your
+hand
+and
+this
+is
+not
+your
+body
+Sp
+What
+are
+you
+talking
+about
+Laughing
+Dr
+It
+may
+seem
+foolish
+to
+you
+but
+it
+is
+the
+truth
+Have
+you
+ever
+heard
+that
+He
+who
+laughs
+last
+laughs
+best
+Ask
+these
+people
+whose
+body
+this
+is
+Sp
+To
+audience
+Is
+this
+my
+body
+Ans
+No
+it
+is
+not
+Sp
+Yes
+it
+is
+Dr
+This
+body
+belongs
+to
+Mrs
+Wickland
+Sp
+Mrs
+Wickland
+Laughing
+Dr
+You
+are
+laughing
+at
+your
+own
+ignorance
+You
+are
+temporarily
+controlling
+Mrs
+Wickland
+s
+body
+Sp
+I
+never
+heard
+such
+funny
+talk
+Dr
+What
+I
+am
+telling
+you
+is
+not
+so
+foolish
+as
+it
+sounds
+You
+lost
+your
+physical
+body
+Probably
+you
+were
+sick
+You
+have
+awakened
+to
+a
+new
+condition
+of
+life
+Sp
+How
+could
+I
+waken
+if
+I
+had
+no
+body
+Dr
+You
+have
+a
+spirit
+body
+Sp
+When
+you
+say
+I
+have
+lost
+my
+body
+do
+you
+mean
+I
+am
+dead
+Dr
+To
+the
+world
+yes
+The
+world
+is
+ignorant
+of
+the
+facts
+When
+a
+person
+loses
+his
+physical
+body
+people
+say
+he
+is
+dead
+That
+is
+wrong
+The
+spirit
+has
+only
+left
+the
+body
+The
+spirit
+is
+the
+real
+person
+the
+body
+is
+merely
+the
+house
+Nobody
+dies
+it
+only
+seems
+so
+Sp
+Yes
+they
+do
+I
+have
+seen
+dead
+people
+I
+knew
+a
+little
+girl
+that
+died
+and
+she
+went
+to
+Heaven
+Dr
+You
+have
+only
+seen
+dead
+bodies
+You
+can
+only
+stay
+here
+a
+short
+time
+then
+you
+will
+have
+to
+leave
+Sp
+Where
+will
+I
+go
+Dr
+To
+the
+spirit
+world
+Sp
+Say
+I
+am
+a
+real
+lady
+I
+have
+a
+necklace
+round
+my
+neck
+Dr
+That
+belongs
+to
+my
+wife
+You
+are
+an
+invisible
+spirit
+and
+have
+been
+wandering
+in
+outer
+darkness
+If
+you
+want
+a
+home
+you
+can
+have
+one
+Sp
+Do
+you
+mean
+Heaven
+Dr
+Jesus
+said
+The
+Kingdom
+of
+God
+is
+within
+you
+Sp
+Jesus
+died
+for
+our
+sins
+and
+if
+we
+are
+good
+when
+we
+die
+we
+will
+go
+to
+Heaven
+and
+be
+with
+the
+angels
+We
+prayed
+all
+the
+time
+in
+the
+Home
+Seeing
+little
+R
+G
+sitting
+beside
+her
+mother
+I
+like
+that
+little
+girl
+over
+there
+I
+have
+seen
+her
+before
+Mrs
+G
+Do
+you
+know
+Lily
+She
+is
+a
+spirit
+who
+was
+here
+last
+week
+Sp
+To
+R
+G
+You
+were
+very
+naughty
+the
+other
+day
+when
+we
+had
+company
+What
+made
+you
+so
+naughty
+Mrs
+G
+That
+other
+girl
+Lily
+made
+her
+behave
+badly
+Sp
+That
+other
+girl
+was
+awfully
+mean
+I
+felt
+like
+spanking
+her
+When
+she
+came
+near
+that
+little
+girl
+R
+G
+changed
+faces
+Dr
+She
+was
+a
+spirit
+and
+was
+influencing
+this
+little
+girl
+You
+are
+also
+a
+spirit
+and
+are
+talking
+through
+my
+wife
+s
+body
+In
+just
+that
+way
+the
+spirit
+of
+that
+girl
+acted
+through
+this
+child
+Sp
+Somebody
+told
+me
+to
+come
+in
+here
+and
+I
+would
+find
+a
+home
+and
+that
+I
+had
+a
+mission
+to
+do
+What
+does
+that
+mean
+Dr
+Probably
+you
+can
+protect
+this
+litle
+girl
+Sp
+They
+say
+I
+am
+going
+to
+be
+a
+watcher
+that
+I
+must
+see
+that
+nobody
+gets
+hold
+of
+her
+I
+don
+t
+know
+what
+they
+mean
+Dr
+That
+will
+all
+be
+explained
+to
+you
+Listen
+to
+a
+little
+Indian
+girl
+whom
+you
+will
+find
+here
+She
+will
+take
+you
+to
+a
+home
+Sp
+Will
+they
+like
+me
+In
+that
+big
+Home
+all
+the
+children
+liked
+me
+because
+I
+made
+them
+laugh
+They
+say
+I
+must
+stay
+around
+this
+little
+girl
+and
+protect
+her
+from
+influences
+Dr
+That
+means
+spirit
+influences
+Sp
+I
+am
+going
+to
+look
+into
+that
+business
+Dr
+You
+will
+need
+to
+have
+understanding
+first
+Do
+you
+see
+others
+here
+Sp
+I
+see
+many
+girls
+jumping
+around
+and
+feeling
+happy
+There
+is
+a
+nice
+lady
+here
+and
+she
+says
+her
+name
+is
+Pretty
+Girl
+She
+s
+awfully
+pretty
+There
+s
+a
+young
+girl
+and
+she
+says
+I
+can
+come
+with
+her
+She
+says
+she
+brought
+me
+here
+They
+say
+I
+always
+tried
+to
+do
+everything
+I
+could
+to
+help
+now
+they
+are
+going
+to
+take
+care
+of
+me
+Sometimes
+when
+I
+got
+a
+whipping
+I
+thought
+Well
+maybe
+I
+needed
+it
+I
+cried
+for
+a
+few
+minutes
+and
+then
+I
+went
+into
+my
+little
+corner
+and
+said
+Now
+Ella
+you
+were
+naughty
+and
+you
+needed
+that
+spanking
+I
+thought
+about
+it
+for
+a
+while
+then
+I
+began
+to
+laugh
+and
+I
+never
+felt
+the
+spanking
+at
+all
+When
+you
+feel
+good
+inside
+from
+laughing
+you
+can
+t
+feel
+things
+on
+the
+outside
+You
+just
+try
+it
+Dr
+Now
+you
+must
+go
+with
+these
+friends
+Sp
+They
+say
+when
+I
+get
+understanding
+I
+am
+going
+to
+be
+a
+little
+helper
+To
+R
+G
+Don
+t
+forget
+when
+you
+feel
+naughty
+just
+laugh
+and
+then
+you
+won
+t
+be
+naughty
+When
+I
+get
+to
+be
+nurse
+girl
+for
+that
+little
+girl
+I
+won
+t
+let
+anyone
+in
+I
+will
+see
+that
+they
+stay
+out
+I
+will
+show
+you
+Dr
+Where
+did
+you
+live
+Sp
+In
+Kansas
+Mrs
+G
+had
+formerly
+lived
+in
+Kansas
+I
+had
+to
+dress
+ten
+or
+twelve
+of
+the
+children
+and
+wash
+them
+and
+put
+them
+to
+bed
+Some
+went
+to
+school
+and
+some
+went
+to
+play
+Mrs
+G
+What
+town
+did
+you
+live
+in
+Sp
+Why
+near
+H
+Verified
+later
+Mrs
+G
+Do
+you
+remember
+the
+name
+K
+Superintendent
+of
+orphanage
+at
+H
+Sp
+Why
+yes
+Mrs
+G
+Do
+you
+know
+M
+Assistant
+Matron
+in
+charge
+of
+girls
+Sp
+She
+was
+in
+another
+room
+There
+were
+some
+naughty
+girls
+in
+M
+s
+room
+Sometimes
+even
+the
+Matron
+could
+not
+control
+some
+of
+the
+girls
+even
+when
+she
+spanked
+them
+so
+I
+had
+to
+go
+to
+them
+You
+know
+spanking
+isn
+t
+good
+all
+the
+time
+When
+the
+Matron
+spanked
+the
+little
+ones
+and
+they
+cried
+I
+would
+go
+to
+them
+after
+she
+had
+gone
+and
+make
+them
+laugh
+A
+good
+laugh
+always
+made
+them
+forget
+the
+spanking
+Mrs
+G
+Do
+you
+remember
+seeing
+me
+when
+I
+was
+a
+little
+girl
+Sp
+Staring
+then
+excited
+Yes
+Why
+yes
+I
+remember
+you
+now
+But
+you
+were
+not
+there
+all
+the
+time
+Mrs
+G
+came
+to
+the
+orphanage
+occasionally
+as
+a
+visitor
+You
+used
+to
+come
+and
+then
+go
+away
+You
+always
+had
+such
+pretty
+hair
+and
+you
+used
+to
+have
+such
+pretty
+dresses
+Do
+you
+remember
+you
+had
+a
+parasol
+and
+walked
+around
+like
+a
+big
+lady
+Mrs
+G
+Do
+you
+remember
+the
+time
+I
+fell
+into
+the
+water
+Sp
+Oh
+my
+yes
+and
+everybody
+was
+so
+excited
+and
+you
+got
+wringing
+wet
+and
+your
+Grandmother
+scolded
+you
+I
+took
+a
+liking
+to
+you
+The
+time
+you
+went
+into
+the
+water
+I
+felt
+so
+sorry
+for
+you
+You
+spoiled
+your
+nice
+dress
+That
+was
+a
+long
+long
+time
+ago
+Now
+I
+remember
+lots
+of
+things
+My
+eyes
+seem
+to
+open
+I
+took
+an
+awful
+cold
+and
+I
+got
+sore
+throat
+and
+then
+I
+remember
+I
+went
+to
+sleep
+I
+always
+liked
+you
+and
+now
+I
+ve
+found
+you
+again
+I
+am
+going
+to
+help
+and
+stop
+walking
+to
+find
+that
+home
+Mrs
+G
+I
+am
+grown
+now
+and
+married
+and
+this
+little
+girl
+is
+my
+child
+Spirits
+have
+been
+bothering
+her
+for
+some
+time
+Sp
+I
+will
+help
+you
+I
+have
+found
+you
+and
+we
+will
+be
+together
+again
+Silver
+Star
+the
+little
+Indian
+girl
+says
+I
+must
+learn
+to
+protect
+your
+little
+girl
+Dr
+The
+first
+thing
+you
+must
+do
+is
+to
+go
+to
+the
+spirit
+world
+and
+learn
+about
+your
+new
+conditions
+then
+you
+will
+understand
+how
+to
+help
+someone
+else
+Sp
+I
+will
+do
+all
+I
+can
+Now
+I
+will
+say
+Good
+Night
+but
+I
+will
+come
+again
+Don
+t
+forget
+Laughing
+Ella
+CHAPTER
+XI
+Materialism
+and
+Indifference
+THE
+binding
+influence
+of
+skepticism
+of
+mental
+apathy
+and
+unconcern
+regarding
+the
+higher
+life
+is
+so
+powerful
+after
+transition
+that
+many
+are
+held
+in
+a
+condition
+of
+helpless
+despair
+darkness
+bewilderment
+and
+rebellion
+often
+clinging
+to
+mortals
+as
+their
+only
+means
+of
+expression
+Some
+years
+ago
+a
+friend
+of
+ours
+Mrs
+F
+W
+was
+living
+in
+New
+York
+very
+happily
+married
+and
+leading
+an
+active
+normal
+life
+She
+had
+an
+understanding
+of
+the
+higher
+laws
+of
+life
+but
+her
+husband
+although
+devoted
+to
+her
+maintained
+the
+viewpoint
+of
+a
+materialist
+and
+fatalist
+Believing
+in
+no
+form
+of
+religion
+Mr
+F
+W
+was
+convinced
+that
+death
+ended
+all
+and
+had
+often
+declared
+that
+if
+his
+wife
+should
+pass
+away
+he
+would
+commit
+suicide
+and
+frequently
+urged
+her
+to
+promise
+that
+if
+he
+passed
+away
+first
+she
+would
+take
+her
+life
+but
+to
+this
+she
+would
+not
+consent
+After
+a
+brief
+illness
+this
+gentleman
+suddenly
+passed
+away
+but
+his
+wife
+could
+still
+see
+him
+very
+distinctly
+especially
+at
+night
+when
+he
+repeatedly
+awakened
+her
+frightening
+her
+so
+that
+she
+could
+not
+sleep
+Unconscious
+of
+his
+true
+condition
+he
+still
+sensed
+that
+some
+thing
+strange
+had
+occurred
+and
+wishing
+to
+remove
+the
+barrier
+which
+separated
+him
+from
+his
+wife
+he
+constantly
+urged
+her
+to
+come
+to
+him
+calling
+insistently
+Kill
+yourself
+you
+must
+come
+to
+me
+I
+want
+you
+and
+I
+will
+finally
+get
+you
+so
+kill
+yourself
+now
+The
+continual
+cry
+of
+Kill
+yourself
+was
+with
+Mrs
+F
+W
+day
+and
+night
+until
+she
+feared
+for
+her
+own
+safety
+Anxious
+to
+prevent
+any
+rash
+act
+on
+her
+part
+she
+left
+New
+York
+and
+came
+to
+us
+in
+Chicago
+for
+assistance
+During
+an
+interview
+the
+spirit
+of
+F
+W
+was
+allowed
+to
+control
+Mrs
+Wickland
+and
+when
+he
+found
+himself
+sitting
+beside
+his
+wife
+he
+grasped
+her
+hand
+kissed
+her
+wedding
+ring
+and
+asked
+if
+she
+were
+angry
+with
+him
+since
+she
+would
+not
+answer
+him
+when
+he
+spoke
+to
+her
+Then
+seizing
+her
+in
+his
+arms
+he
+kissed
+her
+frantically
+and
+crushed
+her
+in
+so
+powerful
+an
+embrace
+that
+she
+could
+not
+free
+herself
+and
+called
+for
+aid
+I
+explained
+to
+the
+spirit
+that
+he
+was
+controlling
+a
+body
+not
+his
+own
+and
+that
+he
+had
+passed
+out
+of
+the
+physical
+life
+When
+he
+at
+last
+realized
+the
+situation
+his
+regret
+for
+having
+unintentionally
+annoyed
+his
+wife
+was
+profound
+and
+he
+was
+eager
+to
+learn
+the
+higher
+laws
+in
+order
+to
+understand
+how
+he
+might
+help
+her
+Mrs
+F
+W
+then
+returned
+to
+New
+York
+and
+experienced
+no
+f
+urther
+disturbance
+F
+W
+became
+a
+loyal
+member
+of
+the
+Mercy
+Band
+and
+in
+several
+of
+many
+communications
+since
+received
+from
+him
+he
+related
+the
+bewilderment
+of
+one
+suddenly
+finding
+himself
+on
+the
+spirit
+side
+of
+life
+without
+understanding
+EXPERIENCE
+NOVEMBER
+Spirit
+F
+W
+Psychic
+MRS
+WICKLAND
+Well
+here
+I
+am
+again
+I
+want
+to
+come
+in
+to
+tell
+you
+that
+I
+have
+not
+gone
+I
+have
+to
+speak
+through
+this
+instrument
+but
+otherwise
+I
+am
+here
+to
+help
+you
+all
+do
+the
+good
+work
+you
+are
+doing
+and
+you
+know
+I
+am
+always
+here
+ready
+to
+do
+what
+I
+can
+to
+help
+you
+and
+also
+to
+help
+all
+who
+are
+in
+trouble
+I
+want
+to
+thank
+you
+for
+having
+helped
+me
+otherwise
+my
+wife
+and
+I
+would
+be
+in
+trouble
+and
+through
+my
+own
+fault
+I
+would
+not
+listen
+to
+the
+great
+wonders
+of
+the
+life
+beyond
+When
+I
+was
+in
+my
+parents
+home
+my
+parents
+were
+so
+orthodox
+so
+strong
+in
+their
+belief
+that
+they
+condemned
+every
+one
+who
+did
+not
+believe
+as
+they
+did
+and
+they
+hypnotized
+themselves
+with
+the
+idea
+that
+nothing
+was
+right
+except
+what
+they
+thought
+I
+could
+not
+live
+in
+that
+atmosphere
+and
+I
+left
+home
+I
+was
+only
+a
+boy
+when
+I
+left
+home
+and
+why
+did
+I
+go
+Because
+the
+atmosphere
+was
+so
+strongly
+orthodox
+that
+it
+drove
+me
+away
+I
+could
+not
+believe
+as
+my
+parents
+did
+and
+they
+said
+if
+I
+did
+not
+I
+was
+a
+sinner
+I
+was
+not
+a
+sinner
+and
+I
+could
+not
+believe
+as
+they
+did
+so
+I
+ran
+away
+from
+home
+I
+am
+not
+sorry
+that
+I
+left
+for
+I
+learned
+to
+know
+something
+of
+the
+outside
+world
+I
+had
+my
+troubles
+but
+I
+learned
+from
+them
+I
+learned
+the
+condition
+outside
+of
+the
+church
+and
+I
+learned
+how
+to
+battle
+for
+myself
+but
+I
+was
+bitter
+and
+so
+hard
+toward
+churches
+that
+I
+would
+not
+have
+anything
+to
+do
+with
+any
+religion
+I
+had
+heard
+so
+much
+of
+it
+through
+childhood
+and
+had
+seen
+too
+much
+of
+what
+was
+going
+on
+in
+the
+churches
+I
+do
+not
+mean
+that
+all
+churches
+are
+alike
+but
+you
+will
+find
+that
+when
+there
+is
+too
+much
+orthodoxy
+the
+people
+are
+hypnotized
+and
+feel
+they
+are
+so
+good
+that
+no
+matter
+what
+they
+do
+whether
+they
+are
+right
+or
+wrong
+they
+are
+right
+because
+they
+cannot
+do
+wrong
+They
+are
+so
+holy
+that
+even
+the
+wrong
+they
+do
+is
+considered
+right
+I
+traveled
+and
+saw
+the
+world
+but
+I
+had
+a
+great
+longing
+for
+home
+I
+came
+home
+again
+after
+I
+had
+seen
+enough
+of
+the
+world
+and
+I
+thought
+I
+would
+remain
+with
+my
+parents
+But
+the
+same
+conditions
+were
+still
+there
+I
+wanted
+to
+stay
+at
+home
+to
+do
+my
+duty
+and
+work
+but
+I
+could
+not
+I
+felt
+as
+if
+I
+were
+being
+crushed
+by
+orthodoxy
+so
+I
+went
+away
+again
+I
+traveled
+still
+further
+and
+I
+had
+new
+experiences
+I
+opened
+my
+heart
+and
+tried
+to
+look
+for
+the
+brighter
+and
+happier
+side
+of
+life
+Later
+on
+I
+met
+one
+who
+loved
+me
+one
+who
+made
+a
+home
+for
+me
+That
+was
+the
+first
+time
+I
+felt
+I
+really
+had
+a
+home
+and
+it
+was
+the
+first
+time
+in
+my
+life
+that
+I
+was
+happy
+We
+had
+only
+a
+few
+short
+years
+of
+happiness
+together
+on
+earth
+but
+those
+few
+years
+will
+always
+be
+with
+me
+I
+did
+not
+think
+there
+was
+a
+life
+after
+this
+I
+did
+not
+believe
+in
+anything
+I
+was
+tired
+of
+orthodoxy
+and
+everything
+else
+I
+thought
+when
+I
+died
+that
+would
+be
+the
+end
+and
+there
+would
+be
+no
+more
+That
+was
+also
+wrong
+Do
+not
+let
+us
+go
+to
+one
+side
+of
+the
+road
+or
+the
+other
+but
+let
+us
+stay
+in
+the
+middle
+and
+investigate
+everything
+Find
+the
+truth
+and
+stay
+in
+that
+narrow
+path
+the
+path
+of
+reason
+and
+understanding
+of
+God
+s
+wonderful
+manifestations
+I
+passed
+to
+the
+other
+side
+of
+life
+with
+the
+thought
+that
+there
+was
+nothing
+after
+death
+I
+passed
+on
+very
+suddenly
+When
+death
+came
+it
+was
+like
+a
+sleep
+I
+woke
+up
+and
+saw
+my
+dear
+little
+wife
+crying
+she
+was
+very
+sad
+but
+I
+did
+not
+realize
+that
+the
+change
+had
+taken
+place
+She
+did
+not
+listen
+to
+what
+I
+said
+she
+did
+not
+seem
+to
+hear
+I
+called
+to
+her
+and
+asked
+what
+was
+the
+trouble
+but
+she
+did
+not
+speak
+to
+me
+I
+wondered
+what
+was
+the
+matter
+for
+we
+loved
+each
+other
+dearly
+I
+began
+to
+grow
+stronger
+and
+I
+did
+not
+want
+to
+leave
+her
+I
+came
+in
+direct
+contact
+with
+her
+and
+felt
+that
+she
+must
+come
+to
+me
+and
+be
+with
+me
+for
+we
+had
+never
+been
+parted
+I
+was
+attracted
+to
+her
+through
+her
+sadness
+and
+I
+felt
+she
+must
+come
+to
+me
+I
+did
+not
+realize
+the
+change
+and
+I
+knew
+she
+wanted
+to
+be
+where
+I
+was
+so
+I
+made
+up
+my
+mind
+that
+she
+was
+coming
+to
+me
+Before
+I
+knew
+it
+I
+was
+in
+her
+magnetic
+aura
+I
+stayed
+there
+because
+I
+could
+not
+get
+away
+I
+was
+unhappy
+she
+was
+unhappy
+But
+I
+thank
+God
+she
+had
+an
+understanding
+of
+the
+life
+hereafter
+She
+knew
+the
+condition
+I
+was
+in
+and
+she
+wanted
+to
+free
+herself
+from
+the
+influence
+I
+was
+throwing
+on
+her
+so
+she
+came
+to
+these
+dear
+people
+Dr
+W
+s
+I
+was
+helped
+and
+so
+was
+she
+We
+would
+both
+have
+been
+miserable
+if
+she
+had
+not
+understood
+for
+I
+did
+not
+know
+about
+the
+life
+after
+this
+and
+I
+did
+not
+care
+I
+want
+to
+give
+a
+warning
+to
+all
+of
+you
+here
+do
+not
+doubt
+the
+next
+life
+Some
+day
+you
+will
+all
+have
+to
+go
+the
+same
+way
+Let
+us
+investigate
+let
+us
+know
+the
+truth
+before
+we
+pass
+on
+to
+the
+Great
+Beyond
+so
+we
+may
+go
+with
+open
+eyes
+and
+know
+where
+we
+are
+going
+with
+a
+definite
+knowledge
+If
+my
+wife
+had
+not
+had
+understanding
+I
+would
+have
+made
+her
+take
+her
+own
+life
+then
+where
+would
+we
+have
+been
+There
+are
+many
+passing
+from
+earth
+life
+who
+are
+in
+a
+similar
+state
+They
+find
+themselves
+in
+somebody
+s
+magnetic
+aura
+and
+cannot
+get
+out
+and
+then
+they
+obsess
+that
+person
+I
+wanted
+to
+get
+out
+of
+my
+misery
+but
+I
+did
+not
+know
+how
+and
+the
+only
+way
+I
+could
+think
+of
+was
+that
+my
+wife
+should
+come
+to
+me
+When
+there
+is
+an
+understanding
+of
+life
+then
+one
+cannot
+be
+in
+such
+a
+situation
+as
+I
+was
+when
+I
+passed
+to
+the
+spirit
+side
+of
+life
+I
+want
+to
+thank
+you
+all
+for
+helping
+me
+Since
+I
+have
+been
+helping
+other
+unfortunate
+spirits
+that
+cannot
+see
+and
+do
+not
+know
+of
+the
+higher
+life
+I
+am
+happy
+So
+I
+am
+working
+and
+now
+I
+can
+be
+with
+my
+dear
+wife
+to
+help
+and
+guide
+her
+Learn
+all
+you
+can
+of
+the
+wonderful
+life
+beyond
+I
+wish
+every
+one
+of
+you
+here
+would
+do
+your
+part
+to
+spread
+the
+truth
+that
+there
+is
+a
+life
+after
+this
+and
+that
+we
+must
+find
+it
+If
+we
+do
+not
+learn
+this
+while
+in
+the
+body
+we
+must
+do
+so
+when
+we
+reach
+the
+other
+side
+Many
+many
+times
+we
+are
+sorry
+that
+we
+did
+not
+look
+into
+the
+truth
+before
+we
+passed
+out
+of
+earth
+life
+I
+want
+to
+say
+a
+few
+words
+to
+the
+two
+young
+girls
+who
+are
+about
+to
+leave
+here
+One
+had
+been
+a
+patient
+the
+other
+her
+companion
+When
+you
+leave
+keep
+in
+your
+hearts
+what
+you
+have
+learned
+Remember
+it
+and
+learn
+more
+because
+you
+will
+have
+to
+protect
+yourselves
+Learn
+all
+you
+can
+Help
+others
+in
+similar
+trouble
+and
+you
+will
+help
+yourself
+and
+gain
+strength
+Now
+that
+you
+have
+found
+the
+truth
+do
+not
+put
+your
+light
+under
+a
+bushel
+Helping
+others
+will
+strengthen
+you
+You
+will
+receive
+strength
+and
+power
+to
+keep
+well
+and
+you
+will
+not
+then
+be
+obsessed
+any
+more
+Each
+and
+every
+one
+should
+be
+proud
+to
+help
+spread
+the
+truth
+because
+there
+is
+a
+wave
+of
+obsession
+going
+on
+everywhere
+Let
+us
+all
+do
+our
+part
+and
+do
+our
+work
+while
+we
+are
+here
+gaining
+all
+the
+knowledge
+of
+the
+life
+beyond
+that
+we
+can
+This
+is
+F
+W
+Goodbye
+EXPERIENCE
+JANUARY
+Spirit
+F
+W
+Psychic
+MRS
+WICKLAND
+How
+do
+you
+do
+Don
+t
+you
+know
+me
+I
+think
+you
+should
+This
+is
+F
+W
+The
+time
+must
+come
+when
+there
+will
+be
+circles
+of
+this
+kind
+in
+every
+little
+society
+every
+church
+Then
+people
+will
+not
+be
+taken
+to
+the
+insane
+asylum
+they
+will
+be
+helped
+Many
+of
+the
+poor
+afflicted
+ones
+who
+are
+in
+the
+asylums
+are
+controlled
+by
+spirits
+and
+should
+be
+helped
+but
+most
+persons
+think
+they
+are
+not
+worth
+bothering
+about
+They
+prefer
+to
+send
+people
+to
+the
+insane
+asylum
+and
+let
+them
+stay
+there
+We
+must
+not
+condemn
+the
+spirits
+who
+are
+controlling
+sensitives
+because
+they
+were
+not
+taught
+regarding
+the
+higher
+life
+while
+in
+the
+physical
+and
+have
+no
+knowledge
+of
+it
+Many
+believe
+that
+after
+death
+they
+will
+go
+straight
+to
+Heaven
+and
+will
+see
+God
+on
+a
+throne
+and
+there
+they
+will
+sit
+and
+sing
+and
+eat
+figs
+and
+all
+that
+When
+I
+was
+a
+boy
+my
+father
+and
+mother
+were
+very
+religious
+My
+father
+professed
+holiness
+and
+the
+environment
+was
+such
+that
+I
+felt
+as
+if
+I
+were
+being
+pulled
+to
+pieces
+I
+could
+not
+stand
+the
+atmosphere
+at
+home
+My
+father
+and
+mother
+were
+good
+people
+but
+had
+such
+a
+narrow
+way
+of
+thinking
+that
+I
+felt
+I
+was
+in
+a
+cage
+so
+I
+ran
+away
+when
+I
+was
+only
+a
+child
+I
+had
+many
+struggles
+and
+many
+hardships
+but
+I
+thank
+God
+today
+that
+I
+ran
+away
+I
+learned
+many
+bitter
+lessons
+during
+my
+life
+but
+I
+also
+learned
+not
+to
+be
+a
+mere
+believer
+and
+when
+I
+reached
+the
+spirit
+side
+of
+life
+and
+received
+an
+explanation
+of
+my
+changed
+condition
+I
+was
+not
+held
+back
+by
+any
+orthodox
+religious
+doctrine
+When
+I
+was
+on
+earth
+I
+made
+the
+best
+I
+could
+of
+circumstances
+but
+when
+it
+came
+to
+religion
+I
+did
+not
+believe
+in
+anything
+I
+felt
+that
+death
+was
+all
+and
+there
+was
+nothing
+more
+I
+would
+not
+and
+could
+not
+believe
+as
+my
+parents
+did
+I
+felt
+God
+was
+the
+Life
+of
+all
+things
+not
+an
+angry
+God
+who
+threatened
+hell
+and
+damnation
+as
+the
+churches
+taught
+I
+felt
+there
+was
+nothing
+after
+this
+and
+that
+after
+death
+all
+would
+be
+ended
+I
+made
+up
+my
+mind
+to
+do
+my
+best
+while
+on
+earth
+I
+went
+to
+church
+sometimes
+I
+traveled
+around
+saw
+the
+world
+and
+gained
+experience
+which
+is
+worth
+a
+great
+deal
+to
+me
+now
+After
+I
+was
+married
+my
+wife
+taught
+me
+a
+little
+about
+the
+other
+side
+of
+life
+a
+more
+cheerful
+view
+than
+the
+orthodox
+one
+still
+I
+did
+not
+believe
+However
+there
+was
+a
+little
+light
+of
+understanding
+I
+wanted
+my
+wife
+to
+promise
+that
+if
+I
+should
+die
+first
+she
+would
+go
+too
+and
+if
+she
+went
+first
+I
+would
+follow
+but
+she
+would
+not
+make
+that
+promise
+because
+she
+understood
+more
+of
+the
+next
+life
+than
+I
+did
+The
+time
+came
+when
+I
+had
+to
+leave
+and
+very
+suddenly
+I
+seemed
+to
+go
+into
+a
+pleasant
+sleep
+of
+rest
+and
+I
+woke
+up
+where
+It
+says
+in
+the
+Bible
+Where
+your
+treasure
+is
+there
+will
+your
+heart
+be
+also
+My
+treasure
+was
+my
+dear
+little
+wife
+and
+when
+I
+woke
+up
+I
+found
+myself
+in
+her
+magnetic
+aura
+She
+would
+not
+pay
+any
+attention
+to
+me
+and
+I
+wondered
+what
+could
+be
+the
+trouble
+and
+why
+she
+would
+not
+talk
+to
+me
+when
+I
+spoke
+to
+her
+I
+felt
+queer
+and
+I
+did
+not
+know
+where
+I
+was
+Death
+is
+only
+a
+sleep
+a
+sleep
+as
+natural
+as
+that
+which
+you
+have
+every
+night
+on
+earth
+When
+one
+awakes
+from
+the
+sleep
+of
+death
+everything
+is
+so
+natural
+that
+you
+feel
+you
+are
+still
+with
+your
+relatives
+Then
+if
+you
+get
+into
+a
+person
+s
+magnetic
+aura
+you
+live
+right
+with
+him
+and
+you
+are
+there
+I
+was
+in
+my
+wife
+s
+aura
+and
+could
+not
+realize
+why
+I
+should
+have
+to
+go
+wherever
+she
+went
+and
+not
+be
+an
+independent
+individual
+as
+I
+used
+to
+be
+and
+it
+annoyed
+me
+I
+felt
+desperate
+I
+felt
+that
+my
+wife
+must
+come
+with
+me
+I
+did
+not
+know
+where
+but
+I
+wanted
+her
+My
+love
+for
+her
+was
+so
+strong
+that
+I
+tormented
+her
+against
+my
+will
+because
+I
+had
+no
+understanding
+of
+the
+real
+life
+on
+the
+other
+side
+I
+loved
+my
+wife
+dearly
+yet
+I
+disturbed
+her
+for
+I
+did
+not
+know
+any
+better
+and
+she
+was
+tormented
+tormented
+by
+the
+one
+who
+loved
+and
+idolized
+her
+But
+she
+came
+to
+these
+kind
+people
+Dr
+W
+s
+and
+was
+freed
+and
+I
+thank
+you
+as
+I
+have
+many
+times
+before
+for
+having
+helped
+us
+both
+I
+had
+to
+learn
+by
+experience
+When
+we
+know
+about
+the
+other
+side
+we
+are
+happy
+to
+go
+and
+meet
+friends
+who
+have
+already
+gone
+over
+It
+is
+very
+necessary
+for
+every
+one
+to
+know
+the
+truth
+because
+we
+all
+have
+to
+take
+that
+journey
+I
+know
+now
+that
+God
+is
+Love
+God
+is
+everywhere
+Since
+He
+is
+Love
+and
+Wisdom
+He
+knows
+the
+past
+present
+and
+future
+How
+could
+He
+then
+have
+created
+a
+world
+only
+to
+lose
+control
+of
+it
+For
+if
+He
+later
+found
+the
+people
+full
+of
+sin
+He
+certainly
+must
+have
+lost
+control
+of
+His
+creation
+Yet
+the
+churches
+teach
+that
+having
+lost
+control
+of
+the
+world
+God
+created
+a
+person
+for
+the
+particular
+purpose
+of
+being
+sacrificed
+and
+that
+those
+who
+believe
+this
+will
+win
+a
+golden
+crown
+Let
+us
+not
+misconstrue
+God
+God
+knows
+everything
+and
+He
+reveals
+Himself
+to
+Himself
+Everything
+has
+life
+in
+Nature
+Where
+can
+you
+go
+without
+Life
+without
+God
+He
+is
+in
+everything
+Humanity
+should
+know
+that
+each
+is
+a
+part
+of
+this
+wonderful
+life
+Nothing
+should
+be
+condemned
+because
+everything
+in
+Nature
+is
+perfect
+Any
+disturbances
+in
+Nature
+are
+only
+for
+development
+As
+soon
+as
+you
+have
+trouble
+and
+something
+disturbs
+you
+you
+begin
+to
+long
+for
+a
+higher
+life
+you
+want
+to
+attain
+it
+and
+you
+work
+for
+that
+end
+Life
+goes
+on
+on
+the
+other
+side
+and
+it
+is
+always
+progressive
+Teach
+children
+the
+truth
+Teach
+the
+higher
+things
+of
+life
+All
+is
+God
+Now
+I
+must
+go
+Good
+Night
+In
+the
+following
+case
+the
+apathy
+and
+characteristics
+of
+the
+spirit
+were
+recognized
+by
+Mrs
+H
+W
+the
+mother
+of
+the
+patient
+who
+had
+known
+the
+spirit
+well
+during
+his
+earth
+life
+He
+was
+the
+son
+of
+a
+neighbor
+and
+his
+statements
+were
+confirmed
+by
+the
+patient
+and
+her
+mother
+who
+were
+from
+Chicago
+and
+both
+present
+in
+the
+circle
+EXPERIENCE
+DECEMBER
+Spirit
+FRANK
+BERGQUIST
+Patient
+MRS
+A
+Psychic
+MRS
+WICKLAND
+Doctor
+Who
+are
+you
+friend
+Some
+sleepy
+one
+Wake
+up
+and
+tell
+us
+who
+you
+are
+Have
+you
+found
+a
+happy
+condition
+or
+not
+Spirit
+No
+Dr
+Why
+not
+Sp
+I
+don
+t
+know
+Dr
+What
+was
+the
+trouble
+Didn
+t
+you
+have
+any
+faith
+or
+did
+you
+have
+too
+much
+Sp
+I
+don
+t
+know
+what
+is
+the
+matter
+with
+me
+Dr
+Do
+you
+know
+who
+you
+are
+Sp
+No
+Dr
+Can
+t
+you
+recall
+your
+name
+or
+anything
+about
+yourself
+Do
+you
+know
+how
+long
+you
+have
+been
+dead
+Sp
+I
+don
+t
+know
+Dr
+Where
+do
+you
+think
+you
+are
+Sp
+I
+don
+t
+know
+Dr
+Have
+you
+been
+sleeping
+for
+many
+years
+Sp
+Not
+many
+I
+don
+t
+feel
+natural
+Dr
+Does
+it
+interest
+you
+to
+know
+the
+reason
+Sp
+I
+can
+t
+find
+out
+I
+have
+asked
+many
+but
+they
+do
+not
+understand
+and
+they
+do
+not
+know
+They
+cannot
+inform
+me
+Dr
+They
+have
+been
+in
+darkness
+as
+well
+as
+yourself
+What
+have
+you
+been
+doing
+recently
+Sp
+Doing
+nothing
+Dr
+Don
+t
+you
+get
+tired
+of
+nothing
+Sp
+It
+is
+monotonous
+but
+what
+can
+you
+do
+Dr
+Acquire
+understanding
+Sp
+How
+can
+you
+find
+it
+Dr
+You
+cannot
+find
+understanding
+you
+have
+to
+develop
+your
+mind
+You
+are
+controlling
+a
+woman
+s
+body
+yet
+possibly
+you
+claim
+to
+be
+a
+man
+Are
+you
+a
+man
+or
+a
+woman
+Sp
+I
+am
+a
+man
+but
+have
+been
+a
+woman
+so
+long
+I
+do
+not
+know
+Confusing
+himself
+with
+the
+patient
+Mrs
+A
+Dr
+You
+have
+been
+a
+woman
+a
+long
+time
+Have
+you
+caused
+trouble
+Sp
+Not
+that
+I
+know
+of
+Dr
+Don
+t
+you
+find
+that
+things
+do
+not
+seem
+just
+right
+Sp
+It
+has
+been
+queer
+I
+told
+you
+that
+before
+Dr
+Did
+anything
+disturb
+you
+Sp
+A
+whole
+lot
+Dr
+What
+woke
+you
+up
+and
+disturbed
+you
+and
+caused
+you
+to
+come
+here
+Sp
+I
+don
+t
+know
+Dr
+Have
+you
+been
+disturbed
+at
+all
+Have
+you
+had
+any
+peculiar
+experience
+lately
+Sp
+Yes
+Dr
+In
+what
+way
+Sp
+In
+many
+ways
+I
+cannot
+talk
+as
+I
+want
+to
+talk
+and
+I
+cannot
+do
+as
+I
+please
+to
+do
+Dr
+What
+do
+you
+please
+to
+do
+Sp
+I
+like
+to
+talk
+and
+sing
+Dr
+Have
+you
+not
+been
+able
+to
+do
+that
+Sp
+No
+Dr
+What
+is
+your
+name
+if
+I
+may
+ask
+Sp
+I
+don
+t
+know
+Dr
+Surely
+you
+do
+Sp
+It
+seems
+I
+have
+forgotten
+everything
+I
+ever
+knew
+Dr
+There
+probably
+was
+not
+much
+to
+forget
+anyhow
+That
+is
+very
+often
+the
+case
+What
+did
+you
+do
+in
+life
+Sp
+Any
+little
+thing
+now
+and
+then
+Dr
+Did
+you
+have
+religious
+belief
+of
+any
+kind
+Sp
+Yawning
+and
+stretching
+lazily
+Why
+yes
+Dr
+What
+did
+you
+believe
+in
+Sp
+I
+believed
+in
+God
+and
+Christ
+and
+the
+devil
+and
+the
+other
+things
+Dr
+Have
+you
+seen
+any
+of
+them
+You
+have
+probably
+been
+dead
+a
+long
+time
+Sp
+I
+don
+t
+know
+I
+do
+not
+feel
+dead
+Mrs
+H
+W
+Were
+you
+a
+Baptist
+a
+Methodist
+or
+what
+Sp
+I
+was
+a
+little
+of
+everything
+Mrs
+H
+W
+Where
+did
+you
+live
+Sp
+I
+don
+t
+know
+I
+m
+tired
+Dr
+You
+have
+been
+sleeping
+long
+enough
+What
+else
+have
+you
+been
+doing
+Sp
+Nothing
+Dr
+Don
+t
+you
+get
+tired
+of
+that
+Sp
+You
+get
+pretty
+tired
+of
+doing
+nothing
+It
+is
+monotonous
+And
+to
+be
+a
+fool
+woman
+all
+the
+time
+I
+have
+seen
+nothing
+but
+women
+women
+women
+and
+women
+Other
+spirits
+obsessing
+patient
+I
+saw
+nothing
+else
+Dr
+Don
+t
+you
+get
+tired
+of
+women
+Sp
+They
+do
+get
+pretty
+monotonous
+Dr
+Do
+they
+know
+you
+are
+there
+Sp
+I
+don
+t
+know
+I
+talk
+but
+they
+do
+not
+answer
+me
+Dr
+That
+is
+very
+foolish
+Sp
+It
+seems
+so
+to
+me
+Dr
+Do
+you
+seem
+to
+be
+in
+a
+strange
+condition
+yourself
+Sp
+I
+cannot
+tell
+what
+it
+is
+but
+it
+is
+queer
+Dr
+You
+don
+t
+care
+very
+much
+Sp
+No
+I
+don
+t
+care
+Dr
+Isn
+t
+that
+an
+unfortunate
+condition
+to
+be
+in
+Sp
+I
+have
+been
+walking
+from
+one
+place
+to
+another
+Dr
+Why
+did
+you
+do
+that
+Sp
+I
+had
+nothing
+else
+to
+do
+Dr
+Couldn
+t
+you
+find
+any
+work
+Sp
+Nobody
+wanted
+me
+Dr
+What
+could
+you
+do
+Sp
+Anything
+but
+nothing
+in
+particular
+Dr
+Where
+did
+you
+live
+Sp
+In
+Chicago
+at
+times
+Dr
+Did
+you
+go
+from
+one
+city
+to
+another
+Sp
+I
+was
+in
+Rockford
+and
+Galesburg
+I
+was
+anywhere
+everywhere
+It
+is
+a
+tiresome
+job
+Dr
+You
+must
+have
+been
+born
+tired
+you
+are
+so
+indifferent
+Sp
+What
+was
+the
+use
+Dr
+Did
+you
+try
+to
+understand
+the
+wonderful
+facts
+of
+life
+Sp
+Life
+No
+Dr
+I
+suppose
+you
+only
+believed
+that
+Christ
+died
+for
+your
+sins
+and
+that
+is
+a
+lazy
+man
+s
+job
+That
+is
+not
+enough
+SP
+It
+s
+good
+enough
+for
+me
+It
+was
+good
+enough
+for
+my
+father
+and
+mother
+and
+it
+s
+good
+enough
+for
+me
+Dr
+Are
+your
+father
+and
+mother
+alive
+Sp
+Why
+yes
+I
+think
+so
+but
+I
+don
+t
+know
+Dr
+Where
+did
+they
+live
+Chicago
+Sp
+Somewhere
+around
+Bethany
+Home
+near
+the
+Methodist
+Church
+Dr
+Did
+your
+father
+and
+mother
+belong
+to
+that
+church
+Sp
+Yes
+Dr
+What
+was
+your
+father
+s
+name
+Sp
+I
+don
+t
+know
+Dr
+What
+was
+your
+name
+Sp
+It
+s
+a
+long
+time
+since
+I
+heard
+it
+and
+I
+don
+t
+know
+Mrs
+H
+W
+Recognizing
+from
+the
+foregoing
+the
+traits
+of
+a
+former
+neighbor
+Was
+it
+Frank
+Sp
+I
+don
+t
+care
+what
+you
+call
+me
+call
+me
+anything
+Dr
+We
+don
+t
+want
+to
+do
+that
+Sp
+I
+don
+t
+care
+call
+me
+anything
+I
+am
+pleased
+with
+anything
+Dr
+You
+are
+mentally
+lazy
+Sp
+What
+s
+the
+use
+Mrs
+H
+W
+Do
+you
+know
+anybody
+by
+the
+name
+of
+B
+Sp
+Along
+time
+ago
+Mrs
+H
+W
+Who
+was
+he
+Sp
+He
+was
+somebody
+Mrs
+H
+W
+Were
+you
+related
+to
+him
+by
+marriage
+Whom
+did
+he
+marry
+Sp
+He
+married
+somebody
+I
+knew
+Dr
+What
+was
+her
+name
+Sp
+Names
+have
+gone
+from
+my
+memory
+Yes
+I
+know
+it
+was
+my
+sister
+Say
+I
+don
+t
+know
+what
+is
+the
+matter
+with
+me
+Dr
+You
+are
+dead
+Sp
+Dead
+Then
+I
+m
+gone
+Dr
+Do
+you
+remember
+how
+you
+died
+Sp
+I
+didn
+t
+know
+I
+was
+dead
+How
+can
+I
+remember
+how
+I
+died
+Dr
+Well
+you
+are
+dead
+Sp
+I
+am
+That
+s
+a
+funny
+thing
+but
+I
+don
+t
+care
+Dr
+You
+are
+occupying
+a
+lady
+s
+body
+now
+Sp
+I
+ve
+had
+enough
+of
+ladies
+I
+have
+been
+walking
+and
+walking
+between
+ladies
+until
+I
+am
+sick
+and
+tired
+of
+them
+Dr
+I
+think
+you
+were
+born
+with
+that
+tired
+feeling
+Sp
+I
+think
+so
+myself
+because
+I
+am
+always
+tired
+I
+do
+not
+care
+very
+much
+for
+work
+anyhow
+It
+was
+just
+as
+well
+not
+to
+work
+I
+was
+born
+to
+be
+traveling
+around
+because
+I
+was
+never
+satisfied
+to
+be
+in
+one
+place
+I
+liked
+to
+see
+the
+world
+I
+did
+not
+want
+to
+do
+very
+much
+except
+what
+came
+along
+just
+enough
+so
+I
+could
+get
+along
+Dr
+Were
+you
+a
+sort
+of
+tramp
+Sp
+I
+was
+a
+little
+better
+than
+a
+tramp
+but
+next
+door
+to
+it
+Mrs
+H
+W
+Do
+you
+remember
+that
+you
+had
+a
+twin
+brother
+Sp
+Something
+like
+that
+but
+what
+is
+the
+matter
+with
+me
+anyhow
+I
+cannot
+recall
+anything
+everything
+is
+gone
+I
+do
+not
+know
+for
+sure
+what
+is
+my
+name
+Dr
+Sit
+quietly
+and
+think
+Sp
+After
+a
+moment
+It
+is
+Bergquist
+I
+think
+it
+is
+Frank
+yes
+it
+is
+Frank
+I
+heard
+that
+some
+years
+ago
+It
+s
+an
+awful
+long
+time
+since
+I
+heard
+it
+It
+seems
+so
+far
+away
+that
+it
+is
+miles
+and
+miles
+away
+that
+name
+is
+It
+seems
+like
+I
+was
+walking
+away
+from
+it
+The
+more
+I
+walked
+the
+more
+I
+forgot
+After
+a
+while
+I
+walked
+so
+long
+that
+I
+forgot
+who
+I
+was
+I
+walked
+with
+women
+women
+women
+until
+I
+thought
+I
+was
+a
+woman
+myself
+and
+really
+sometimes
+I
+thought
+I
+was
+And
+probably
+I
+am
+a
+woman
+for
+all
+I
+know
+and
+for
+all
+I
+care
+What
+is
+the
+use
+anyway
+Mrs
+H
+W
+Did
+you
+live
+on
+Paulina
+Street
+Ravenswood
+Chicago
+Sp
+Yes
+Chicago
+that
+was
+where
+I
+was
+some
+of
+the
+time
+Dr
+Do
+you
+know
+where
+you
+are
+now
+Sp
+In
+Chicago
+Dr
+You
+are
+in
+California
+Sp
+California
+Well
+if
+I
+didn
+t
+walk
+after
+those
+women
+clear
+to
+California
+Well
+that
+was
+a
+long
+walk
+I
+know
+I
+haven
+t
+been
+riding
+I
+have
+walked
+for
+miles
+and
+miles
+and
+miles
+At
+last
+I
+got
+to
+California
+That
+was
+some
+walk
+I
+am
+pretty
+tired
+Why
+did
+you
+tell
+me
+I
+walked
+that
+far
+Because
+that
+makes
+me
+very
+tired
+and
+now
+I
+feel
+I
+have
+to
+rest
+Mrs
+H
+W
+That
+is
+natural
+for
+you
+Do
+you
+know
+me
+Sp
+I
+thought
+when
+I
+looked
+at
+you
+I
+had
+seen
+that
+face
+before
+Didn
+t
+you
+go
+to
+the
+Methodist
+Church
+I
+think
+I
+have
+seen
+you
+there
+Mrs
+H
+W
+Do
+you
+remember
+the
+bakery
+on
+W
+Avenue
+Across
+the
+street
+from
+the
+boy
+s
+home
+Sp
+Some
+time
+ago
+that
+was
+Mrs
+H
+W
+Look
+at
+me
+again
+and
+see
+if
+I
+am
+not
+the
+one
+who
+had
+that
+store
+Sp
+Yes
+and
+you
+had
+two
+girls
+Mrs
+H
+W
+Yes
+I
+did
+Would
+you
+know
+one
+of
+them
+if
+you
+saw
+her
+Would
+you
+know
+L
+Sp
+I
+didn
+t
+know
+them
+very
+much
+I
+liked
+that
+girl
+but
+you
+could
+only
+look
+at
+those
+girls
+with
+one
+eye
+Mrs
+H
+W
+Somebody
+looked
+at
+them
+with
+two
+eyes
+They
+are
+both
+married
+Sp
+I
+looked
+at
+them
+with
+a
+quarter
+of
+an
+eye
+They
+wouldn
+t
+look
+at
+a
+fellow
+like
+me
+Dr
+Has
+anybody
+else
+looked
+at
+you
+Sp
+I
+don
+t
+know
+Women
+women
+women
+I
+have
+been
+with
+them
+It
+is
+a
+funny
+world
+anyhow
+Dr
+What
+did
+they
+call
+you
+when
+you
+felt
+that
+you
+were
+a
+woman
+Sp
+I
+don
+t
+hear
+anything
+Of
+course
+I
+have
+had
+a
+long
+walk
+if
+I
+have
+walked
+to
+California
+Sometimes
+I
+got
+chased
+out
+when
+I
+was
+behind
+then
+I
+ran
+fast
+as
+I
+could
+and
+sometimes
+I
+got
+in
+front
+Dr
+In
+front
+of
+what
+SP
+The
+people
+Do
+you
+suppose
+I
+walked
+that
+long
+distance
+alone
+I
+was
+walking
+with
+a
+big
+crowd
+Spirits
+obsessing
+patient
+At
+times
+I
+was
+before
+and
+then
+I
+was
+behind
+What
+s
+the
+use
+We
+all
+talked
+the
+same
+thing
+Dr
+Where
+did
+you
+get
+food
+when
+you
+were
+out
+walking
+Sp
+I
+didn
+t
+seem
+to
+need
+much
+I
+have
+learned
+to
+fast
+Dr
+Didn
+t
+you
+go
+to
+different
+houses
+and
+ask
+for
+food
+Sp
+At
+times
+but
+that
+was
+long
+ago
+Somebody
+said
+if
+you
+fast
+three
+or
+four
+days
+you
+would
+not
+feel
+your
+stomach
+It
+was
+a
+bother
+to
+feel
+hungry
+if
+you
+didn
+t
+have
+anything
+to
+eat
+I
+fasted
+pretty
+good
+and
+it
+was
+a
+good
+thing
+I
+did
+Mrs
+H
+W
+Did
+your
+parents
+live
+on
+the
+top
+floor
+Sp
+In
+the
+basement
+Dr
+To
+Mrs
+H
+W
+Is
+that
+correct
+Mrs
+H
+W
+Yes
+it
+is
+I
+think
+his
+parents
+are
+dead
+now
+Sp
+They
+are
+When
+did
+they
+die
+Mrs
+H
+W
+Not
+long
+ago
+Your
+mother
+died
+a
+year
+ago
+and
+your
+father
+a
+few
+months
+ago
+Sp
+Who
+told
+you
+that
+Mrs
+H
+W
+Your
+sister
+Sp
+Why
+didn
+t
+she
+tell
+me
+Mrs
+H
+W
+You
+are
+dead
+Sp
+Dead
+I
+am
+dead
+I
+feel
+full
+of
+life
+Mrs
+H
+W
+Didn
+t
+you
+used
+to
+go
+to
+saloons
+Sp
+Oh
+don
+t
+talk
+like
+that
+in
+company
+Mrs
+H
+W
+We
+have
+no
+company
+Sp
+I
+went
+but
+don
+t
+tell
+them
+that
+Mrs
+H
+W
+Why
+don
+t
+you
+want
+them
+to
+know
+Sp
+Because
+they
+wouldn
+t
+like
+it
+Mother
+doesn
+t
+like
+me
+to
+go
+there
+Mrs
+H
+W
+You
+had
+a
+good
+father
+and
+mother
+Sp
+I
+wanted
+to
+live
+my
+life
+but
+they
+wanted
+to
+live
+mine
+for
+me
+Mrs
+H
+W
+What
+did
+you
+do
+when
+you
+were
+home
+with
+them
+Sp
+Nothing
+Mrs
+H
+W
+Didn
+t
+you
+help
+in
+the
+kitchen
+Sp
+Mother
+wanted
+me
+to
+but
+I
+didn
+t
+do
+very
+much
+of
+anything
+I
+used
+to
+wash
+the
+dishes
+for
+her
+but
+I
+didn
+t
+want
+to
+do
+it
+Mrs
+H
+W
+She
+made
+you
+Sp
+You
+know
+she
+said
+If
+you
+want
+to
+eat
+you
+will
+have
+to
+work
+Say
+that
+isn
+t
+right
+I
+always
+liked
+to
+slip
+out
+if
+I
+could
+That
+s
+natural
+Dr
+No
+it
+is
+not
+It
+may
+be
+to
+some
+but
+not
+to
+others
+Sp
+Everybody
+likes
+to
+get
+out
+and
+do
+some
+idling
+around
+You
+want
+a
+little
+freedom
+Mrs
+H
+W
+You
+wanted
+all
+freedom
+you
+wanted
+to
+just
+loaf
+around
+Sp
+I
+worked
+sometimes
+once
+in
+a
+while
+I
+gave
+my
+mother
+money
+at
+times
+but
+it
+was
+not
+often
+I
+had
+any
+Mrs
+H
+W
+You
+liked
+best
+to
+walk
+from
+door
+to
+door
+and
+beg
+your
+food
+and
+get
+five
+dollars
+wherever
+you
+could
+Sp
+What
+was
+the
+use
+anyhow
+Dr
+We
+want
+you
+to
+understand
+that
+you
+have
+passed
+out
+of
+your
+body
+You
+have
+been
+dead
+a
+long
+time
+This
+lady
+Mrs
+H
+W
+seems
+to
+know
+who
+you
+are
+Sp
+She
+made
+good
+biscuits
+I
+wished
+sometimes
+I
+had
+one
+Mrs
+H
+W
+Did
+you
+ever
+have
+any
+of
+my
+doughnuts
+Sp
+Yes
+sometimes
+you
+gave
+me
+some
+I
+was
+supposed
+to
+look
+for
+work
+but
+some
+way
+or
+other
+I
+did
+not
+work
+and
+I
+didn
+t
+care
+very
+much
+either
+Dr
+Now
+then
+understand
+friend
+that
+you
+are
+so
+called
+dead
+You
+have
+been
+an
+ignorant
+spirit
+for
+a
+long
+time
+in
+the
+outer
+darkness
+which
+the
+Bible
+speaks
+of
+This
+is
+not
+your
+body
+Sp
+Yes
+it
+is
+Dr
+It
+is
+my
+wife
+s
+Sp
+How
+could
+I
+be
+your
+wife
+when
+I
+am
+a
+man
+Dr
+You
+are
+an
+invisible
+spirit
+We
+do
+not
+see
+you
+We
+only
+hear
+you
+talk
+Do
+you
+recognize
+these
+hands
+Indicating
+hands
+of
+psychic
+Sp
+I
+have
+been
+so
+strange
+for
+a
+long
+time
+What
+in
+the
+world
+is
+it
+It
+has
+been
+so
+strange
+at
+times
+There
+was
+lightning
+and
+thunder
+electricity
+given
+patient
+and
+it
+bothered
+me
+terribly
+I
+have
+not
+been
+left
+alone
+for
+one
+minute
+It
+was
+fierce
+that
+thunder
+and
+lightning
+The
+lightning
+is
+the
+worst
+the
+thunder
+is
+not
+so
+bad
+The
+lightning
+is
+so
+bad
+that
+it
+doesn
+t
+seem
+as
+if
+I
+should
+really
+see
+afterwards
+I
+should
+say
+it
+was
+coming
+down
+in
+torrents
+It
+seemed
+as
+if
+you
+got
+knocked
+in
+the
+head
+and
+then
+got
+it
+again
+and
+again
+It
+was
+wonderful
+how
+you
+got
+it
+It
+was
+a
+wonder
+for
+it
+woke
+me
+up
+It
+woke
+me
+up
+good
+and
+plenty
+at
+times
+so
+that
+I
+could
+not
+stand
+it
+any
+longer
+Mrs
+H
+W
+I
+am
+glad
+of
+it
+Sp
+I
+don
+t
+see
+why
+you
+should
+be
+glad
+Mrs
+H
+W
+I
+will
+tell
+you
+why
+I
+am
+glad
+You
+have
+been
+bothering
+my
+daughter
+for
+a
+long
+time
+Sp
+How
+do
+you
+know
+I
+have
+Mrs
+H
+W
+That
+is
+the
+reason
+you
+were
+with
+women
+all
+the
+time
+You
+are
+ignorant
+and
+have
+been
+troubling
+my
+daughter
+You
+got
+thunder
+and
+lightning
+for
+it
+when
+my
+daughter
+had
+electric
+treatments
+and
+you
+got
+out
+I
+am
+glad
+of
+it
+Dr
+I
+am
+the
+one
+who
+gave
+the
+electricity
+to
+you
+We
+chase
+ignorant
+spirits
+away
+with
+it
+Sp
+I
+think
+you
+had
+better
+be
+a
+little
+milder
+with
+it
+then
+Dr
+I
+do
+not
+like
+to
+give
+it
+but
+it
+is
+sometimes
+necessary
+Sp
+I
+do
+not
+see
+why
+I
+should
+need
+to
+have
+so
+much
+of
+it
+coming
+down
+like
+thunder
+and
+lightning
+You
+get
+it
+in
+the
+head
+like
+a
+sledge
+hammer
+Dr
+But
+we
+succeeded
+in
+driving
+you
+from
+the
+lady
+Sp
+I
+didn
+t
+bother
+any
+lady
+I
+didn
+t
+have
+a
+chance
+I
+was
+walking
+behind
+them
+but
+it
+does
+not
+seem
+to
+me
+that
+I
+had
+any
+way
+of
+bothering
+them
+Mrs
+H
+W
+You
+surely
+bothered
+my
+daughter
+Dr
+That
+was
+why
+we
+had
+to
+give
+you
+electricity
+Were
+there
+any
+others
+with
+you
+Sp
+There
+are
+many
+with
+us
+Dr
+Are
+there
+any
+more
+left
+Sp
+I
+don
+t
+know
+There
+are
+some
+that
+come
+and
+go
+Dr
+They
+will
+get
+electricity
+every
+time
+they
+come
+Sp
+I
+m
+not
+going
+to
+have
+it
+any
+more
+I
+don
+t
+think
+I
+need
+it
+Dr
+If
+you
+stay
+around
+you
+will
+get
+it
+Sp
+I
+don
+t
+care
+for
+any
+more
+Dr
+Have
+you
+ever
+been
+called
+Mrs
+A
+Sp
+No
+I
+never
+was
+a
+woman
+so
+I
+never
+could
+be
+anybody
+by
+that
+name
+I
+was
+with
+women
+Dr
+Did
+you
+hear
+that
+name
+at
+all
+Sp
+No
+Mrs
+H
+W
+That
+is
+my
+daughter
+s
+name
+and
+you
+got
+that
+electricity
+for
+being
+around
+her
+Sp
+Did
+you
+order
+that
+for
+me
+Mrs
+H
+W
+Yes
+I
+did
+Sp
+Then
+you
+are
+a
+bad
+woman
+to
+do
+that
+Mrs
+H
+W
+I
+wanted
+you
+to
+leave
+my
+daughter
+alone
+Sp
+I
+told
+you
+I
+never
+bothered
+your
+daughter
+I
+walked
+behind
+the
+women
+Dr
+You
+walked
+a
+little
+too
+close
+Were
+you
+the
+only
+man
+among
+so
+many
+women
+Sp
+There
+is
+something
+like
+what
+you
+would
+call
+a
+line
+and
+you
+have
+to
+walk
+in
+that
+line
+and
+you
+cannot
+go
+out
+I
+did
+not
+want
+to
+work
+The
+patient
+suffered
+from
+a
+heavy
+listlessness
+Mrs
+H
+W
+You
+were
+too
+lazy
+Sp
+What
+was
+the
+use
+when
+you
+could
+get
+your
+food
+without
+It
+is
+just
+as
+well
+to
+take
+things
+instead
+of
+working
+yourself
+to
+death
+Dr
+That
+is
+a
+poor
+argument
+People
+who
+accomplish
+something
+are
+happy
+Sp
+I
+do
+not
+fancy
+it
+If
+people
+want
+to
+work
+like
+slaves
+they
+are
+welcome
+to
+it
+for
+me
+I
+would
+not
+work
+Dr
+To
+Mrs
+H
+W
+Is
+that
+like
+this
+man
+s
+disposition
+Mrs
+H
+W
+Yes
+every
+inch
+of
+him
+His
+name
+is
+Bergquist
+Sp
+How
+do
+you
+know
+Mrs
+H
+W
+Your
+disposition
+and
+actions
+are
+clear
+to
+me
+Sp
+Can
+you
+know
+one
+s
+name
+before
+you
+know
+the
+person
+Mrs
+H
+W
+I
+know
+you
+by
+your
+actions
+I
+used
+to
+know
+you
+well
+I
+knew
+your
+brother
+who
+went
+to
+war
+in
+Cuba
+He
+came
+home
+had
+consumption
+and
+died
+Sp
+I
+had
+another
+brother
+who
+died
+Dr
+Now
+friend
+I
+want
+you
+to
+understand
+Mrs
+H
+W
+Listen
+to
+the
+doctor
+Sp
+Doctor
+I
+am
+not
+sick
+Mrs
+H
+W
+You
+need
+advice
+from
+the
+doctor
+Sp
+Advice
+Then
+I
+must
+go
+to
+a
+lawyer
+When
+I
+was
+sick
+I
+went
+to
+a
+doctor
+when
+I
+needed
+advice
+I
+would
+go
+to
+a
+lawyer
+Dr
+You
+are
+mentally
+sick
+Sp
+I
+wouldn
+t
+say
+I
+am
+sick
+I
+feel
+pretty
+good
+I
+feel
+better
+than
+I
+have
+for
+years
+and
+years
+in
+the
+past
+Dr
+You
+will
+not
+feel
+yourself
+so
+very
+long
+unless
+you
+change
+your
+attitude
+You
+are
+controlling
+my
+wife
+s
+body
+Sp
+I
+can
+do
+as
+I
+please
+for
+that
+matter
+Dr
+You
+cannot
+in
+this
+instance
+Do
+you
+think
+that
+I
+want
+you
+to
+sit
+here
+indefinitely
+controlling
+my
+wife
+s
+body
+Look
+at
+those
+hands
+Are
+they
+yours
+Wake
+up
+and
+don
+t
+be
+so
+sleepy
+Do
+you
+know
+that
+hand
+Sp
+How
+did
+I
+get
+it
+I
+have
+been
+with
+women
+so
+much
+that
+I
+have
+a
+woman
+s
+hands
+Dr
+You
+must
+wake
+up
+and
+listen
+The
+fact
+is
+you
+are
+an
+ignorant
+spirit
+You
+have
+been
+taken
+away
+from
+that
+lady
+you
+have
+been
+bothering
+her
+for
+a
+long
+time
+You
+lost
+your
+body
+years
+ago
+Sp
+That
+doesn
+t
+interest
+me
+Dr
+It
+will
+have
+to
+You
+died
+a
+long
+time
+ago
+You
+are
+an
+invisible
+spirit
+You
+have
+been
+hovering
+around
+that
+lady
+and
+troubling
+her
+She
+has
+been
+brought
+to
+California
+to
+be
+freed
+from
+spirits
+of
+which
+you
+are
+one
+and
+I
+have
+had
+to
+give
+her
+the
+electricity
+to
+get
+rid
+of
+you
+You
+have
+been
+driven
+away
+from
+her
+and
+allowed
+to
+control
+my
+wife
+s
+body
+The
+point
+is
+you
+will
+have
+to
+leave
+this
+body
+and
+become
+sensible
+Sp
+I
+want
+to
+ask
+you
+this
+if
+I
+haven
+t
+any
+sense
+what
+will
+you
+do
+Mother
+used
+to
+say
+I
+had
+no
+sense
+Dr
+You
+have
+been
+lazy
+but
+now
+you
+will
+have
+to
+use
+the
+sense
+that
+God
+gave
+you
+even
+if
+it
+is
+only
+a
+little
+You
+cannot
+be
+lazy
+any
+longer
+Sp
+I
+will
+not
+work
+either
+Dr
+You
+will
+have
+to
+in
+the
+spirit
+life
+Sp
+How
+do
+you
+know
+How
+do
+you
+know
+they
+will
+make
+me
+work
+Dr
+You
+will
+be
+glad
+to
+work
+You
+cannot
+bother
+people
+any
+more
+Sp
+What
+do
+you
+mean
+Dr
+Ignorant
+spirits
+hover
+around
+the
+earth
+plane
+interfering
+with
+mortals
+and
+make
+them
+act
+as
+if
+insane
+Sp
+What
+is
+a
+poor
+fellow
+to
+do
+Dr
+Use
+the
+sense
+God
+gave
+you
+Sp
+I
+have
+none
+What
+am
+I
+to
+do
+You
+say
+I
+am
+controlling
+a
+body
+that
+does
+not
+belong
+to
+me
+Dr
+Yes
+and
+you
+must
+leave
+this
+body
+and
+listen
+to
+spirits
+who
+will
+help
+you
+My
+wife
+allows
+you
+to
+control
+her
+body
+in
+order
+to
+free
+the
+other
+lady
+Sp
+What
+kind
+of
+a
+wife
+is
+that
+Dr
+She
+is
+a
+psychic
+sensitive
+who
+allows
+ignorant
+spirits
+like
+yourself
+to
+control
+her
+body
+If
+you
+will
+look
+around
+you
+will
+find
+spirits
+who
+will
+help
+you
+Sp
+Spirits
+Dr
+You
+will
+find
+spirits
+who
+will
+help
+you
+and
+teach
+you
+how
+to
+progress
+You
+can
+also
+find
+happiness
+Sp
+My
+legs
+are
+getting
+numb
+Dr
+That
+body
+is
+not
+yours
+We
+do
+not
+see
+you
+Sp
+No
+Dr
+You
+are
+invisible
+to
+us
+Can
+you
+understand
+that
+Sp
+I
+suppose
+I
+can
+t
+get
+that
+in
+my
+head
+Dr
+Look
+around
+and
+you
+will
+find
+invisibles
+like
+yourself
+who
+will
+help
+you
+Sp
+I
+don
+t
+need
+help
+Dr
+You
+do
+you
+need
+help
+to
+progress
+to
+the
+spirit
+land
+Sp
+Where
+is
+that
+place
+Dr
+It
+is
+an
+invisible
+plane
+around
+the
+earth
+and
+you
+will
+find
+it
+if
+you
+look
+for
+it
+You
+will
+be
+taught
+that
+life
+is
+something
+worth
+while
+Sp
+I
+think
+I
+could
+go
+to
+sleep
+Dr
+If
+you
+do
+I
+will
+give
+you
+some
+electricity
+Mrs
+H
+W
+Think
+of
+the
+sorrow
+you
+caused
+your
+mother
+Sp
+I
+was
+a
+fool
+Dr
+You
+were
+not
+one
+you
+allowed
+yourself
+to
+be
+one
+You
+were
+lazy
+Sp
+Mother
+is
+here
+spirit
+but
+I
+can
+t
+see
+what
+she
+wants
+with
+me
+Dr
+Listen
+to
+what
+she
+says
+Sp
+She
+says
+You
+have
+been
+a
+very
+wayward
+boy
+Now
+try
+to
+wake
+up
+and
+be
+different
+because
+life
+is
+different
+on
+this
+side
+and
+you
+will
+have
+to
+earn
+your
+happiness
+Dr
+Then
+you
+will
+find
+that
+life
+is
+worth
+while
+Sp
+Mother
+seems
+to
+be
+very
+happy
+Dr
+She
+will
+help
+you
+if
+you
+are
+in
+earnest
+Sp
+I
+want
+to
+go
+with
+her
+I
+must
+learn
+Dr
+You
+must
+be
+obedient
+Sp
+Mother
+says
+she
+is
+happy
+she
+got
+me
+to
+come
+to
+her
+now
+I
+am
+happy
+in
+my
+way
+to
+see
+her
+Dr
+Try
+to
+realize
+that
+life
+means
+something
+Sp
+I
+will
+go
+with
+her
+then
+She
+says
+I
+must
+not
+bother
+that
+lady
+any
+more
+After
+the
+last
+bombarding
+I
+got
+I
+will
+leave
+that
+body
+alone
+I
+thought
+my
+head
+would
+come
+off
+I
+got
+it
+all
+right
+Mrs
+H
+W
+You
+certainly
+did
+Can
+you
+see
+your
+sister
+F
+Spirit
+Sp
+She
+s
+here
+with
+a
+lot
+of
+people
+I
+think
+I
+will
+go
+now
+Dr
+How
+will
+you
+go
+I
+will
+explain
+to
+you
+Sp
+No
+I
+am
+ready
+to
+go
+Dr
+How
+Sp
+I
+will
+get
+up
+and
+go
+Trying
+in
+vain
+to
+rise
+I
+can
+t
+move
+Dr
+You
+have
+only
+partial
+control
+of
+this
+body
+now
+You
+will
+have
+to
+think
+yourself
+with
+your
+mother
+Sp
+Think
+myself
+Dr
+You
+will
+have
+to
+travel
+by
+thought
+Sp
+You
+come
+over
+there
+Mother
+pointing
+then
+I
+will
+jump
+over
+to
+you
+by
+thought
+Sitting
+still
+for
+a
+moment
+then
+laughing
+heartily
+I
+can
+t
+jump
+That
+would
+be
+quite
+a
+jump
+Dr
+You
+are
+in
+California
+now
+how
+long
+does
+it
+take
+you
+to
+think
+yourself
+in
+Chicago
+You
+can
+be
+there
+instantly
+in
+thought
+for
+you
+have
+no
+physical
+body
+to
+take
+with
+you
+In
+the
+spirit
+world
+thought
+is
+the
+motive
+power
+Sp
+Now
+I
+am
+going
+to
+think
+quick
+and
+jump
+But
+I
+don
+t
+get
+there
+Dr
+You
+must
+relax
+and
+quietly
+think
+yourself
+with
+your
+mother
+and
+then
+you
+will
+lose
+control
+of
+this
+body
+Mrs
+H
+W
+Can
+you
+see
+F
+your
+sister
+Sp
+Yes
+and
+father
+too
+They
+are
+coming
+to
+get
+me
+They
+say
+they
+want
+me
+to
+reform
+and
+be
+a
+good
+fellow
+Yes
+I
+suppose
+I
+must
+Dr
+You
+must
+go
+now
+Your
+first
+lesson
+in
+spirit
+life
+is
+to
+think
+properly
+Sp
+It
+seems
+foolish
+to
+me
+to
+think
+My
+mother
+says
+Thank
+you
+and
+please
+forgive
+me
+for
+my
+ignorance
+Goodbye
+Many
+earthbound
+spirits
+are
+conscious
+of
+influencing
+mortals
+but
+enjoy
+their
+power
+seeming
+to
+be
+without
+scruples
+Often
+these
+have
+during
+earth
+life
+turned
+away
+from
+orthodoxy
+and
+become
+hardened
+to
+higher
+ethics
+and
+ideals
+A
+spirit
+of
+this
+type
+was
+dislodged
+from
+Mr
+G
+who
+had
+since
+childhood
+been
+subject
+to
+violent
+attacks
+of
+temper
+During
+the
+weeks
+when
+this
+spirit
+was
+being
+brought
+to
+the
+front
+preparatory
+to
+removal
+Mr
+G
+was
+very
+irritable
+especially
+when
+driving
+his
+automobile
+and
+developed
+moods
+during
+which
+he
+wished
+to
+be
+away
+from
+every
+one
+After
+the
+spirit
+was
+dislodged
+the
+gentleman
+s
+characteristics
+changed
+completeIy
+and
+he
+became
+natural
+again
+Both
+Mr
+and
+Mrs
+G
+were
+present
+at
+the
+time
+this
+spirit
+controlled
+Mrs
+Wickland
+EXPERIENCE
+SEPTEMBER
+Spirit
+FRED
+HAUPT
+Patient
+MR
+Psychic
+MRS
+WICKLAND
+The
+spirit
+made
+violent
+attempts
+to
+escape
+and
+when
+the
+hands
+of
+the
+psychic
+were
+held
+fought
+furiously
+Doctor
+Who
+are
+you
+Come
+be
+sensible
+This
+will
+not
+do
+you
+any
+good
+There
+is
+no
+use
+in
+fighting
+Who
+are
+you
+Spirit
+It
+s
+none
+of
+your
+business
+who
+I
+am
+I
+don
+t
+want
+to
+be
+here
+with
+you
+I
+didn
+t
+want
+to
+come
+here
+I
+will
+not
+come
+any
+more
+You
+won
+t
+trap
+me
+again
+Dr
+With
+whom
+did
+you
+come
+Sp
+It
+s
+none
+of
+your
+business
+who
+I
+came
+with
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+I
+m
+not
+dead
+You
+will
+find
+that
+I
+won
+t
+stand
+for
+anything
+To
+Mrs
+G
+You
+don
+t
+care
+for
+me
+any
+more
+Dr
+I
+don
+t
+care
+for
+you
+Sp
+I
+don
+t
+mean
+you
+I
+am
+going
+to
+fight
+you
+all
+right
+You
+gave
+me
+that
+awful
+lightning
+on
+my
+head
+and
+back
+Patient
+s
+electrical
+treatment
+Dr
+That
+was
+electricity
+and
+it
+evidently
+put
+life
+into
+you
+Sp
+I
+told
+you
+many
+times
+that
+I
+would
+never
+come
+here
+again
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+Dead
+I
+m
+not
+dead
+and
+you
+re
+not
+going
+to
+make
+me
+come
+here
+any
+more
+You
+think
+you
+have
+me
+this
+time
+but
+I
+ll
+fix
+you
+You
+don
+t
+trap
+me
+any
+more
+I
+get
+so
+mad
+at
+you
+Dr
+What
+are
+you
+so
+angry
+about
+Sp
+The
+world
+and
+everybody
+Dr
+If
+you
+have
+a
+grudge
+on
+your
+mind
+perhaps
+we
+can
+help
+you
+remove
+it
+Sp
+You
+can
+go
+your
+way
+and
+I
+ll
+go
+mine
+I
+m
+through
+You
+can
+go
+just
+wherever
+you
+please
+You
+think
+you
+ve
+got
+me
+where
+you
+have
+control
+over
+me
+but
+you
+ll
+find
+you
+will
+get
+left
+I
+ll
+not
+tell
+you
+anything
+so
+you
+don
+t
+need
+to
+ask
+Dr
+We
+are
+anxious
+to
+know
+who
+you
+are
+Sp
+That
+makes
+no
+difference
+to
+me
+You
+think
+you
+have
+me
+in
+your
+claws
+but
+you
+ll
+get
+left
+Dr
+Won
+t
+you
+tell
+us
+who
+you
+are
+Sp
+I
+don
+t
+want
+to
+get
+acquainted
+with
+you
+and
+you
+don
+t
+need
+to
+get
+acquainted
+with
+me
+I
+want
+to
+be
+all
+by
+myself
+and
+I
+m
+going
+out
+I
+don
+t
+want
+any
+one
+around
+me
+I
+want
+to
+be
+alone
+I
+enjoy
+my
+own
+company
+best
+Dr
+What
+experiences
+have
+you
+had
+Sp
+I
+will
+not
+talk
+to
+you
+any
+more
+Dr
+How
+do
+you
+happen
+to
+be
+here
+Sp
+You
+made
+me
+come
+with
+those
+funny
+lights
+Electricity
+Dr
+It
+will
+relieve
+you
+if
+you
+will
+tell
+us
+what
+you
+have
+on
+your
+mind
+because
+we
+can
+help
+you
+Where
+did
+you
+get
+that
+ring
+you
+are
+wearing
+Referring
+to
+ring
+on
+hand
+of
+psychic
+Sp
+That
+s
+none
+of
+your
+business
+It
+needn
+t
+bother
+you
+where
+I
+got
+it
+Dr
+Were
+you
+always
+so
+sarcastic
+Sp
+You
+keep
+your
+hands
+off
+me
+I
+will
+go
+Dr
+Where
+will
+you
+go
+Sp
+That
+makes
+no
+difference
+to
+you
+where
+I
+go
+and
+I
+don
+t
+care
+where
+you
+go
+either
+Dr
+But
+you
+have
+no
+place
+to
+go
+Sp
+Angrily
+Do
+you
+think
+I
+m
+a
+tramp
+I
+always
+had
+enough
+money
+to
+pay
+for
+my
+lodging
+I
+can
+go
+where
+I
+want
+Dr
+Then
+you
+were
+somewhat
+of
+a
+gentleman
+Sp
+When
+I
+am
+in
+gentlemen
+s
+company
+then
+I
+am
+a
+gentleman
+You
+don
+t
+need
+to
+talk
+to
+me
+for
+I
+don
+t
+care
+for
+you
+with
+your
+electric
+sparks
+Dr
+Are
+you
+despondent
+Sp
+No
+I
+m
+mad
+Dr
+Tell
+us
+who
+you
+are
+Sp
+I
+have
+no
+use
+for
+you
+As
+soon
+as
+you
+leave
+your
+hands
+off
+me
+I
+will
+attend
+to
+myself
+Dr
+What
+will
+you
+do
+then
+Sp
+That
+s
+none
+of
+your
+business
+Dr
+Tell
+us
+how
+long
+you
+have
+been
+dead
+Sp
+I
+m
+not
+dead
+and
+never
+have
+been
+Dr
+Would
+you
+understand
+if
+I
+should
+tell
+you
+it
+is
+Would
+you
+believe
+it
+Sp
+I
+won
+t
+have
+anything
+to
+do
+with
+you
+I
+have
+no
+business
+here
+I
+ll
+never
+go
+to
+that
+place
+again
+Dr
+We
+did
+not
+ask
+you
+to
+come
+here
+Sp
+You
+put
+me
+in
+a
+prison
+Dr
+How
+did
+you
+get
+into
+prison
+Who
+put
+you
+there
+Sp
+You
+put
+me
+there
+yesterday
+Dr
+Is
+that
+so
+Sp
+I
+will
+haunt
+you
+until
+you
+don
+t
+know
+where
+you
+are
+at
+Dr
+I
+am
+used
+to
+things
+like
+that
+Sp
+I
+will
+attend
+to
+all
+my
+business
+and
+you
+attend
+to
+yours
+We
+part
+right
+here
+I
+will
+have
+nothing
+more
+to
+do
+with
+you
+I
+am
+going
+my
+own
+way
+and
+you
+can
+go
+yours
+Dr
+Suppose
+we
+will
+not
+let
+you
+Try
+to
+understand
+your
+situation
+You
+are
+a
+spirit
+and
+have
+lost
+your
+mortal
+body
+Sp
+I
+don
+t
+care
+if
+I
+have
+lost
+my
+mortal
+body
+ten
+thousand
+times
+What
+of
+that
+I
+am
+living
+just
+as
+well
+as
+if
+I
+had
+my
+body
+What
+do
+I
+care
+Dr
+Whose
+body
+are
+you
+talking
+through
+Sp
+I
+have
+many
+bodies
+I
+go
+from
+one
+place
+to
+another
+I
+can
+be
+a
+lady
+at
+one
+time
+and
+a
+gentleman
+another
+Nobody
+can
+catch
+me
+Dr
+This
+time
+somebody
+has
+caught
+you
+and
+you
+will
+have
+to
+stop
+interfering
+with
+the
+lives
+of
+others
+Sp
+I
+have
+been
+attending
+to
+my
+own
+business
+for
+many
+years
+Dr
+Didn
+t
+you
+say
+you
+had
+been
+in
+prison
+Sp
+That
+won
+t
+last
+long
+Dr
+If
+you
+don
+t
+change
+your
+behavior
+you
+will
+be
+put
+into
+a
+dark
+dungeon
+Sp
+You
+ll
+get
+left
+I
+ve
+been
+in
+tight
+places
+before
+and
+always
+got
+out
+Dr
+Did
+you
+ever
+own
+a
+Ford
+car
+Sp
+No
+I
+didn
+t
+what
+s
+that
+Dr
+I
+ll
+tell
+you
+a
+story
+A
+man
+who
+owned
+a
+Ford
+machine
+died
+and
+his
+last
+request
+was
+that
+his
+Ford
+should
+be
+placed
+in
+his
+grave
+with
+him
+Sp
+What
+for
+Dr
+He
+said
+his
+Ford
+had
+helped
+him
+out
+of
+many
+a
+tight
+place
+Sp
+Did
+they
+put
+it
+in
+Dr
+Oh
+I
+suppose
+to
+Sp
+Ha
+ha
+Such
+fools
+They
+couldn
+t
+have
+a
+car
+with
+them
+if
+they
+are
+dead
+Dr
+Don
+t
+you
+know
+there
+is
+no
+actual
+death
+No
+one
+really
+dies
+Sp
+You
+say
+I
+am
+not
+dead
+Dr
+Your
+body
+is
+dead
+Sp
+Well
+I
+can
+be
+just
+what
+I
+want
+Sometimes
+a
+man
+sometimes
+a
+woman
+Dr
+No
+you
+cannot
+you
+only
+obsess
+men
+and
+women
+Sp
+No
+I
+don
+t
+If
+I
+want
+I
+can
+boss
+the
+whole
+family
+I
+have
+a
+mighty
+good
+time
+I
+go
+where
+I
+please
+I
+am
+my
+own
+boss
+If
+I
+am
+hungry
+sometimes
+I
+eat
+sometimes
+I
+don
+t
+The
+best
+thing
+to
+work
+up
+an
+appetite
+is
+to
+get
+hungry
+Then
+you
+eat
+everything
+and
+it
+tastes
+good
+If
+you
+are
+not
+hungry
+nothing
+tastes
+good
+I
+tell
+you
+I
+m
+no
+spirit
+Dr
+You
+are
+talking
+through
+my
+wife
+s
+body
+Sp
+We
+are
+just
+wasting
+time
+so
+I
+will
+go
+Dr
+You
+and
+I
+are
+going
+to
+be
+good
+friends
+I
+hope
+Sp
+I
+will
+have
+nothing
+to
+do
+with
+you
+Dr
+Come
+friend
+let
+us
+talk
+things
+over
+Life
+is
+a
+wonderful
+thing
+We
+can
+think
+and
+act
+and
+yet
+we
+do
+not
+know
+ourselves
+Sp
+You
+don
+t
+Well
+that
+s
+too
+bad
+about
+you
+Dr
+Did
+you
+ever
+stop
+to
+think
+how
+wonderful
+sound
+is
+Sp
+It
+s
+no
+more
+wonderful
+than
+anything
+else
+Now
+let
+me
+go
+I
+don
+t
+want
+you
+to
+hold
+me
+any
+longer
+Dr
+No
+I
+can
+t
+let
+you
+go
+until
+you
+behave
+yourself
+Sp
+If
+you
+didn
+t
+hold
+me
+I
+would
+knock
+you
+down
+as
+quick
+as
+lightning
+I
+can
+get
+mad
+I
+have
+a
+temper
+Dr
+Now
+Johnnie
+listen
+to
+what
+I
+have
+to
+say
+Sp
+Johnnie
+That
+s
+not
+my
+name
+I
+will
+not
+tell
+you
+what
+it
+is
+Dr
+Did
+you
+kill
+any
+one
+and
+is
+that
+why
+you
+are
+so
+full
+of
+hatred
+Sp
+No
+I
+am
+an
+honest
+man
+I
+want
+to
+have
+my
+own
+way
+and
+I
+always
+do
+I
+get
+so
+mad
+Dr
+What
+church
+did
+you
+belong
+to
+Sp
+That
+s
+none
+of
+your
+business
+Dr
+Were
+you
+a
+minister
+or
+a
+deacon
+Sp
+No
+I
+wasn
+t
+I
+ll
+not
+tell
+you
+anything
+so
+keep
+still
+Closing
+lips
+firmly
+Dr
+Why
+are
+you
+sitting
+so
+quietly
+Sp
+Be
+still
+I
+am
+thinking
+I
+want
+to
+be
+by
+myself
+Dr
+What
+evil
+thoughts
+have
+you
+in
+your
+mind
+now
+Sp
+You
+look
+out
+asking
+me
+such
+questions
+When
+I
+get
+mad
+I
+could
+knock
+this
+house
+down
+in
+a
+minute
+I
+could
+knock
+everybody
+down
+Dr
+Talk
+is
+cheap
+Sp
+You
+might
+as
+well
+say
+big
+things
+as
+little
+ones
+Dr
+Tell
+us
+who
+you
+are
+and
+how
+long
+you
+have
+been
+dead
+Sp
+Stamping
+feet
+violently
+and
+struggling
+If
+I
+could
+get
+loose
+I
+d
+show
+you
+I
+m
+not
+dead
+I
+ve
+told
+you
+that
+before
+now
+keep
+quiet
+Dr
+But
+you
+are
+talking
+through
+my
+wife
+s
+body
+Sp
+Just
+let
+me
+get
+free
+and
+I
+ll
+show
+you
+a
+few
+things
+Dr
+That
+is
+bombastic
+and
+does
+not
+amount
+to
+anything
+You
+are
+talking
+through
+my
+wife
+s
+body
+Sp
+I
+will
+not
+listen
+to
+you
+any
+longer
+I
+have
+no
+use
+whatever
+for
+you
+Only
+for
+that
+electricity
+you
+couldn
+t
+have
+chased
+me
+out
+and
+put
+me
+in
+prison
+I
+ll
+knock
+you
+down
+when
+I
+get
+loose
+We
+can
+part
+right
+here
+you
+going
+your
+way
+and
+I
+mine
+That
+will
+suit
+me
+just
+right
+Dr
+But
+we
+want
+to
+part
+friends
+Sp
+You
+say
+friends
+You
+can
+never
+find
+a
+friend
+in
+me
+when
+you
+give
+me
+electricity
+like
+you
+did
+Dr
+Those
+were
+just
+friendly
+taps
+That
+was
+the
+best
+thing
+that
+ever
+happened
+to
+you
+Sp
+Sarcastically
+You
+think
+so
+Dr
+Try
+to
+understand
+that
+you
+are
+talking
+through
+my
+wife
+s
+body
+Sp
+I
+don
+t
+want
+to
+have
+anything
+to
+do
+with
+your
+wife
+All
+women
+can
+go
+their
+way
+and
+I
+ll
+go
+mine
+I
+want
+nothing
+to
+do
+with
+women
+and
+I
+don
+t
+want
+your
+wife
+any
+more
+than
+the
+rest
+I
+never
+knew
+your
+wife
+Keep
+her
+yourself
+Dr
+You
+are
+talking
+through
+my
+wife
+s
+body
+You
+cannot
+realize
+your
+condition
+because
+you
+are
+so
+ignorant
+Sp
+You
+are
+just
+as
+ignorant
+as
+I
+am
+Dr
+Be
+free
+and
+open
+minded
+Try
+to
+realize
+that
+you
+are
+a
+spirit
+You
+are
+a
+foolish
+spirit
+and
+do
+not
+know
+it
+Sp
+A
+gentleman
+to
+call
+a
+man
+a
+fool
+Dr
+You
+are
+a
+foolish
+selfish
+spirit
+If
+you
+were
+intelligent
+you
+would
+listen
+to
+me
+Sp
+I
+don
+t
+care
+just
+leave
+my
+hands
+alone
+Dr
+I
+am
+not
+holding
+your
+hands
+I
+am
+holding
+my
+wife
+s
+hands
+Sp
+For
+God
+s
+sake
+can
+t
+you
+see
+I
+am
+a
+man
+Don
+t
+mix
+your
+wife
+with
+me
+Take
+her
+I
+m
+sure
+I
+don
+t
+want
+her
+Dr
+If
+you
+were
+not
+stubborn
+you
+would
+realize
+there
+is
+something
+the
+matter
+with
+you
+Look
+at
+your
+hands
+Sp
+Refusing
+to
+look
+They
+are
+mine
+If
+I
+could
+get
+loose
+I
+would
+show
+you
+a
+thing
+or
+two
+I
+have
+more
+strength
+now
+than
+I
+have
+had
+for
+some
+time
+Now
+I
+can
+talk
+again
+Before
+someone
+always
+interfered
+with
+me
+Now
+I
+am
+myself
+and
+can
+talk
+and
+fight
+Dr
+You
+are
+talking
+through
+my
+wife
+s
+body
+Sp
+I
+ll
+knock
+you
+in
+the
+bead
+if
+you
+don
+t
+stop
+talking
+about
+your
+wife
+Dr
+My
+wife
+is
+a
+psychic
+Sp
+Well
+what
+of
+that
+What
+do
+I
+care
+I
+don
+t
+care
+if
+your
+wife
+is
+a
+thousand
+psychics
+Dr
+Intelligent
+spirits
+have
+brought
+you
+here
+to
+be
+helped
+and
+unless
+you
+are
+willing
+to
+listen
+to
+reason
+you
+will
+be
+put
+in
+a
+dungeon
+Sp
+You
+can
+do
+just
+as
+you
+please
+Dr
+What
+do
+you
+gain
+by
+acting
+this
+way
+We
+are
+trying
+to
+bring
+you
+to
+an
+understanding
+Sp
+I
+was
+converted
+once
+by
+a
+rascal
+of
+a
+minister
+He
+took
+all
+of
+my
+money
+and
+then
+kicked
+me
+out
+Dr
+Probably
+that
+was
+a
+good
+thing
+for
+you
+Sp
+What
+To
+kick
+me
+out
+I
+just
+asked
+him
+a
+few
+questions
+about
+life
+and
+he
+said
+You
+big
+sinner
+get
+out
+of
+here
+All
+he
+wanted
+was
+money
+Dr
+But
+that
+didn
+t
+settle
+the
+question
+of
+life
+Sp
+The
+question
+of
+life
+Life
+is
+life
+that
+s
+all
+We
+are
+born
+here
+we
+stay
+for
+a
+while
+and
+then
+go
+Dr
+Where
+was
+the
+church
+you
+speak
+of
+What
+denomination
+Sp
+I
+will
+not
+tell
+my
+secrets
+to
+you
+I
+will
+not
+talk
+anything
+about
+myself
+I
+won
+t
+tell
+my
+name
+or
+the
+ministers
+Dr
+You
+do
+not
+understand
+that
+you
+are
+among
+friends
+We
+can
+help
+you
+You
+will
+find
+we
+can
+help
+you
+to
+understand
+things
+of
+which
+you
+are
+ignorant
+now
+I
+have
+told
+you
+many
+times
+that
+you
+have
+lost
+your
+body
+and
+are
+a
+spirit
+and
+yet
+you
+do
+not
+understand
+it
+Sp
+I
+have
+not
+lost
+my
+body
+because
+I
+have
+lots
+of
+bodies
+Mr
+G
+How
+could
+you
+have
+more
+than
+one
+body
+Sp
+I
+don
+t
+know
+about
+that
+but
+I
+had
+enjoyment
+with
+others
+Mrs
+G
+How
+did
+you
+find
+these
+others
+Sp
+I
+don
+t
+know
+but
+that
+doesn
+t
+bother
+me
+a
+bit
+Mr
+G
+How
+could
+you
+be
+a
+man
+one
+time
+and
+a
+woman
+another
+Sp
+I
+didn
+t
+stop
+to
+think
+anything
+about
+that
+I
+don
+t
+know
+myself
+Mr
+G
+Who
+brought
+you
+here
+Sp
+They
+brought
+me
+here
+Mr
+G
+Who
+Sp
+I
+don
+t
+know
+I
+was
+not
+going
+to
+come
+here
+at
+all
+but
+they
+made
+me
+come
+I
+said
+I
+would
+never
+come
+here
+any
+more
+Mr
+G
+Have
+you
+been
+here
+before
+Sp
+Sometimes
+Mr
+G
+Who
+brought
+you
+here
+Sp
+I
+told
+you
+I
+didn
+t
+know
+Mr
+G
+Look
+closely
+don
+t
+you
+recognize
+the
+one
+who
+brought
+you
+here
+Sp
+I
+don
+t
+know
+and
+I
+don
+t
+care
+Mr
+G
+Have
+we
+ever
+talked
+to
+you
+before
+Sp
+It
+seems
+so
+Dr
+Do
+you
+recognize
+the
+man
+talking
+to
+you
+You
+may
+have
+been
+friends
+Mr
+G
+Is
+there
+anyone
+here
+whom
+you
+have
+seen
+before
+Sp
+I
+don
+t
+know
+With
+all
+that
+electricity
+on
+my
+head
+it
+hurts
+and
+I
+feel
+like
+knocking
+somebody
+down
+Mrs
+G
+How
+did
+you
+get
+here
+Sp
+That
+s
+nobody
+s
+business
+I
+have
+a
+temper
+that
+no
+one
+can
+conquer
+I
+get
+mad
+as
+quick
+as
+lightning
+and
+it
+comes
+like
+thunder
+Mrs
+G
+When
+you
+get
+into
+another
+body
+do
+you
+have
+a
+temper
+at
+that
+time
+Sp
+Yes
+I
+have
+a
+bad
+temper
+I
+don
+t
+know
+why
+I
+get
+mad
+sometimes
+but
+I
+get
+mad
+like
+fury
+at
+everything
+I
+have
+to
+go
+here
+and
+there
+Mrs
+G
+Can
+t
+you
+stay
+at
+a
+certain
+place
+if
+you
+want
+to
+Sp
+No
+I
+have
+to
+go
+along
+and
+I
+get
+so
+mad
+Mr
+G
+You
+are
+not
+independent
+then
+Sp
+I
+don
+t
+know
+I
+get
+so
+furious
+when
+I
+have
+to
+go
+places
+and
+I
+don
+t
+want
+to
+go
+I
+get
+awful
+mad
+Mr
+G
+Would
+you
+like
+to
+get
+over
+being
+mad
+Pointing
+to
+Dr
+W
+There
+is
+a
+gentleman
+who
+can
+tell
+you
+all
+about
+your
+condition
+as
+he
+is
+a
+physician
+Dr
+If
+you
+will
+be
+sensible
+we
+can
+help
+you
+Sp
+Sometimes
+I
+fly
+off
+about
+things
+that
+don
+t
+amount
+to
+a
+pinch
+of
+snuff
+I
+don
+t
+know
+why
+I
+do
+that
+Dr
+You
+allow
+yourself
+to
+fly
+to
+pieces
+over
+nothing
+Sp
+Things
+don
+t
+always
+go
+my
+way
+and
+when
+they
+don
+t
+I
+don
+t
+feel
+right
+Sometimes
+I
+feel
+as
+if
+I
+did
+not
+have
+whole
+control
+and
+I
+am
+only
+half
+and
+half
+and
+then
+I
+get
+mad
+Dr
+You
+are
+hovering
+around
+people
+and
+using
+their
+bodies
+You
+are
+not
+really
+dead
+The
+mind
+is
+one
+thing
+and
+the
+body
+another
+You
+have
+lost
+your
+mortal
+body
+and
+your
+spiritual
+body
+looks
+like
+your
+mortal
+body
+You
+are
+ignorant
+of
+your
+condition
+and
+come
+in
+touch
+with
+mortals
+who
+are
+sensitives
+then
+you
+try
+to
+control
+them
+but
+they
+have
+wills
+of
+their
+own
+too
+Sp
+I
+always
+get
+mad
+at
+that
+machine
+Mrs
+G
+Don
+t
+you
+like
+machinery
+Sp
+No
+I
+feel
+sometimes
+as
+if
+I
+could
+knock
+it
+all
+to
+pieces
+I
+get
+so
+mad
+at
+it
+Mrs
+G
+Do
+you
+mean
+the
+automobile
+Sp
+I
+don
+t
+know
+What
+does
+that
+mean
+Is
+it
+that
+machine
+that
+runs
+without
+horses
+Dr
+You
+have
+never
+seen
+an
+automobile
+have
+you
+Sp
+Is
+it
+that
+machine
+that
+goes
+Whz
+z
+z
+Circling
+arms
+around
+wildly
+Dr
+Have
+you
+never
+seen
+one
+of
+those
+machines
+Who
+is
+President
+Sp
+I
+don
+t
+know
+I
+haven
+t
+read
+a
+paper
+for
+years
+Dr
+Was
+McKinley
+the
+President
+Sp
+No
+Cleveland
+Dr
+Do
+you
+remember
+the
+Chicago
+World
+s
+Fair
+Sp
+No
+I
+don
+t
+Dr
+Where
+did
+you
+live
+Sp
+I
+lived
+in
+Kansas
+Mr
+G
+Whose
+early
+years
+were
+spent
+in
+Kansas
+In
+H
+or
+N
+Dr
+You
+talk
+things
+over
+with
+that
+gentleman
+Mr
+G
+Mr
+G
+Did
+you
+know
+a
+family
+there
+called
+G
+Sp
+Yes
+they
+lived
+in
+that
+pretty
+house
+a
+big
+house
+Mr
+G
+Did
+you
+live
+in
+N
+Sp
+No
+a
+little
+outside
+I
+was
+a
+helper
+here
+and
+there
+I
+never
+stayed
+long
+in
+one
+place
+Mr
+G
+Did
+you
+live
+on
+farms
+Sp
+Yes
+where
+they
+had
+horses
+I
+don
+t
+like
+to
+ride
+in
+that
+Ch
+ch
+ch
+I
+get
+so
+mad
+when
+things
+don
+t
+go
+just
+right
+Mr
+G
+You
+can
+go
+so
+much
+further
+with
+a
+machine
+than
+you
+can
+with
+horses
+Sp
+I
+like
+air
+and
+you
+don
+t
+always
+have
+the
+windows
+open
+in
+that
+machine
+shut
+up
+in
+there
+Mr
+G
+Were
+you
+ever
+sick
+or
+did
+you
+have
+an
+accident
+Sp
+I
+am
+not
+quite
+sure
+but
+it
+seems
+I
+have
+something
+the
+matter
+with
+my
+head
+I
+do
+not
+really
+know
+what
+happened
+I
+lose
+my
+temper
+so
+often
+that
+I
+know
+there
+is
+something
+the
+matter
+with
+me
+Mr
+G
+Do
+you
+remember
+any
+of
+the
+G
+boys
+Sp
+I
+have
+heard
+of
+them
+Mr
+G
+How
+old
+were
+you
+About
+as
+old
+as
+R
+Sp
+He
+was
+that
+stout
+fellow
+Mr
+G
+Were
+you
+as
+old
+as
+he
+Sp
+No
+no
+He
+was
+more
+lively
+than
+the
+other
+fellow
+and
+liked
+to
+have
+a
+good
+time
+The
+other
+fellow
+Mr
+G
+studied
+He
+wanted
+to
+go
+off
+by
+himself
+I
+think
+he
+was
+going
+to
+study
+for
+a
+minister
+or
+a
+lawyer
+or
+something
+because
+he
+always
+had
+a
+book
+with
+him
+This
+was
+correct
+Mr
+G
+Did
+he
+ever
+sing
+SP
+Who
+Mr
+G
+This
+other
+fellow
+Sp
+I
+don
+t
+know
+very
+much
+about
+him
+I
+was
+just
+a
+helper
+around
+Mr
+G
+Did
+you
+work
+around
+at
+their
+home
+Sp
+No
+I
+lived
+Southwest
+The
+farm
+was
+in
+the
+hollow
+in
+the
+distance
+You
+go
+up
+the
+hill
+and
+then
+down
+in
+the
+hollow
+that
+s
+the
+place
+Mr
+G
+Down
+toward
+W
+Sp
+Yes
+Mr
+G
+Did
+you
+have
+an
+accident
+there
+Sp
+I
+can
+t
+remember
+I
+know
+I
+had
+something
+the
+matter
+with
+my
+head
+There
+were
+a
+lot
+of
+fellows
+out
+with
+the
+threshing
+machine
+the
+threshing
+gang
+Mr
+G
+You
+must
+have
+been
+hurt
+very
+badly
+at
+that
+time
+Sp
+Do
+you
+mean
+when
+they
+were
+threshing
+on
+that
+farm
+What
+is
+the
+matter
+with
+my
+head
+Mr
+G
+You
+must
+have
+been
+so
+badly
+hurt
+that
+you
+passed
+on
+Dr
+Possibly
+you
+thought
+you
+went
+to
+sleep
+You
+lost
+your
+physical
+body
+Most
+people
+would
+call
+you
+dead
+but
+you
+are
+not
+really
+dead
+Mr
+G
+Did
+you
+know
+Tom
+Another
+spirit
+who
+had
+previously
+been
+dislodged
+from
+Mr
+G
+He
+is
+a
+good
+friend
+of
+mine
+Sp
+Yes
+and
+he
+is
+here
+He
+says
+he
+came
+here
+to
+help
+you
+But
+how
+is
+he
+going
+to
+help
+you
+Mr
+G
+Ask
+Tom
+Dr
+Ask
+him
+why
+he
+is
+going
+to
+help
+this
+gentleman
+and
+why
+he
+needs
+help
+Sp
+Tom
+says
+to
+me
+You
+get
+out
+Dr
+You
+listen
+to
+him
+he
+will
+tell
+you
+the
+truth
+Sp
+If
+he
+tells
+me
+anything
+that
+isn
+t
+true
+I
+ll
+knock
+his
+block
+off
+Tom
+says
+that
+I
+for
+God
+s
+sake
+no
+Excitedly
+Tom
+say
+that
+I
+he
+says
+that
+I
+have
+been
+sponging
+on
+that
+man
+Mr
+G
+for
+years
+Dr
+It
+sounds
+strange
+but
+it
+is
+true
+Mr
+G
+Tom
+did
+it
+too
+He
+bothered
+me
+a
+great
+deal
+Now
+he
+is
+a
+good
+friend
+of
+mine
+as
+you
+are
+You
+and
+I
+are
+going
+to
+be
+good
+friends
+are
+we
+not
+Sp
+Why
+did
+I
+get
+so
+mad
+at
+things
+Dr
+When
+you
+hurt
+your
+head
+you
+may
+have
+disturbed
+your
+mind
+Sp
+Tom
+says
+he
+is
+trying
+to
+help
+you
+get
+rid
+of
+me
+that
+s
+what
+he
+says
+He
+s
+going
+to
+get
+left
+Why
+does
+he
+want
+to
+get
+rid
+of
+me
+Mr
+G
+Then
+you
+will
+be
+free
+He
+is
+a
+good
+friend
+of
+ours
+We
+are
+all
+going
+to
+work
+together
+You
+will
+have
+your
+own
+body
+and
+you
+will
+not
+have
+to
+get
+out
+of
+anyone
+Sp
+I
+don
+t
+understand
+what
+you
+folks
+mean
+Dr
+I
+will
+explain
+Don
+t
+contradict
+me
+no
+matter
+how
+foolish
+it
+may
+seem
+to
+you
+I
+will
+tell
+you
+nothing
+but
+the
+absolute
+truth
+Sp
+If
+you
+don
+t
+you
+look
+out
+Dr
+You
+lost
+your
+mortal
+body
+some
+time
+ago
+It
+is
+now
+Sp
+You
+mean
+Dr
+That
+was
+when
+Cleveland
+was
+President
+the
+second
+time
+You
+have
+been
+so
+called
+dead
+all
+these
+years
+There
+is
+no
+actual
+death
+The
+mind
+is
+one
+thing
+the
+body
+another
+It
+is
+the
+physical
+body
+which
+dies
+but
+not
+the
+mind
+or
+spirit
+You
+are
+not
+talking
+through
+your
+own
+body
+now
+Sp
+I
+m
+not
+Dr
+No
+you
+are
+speaking
+through
+my
+wife
+She
+is
+so
+constituted
+that
+spirits
+can
+control
+her
+and
+speak
+through
+her
+and
+we
+are
+having
+these
+investigating
+circles
+to
+come
+in
+contact
+with
+spirits
+like
+yourself
+Ignorant
+spirits
+often
+influence
+mortals
+and
+disturb
+their
+balance
+You
+conveyed
+your
+temper
+to
+this
+gentleman
+Mr
+G
+and
+made
+him
+act
+as
+if
+he
+had
+a
+bad
+temper
+Sp
+I
+did
+Mr
+G
+Did
+you
+ride
+in
+that
+machine
+Sp
+Yes
+but
+I
+hate
+it
+Dr
+I
+ll
+tell
+you
+about
+those
+machines
+About
+they
+began
+to
+invent
+what
+they
+call
+automobiles
+these
+machines
+go
+without
+horses
+for
+they
+run
+by
+their
+own
+power
+We
+have
+millions
+of
+them
+now
+Sp
+What
+have
+they
+done
+with
+their
+fine
+horses
+Dr
+They
+do
+not
+use
+them
+now
+Automobiles
+are
+very
+convenient
+you
+can
+travel
+one
+hundred
+miles
+an
+hour
+but
+the
+average
+is
+twenty
+or
+twenty
+five
+miles
+an
+hour
+Sp
+I
+wouldn
+t
+ride
+in
+one
+that
+goes
+that
+fast
+Dr
+You
+can
+travel
+two
+or
+three
+hundred
+miles
+a
+day
+These
+machines
+have
+been
+invented
+since
+you
+lost
+your
+body
+We
+have
+aeroplanes
+now
+that
+fly
+in
+the
+air
+and
+we
+can
+telegraph
+without
+any
+wires
+We
+can
+even
+talk
+across
+the
+ocean
+without
+any
+wires
+You
+cannot
+realize
+what
+wonderful
+things
+have
+happened
+since
+you
+passed
+out
+Do
+you
+know
+that
+you
+are
+in
+California
+now
+Sp
+I
+feel
+so
+weak
+Dr
+Don
+t
+lose
+control
+friend
+until
+you
+give
+us
+your
+name
+Sp
+I
+don
+t
+know
+it
+my
+head
+is
+in
+such
+a
+mess
+Don
+t
+bother
+me
+and
+I
+will
+tell
+it
+to
+you
+in
+a
+little
+while
+For
+a
+long
+time
+I
+have
+had
+so
+many
+different
+names
+that
+I
+don
+t
+remember
+my
+name
+at
+all
+Dr
+Look
+around
+your
+mother
+may
+be
+here
+Sp
+I
+heard
+my
+mother
+call
+me
+one
+time
+Sometimes
+I
+am
+Charlie
+sometimes
+Henry
+sometimes
+a
+man
+and
+sometimes
+a
+woman
+so
+I
+don
+t
+know
+what
+name
+to
+give
+you
+It
+s
+so
+long
+since
+I
+heard
+my
+own
+name
+that
+I
+seem
+to
+have
+forgotten
+it
+Mr
+G
+Ask
+Tom
+what
+your
+name
+is
+Sp
+He
+says
+my
+name
+is
+Fred
+Yes
+that
+s
+it
+Fred
+Mr
+G
+Fred
+what
+Ask
+Tom
+Sp
+How
+can
+a
+man
+forget
+his
+own
+name
+There
+must
+be
+something
+the
+matter
+with
+him
+Dr
+What
+did
+they
+call
+your
+father
+What
+did
+your
+father
+do
+Mr
+G
+Was
+he
+a
+farmer
+Sp
+No
+he
+was
+not
+a
+farmer
+but
+he
+had
+some
+land
+We
+were
+further
+down
+from
+that
+college
+where
+that
+church
+was
+My
+father
+was
+a
+German
+Mr
+G
+Was
+he
+a
+Mennonite
+Sp
+No
+my
+father
+came
+where
+they
+were
+but
+went
+further
+back
+What
+is
+the
+matter
+with
+me
+Why
+can
+t
+I
+think
+what
+my
+name
+is
+Mr
+G
+Tom
+will
+tell
+you
+if
+you
+ask
+him
+SP
+I
+can
+get
+certain
+places
+and
+things
+then
+I
+can
+t
+go
+any
+further
+I
+remember
+Fred
+because
+everybody
+called
+me
+that
+Dr
+Well
+I
+wouldn
+t
+worry
+about
+it
+any
+more
+Your
+memory
+will
+come
+back
+to
+you
+You
+are
+a
+spirit
+and
+when
+you
+leave
+here
+intelligent
+spirits
+will
+take
+care
+of
+you
+SP
+Tom
+says
+he
+is
+going
+to
+take
+me
+to
+a
+home
+or
+rest
+I
+have
+been
+so
+worried
+and
+I
+get
+so
+tired
+out
+that
+I
+get
+mad
+at
+everything
+I
+will
+not
+be
+angry
+any
+more
+Whenever
+I
+got
+mad
+I
+suffered
+terribly
+after
+it
+I
+always
+felt
+so
+bad
+because
+I
+could
+not
+control
+myself
+I
+always
+felt
+so
+sorry
+I
+said
+such
+mean
+things
+and
+I
+was
+too
+proud
+to
+acknowledge
+it
+but
+I
+knew
+it
+just
+the
+same
+Tom
+says
+Come
+on
+we
+must
+go
+I
+want
+to
+go
+now
+To
+Mr
+G
+Tom
+says
+I
+must
+ask
+you
+if
+you
+will
+forgive
+me
+for
+making
+so
+much
+mischief
+for
+you
+Mr
+G
+We
+are
+going
+to
+help
+you
+and
+let
+bygones
+be
+bygones
+Sp
+You
+are
+not
+mad
+at
+me
+are
+you
+Mr
+G
+Not
+at
+all
+Sp
+I
+feel
+so
+weak
+what
+will
+I
+do
+I
+am
+too
+weak
+to
+go
+with
+Tom
+Dr
+That
+weakness
+is
+a
+common
+experience
+with
+spirits
+when
+they
+begin
+to
+understand
+It
+is
+only
+a
+temporary
+sensation
+you
+are
+merely
+losing
+control
+Think
+yourself
+with
+Tom
+and
+the
+Mercy
+Band
+of
+spirits
+Sp
+My
+head
+feels
+so
+funny
+Am
+I
+going
+crazy
+You
+had
+better
+get
+a
+doctor
+because
+I
+think
+I
+am
+going
+to
+die
+Dr
+You
+will
+be
+all
+right
+as
+soon
+as
+you
+leave
+this
+body
+Sp
+I
+need
+a
+doctor
+for
+the
+blood
+is
+all
+coming
+up
+in
+my
+throat
+and
+I
+can
+t
+breathe
+I
+feel
+so
+choked
+Maybe
+I
+can
+get
+to
+sleep
+Doctors
+always
+say
+if
+you
+can
+sleep
+it
+is
+better
+when
+you
+feel
+weak
+I
+am
+not
+going
+to
+die
+am
+I
+Dr
+You
+must
+remember
+that
+you
+are
+a
+spirit
+and
+are
+controlling
+a
+mortal
+body
+Sp
+Fred
+Haupt
+is
+my
+name
+Tom
+says
+I
+must
+ask
+you
+to
+forgive
+me
+because
+I
+have
+made
+so
+much
+trouble
+in
+getting
+you
+in
+a
+temper
+Mr
+G
+Certainly
+I
+forgive
+you
+Thank
+Tom
+for
+helping
+both
+you
+and
+me
+Sp
+Goodbye
+Silver
+Star
+the
+Indian
+guide
+of
+Mrs
+Wickland
+then
+came
+in
+and
+said
+to
+Mr
+G
+We
+got
+the
+man
+Now
+we
+are
+going
+to
+take
+him
+to
+a
+hospital
+We
+worked
+hard
+to
+get
+him
+he
+was
+so
+in
+your
+magnetic
+aura
+that
+it
+seemed
+like
+taking
+a
+piece
+out
+of
+your
+body
+to
+detach
+him
+from
+you
+He
+had
+been
+with
+you
+for
+a
+long
+time
+he
+was
+with
+you
+when
+you
+were
+a
+child
+When
+things
+did
+not
+go
+right
+for
+him
+he
+flew
+into
+a
+temper
+It
+will
+be
+a
+great
+relief
+to
+have
+him
+away
+and
+you
+will
+feel
+like
+a
+new
+person
+You
+will
+not
+feel
+so
+irritable
+He
+has
+been
+working
+on
+you
+nearly
+all
+your
+life
+but
+lately
+he
+has
+become
+stronger
+and
+stronger
+until
+he
+almost
+had
+control
+of
+you
+Now
+we
+have
+him
+and
+he
+won
+t
+bother
+you
+any
+more
+He
+is
+very
+weak
+and
+needs
+hospital
+care
+he
+can
+hardly
+walk
+He
+will
+have
+to
+be
+nursed
+He
+has
+been
+living
+on
+you
+and
+with
+that
+strength
+taken
+away
+from
+him
+he
+is
+very
+weak
+but
+he
+will
+he
+taken
+care
+of
+CHAPTER
+XII
+Selfishness
+THOSE
+whose
+earthly
+interests
+have
+been
+superficial
+who
+have
+been
+dominated
+by
+pride
+vanity
+greed
+ambition
+and
+selfishness
+are
+held
+in
+the
+earth
+sphere
+after
+transition
+until
+these
+tendencies
+have
+been
+conquered
+and
+love
+and
+sympathy
+have
+been
+developed
+through
+service
+for
+others
+Frequently
+spirits
+whose
+earth
+lives
+were
+spent
+in
+pursuit
+of
+pleasure
+and
+the
+pastimes
+of
+wealthy
+society
+have
+attained
+realization
+of
+a
+higher
+life
+through
+our
+psychic
+circle
+Among
+these
+was
+one
+who
+sank
+with
+the
+Titanic
+in
+EXPERIENCE
+OCTOBER
+Spirit
+JOHN
+J
+A
+Psychic
+MRS
+WICKLAND
+After
+the
+spirit
+of
+W
+T
+Stead
+had
+visited
+with
+us
+a
+few
+moments
+another
+spirit
+came
+in
+struggling
+desperately
+as
+if
+swimming
+and
+called
+loudly
+for
+aid
+Spirit
+Help
+Help
+Doctor
+Where
+did
+you
+come
+from
+Sp
+That
+man
+who
+just
+left
+told
+me
+to
+come
+in
+here
+Dr
+Have
+you
+been
+in
+the
+water
+Sp
+I
+drowned
+but
+I
+have
+come
+to
+life
+again
+I
+cannot
+see
+that
+man
+now
+but
+I
+heard
+him
+talking
+and
+he
+told
+me
+to
+step
+in
+He
+said
+that
+you
+know
+the
+way
+and
+would
+teach
+me
+and
+that
+I
+could
+go
+with
+him
+afterwards
+But
+now
+I
+cannot
+see
+him
+I
+m
+blind
+I
+m
+blind
+I
+don
+t
+know
+whether
+the
+water
+blinded
+me
+or
+not
+but
+I
+am
+blind
+Dr
+That
+is
+only
+spiritual
+blindness
+When
+a
+person
+passes
+out
+of
+his
+physical
+body
+without
+a
+knowledge
+of
+the
+laws
+of
+the
+higher
+life
+he
+finds
+himself
+in
+a
+condition
+of
+darkness
+It
+is
+the
+darkness
+of
+ignorance
+Sp
+Then
+I
+will
+not
+always
+be
+blind
+Dr
+You
+must
+realize
+that
+you
+are
+in
+the
+spirit
+world
+and
+that
+spirit
+friends
+are
+here
+who
+will
+teach
+you
+how
+to
+progress
+out
+of
+your
+condition
+of
+darkness
+SP
+I
+can
+see
+a
+little
+now
+For
+a
+while
+I
+could
+see
+but
+the
+door
+was
+shut
+again
+and
+I
+could
+not
+see
+through
+I
+was
+with
+my
+wife
+and
+child
+for
+a
+time
+but
+no
+one
+noticed
+me
+But
+now
+the
+door
+is
+closed
+and
+I
+am
+out
+in
+the
+cold
+I
+am
+all
+alone
+when
+I
+go
+to
+my
+home
+Changes
+seem
+to
+have
+taken
+place
+I
+do
+not
+know
+what
+I
+shall
+do
+Dr
+You
+have
+not
+realized
+your
+own
+situation
+Sp
+What
+is
+the
+matter
+anyway
+What
+is
+causing
+this
+darkness
+What
+can
+I
+do
+to
+get
+out
+of
+it
+I
+never
+was
+so
+handicapped
+as
+I
+am
+now
+I
+was
+all
+right
+for
+just
+a
+minute
+I
+hear
+somebody
+talking
+There
+now
+I
+see
+him
+again
+Was
+it
+Mr
+Stead
+Dr
+Mr
+Stead
+was
+speaking
+through
+this
+instrument
+just
+before
+you
+came
+Mr
+Stead
+probably
+brought
+you
+here
+for
+help
+It
+is
+our
+work
+to
+awaken
+earthbound
+spirits
+who
+are
+in
+darkness
+Sp
+This
+darkness
+is
+terrible
+I
+have
+been
+in
+this
+darkness
+for
+a
+long
+time
+Dr
+Understand
+that
+there
+is
+no
+death
+Life
+continues
+in
+the
+spirit
+world
+where
+each
+one
+must
+serve
+others
+in
+order
+to
+progress
+Sp
+I
+really
+was
+not
+what
+I
+should
+have
+been
+I
+just
+lived
+for
+self
+I
+wanted
+amusement
+and
+to
+spend
+money
+But
+now
+all
+I
+have
+seen
+is
+my
+past
+and
+I
+have
+been
+in
+the
+darkness
+and
+it
+is
+terrible
+Every
+act
+of
+my
+past
+stands
+before
+me
+and
+I
+want
+to
+run
+away
+from
+it
+but
+I
+cannot
+It
+is
+there
+all
+the
+time
+and
+accuses
+me
+because
+I
+could
+have
+done
+differently
+I
+have
+seen
+so
+many
+places
+where
+I
+could
+have
+done
+good
+but
+now
+it
+seems
+too
+late
+Dr
+When
+a
+person
+lives
+for
+self
+alone
+he
+usually
+finds
+himself
+in
+darkness
+when
+he
+passes
+over
+to
+the
+other
+side
+of
+life
+You
+must
+obtain
+understanding
+of
+the
+glories
+of
+the
+spirit
+world
+and
+realize
+that
+life
+there
+is
+service
+to
+others
+That
+is
+the
+true
+Heaven
+it
+is
+a
+condition
+of
+mind
+Sp
+Why
+are
+not
+these
+things
+taught
+in
+the
+world
+Dr
+Would
+the
+world
+listen
+Humanity
+as
+a
+whole
+does
+not
+look
+for
+the
+spiritual
+side
+of
+life
+but
+looks
+for
+other
+things
+The
+world
+is
+seeking
+for
+amusement
+and
+for
+selfish
+gain
+not
+for
+truth
+Sp
+There
+is
+such
+a
+queer
+feeling
+coming
+over
+me
+Mother
+Mother
+my
+loving
+mother
+Spirit
+I
+am
+a
+man
+but
+I
+feel
+like
+a
+child
+in
+your
+arms
+again
+I
+have
+been
+longing
+for
+you
+but
+I
+have
+been
+living
+all
+by
+myself
+in
+the
+terrible
+darkness
+Why
+is
+it
+that
+I
+should
+be
+in
+the
+dark
+Cannot
+my
+eyes
+be
+cured
+Will
+I
+be
+blind
+all
+the
+time
+Isn
+t
+it
+strange
+that
+I
+can
+see
+you
+yet
+I
+seem
+to
+be
+blind
+Dr
+You
+have
+a
+spiritual
+body
+now
+and
+when
+your
+spiritual
+eyes
+are
+opened
+you
+will
+see
+the
+beautiful
+things
+of
+the
+spirit
+world
+Sp
+I
+see
+Mr
+Stead
+there
+We
+were
+both
+on
+the
+same
+boat
+but
+he
+does
+not
+seem
+to
+be
+in
+the
+dark
+Dr
+He
+understood
+the
+truth
+of
+spirit
+return
+and
+life
+on
+the
+other
+side
+while
+he
+was
+on
+earth
+Life
+is
+a
+school
+and
+we
+must
+learn
+all
+we
+can
+about
+the
+spirit
+side
+of
+life
+while
+we
+are
+on
+earth
+for
+the
+only
+light
+we
+have
+when
+we
+pass
+to
+the
+other
+side
+is
+the
+knowledge
+pertaining
+to
+life
+s
+problems
+which
+we
+have
+gathered
+here
+Sp
+Why
+did
+no
+one
+ever
+tell
+me
+these
+things
+Dr
+Would
+you
+have
+listened
+to
+any
+one
+who
+would
+have
+tried
+to
+talk
+to
+you
+on
+these
+subjects
+Sp
+No
+one
+ever
+approached
+me
+with
+such
+ideas
+Dr
+What
+year
+do
+you
+think
+this
+is
+Sp
+Dr
+It
+is
+Sp
+Where
+have
+I
+been
+I
+have
+been
+very
+hungry
+and
+cold
+I
+had
+a
+very
+great
+deal
+of
+money
+but
+lately
+when
+I
+have
+wanted
+some
+to
+spend
+I
+could
+not
+get
+hold
+of
+it
+Sometimes
+I
+seemed
+to
+be
+shut
+up
+in
+a
+room
+very
+dark
+and
+I
+could
+see
+nothing
+but
+a
+procession
+of
+my
+past
+life
+I
+was
+not
+a
+bad
+man
+but
+you
+probably
+know
+what
+society
+people
+are
+I
+did
+not
+know
+until
+now
+what
+it
+was
+to
+be
+poor
+It
+is
+a
+new
+experience
+to
+me
+Why
+should
+humanity
+not
+be
+taught
+differently
+before
+death
+Then
+there
+would
+not
+be
+such
+suffering
+as
+I
+am
+in
+now
+Dr
+If
+you
+will
+go
+with
+your
+mother
+and
+other
+spirit
+friends
+and
+try
+to
+understand
+what
+they
+tell
+you
+you
+will
+feel
+much
+happier
+Sp
+I
+can
+see
+Mr
+Stead
+I
+met
+him
+on
+the
+boat
+but
+I
+had
+no
+use
+for
+his
+teachings
+I
+thought
+he
+was
+old
+and
+that
+he
+had
+a
+hobby
+You
+know
+when
+people
+get
+old
+they
+have
+hobbies
+of
+one
+kind
+or
+another
+I
+never
+had
+time
+for
+such
+things
+because
+all
+I
+thought
+of
+was
+my
+money
+and
+society
+We
+do
+not
+see
+the
+poor
+people
+and
+we
+do
+not
+care
+to
+see
+them
+I
+could
+do
+so
+differently
+now
+but
+money
+is
+of
+no
+use
+to
+me
+any
+longer
+My
+mother
+is
+waiting
+for
+me
+and
+I
+should
+like
+to
+go
+with
+her
+for
+I
+have
+not
+seen
+her
+for
+years
+and
+it
+is
+so
+good
+to
+see
+her
+She
+says
+she
+could
+not
+reach
+me
+for
+I
+was
+like
+a
+crazy
+man
+and
+would
+not
+listen
+to
+her
+Bless
+you
+all
+for
+the
+help
+you
+have
+been
+to
+me
+and
+for
+having
+opened
+my
+eyes
+It
+is
+misery
+to
+be
+blind
+yet
+able
+to
+see
+the
+procession
+of
+your
+past
+life
+and
+not
+be
+able
+to
+see
+or
+hear
+anything
+else
+Dr
+We
+should
+like
+to
+know
+your
+name
+Sp
+I
+am
+John
+J
+A
+and
+I
+am
+glad
+I
+met
+you
+all
+I
+am
+so
+grateful
+for
+what
+you
+have
+told
+me
+Now
+I
+can
+see
+and
+hear
+and
+understand
+something
+that
+I
+did
+not
+know
+existed
+My
+mother
+and
+friends
+are
+coming
+for
+me
+and
+now
+I
+am
+going
+through
+that
+beautiful
+gate
+into
+what
+will
+be
+to
+me
+Heaven
+I
+again
+thank
+you
+all
+and
+hope
+some
+day
+to
+come
+and
+see
+you
+again
+Goodbye
+A
+few
+weeks
+later
+the
+foregoing
+spirit
+brought
+a
+friend
+another
+member
+of
+New
+York
+s
+aristocracy
+who
+had
+met
+his
+death
+at
+the
+sinking
+of
+the
+Lusitania
+EXPERIENCE
+NOVEMBER
+Spirit
+ALFRED
+V
+Psychic
+MRS
+WICKLAND
+Spirit
+Somebody
+told
+me
+to
+come
+in
+here
+and
+I
+would
+get
+warm
+Doctor
+What
+is
+your
+name
+Sp
+Alfred
+V
+I
+was
+on
+a
+boat
+John
+J
+A
+came
+and
+told
+me
+he
+would
+try
+to
+help
+me
+get
+in
+here
+He
+said
+if
+I
+would
+come
+in
+here
+I
+would
+get
+help
+Say
+I
+have
+never
+been
+hungry
+in
+my
+life
+before
+but
+I
+am
+both
+hungry
+and
+cold
+and
+my
+clothes
+are
+all
+wet
+Dr
+That
+is
+only
+a
+condition
+of
+your
+mind
+You
+have
+lost
+your
+physical
+body
+and
+should
+not
+feel
+the
+need
+of
+food
+Sp
+I
+know
+I
+drowned
+and
+I
+have
+been
+in
+misery
+ever
+since
+Dr
+If
+you
+had
+an
+understanding
+of
+the
+life
+hereafter
+and
+of
+progression
+in
+the
+spirit
+world
+you
+would
+soon
+find
+happiness
+through
+serving
+others
+Sp
+I
+never
+was
+happy
+I
+suppose
+I
+had
+my
+own
+way
+too
+much
+yet
+sometimes
+I
+felt
+what
+was
+the
+use
+But
+I
+thought
+Just
+forget
+yourself
+and
+have
+a
+good
+time
+You
+may
+not
+care
+for
+society
+life
+but
+in
+society
+you
+can
+drown
+yourself
+in
+gaiety
+I
+really
+did
+not
+care
+for
+society
+life
+I
+used
+to
+forget
+myself
+with
+my
+horses
+If
+you
+have
+a
+beautiful
+horse
+he
+is
+faithful
+to
+you
+through
+life
+But
+when
+you
+get
+into
+society
+women
+just
+show
+you
+one
+side
+smiles
+and
+sometimes
+they
+hate
+you
+The
+love
+I
+know
+most
+is
+the
+love
+of
+a
+beautiful
+faithful
+horse
+Horses
+were
+my
+pleasure
+and
+I
+felt
+they
+loved
+me
+Women
+liked
+me
+only
+for
+what
+I
+could
+do
+for
+them
+they
+wanted
+money
+and
+pleasure
+Women
+wanted
+all
+the
+money
+they
+could
+get
+from
+me
+I
+let
+go
+of
+things
+and
+tried
+to
+lose
+myself
+in
+pleasure
+but
+I
+was
+not
+happy
+Society
+does
+not
+know
+anything
+about
+honor
+and
+respectability
+If
+I
+could
+find
+people
+as
+faithful
+and
+true
+as
+my
+horse
+was
+to
+me
+I
+tell
+you
+I
+would
+thank
+you
+for
+that
+society
+But
+go
+into
+the
+kind
+of
+society
+I
+have
+known
+and
+men
+and
+women
+are
+nothing
+I
+was
+a
+sport
+myself
+but
+there
+were
+things
+that
+drove
+me
+to
+forget
+that
+little
+thing
+within
+me
+conscience
+I
+longed
+for
+something
+that
+was
+good
+but
+where
+can
+you
+find
+it
+Not
+amongst
+society
+but
+amongst
+horses
+Society
+is
+all
+right
+if
+you
+want
+that
+kind
+of
+a
+life
+You
+will
+probably
+realize
+that
+I
+developed
+a
+great
+deal
+of
+selfishness
+Dr
+You
+must
+try
+now
+to
+forget
+your
+past
+life
+with
+all
+its
+sorrow
+and
+bitterness
+Look
+for
+higher
+things
+then
+your
+spiritual
+eyes
+will
+be
+opened
+Sp
+Friends
+that
+took
+an
+interest
+in
+me
+brought
+me
+here
+and
+my
+eyes
+have
+been
+opened
+since
+I
+came
+I
+feel
+that
+probably
+but
+I
+am
+not
+sure
+a
+time
+may
+come
+when
+I
+can
+be
+happy
+I
+have
+never
+been
+really
+happy
+for
+when
+a
+child
+I
+had
+my
+own
+way
+too
+much
+I
+thank
+you
+for
+allowing
+me
+to
+come
+here
+If
+I
+ever
+am
+truly
+happy
+I
+will
+come
+back
+and
+tell
+you
+so
+A
+sequel
+to
+the
+above
+occurred
+several
+years
+later
+when
+John
+J
+A
+and
+Alfred
+V
+brought
+to
+our
+circle
+a
+friend
+of
+theirs
+Anna
+H
+stage
+celebrity
+EXPERIENCE
+SEPTEMBER
+Spirit
+ANNA
+H
+Psychic
+MRS
+WICKLAND
+Spirit
+Water
+Please
+water
+A
+glass
+of
+water
+was
+given
+and
+eagerly
+taken
+Thank
+you
+so
+much
+I
+have
+been
+very
+sick
+and
+am
+still
+weak
+The
+doctors
+really
+do
+not
+know
+what
+is
+the
+matter
+with
+me
+They
+said
+I
+must
+be
+kept
+quiet
+My
+legs
+and
+arms
+pain
+me
+so
+Doctor
+We
+will
+relieve
+your
+pain
+Manipulating
+arms
+of
+psychic
+Sp
+Be
+very
+careful
+about
+my
+bones
+I
+want
+to
+retain
+my
+beautiful
+form
+I
+want
+to
+get
+well
+and
+return
+to
+my
+work
+I
+have
+been
+very
+sick
+and
+I
+am
+still
+very
+weak
+Dr
+What
+is
+your
+name
+Sp
+My
+name
+is
+Anna
+H
+Dr
+How
+did
+you
+come
+to
+Los
+Angeles
+Sp
+I
+am
+not
+in
+Los
+Angeles
+I
+am
+in
+New
+York
+Dr
+Who
+brought
+you
+here
+Sp
+I
+thought
+I
+had
+a
+dream
+and
+that
+Alfred
+V
+came
+and
+spoke
+to
+me
+He
+always
+liked
+me
+but
+he
+is
+dead
+Now
+he
+says
+that
+I
+must
+wake
+up
+I
+am
+so
+sick
+My
+bones
+my
+bones
+I
+don
+t
+want
+to
+lose
+my
+beautiful
+form
+I
+feel
+that
+I
+am
+commencing
+to
+get
+better
+and
+stronger
+Will
+I
+live
+now
+and
+can
+I
+perform
+again
+and
+do
+my
+work
+I
+do
+not
+want
+to
+lose
+my
+beautiful
+form
+Dr
+You
+will
+never
+perform
+on
+the
+physical
+plane
+again
+Sp
+I
+hope
+to
+Alfred
+V
+bothered
+me
+so
+much
+but
+he
+is
+dead
+Dr
+Does
+he
+look
+as
+though
+he
+were
+dead
+Sp
+He
+seems
+to
+be
+very
+well
+but
+I
+thought
+I
+was
+dreaming
+Why
+here
+is
+John
+J
+A
+too
+They
+are
+both
+dead
+Dr
+So
+are
+you
+Sp
+When
+did
+I
+die
+Dr
+A
+short
+time
+ago
+Sp
+Alfred
+says
+that
+they
+do
+missionary
+work
+to
+wake
+up
+spirits
+But
+they
+do
+not
+believe
+in
+such
+things
+as
+spirits
+I
+don
+t
+want
+to
+die
+Dr
+Nobody
+actually
+dies
+Sp
+Of
+course
+they
+do
+The
+doctors
+said
+I
+could
+never
+get
+well
+I
+fought
+and
+fought
+to
+live
+I
+want
+to
+live
+I
+want
+to
+overcome
+my
+sickness
+and
+get
+well
+again
+and
+I
+want
+to
+retain
+my
+beautiful
+form
+Dr
+From
+now
+on
+you
+must
+try
+to
+develop
+a
+beautiful
+spirit
+Sp
+The
+two
+men
+want
+me
+to
+go
+with
+them
+to
+find
+understanding
+Dr
+They
+have
+found
+the
+truth
+through
+this
+little
+circle
+They
+were
+very
+poor
+spiritually
+before
+they
+came
+here
+but
+became
+rich
+through
+an
+understanding
+of
+a
+more
+beautiful
+life
+than
+they
+had
+here
+on
+earth
+Sp
+What
+is
+this
+place
+They
+say
+it
+is
+the
+Gate
+to
+the
+Understanding
+of
+Real
+Life
+The
+Gateway
+Noticing
+dress
+This
+dress
+does
+not
+fit
+well
+Touching
+neck
+and
+shoulders
+This
+is
+not
+my
+neck
+or
+face
+or
+form
+They
+say
+I
+am
+weak
+yet
+but
+I
+am
+to
+go
+with
+them
+and
+they
+will
+show
+me
+the
+way
+but
+that
+I
+have
+much
+to
+learn
+Dr
+Did
+you
+ever
+ask
+yourself
+What
+is
+Mind
+Sp
+No
+I
+just
+wanted
+my
+beautiful
+form
+If
+it
+were
+not
+for
+my
+beautiful
+form
+and
+acting
+I
+could
+not
+have
+attracted
+people
+to
+me
+and
+earned
+my
+living
+There
+are
+quite
+a
+few
+people
+here
+Spirits
+Alfred
+said
+if
+I
+came
+here
+he
+would
+bring
+me
+to
+my
+relations
+and
+to
+a
+beautiful
+home
+beyond
+the
+grave
+Dr
+What
+do
+they
+call
+that
+place
+Sp
+I
+do
+not
+like
+the
+name
+but
+they
+say
+The
+Spirit
+World
+They
+say
+that
+is
+the
+home
+beyond
+the
+grave
+They
+say
+I
+shall
+have
+to
+overcome
+my
+earthly
+condition
+before
+I
+can
+open
+my
+psychic
+eyes
+I
+do
+not
+know
+what
+they
+mean
+They
+say
+if
+I
+go
+with
+them
+I
+will
+find
+beautiful
+conditions
+after
+I
+have
+understanding
+but
+that
+I
+shall
+have
+to
+overcome
+a
+great
+deal
+of
+self
+and
+live
+for
+others
+Alfred
+says
+that
+we
+lived
+for
+society
+and
+ourselves
+and
+we
+have
+to
+suffer
+for
+it
+He
+says
+I
+must
+go
+but
+I
+cannot
+for
+I
+am
+very
+sick
+Dr
+Your
+body
+was
+sick
+but
+you
+have
+lost
+that
+body
+It
+is
+in
+the
+East
+Sp
+I
+feel
+better
+now
+than
+I
+did
+a
+while
+ago
+Dr
+My
+wife
+is
+a
+psychic
+sensitive
+and
+you
+are
+speaking
+through
+her
+body
+Alfred
+V
+and
+John
+J
+A
+at
+one
+time
+controlled
+her
+body
+as
+you
+are
+now
+doing
+Sp
+My
+bones
+are
+so
+sore
+Dr
+That
+is
+only
+in
+your
+mind
+Mind
+is
+not
+the
+body
+Mind
+is
+invisible
+We
+do
+not
+see
+you
+at
+all
+you
+are
+invisible
+to
+us
+Sp
+Touching
+face
+This
+is
+not
+my
+face
+and
+I
+don
+t
+want
+this
+form
+I
+want
+my
+beautiful
+form
+Dr
+It
+will
+be
+your
+duty
+to
+serve
+others
+in
+the
+spirit
+world
+Sp
+These
+people
+want
+me
+to
+go
+with
+them
+They
+took
+quite
+an
+interest
+in
+me
+and
+my
+work
+My
+pains
+seem
+to
+be
+leaving
+me
+Will
+you
+please
+tell
+me
+how
+I
+could
+come
+here
+when
+you
+are
+all
+strangers
+to
+me
+I
+do
+not
+know
+why
+I
+should
+be
+here
+tonight
+I
+feel
+so
+well
+now
+Dr
+We
+are
+carrying
+on
+experimental
+work
+to
+learn
+what
+becomes
+of
+the
+dead
+My
+wife
+is
+a
+psychic
+and
+you
+are
+controlling
+her
+body
+Sp
+Alfred
+says
+I
+must
+go
+I
+thought
+I
+had
+a
+dream
+and
+that
+I
+was
+going
+to
+die
+but
+I
+fought
+and
+fought
+for
+a
+long
+time
+I
+did
+not
+want
+to
+die
+so
+I
+used
+all
+my
+will
+power
+to
+live
+as
+long
+as
+I
+could
+One
+day
+I
+felt
+very
+weak
+and
+I
+went
+to
+sleep
+for
+quite
+a
+while
+but
+I
+woke
+up
+again
+as
+I
+wanted
+to
+live
+They
+thought
+I
+was
+dead
+but
+I
+was
+not
+I
+had
+only
+gone
+to
+sleep
+I
+wanted
+to
+live
+because
+life
+is
+dear
+to
+me
+but
+I
+was
+sick
+so
+long
+and
+suffered
+so
+severely
+I
+went
+to
+sleep
+again
+and
+I
+slept
+a
+long
+time
+and
+when
+I
+woke
+up
+it
+was
+all
+dark
+and
+I
+could
+not
+see
+anything
+at
+all
+Everything
+was
+dark
+dark
+dark
+I
+could
+not
+find
+any
+light
+and
+it
+was
+so
+dark
+I
+felt
+so
+distressed
+all
+dark
+I
+thought
+then
+I
+went
+to
+sleep
+again
+and
+as
+I
+slept
+I
+dreamed
+Alfred
+V
+and
+John
+J
+A
+came
+to
+me
+and
+said
+Anna
+wake
+up
+We
+are
+here
+to
+help
+you
+Come
+with
+us
+Come
+I
+thought
+I
+was
+waking
+up
+but
+I
+was
+so
+sick
+so
+sick
+that
+I
+could
+not
+go
+with
+them
+My
+crippled
+body
+was
+so
+sick
+They
+said
+We
+will
+take
+you
+to
+a
+place
+where
+you
+will
+have
+a
+new
+body
+and
+you
+will
+be
+well
+and
+strong
+Come
+with
+us
+to
+a
+more
+beautiful
+world
+than
+this
+Here
+I
+am
+all
+well
+and
+strong
+Will
+I
+not
+have
+those
+terrible
+pains
+again
+They
+are
+so
+hard
+on
+me
+I
+felt
+I
+must
+not
+eat
+too
+much
+or
+drink
+too
+much
+or
+I
+would
+not
+be
+able
+to
+retain
+my
+beautiful
+form
+I
+would
+not
+eat
+meat
+because
+I
+would
+get
+too
+fat
+and
+I
+must
+eat
+just
+enough
+to
+retain
+the
+roundness
+of
+my
+form
+What
+have
+I
+now
+Why
+did
+I
+not
+do
+more
+helpful
+things
+Life
+was
+so
+sweet
+I
+liked
+to
+be
+flattered
+and
+I
+liked
+to
+have
+admirers
+It
+is
+so
+hard
+to
+lose
+your
+admirers
+Dr
+Do
+Alfred
+V
+and
+J
+A
+flatter
+you
+now
+Sp
+No
+They
+do
+not
+look
+as
+they
+used
+to
+There
+is
+a
+seriousness
+about
+them
+They
+look
+so
+sincere
+that
+I
+feel
+different
+with
+them
+While
+to
+me
+they
+look
+much
+younger
+I
+know
+they
+are
+older
+They
+do
+not
+say
+to
+me
+as
+they
+did
+once
+Come
+along
+and
+have
+a
+good
+time
+Life
+was
+very
+sweet
+while
+I
+had
+admirers
+But
+I
+suffered
+for
+my
+vanity
+The
+doctors
+said
+if
+I
+had
+not
+laced
+so
+much
+I
+would
+not
+have
+been
+so
+sick
+I
+would
+not
+mind
+the
+doctors
+either
+They
+wanted
+me
+to
+eat
+to
+get
+strength
+but
+I
+was
+afraid
+if
+I
+lay
+there
+and
+ate
+and
+did
+not
+get
+my
+regular
+massage
+and
+baths
+I
+could
+not
+keep
+my
+form
+so
+I
+starved
+myself
+When
+I
+was
+in
+the
+dark
+Alfred
+came
+to
+me
+and
+said
+Come
+I
+will
+show
+you
+something
+far
+more
+beautiful
+than
+a
+beautiful
+form
+and
+selfishness
+and
+vanity
+They
+are
+only
+shadows
+Now
+come
+and
+we
+will
+show
+you
+why
+we
+should
+live
+for
+others
+You
+will
+be
+beautiful
+again
+when
+you
+have
+served
+others
+but
+you
+must
+forget
+self
+and
+overcome
+all
+selfishness
+Now
+I
+must
+serve
+and
+I
+must
+help
+Suddenly
+the
+spirit
+lost
+control
+and
+was
+gone
+Two
+years
+later
+after
+Anna
+H
+had
+brought
+the
+spirits
+of
+Olive
+T
+and
+Anna
+D
+to
+our
+circle
+she
+spoke
+to
+us
+again
+EXPERIENCE
+SEPTEMBER
+Spirit
+ANNA
+H
+Psychic
+MRS
+WICKLAND
+Good
+Evening
+I
+came
+here
+tonight
+to
+thank
+you
+for
+what
+you
+have
+done
+for
+me
+I
+am
+now
+very
+happy
+I
+only
+lived
+for
+myself
+and
+for
+my
+body
+and
+beauty
+I
+lived
+only
+for
+a
+good
+time
+When
+you
+live
+for
+a
+good
+time
+you
+are
+not
+really
+happy
+You
+are
+always
+afraid
+that
+some
+one
+will
+shine
+brighter
+than
+yourself
+or
+that
+some
+one
+will
+take
+your
+place
+and
+charm
+away
+your
+admirers
+Here
+in
+this
+room
+I
+found
+harmony
+when
+I
+was
+in
+such
+darkness
+I
+could
+not
+see
+anything
+except
+all
+the
+promises
+I
+had
+made
+and
+broken
+and
+I
+felt
+sad
+Now
+I
+have
+understanding
+of
+the
+real
+life
+The
+real
+life
+is
+to
+serve
+others
+to
+do
+good
+for
+others
+to
+help
+others
+then
+you
+yourself
+will
+have
+help
+This
+brings
+happiness
+which
+is
+Heaven
+it
+is
+the
+Heaven
+of
+Contentment
+When
+I
+first
+came
+here
+I
+was
+very
+sad
+and
+gloomy
+I
+had
+only
+thought
+of
+self
+with
+never
+a
+thought
+of
+God
+our
+Maker
+We
+should
+all
+think
+of
+Him
+and
+learn
+to
+know
+Him
+He
+is
+the
+one
+we
+should
+pray
+to
+and
+we
+should
+try
+to
+realize
+what
+life
+is
+We
+should
+learn
+to
+know
+not
+be
+satisfied
+with
+blind
+belief
+Learn
+to
+understand
+God
+in
+His
+truest
+sense
+I
+was
+once
+quite
+a
+church
+going
+girl
+I
+believed
+and
+believed
+and
+condemned
+others
+and
+thought
+if
+you
+did
+not
+do
+so
+and
+so
+you
+would
+be
+lost
+That
+is
+the
+reason
+many
+fall
+by
+the
+wayside
+People
+only
+have
+time
+for
+amusement
+They
+do
+not
+go
+to
+church
+Why
+are
+they
+not
+taught
+to
+understand
+the
+real
+Christ
+spirit
+Give
+them
+innocent
+amusement
+of
+one
+kind
+or
+another
+and
+do
+not
+keep
+them
+wrapped
+in
+gloom
+praying
+and
+praying
+all
+the
+time
+They
+fall
+They
+want
+to
+go
+to
+church
+and
+they
+want
+See
+Chap
+Pages
+Spirit
+Olive
+T
+to
+have
+a
+good
+time
+but
+they
+are
+taught
+that
+if
+they
+do
+not
+go
+to
+church
+and
+pray
+they
+will
+fall
+lower
+and
+lower
+and
+they
+will
+be
+condemned
+not
+by
+God
+but
+condemned
+by
+the
+people
+If
+a
+girl
+falls
+who
+will
+raise
+her
+up
+Does
+the
+church
+do
+this
+work
+No
+churches
+will
+not
+have
+anything
+to
+do
+with
+her
+because
+they
+say
+she
+is
+bad
+They
+say
+We
+do
+not
+want
+our
+daughters
+to
+go
+about
+with
+her
+or
+be
+seen
+in
+her
+company
+because
+she
+will
+make
+them
+bad
+Since
+churches
+teach
+the
+Gospel
+of
+Christ
+why
+should
+they
+not
+help
+such
+a
+soul
+to
+rise
+Christ
+did
+not
+accuse
+the
+fallen
+woman
+He
+said
+that
+he
+who
+was
+without
+sin
+should
+cast
+the
+first
+stone
+Because
+a
+woman
+had
+fallen
+accusers
+stood
+ready
+to
+throw
+stones
+at
+her
+When
+Christ
+spoke
+the
+accusers
+went
+away
+Then
+what
+did
+Christ
+do
+He
+took
+her
+hand
+lifted
+her
+up
+and
+said
+Where
+are
+your
+accusers
+Go
+and
+sin
+no
+more
+He
+meant
+she
+should
+try
+to
+enter
+a
+new
+life
+and
+do
+better
+But
+society
+will
+not
+have
+her
+The
+churches
+will
+not
+have
+her
+She
+is
+down
+Where
+will
+she
+go
+Where
+can
+she
+go
+She
+has
+not
+sinned
+against
+any
+one
+but
+herself
+Her
+own
+self
+accuses
+her
+for
+what
+she
+has
+done
+How
+can
+she
+rise
+If
+she
+goes
+to
+church
+she
+will
+not
+be
+helped
+there
+She
+can
+only
+go
+to
+the
+lowest
+condition
+where
+there
+is
+a
+good
+time
+and
+champagne
+and
+try
+to
+drown
+her
+conscience
+Suppose
+we
+tell
+the
+people
+that
+this
+unfortunate
+girl
+has
+fallen
+has
+had
+to
+go
+into
+a
+wild
+underworld
+has
+been
+bad
+has
+had
+no
+chance
+to
+rise
+and
+that
+her
+character
+has
+gone
+will
+they
+help
+her
+No
+they
+will
+not
+We
+should
+always
+try
+to
+help
+others
+especially
+the
+weak
+and
+fallen
+ones
+and
+try
+to
+raise
+them
+as
+Christ
+taught
+us
+Do
+not
+condemn
+but
+raise
+them
+to
+society
+again
+and
+help
+them
+to
+be
+honest
+and
+sincere
+Then
+we
+shall
+convert
+the
+world
+of
+men
+as
+well
+as
+women
+Men
+are
+also
+greatly
+to
+blame
+for
+trying
+to
+ruin
+poor
+innocent
+little
+girls
+Just
+because
+a
+girl
+has
+a
+beautiful
+face
+and
+has
+charms
+men
+should
+not
+praise
+and
+flatter
+They
+ruin
+the
+girl
+The
+man
+goes
+back
+to
+society
+but
+the
+girl
+goes
+lower
+and
+lower
+She
+cannot
+go
+back
+to
+her
+former
+life
+but
+has
+to
+remain
+where
+she
+is
+If
+you
+could
+see
+the
+lower
+life
+of
+Paris
+you
+would
+shudder
+and
+realize
+that
+that
+is
+hell
+People
+who
+go
+there
+have
+lost
+their
+pride
+their
+senses
+The
+women
+there
+have
+lost
+all
+modesty
+They
+do
+not
+believe
+in
+God
+they
+do
+not
+believe
+in
+the
+Christian
+religion
+any
+more
+because
+the
+Christian
+religion
+and
+its
+people
+have
+driven
+them
+to
+what
+they
+are
+They
+think
+there
+is
+no
+God
+and
+so
+they
+can
+do
+whatever
+they
+wish
+Let
+us
+try
+to
+help
+these
+unfortunates
+I
+am
+now
+working
+in
+the
+slums
+of
+earthbound
+spirits
+I
+am
+serving
+There
+was
+a
+time
+when
+I
+would
+not
+soil
+my
+hands
+to
+help
+anybody
+because
+I
+had
+to
+be
+waited
+on
+I
+had
+my
+maid
+and
+if
+I
+were
+not
+waited
+on
+at
+once
+just
+when
+I
+wanted
+things
+I
+scolded
+and
+was
+very
+irritable
+Now
+I
+wait
+on
+the
+lowest
+with
+the
+true
+spirit
+of
+Christ
+who
+taught
+us
+to
+serve
+others
+and
+love
+others
+as
+ourselves
+and
+God
+above
+all
+things
+When
+the
+one
+who
+has
+fallen
+by
+the
+wayside
+is
+given
+true
+understanding
+then
+that
+soul
+will
+serve
+and
+his
+love
+for
+his
+fellow
+man
+will
+be
+much
+stronger
+than
+that
+of
+the
+one
+who
+does
+not
+have
+that
+understanding
+One
+who
+has
+always
+had
+a
+good
+home
+gone
+to
+church
+and
+is
+pure
+and
+good
+knows
+nothing
+of
+evil
+Let
+us
+all
+understand
+our
+Maker
+the
+God
+of
+us
+all
+Our
+Maker
+is
+God
+for
+the
+one
+who
+has
+fallen
+just
+as
+much
+as
+for
+the
+pure
+God
+is
+Love
+When
+you
+have
+shining
+in
+your
+heart
+that
+light
+of
+love
+which
+is
+the
+love
+of
+God
+not
+love
+as
+people
+understand
+it
+lukewarm
+sentimental
+love
+but
+love
+which
+has
+suffered
+and
+which
+understands
+which
+does
+not
+ask
+anything
+which
+sacrifices
+and
+will
+serve
+from
+the
+lowest
+to
+the
+highest
+that
+is
+real
+true
+love
+When
+people
+are
+crushed
+we
+should
+raise
+them
+again
+with
+love
+and
+sympathy
+then
+we
+could
+not
+condemn
+any
+one
+God
+does
+not
+condemn
+Why
+should
+we
+God
+loves
+all
+his
+children
+He
+has
+given
+them
+all
+free
+will
+to
+go
+their
+own
+way
+for
+a
+while
+until
+they
+are
+ready
+to
+say
+Not
+my
+will
+any
+longer
+but
+Thine
+Each
+one
+of
+us
+has
+had
+experience
+in
+one
+way
+or
+another
+but
+let
+us
+all
+look
+to
+God
+and
+let
+the
+love
+of
+God
+and
+understanding
+so
+shine
+in
+our
+souls
+that
+each
+will
+he
+a
+part
+of
+that
+divine
+spirit
+of
+love
+No
+minister
+no
+one
+can
+reach
+you
+but
+you
+yourself
+will
+have
+to
+see
+and
+feel
+what
+God
+really
+is
+Then
+you
+will
+sin
+no
+more
+That
+is
+Heaven
+that
+is
+Bliss
+It
+is
+beautiful
+it
+is
+harmonious
+When
+each
+understands
+the
+other
+in
+God
+s
+love
+then
+there
+is
+peace
+and
+harmony
+but
+you
+will
+have
+to
+feel
+this
+beautiful
+condition
+which
+we
+call
+Heaven
+within
+you
+You
+cannot
+be
+contented
+in
+this
+beautiful
+condition
+unless
+you
+help
+others
+We
+stand
+by
+our
+brothers
+and
+sisters
+We
+call
+them
+so
+through
+love
+of
+God
+Say
+to
+those
+in
+misery
+Let
+me
+reach
+my
+hand
+down
+to
+you
+and
+I
+will
+help
+you
+to
+an
+understanding
+of
+the
+true
+love
+of
+God
+and
+you
+too
+will
+shine
+in
+this
+Heaven
+of
+Love
+From
+your
+own
+home
+in
+the
+spirit
+world
+you
+reach
+down
+to
+the
+lower
+plane
+and
+you
+see
+some
+here
+some
+there
+in
+all
+kinds
+of
+agony
+Some
+have
+taken
+their
+own
+lives
+because
+of
+disappointment
+in
+love
+Others
+are
+overcome
+by
+sickness
+Others
+are
+all
+crippled
+Others
+are
+being
+punished
+by
+conscience
+Through
+lack
+of
+understanding
+they
+pray
+and
+pray
+and
+sing
+They
+are
+only
+ignorant
+They
+pray
+to
+the
+personal
+God
+they
+believe
+in
+but
+the
+poor
+things
+do
+not
+understand
+the
+truth
+Others
+are
+earthbound
+because
+of
+their
+belief
+They
+do
+not
+want
+to
+talk
+to
+you
+because
+you
+do
+not
+belong
+to
+their
+church
+They
+say
+I
+do
+not
+want
+to
+have
+anything
+to
+do
+with
+you
+You
+stay
+there
+and
+I
+will
+stay
+here
+and
+the
+praying
+and
+singing
+goes
+on
+They
+do
+not
+know
+that
+they
+have
+passed
+out
+neither
+do
+they
+know
+of
+the
+wonderful
+God
+of
+Understanding
+When
+you
+have
+understanding
+the
+knowledge
+of
+God
+will
+shine
+in
+your
+heart
+I
+am
+in
+the
+spirit
+world
+now
+and
+it
+is
+all
+so
+beautiful
+but
+I
+would
+not
+have
+had
+all
+this
+happiness
+so
+soon
+had
+I
+not
+come
+here
+and
+been
+given
+understanding
+I
+would
+not
+have
+had
+it
+if
+I
+had
+not
+served
+I
+have
+brought
+many
+here
+who
+were
+crippled
+through
+lack
+of
+understanding
+and
+they
+received
+light
+These
+two
+young
+girls
+Olive
+T
+and
+her
+little
+friend
+Anna
+D
+who
+both
+took
+their
+own
+lives
+are
+ones
+whom
+I
+will
+look
+after
+I
+could
+do
+nothing
+with
+them
+because
+they
+knew
+I
+was
+dead
+Their
+fear
+of
+me
+kept
+me
+from
+them
+They
+shunned
+me
+I
+could
+not
+reach
+them
+I
+did
+not
+want
+them
+to
+go
+to
+any
+other
+place
+I
+did
+not
+want
+them
+to
+go
+to
+earth
+life
+and
+obsess
+some
+one
+I
+brought
+both
+of
+them
+here
+tonight
+and
+I
+shall
+take
+them
+to
+my
+home
+in
+the
+spirit
+world
+I
+will
+take
+care
+of
+them
+and
+help
+them
+to
+an
+understanding
+and
+some
+day
+they
+may
+come
+and
+thank
+you
+as
+I
+have
+come
+to
+thank
+you
+tonight
+Let
+us
+all
+have
+an
+understanding
+of
+truth
+Do
+not
+only
+believe
+Belief
+is
+all
+right
+but
+to
+your
+belief
+add
+knowledge
+and
+understanding
+of
+God
+s
+wonderful
+love
+Do
+not
+let
+others
+tell
+you
+they
+will
+save
+you
+because
+they
+cannot
+do
+it
+You
+will
+have
+to
+find
+the
+saving
+spirit
+within
+yourself
+When
+the
+love
+of
+understanding
+shines
+in
+your
+heart
+you
+will
+realize
+the
+wisdom
+of
+God
+Then
+you
+will
+not
+need
+to
+think
+that
+God
+is
+in
+His
+Heaven
+He
+is
+here
+there
+and
+everywhere
+He
+is
+in
+the
+drop
+of
+water
+He
+is
+in
+the
+flowers
+all
+are
+a
+part
+of
+His
+wonderful
+work
+Let
+us
+worship
+Him
+and
+let
+us
+see
+Him
+with
+open
+eyes
+and
+we
+will
+be
+happy
+Thank
+you
+for
+allowing
+me
+to
+come
+Goodbye
+In
+Chicago
+we
+had
+known
+two
+Jewish
+ladies
+Mrs
+Sr
+and
+Mrs
+Simons
+who
+were
+excellent
+friends
+although
+the
+latter
+was
+somewhat
+tyrannical
+in
+her
+exactions
+She
+particularly
+disapproved
+of
+the
+automatic
+writing
+which
+her
+friend
+was
+experimenting
+with
+declaring
+that
+Spiritualism
+was
+a
+fraud
+since
+after
+death
+everyone
+became
+a
+flower
+a
+bird
+or
+a
+tree
+Mrs
+Simons
+passed
+away
+in
+the
+presence
+of
+her
+friend
+suffering
+from
+dropsy
+and
+intense
+lumbago
+pains
+A
+number
+of
+years
+later
+when
+Mrs
+Sr
+was
+in
+California
+she
+developed
+melancholia
+and
+was
+afflicted
+so
+severely
+with
+pains
+in
+her
+back
+that
+she
+could
+not
+walk
+erectly
+After
+spending
+three
+weeks
+in
+the
+hospital
+without
+any
+improvement
+she
+came
+to
+us
+and
+after
+the
+following
+experience
+during
+a
+circle
+at
+which
+Mrs
+Sr
+was
+present
+she
+was
+entirely
+relieved
+EXPERIENCE
+OCTOBER
+Spirit
+MRS
+SIMONS
+Patient
+MRS
+SR
+Psychic
+MRS
+WICKLAND
+The
+controlling
+entity
+groaned
+and
+immediately
+placed
+hands
+on
+back
+apparently
+in
+great
+pain
+Doctor
+Are
+you
+in
+trouble
+Have
+you
+lost
+your
+body
+without
+understanding
+it
+Spirit
+I
+don
+t
+know
+Dr
+We
+can
+relieve
+your
+pain
+Tell
+us
+who
+you
+are
+Sp
+I
+don
+t
+know
+Dr
+Surely
+you
+know
+your
+own
+name
+Sp
+I
+cannot
+think
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+I
+don
+t
+know
+if
+I
+am
+dead
+Dr
+What
+did
+your
+friends
+call
+you
+Sp
+Mrs
+Simons
+Dr
+Where
+did
+you
+live
+Sp
+Chicago
+Dr
+Where
+did
+you
+live
+in
+Chicago
+Sp
+It
+s
+a
+long
+time
+ago
+and
+I
+don
+t
+know
+I
+have
+not
+felt
+just
+right
+Dr
+In
+what
+way
+Sp
+I
+felt
+so
+small
+and
+was
+so
+uncomfortable
+Dr
+Do
+you
+realize
+that
+you
+were
+interfering
+with
+some
+one
+Sp
+I
+know
+that
+I
+am
+in
+such
+a
+stupor
+I
+don
+t
+feel
+natural
+Dr
+Do
+you
+know
+the
+reason
+for
+that
+Sp
+No
+Dr
+You
+did
+not
+believe
+in
+spirits
+did
+you
+Sp
+No
+and
+I
+don
+t
+believe
+it
+yet
+Dr
+Then
+you
+do
+not
+believe
+in
+your
+own
+self
+do
+you
+You
+thought
+any
+one
+who
+believed
+in
+spirits
+was
+foolish
+Is
+it
+not
+foolish
+to
+be
+an
+earthbound
+spirit
+Do
+you
+realize
+that
+you
+have
+been
+one
+Mrs
+Sr
+Do
+you
+know
+me
+Sp
+I
+know
+that
+voice
+it
+belongs
+to
+a
+friend
+of
+mine
+Dr
+Where
+is
+she
+Sp
+In
+Chicago
+Dr
+What
+was
+her
+business
+Sp
+I
+don
+t
+know
+Everything
+is
+so
+dark
+and
+I
+cannot
+remember
+anything
+I
+know
+that
+voice
+but
+I
+cannot
+tell
+you
+who
+it
+belongs
+to
+I
+cannot
+remember
+her
+name
+at
+all
+but
+I
+knew
+her
+in
+Chicago
+She
+used
+to
+call
+and
+see
+me
+My
+friend
+was
+always
+like
+sunshine
+to
+me
+She
+helped
+me
+Dr
+What
+did
+she
+do
+Sp
+She
+always
+came
+with
+such
+a
+nice
+cheerful
+disposition
+but
+she
+got
+interested
+in
+Spiritualism
+once
+I
+told
+her
+not
+to
+bother
+with
+it
+because
+there
+was
+nothing
+in
+it
+I
+would
+not
+have
+anything
+to
+do
+with
+that
+I
+miss
+her
+so
+I
+only
+see
+her
+once
+in
+a
+while
+I
+feel
+so
+little
+and
+uncomfortable
+To
+save
+my
+life
+I
+cannot
+think
+of
+her
+name
+Dr
+What
+was
+her
+first
+name
+Sp
+It
+comes
+to
+me
+now
+It
+was
+R
+Something
+ails
+my
+memory
+and
+things
+are
+so
+queer
+to
+me
+Once
+in
+a
+while
+I
+get
+a
+glimpse
+of
+light
+then
+I
+feel
+I
+am
+locked
+up
+in
+a
+small
+place
+You
+know
+I
+am
+a
+big
+woman
+and
+in
+that
+little
+place
+aura
+of
+patient
+I
+was
+so
+crowded
+that
+I
+had
+no
+feeling
+Dr
+Did
+you
+get
+warmed
+up
+occasionally
+Sp
+Yes
+once
+in
+a
+while
+I
+do
+not
+know
+what
+is
+the
+matter
+but
+something
+burns
+me
+sometimes
+Static
+treatment
+given
+patient
+Now
+it
+is
+all
+dark
+dark
+I
+do
+not
+see
+a
+thing
+I
+do
+not
+know
+which
+is
+the
+best
+the
+fire
+or
+being
+crowded
+so
+that
+I
+got
+no
+breath
+I
+could
+not
+breathe
+I
+do
+not
+know
+why
+it
+is
+But
+I
+seemed
+to
+have
+gotten
+a
+shock
+Dr
+Did
+you
+die
+from
+a
+shock
+Sp
+I
+cannot
+tell
+that
+I
+am
+dead
+because
+I
+do
+not
+feel
+dead
+I
+have
+had
+fire
+and
+sometimes
+it
+was
+like
+thunder
+shooting
+pain
+Mrs
+Sr
+Do
+you
+remember
+Dr
+Wickland
+Sp
+Yes
+Mrs
+Sr
+Do
+you
+remember
+that
+machine
+he
+had
+Sp
+The
+one
+that
+shot
+fire
+Mrs
+Sr
+Yes
+and
+that
+is
+the
+fire
+you
+feel
+Sp
+Why
+I
+didn
+t
+take
+treatments
+from
+him
+Mrs
+Sr
+You
+have
+been
+bothering
+me
+all
+these
+years
+Sp
+Why
+did
+I
+bother
+you
+Mrs
+Sr
+Have
+Doctor
+explain
+it
+to
+you
+Dr
+It
+is
+not
+hard
+to
+explain
+You
+are
+now
+a
+spirit
+and
+have
+been
+hovering
+around
+your
+friend
+That
+is
+why
+you
+feel
+uncomfortable
+You
+are
+not
+in
+Chicago
+now
+you
+are
+in
+California
+You
+are
+in
+Los
+Angeles
+California
+Don
+t
+you
+remember
+Mrs
+Sr
+Sp
+Yes
+she
+was
+in
+Chicago
+Dr
+You
+are
+both
+in
+Los
+Angeles
+now
+Sp
+I
+was
+in
+Chicago
+I
+always
+had
+pains
+in
+my
+legs
+and
+very
+often
+in
+my
+head
+Mrs
+S
+You
+gave
+me
+those
+pains
+lately
+Dr
+You
+loaned
+Mrs
+Sr
+your
+pains
+Sp
+No
+you
+are
+mistaken
+in
+that
+Mrs
+Sr
+Do
+you
+remember
+Mrs
+Wickland
+of
+Chicago
+Dr
+Wickland
+s
+wife
+Do
+you
+remember
+she
+was
+a
+psychic
+Sp
+I
+don
+t
+seem
+to
+remember
+It
+is
+strange
+I
+don
+t
+know
+anything
+Mrs
+Sr
+You
+thought
+you
+knew
+so
+much
+Sp
+I
+supposed
+I
+knew
+You
+meddled
+with
+that
+foolish
+thing
+Spiritualism
+and
+I
+did
+not
+want
+to
+have
+anything
+to
+do
+with
+it
+Have
+you
+been
+fooling
+with
+it
+again
+Mrs
+Sr
+No
+you
+have
+been
+fooling
+with
+me
+Sp
+No
+I
+did
+not
+want
+to
+have
+anything
+to
+do
+with
+that
+there
+is
+nothing
+in
+it
+I
+didn
+t
+like
+that
+fire
+I
+could
+not
+stand
+it
+It
+chased
+me
+away
+I
+suffered
+terribly
+When
+I
+was
+chased
+out
+I
+was
+locked
+up
+in
+a
+new
+room
+Dr
+You
+were
+locked
+up
+in
+a
+room
+of
+ignorance
+Mrs
+Sr
+It
+is
+a
+long
+time
+since
+you
+died
+Sp
+I
+am
+not
+dead
+Dr
+Look
+at
+this
+hand
+Is
+that
+yours
+You
+are
+using
+another
+body
+now
+You
+are
+proving
+that
+what
+you
+thought
+was
+humbug
+is
+true
+Mrs
+Sr
+Do
+you
+know
+what
+year
+it
+is
+Mrs
+Simons
+Sp
+I
+don
+t
+know
+anything
+Where
+is
+my
+home
+Where
+is
+my
+girl
+Mrs
+Sr
+Your
+girl
+is
+not
+here
+You
+are
+in
+Los
+Angeles
+California
+Sp
+No
+now
+you
+are
+a
+little
+off
+Mrs
+Sr
+don
+t
+you
+know
+you
+are
+in
+Chicago
+Mrs
+Sr
+I
+have
+been
+here
+in
+California
+for
+six
+and
+one
+half
+years
+Sp
+We
+are
+in
+Chicago
+Such
+a
+foolish
+woman
+She
+is
+hypnotized
+and
+wants
+to
+have
+me
+believe
+such
+a
+story
+Dr
+Wouldn
+t
+you
+like
+to
+understand
+matters
+You
+have
+been
+dead
+a
+good
+many
+years
+and
+were
+hovering
+around
+your
+friend
+Mrs
+Sr
+You
+were
+driven
+away
+from
+her
+by
+electricity
+Now
+you
+are
+allowed
+to
+control
+my
+wife
+s
+body
+temporarily
+so
+you
+may
+acquire
+understanding
+Do
+you
+know
+anything
+about
+the
+purpose
+of
+life
+Did
+that
+ever
+interest
+you
+No
+therefore
+you
+think
+there
+could
+not
+be
+anything
+in
+a
+higher
+life
+You
+call
+yourself
+Mrs
+Simons
+This
+body
+belongs
+to
+Mrs
+Wickland
+and
+she
+is
+in
+Los
+Angeles
+California
+You
+claim
+you
+are
+in
+Chicago
+and
+we
+cannot
+convince
+you
+of
+the
+facts
+You
+have
+been
+obsessing
+Mrs
+Sr
+Sp
+I
+came
+to
+her
+because
+it
+was
+so
+dark
+It
+seems
+I
+had
+been
+sleeping
+for
+a
+while
+then
+I
+woke
+up
+I
+saw
+a
+light
+then
+I
+was
+here
+I
+could
+see
+just
+a
+little
+light
+if
+I
+could
+be
+with
+her
+Dr
+You
+got
+into
+her
+magnetic
+aura
+and
+made
+her
+suffer
+In
+order
+to
+get
+you
+out
+I
+applied
+electricity
+to
+her
+Mrs
+Sr
+Do
+you
+know
+what
+I
+told
+Doctor
+I
+told
+him
+to
+give
+you
+that
+electricity
+Sp
+You
+have
+no
+sympathy
+for
+a
+poor
+old
+lady
+like
+me
+Dr
+Would
+you
+have
+liked
+to
+have
+an
+earthbound
+spirit
+control
+your
+body
+SP
+I
+will
+not
+listen
+to
+you
+Dr
+You
+are
+willing
+to
+bother
+your
+friend
+Sp
+I
+do
+not
+know
+whether
+I
+have
+been
+bothering
+her
+I
+have
+only
+been
+around
+her
+to
+see
+light
+Dr
+Then
+how
+did
+you
+happen
+to
+get
+the
+electricity
+when
+I
+gave
+it
+to
+her
+I
+have
+never
+treated
+you
+Mrs
+Sr
+By
+right
+you
+ought
+to
+pay
+Dr
+Wickland
+for
+that
+treatment
+Mrs
+Simons
+Sp
+Tell
+me
+one
+thing
+how
+did
+I
+come
+here
+I
+do
+not
+think
+you
+are
+right
+Mrs
+Sr
+but
+if
+you
+should
+be
+how
+did
+you
+come
+to
+California
+Mrs
+Sr
+By
+paying
+my
+railroad
+fare
+I
+came
+here
+Did
+you
+pay
+anything
+Sp
+I
+never
+paid
+anything
+so
+how
+did
+I
+get
+here
+I
+don
+t
+believe
+it
+anyhow
+you
+cannot
+say
+that
+to
+me
+I
+am
+in
+Chicago
+and
+Mrs
+Sr
+was
+never
+in
+California
+Dr
+Do
+you
+hear
+that
+rumble
+That
+is
+a
+train
+leaving
+Los
+Angeles
+for
+Chicago
+Sp
+That
+is
+the
+Northwestern
+train
+Dr
+There
+is
+no
+Northwestern
+out
+here
+What
+do
+you
+gain
+by
+arguing
+When
+you
+understand
+the
+situation
+you
+will
+appreciate
+what
+I
+am
+trying
+to
+tell
+you
+What
+would
+you
+think
+of
+a
+person
+who
+refused
+to
+understand
+life
+who
+has
+been
+dead
+seven
+or
+eight
+years
+whose
+body
+is
+lost
+and
+in
+the
+grave
+and
+who
+is
+an
+ignorant
+spirit
+bothering
+one
+who
+was
+formerly
+a
+friend
+Sp
+I
+cannot
+see
+how
+that
+is
+Dr
+We
+are
+telling
+you
+facts
+Mrs
+Sr
+Your
+body
+was
+buried
+in
+Waltheim
+Cemetery
+six
+or
+eight
+years
+ago
+Sp
+I
+have
+been
+sleeping
+I
+woke
+up
+with
+very
+severe
+pains
+and
+I
+could
+not
+move
+very
+well
+and
+I
+felt
+so
+crowded
+Dr
+That
+was
+because
+Mrs
+Sr
+s
+body
+is
+smaller
+than
+yours
+and
+you
+have
+been
+obsessing
+her
+Sp
+How
+could
+I
+get
+in
+that
+body
+I
+felt
+I
+could
+hardly
+move
+I
+have
+to
+find
+out
+what
+you
+are
+talking
+about
+I
+don
+t
+believe
+it
+I
+want
+to
+know
+what
+object
+you
+have
+to
+say
+such
+things
+Dr
+Did
+you
+ever
+study
+Life
+at
+all
+Sp
+I
+studied
+trees
+and
+Nature
+Dr
+Did
+you
+ever
+observe
+how
+the
+tree
+grows
+It
+is
+wonderful
+God
+puts
+life
+into
+it
+and
+it
+grows
+What
+is
+life
+Sp
+God
+I
+suppose
+Dr
+Have
+you
+ever
+seen
+mind
+Sp
+Mind
+is
+mind
+Dr
+Have
+you
+ever
+seen
+mind
+Sp
+No
+you
+could
+not
+talk
+if
+you
+had
+no
+mind
+Dr
+Mind
+is
+invisible
+isn
+t
+it
+Sp
+I
+haven
+t
+seen
+it
+Dr
+Suppose
+we
+tell
+you
+that
+you
+are
+invisible
+to
+us
+When
+I
+speak
+to
+you
+I
+can
+see
+only
+my
+wife
+s
+body
+Sp
+Your
+wife
+s
+body
+Mrs
+Sr
+what
+is
+the
+matter
+Have
+I
+lost
+my
+body
+Mrs
+Sr
+Yes
+you
+have
+Dr
+Only
+your
+stubbornness
+keeps
+you
+in
+the
+dark
+Sp
+I
+haven
+t
+seen
+or
+heard
+anything
+There
+was
+a
+time
+I
+tell
+you
+when
+I
+walked
+on
+and
+on
+but
+always
+in
+the
+dark
+and
+it
+seemed
+like
+I
+never
+could
+get
+there
+I
+rested
+then
+I
+kept
+on
+walking
+At
+first
+I
+could
+see
+just
+a
+little
+light
+and
+it
+seems
+like
+it
+came
+to
+me
+in
+a
+flash
+Mrs
+Sr
+I
+thought
+Yes
+she
+was
+a
+friend
+of
+mine
+and
+then
+I
+could
+see
+her
+Dr
+You
+transferred
+yourself
+by
+thought
+Sp
+Then
+I
+had
+a
+terrible
+pain
+I
+thought
+I
+had
+lost
+all
+my
+pain
+for
+a
+little
+while
+I
+woke
+up
+and
+felt
+no
+pain
+at
+first
+but
+when
+I
+got
+to
+that
+light
+all
+the
+pain
+came
+back
+Dr
+You
+had
+pain
+when
+you
+had
+your
+body
+You
+must
+understand
+you
+are
+a
+spirit
+invisible
+to
+us
+When
+an
+earthbound
+spirit
+comes
+in
+touch
+with
+a
+mortal
+body
+he
+again
+has
+the
+pains
+he
+passed
+out
+with
+You
+got
+in
+touch
+with
+Mrs
+Sr
+and
+had
+your
+mortal
+pains
+again
+You
+have
+caused
+trouble
+You
+were
+selfish
+and
+you
+have
+not
+gained
+anything
+by
+it
+In
+the
+spirit
+world
+you
+will
+have
+to
+serve
+others
+Realize
+that
+you
+are
+now
+a
+spirit
+you
+no
+longer
+have
+a
+physical
+body
+Why
+did
+you
+not
+become
+a
+tree
+as
+you
+expected
+to
+Mrs
+Sr
+Your
+body
+is
+buried
+in
+Waltheim
+Cemetery
+Chicago
+Go
+to
+the
+cemetery
+and
+see
+if
+you
+have
+a
+tombstone
+there
+Sp
+I
+don
+t
+want
+to
+go
+and
+examine
+my
+tombstone
+in
+the
+cemetery
+Dr
+Did
+you
+go
+to
+church
+Sp
+I
+believed
+that
+when
+I
+died
+there
+was
+nothing
+more
+I
+didn
+t
+want
+to
+have
+such
+foolish
+thoughts
+as
+you
+had
+Mrs
+Sr
+I
+had
+my
+own
+ideas
+and
+did
+not
+need
+yours
+Dr
+God
+created
+the
+world
+but
+you
+did
+not
+investigate
+anything
+Sp
+In
+great
+excitement
+My
+God
+My
+God
+I
+see
+my
+mother
+Spirit
+Why
+she
+is
+in
+her
+grave
+yes
+many
+years
+ago
+It
+must
+be
+a
+ghost
+She
+looks
+so
+beautiful
+Dr
+She
+did
+not
+limit
+her
+mind
+as
+you
+did
+She
+did
+not
+want
+to
+be
+a
+tree
+You
+must
+be
+willing
+to
+learn
+Jesus
+said
+Except
+ye
+become
+as
+little
+children
+ye
+shall
+not
+enter
+into
+the
+kingdom
+of
+Heaven
+Sp
+Of
+Jewish
+faith
+I
+do
+not
+believe
+in
+Jesus
+Dr
+What
+you
+believe
+or
+what
+you
+do
+not
+believe
+has
+nothing
+to
+do
+with
+the
+fact
+of
+life
+Sp
+Mother
+is
+that
+really
+you
+Why
+look
+at
+that
+beautiful
+road
+with
+beautiful
+trees
+and
+flowers
+See
+that
+beautiful
+garden
+and
+those
+beautiful
+houses
+and
+my
+mother
+walking
+around
+Dr
+Your
+mother
+is
+not
+a
+tree
+is
+she
+Sp
+Now
+she
+is
+walking
+on
+that
+beautiful
+road
+She
+says
+Come
+this
+is
+my
+home
+Her
+home
+but
+not
+mine
+Can
+t
+I
+go
+with
+my
+mother
+Dr
+Ignorance
+cannot
+enter
+the
+Kingdom
+of
+Heaven
+Sp
+Look
+at
+that
+steep
+hill
+which
+I
+have
+to
+climb
+I
+cannot
+climb
+that
+hill
+with
+the
+big
+body
+I
+have
+Mother
+says
+No
+you
+cannot
+climb
+it
+with
+your
+body
+but
+you
+have
+to
+climb
+the
+hill
+of
+understanding
+and
+you
+must
+forget
+yourself
+Forget
+that
+you
+have
+existed
+in
+your
+selfishness
+You
+must
+serve
+I
+know
+I
+know
+Yes
+I
+was
+selfish
+Mother
+I
+will
+try
+but
+help
+me
+Help
+me
+up
+there
+I
+cannot
+do
+it
+alone
+Crying
+I
+cannot
+stay
+in
+this
+misery
+any
+longer
+Take
+me
+take
+me
+Mother
+with
+you
+Take
+me
+with
+you
+and
+show
+me
+She
+says
+I
+must
+work
+and
+not
+be
+lazy
+as
+I
+was
+in
+life
+and
+expect
+everybody
+to
+do
+something
+for
+me
+If
+they
+did
+not
+do
+what
+I
+wanted
+then
+I
+got
+angry
+My
+mother
+says
+Now
+you
+have
+to
+serve
+You
+have
+to
+work
+to
+climb
+this
+hill
+of
+understanding
+to
+a
+higher
+life
+You
+have
+now
+to
+learn
+the
+first
+lesson
+of
+life
+the
+lesson
+of
+understanding
+and
+you
+will
+have
+to
+go
+up
+that
+hill
+until
+you
+have
+gotten
+away
+from
+all
+selfishness
+jealousy
+and
+envy
+You
+must
+do
+that
+You
+must
+also
+ask
+forgiveness
+for
+what
+you
+have
+done
+to
+Your
+old
+friend
+You
+will
+have
+to
+do
+it
+my
+mother
+says
+You
+will
+have
+to
+be
+forgiven
+Crying
+No
+you
+must
+ask
+for
+forgiveness
+because
+you
+have
+been
+selfish
+very
+selfish
+All
+thoughts
+of
+self
+must
+be
+thrown
+away
+and
+you
+must
+live
+for
+others
+I
+am
+your
+mother
+but
+I
+cannot
+take
+you
+to
+my
+home
+yet
+because
+you
+must
+learn
+Doubtfully
+She
+says
+she
+is
+my
+mother
+but
+I
+do
+not
+know
+Yes
+I
+believe
+it
+must
+be
+but
+she
+looks
+so
+beautiful
+Dr
+That
+is
+because
+she
+is
+filled
+with
+the
+spirit
+of
+truth
+Sp
+Mrs
+Sr
+if
+I
+ask
+you
+to
+forgive
+me
+will
+you
+forgive
+me
+Mrs
+Sr
+I
+surely
+will
+You
+didn
+t
+know
+any
+better
+Sp
+You
+have
+helped
+me
+to
+light
+and
+it
+was
+because
+of
+you
+that
+I
+reached
+this
+understanding
+Mrs
+S
+You
+must
+thank
+the
+Wicklands
+for
+it
+Sp
+I
+don
+t
+feel
+like
+thanking
+them
+for
+it
+Mother
+says
+I
+must
+because
+I
+would
+still
+be
+in
+that
+terrible
+pain
+and
+agony
+but
+for
+them
+She
+says
+I
+got
+into
+your
+magnetic
+aura
+with
+a
+mind
+full
+of
+pain
+and
+selfishness
+and
+envy
+Love
+was
+not
+in
+me
+except
+selfish
+love
+and
+she
+says
+now
+I
+must
+have
+love
+for
+others
+and
+not
+self
+Forget
+self
+and
+work
+for
+others
+then
+she
+says
+I
+will
+be
+happy
+Dr
+Love
+is
+the
+fulfillment
+of
+the
+law
+Sp
+I
+don
+t
+know
+I
+didn
+t
+have
+much
+interest
+in
+those
+things
+I
+now
+see
+myself
+as
+I
+was
+I
+was
+a
+bundle
+of
+selfishness
+Mrs
+Sr
+I
+must
+also
+ask
+you
+to
+forgive
+me
+because
+many
+times
+I
+spoke
+to
+you
+in
+a
+very
+rude
+way
+and
+I
+was
+selfish
+I
+felt
+people
+should
+always
+come
+to
+see
+me
+and
+they
+had
+to
+do
+it
+I
+see
+now
+my
+selfishness
+Mrs
+Sr
+please
+forgive
+me
+I
+ask
+it
+now
+from
+my
+heart
+I
+see
+now
+but
+before
+I
+did
+not
+want
+to
+see
+it
+because
+that
+was
+putting
+my
+past
+life
+before
+me
+and
+how
+I
+had
+lived
+for
+self
+I
+do
+not
+want
+that
+evil
+ugly
+homely
+body
+of
+mine
+which
+they
+guiding
+intelligences
+show
+me
+That
+is
+not
+my
+body
+Dr
+That
+is
+your
+spiritual
+body
+for
+you
+have
+made
+no
+other
+You
+have
+made
+a
+spiritual
+body
+of
+only
+selfishness
+and
+jealousy
+Sp
+It
+is
+all
+crippled
+and
+wrinkled
+Dr
+You
+will
+have
+to
+alter
+it
+by
+your
+good
+acts
+for
+others
+You
+will
+have
+to
+wear
+the
+garment
+you
+made
+until
+you
+have
+earned
+another
+Sp
+To
+think
+I
+should
+have
+to
+wear
+such
+an
+ugly
+homely
+old
+fool
+thing
+That
+that
+spiritual
+body
+of
+mine
+just
+because
+I
+did
+not
+do
+anybody
+any
+good
+Dr
+You
+will
+have
+to
+wear
+that
+and
+be
+happy
+until
+you
+have
+learned
+how
+to
+earn
+another
+and
+to
+climb
+the
+hill
+of
+understanding
+and
+wisdom
+Sp
+So
+I
+have
+to
+live
+now
+in
+that
+awful
+body
+of
+mine
+I
+have
+to
+get
+in
+Dr
+Serve
+serve
+your
+fellow
+man
+Sp
+I
+will
+be
+brave
+and
+I
+will
+try
+because
+now
+I
+see
+what
+I
+should
+have
+done
+but
+I
+did
+not
+do
+it
+They
+say
+it
+is
+not
+too
+late
+and
+I
+will
+try
+to
+wear
+that
+body
+all
+wrinkled
+and
+so
+homely
+They
+tell
+me
+I
+can
+soon
+wear
+it
+out
+by
+good
+acts
+and
+each
+time
+I
+do
+some
+good
+act
+some
+wrinkles
+will
+be
+taken
+away
+and
+there
+will
+be
+a
+change
+for
+the
+better
+I
+will
+try
+to
+be
+happy
+It
+is
+hard
+Mrs
+Sr
+help
+me
+Dr
+We
+will
+all
+help
+you
+Sp
+Give
+me
+some
+little
+sympathy
+because
+I
+have
+to
+be
+in
+that
+terrible
+homely
+body
+of
+mine
+that
+I
+have
+made
+only
+by
+selfishness
+and
+hate
+I
+will
+wear
+it
+until
+I
+can
+do
+better
+I
+need
+help
+and
+strength
+so
+that
+I
+can
+stand
+it
+Mrs
+Sr
+forgive
+me
+They
+say
+I
+have
+done
+harm
+to
+you
+and
+that
+now
+I
+have
+to
+wear
+that
+homely
+body
+and
+have
+to
+serve
+you
+I
+will
+serve
+you
+and
+help
+you
+My
+first
+lesson
+will
+be
+how
+to
+be
+kind
+I
+will
+I
+will
+Dr
+You
+will
+find
+many
+good
+friends
+who
+will
+help
+you
+Ask
+the
+intelligent
+spirits
+to
+help
+you
+Will
+you
+ask
+them
+Sp
+Yes
+I
+will
+They
+say
+I
+must
+thank
+you
+for
+those
+thundershots
+Dr
+Do
+you
+believe
+in
+spirits
+now
+Sp
+I
+must
+I
+suppose
+Don
+t
+be
+like
+I
+was
+selfish
+but
+do
+what
+you
+can
+so
+that
+you
+will
+not
+have
+to
+get
+into
+a
+crippled
+up
+body
+like
+mine
+They
+say
+no
+one
+can
+help
+us
+to
+work
+out
+our
+own
+salvation
+Make
+your
+spirit
+body
+more
+beautiful
+than
+mine
+Now
+I
+will
+go
+and
+begin
+my
+work
+Goodby
+Miss
+F
+H
+a
+talented
+young
+musician
+of
+gentle
+disposition
+was
+a
+student
+in
+college
+when
+she
+suddenly
+became
+violent
+and
+destructive
+tore
+her
+clothes
+into
+shreds
+and
+struck
+every
+one
+who
+came
+near
+her
+She
+was
+finally
+placed
+in
+a
+sanitarium
+kept
+in
+a
+locked
+room
+for
+some
+time
+and
+her
+case
+diagnosed
+as
+dementia
+praecox
+When
+brought
+to
+our
+Institute
+she
+had
+become
+almost
+a
+skeleton
+At
+this
+time
+she
+declared
+constantly
+her
+name
+was
+not
+Miss
+H
+but
+that
+she
+was
+Margaret
+Young
+of
+England
+and
+had
+two
+children
+One
+noon
+as
+Miss
+H
+was
+seated
+at
+the
+table
+Mrs
+Wickland
+clairvoyantly
+saw
+the
+spirit
+of
+a
+newsboy
+take
+possession
+of
+the
+patient
+and
+reach
+eagerly
+for
+food
+exclaiming
+Gee
+whiz
+I
+m
+hungry
+I
+haven
+t
+had
+anything
+to
+eat
+for
+a
+long
+time
+His
+hunger
+satisfied
+the
+newsboy
+left
+and
+after
+this
+occurrence
+the
+spirit
+of
+Margaret
+Young
+ceased
+tormenting
+the
+patient
+Miss
+F
+H
+had
+with
+her
+as
+companion
+a
+younger
+sister
+Miss
+C
+H
+who
+understood
+obsession
+and
+was
+of
+great
+help
+to
+her
+One
+afternoon
+while
+Miss
+F
+H
+was
+seated
+at
+the
+piano
+she
+suddenly
+became
+controlled
+by
+a
+strange
+entity
+but
+the
+sister
+sharply
+ordered
+the
+intruder
+to
+leave
+and
+the
+patient
+again
+became
+herself
+This
+spirit
+controlled
+Mrs
+Wickland
+during
+a
+physic
+circle
+held
+that
+evening
+and
+after
+this
+the
+patient
+improved
+rapidly
+Within
+four
+months
+she
+returned
+to
+her
+home
+entirely
+well
+graduated
+from
+college
+and
+later
+took
+up
+music
+professionally
+EXPERIENCE
+OCTOBER
+Spirit
+ALICE
+Patient
+Miss
+F
+H
+PSYChiC
+MRS
+WICKLAND
+Doctor
+Where
+did
+you
+come
+from
+Spirit
+I
+came
+here
+as
+a
+visitor
+Dr
+Would
+you
+please
+introduce
+yourself
+Sp
+I
+must
+find
+out
+where
+I
+am
+I
+do
+not
+know
+any
+of
+you
+people
+Dr
+Will
+you
+please
+tell
+us
+who
+you
+are
+Sp
+I
+do
+not
+know
+whether
+I
+want
+to
+tell
+you
+who
+I
+am
+Dr
+Then
+tell
+us
+how
+long
+you
+have
+been
+dead
+Sp
+Dead
+Dr
+Do
+you
+understand
+your
+situation
+Why
+are
+you
+here
+Sp
+I
+do
+not
+know
+what
+I
+came
+here
+for
+Somebody
+told
+me
+to
+come
+in
+here
+but
+I
+do
+not
+see
+any
+object
+in
+coming
+Dr
+Perhaps
+we
+may
+learn
+something
+from
+you
+You
+could
+tell
+us
+about
+your
+life
+and
+present
+condition
+Tell
+us
+who
+you
+are
+introduce
+yourself
+Sp
+Oh
+I
+do
+not
+know
+Dr
+Who
+told
+you
+to
+come
+in
+here
+Do
+you
+know
+the
+party
+Sp
+No
+I
+was
+walking
+around
+trying
+to
+find
+some
+place
+Everything
+had
+been
+so
+dark
+and
+I
+have
+been
+walking
+such
+a
+long
+time
+and
+I
+am
+very
+tired
+I
+do
+not
+want
+to
+be
+talked
+to
+I
+want
+to
+rest
+Dr
+You
+cannot
+do
+that
+because
+you
+are
+a
+stranger
+here
+Are
+you
+a
+man
+or
+a
+woman
+Sp
+That
+s
+a
+very
+strange
+question
+to
+ask
+Dr
+It
+may
+seem
+so
+to
+you
+Sp
+Can
+t
+you
+see
+whether
+I
+am
+a
+man
+or
+woman
+Don
+t
+they
+dress
+differently
+Dr
+This
+is
+a
+lady
+s
+body
+in
+this
+chair
+Are
+you
+a
+lady
+Sp
+I
+most
+certainly
+am
+not
+a
+man
+Dr
+Were
+you
+a
+woman
+or
+a
+girl
+Sp
+I
+have
+not
+changed
+to
+a
+man
+I
+tell
+you
+Dr
+You
+evidently
+changed
+your
+bodily
+form
+If
+I
+tell
+you
+that
+this
+is
+the
+body
+of
+my
+wife
+you
+would
+be
+surprised
+Evidently
+you
+are
+still
+asleep
+Sp
+Asleep
+this
+time
+of
+day
+Dr
+Why
+not
+try
+to
+understand
+matters
+You
+know
+you
+are
+in
+a
+strange
+situation
+Try
+to
+understand
+it
+try
+to
+learn
+the
+reason
+This
+body
+is
+not
+your
+own
+Sp
+How
+you
+talk
+I
+came
+into
+this
+room
+and
+I
+certainly
+could
+not
+come
+in
+without
+a
+body
+I
+did
+not
+come
+in
+like
+a
+feather
+floating
+around
+Dr
+Do
+you
+recognize
+these
+hands
+Sp
+Those
+hands
+belong
+to
+me
+Dr
+I
+want
+you
+to
+understand
+that
+you
+are
+using
+some
+one
+s
+body
+temporarily
+You
+do
+not
+recognize
+these
+hands
+Sp
+I
+am
+not
+used
+to
+such
+treatment
+Haughtily
+I
+used
+to
+be
+in
+society
+General
+laughter
+Oh
+dear
+Everyone
+is
+laughing
+at
+me
+I
+do
+not
+know
+what
+to
+do
+it
+is
+so
+provoking
+Dr
+Did
+you
+have
+a
+great
+deal
+of
+wealth
+when
+you
+had
+your
+own
+body
+Sp
+Why
+should
+I
+tell
+you
+of
+my
+affairs
+Dr
+Were
+you
+only
+pretending
+to
+be
+aristocratic
+Sp
+I
+never
+heard
+such
+talk
+before
+Dr
+You
+are
+a
+spirit
+but
+do
+not
+understand
+your
+condition
+Sp
+I
+can
+t
+see
+how
+I
+happened
+to
+come
+here
+Struggling
+to
+leave
+Dr
+You
+must
+be
+sensible
+and
+listen
+to
+reason
+Sp
+Oh
+dear
+What
+shall
+I
+do
+Why
+should
+you
+hold
+my
+hands
+Dr
+I
+am
+not
+holding
+your
+hands
+I
+am
+holding
+my
+wife
+s
+hands
+Sp
+I
+am
+not
+your
+wife
+Dr
+Ask
+these
+persons
+if
+this
+is
+not
+my
+wife
+Sp
+I
+do
+not
+know
+these
+people
+and
+I
+do
+not
+care
+to
+Dr
+When
+you
+are
+ready
+to
+talk
+we
+will
+talk
+sensibly
+Sp
+You
+need
+not
+dictate
+to
+me
+Dr
+How
+long
+have
+you
+been
+dead
+Sp
+Dead
+What
+are
+you
+talking
+about
+I
+have
+never
+died
+Dr
+You
+have
+lost
+your
+physical
+body
+and
+have
+evidently
+been
+wandering
+around
+for
+a
+long
+time
+You
+are
+allowed
+to
+control
+my
+wife
+s
+body
+and
+you
+must
+behave
+sensibly
+Sp
+I
+do
+not
+like
+that
+girl
+with
+the
+yellow
+waist
+Miss
+C
+R
+the
+patient
+s
+sister
+She
+bothers
+me
+so
+very
+much
+She
+drove
+me
+away
+when
+I
+was
+getting
+along
+so
+nicely
+To
+Miss
+C
+H
+What
+right
+have
+you
+to
+do
+that
+to
+me
+I
+do
+not
+like
+you
+one
+bit
+Dr
+She
+probably
+drove
+out
+an
+earthbound
+spirit
+You
+do
+not
+realize
+your
+own
+condition
+Sp
+She
+chased
+me
+away
+and
+I
+don
+t
+like
+her
+Dr
+You
+were
+controlling
+her
+sister
+and
+she
+did
+not
+like
+it
+You
+are
+an
+earthbound
+spirit
+Sp
+I
+am
+no
+such
+thing
+Stamping
+Dr
+You
+are
+a
+spirit
+ignorant
+of
+your
+actual
+condition
+Sp
+You
+need
+not
+talk
+to
+me
+I
+will
+not
+listen
+to
+you
+Dr
+Do
+you
+realize
+that
+you
+are
+using
+another
+person
+s
+body
+Sp
+You
+certainly
+are
+crazy
+Dr
+Do
+you
+not
+wish
+to
+be
+helped
+Sp
+Do
+you
+think
+I
+need
+your
+help
+Why
+I
+came
+in
+here
+just
+to
+see
+what
+things
+were
+I
+have
+been
+walking
+so
+long
+and
+then
+there
+was
+a
+litle
+light
+aura
+of
+sensitive
+and
+that
+girl
+in
+the
+yellow
+waist
+talked
+to
+me
+as
+if
+she
+owned
+the
+whole
+earth
+Talking
+to
+me
+like
+that
+Dr
+Does
+it
+not
+seem
+strange
+to
+you
+that
+you
+are
+in
+the
+dark
+Sp
+I
+was
+lost
+and
+have
+been
+walking
+around
+for
+a
+long
+time
+It
+has
+been
+very
+dark
+and
+I
+have
+felt
+so
+badly
+I
+have
+not
+seen
+anything
+Dr
+Strive
+to
+understand
+why
+you
+are
+in
+the
+dark
+Sp
+I
+heard
+music
+patient
+at
+piano
+so
+I
+thought
+I
+would
+listen
+to
+it
+and
+then
+before
+I
+knew
+it
+I
+saw
+a
+light
+and
+then
+came
+this
+thing
+to
+me
+Miss
+C
+H
+and
+talked
+as
+if
+she
+owned
+the
+earth
+Dr
+Let
+me
+tell
+you
+something
+This
+girl
+s
+sister
+is
+a
+psychic
+sensitive
+and
+has
+been
+controlled
+by
+different
+spirits
+who
+have
+disturbed
+her
+life
+Today
+she
+was
+playing
+the
+piano
+you
+listened
+and
+got
+in
+touch
+with
+her
+magnetic
+aura
+Through
+that
+you
+saw
+a
+little
+light
+and
+then
+you
+controlled
+the
+girl
+Sp
+I
+have
+never
+seen
+you
+before
+today
+young
+lady
+To
+Miss
+F
+H
+Dr
+At
+the
+present
+time
+you
+are
+controlling
+my
+wife
+s
+body
+Sp
+I
+am
+sick
+and
+tired
+of
+hearing
+that
+Dr
+Can
+t
+you
+understand
+what
+I
+am
+telling
+you
+Sp
+I
+do
+not
+understand
+it
+one
+bit
+about
+controlling
+How
+can
+I
+control
+another
+body
+That
+is
+such
+nonsense
+Dr
+My
+wife
+is
+a
+psychic
+sensitive
+and
+allows
+spirits
+to
+control
+her
+body
+Sp
+Spiritualists
+then
+I
+suppose
+you
+are
+all
+Spiritualists
+I
+see
+I
+see
+They
+are
+all
+crazy
+all
+crazy
+Dr
+You
+are
+proving
+the
+fallacy
+of
+your
+thinking
+at
+the
+present
+moment
+You
+are
+a
+spirit
+and
+are
+using
+my
+wife
+s
+body
+Sp
+Keep
+still
+with
+that
+wife
+business
+I
+was
+never
+married
+and
+I
+certainly
+will
+not
+marry
+you
+Dr
+I
+said
+this
+is
+my
+wife
+s
+body
+Sp
+There
+you
+are
+again
+insinuating
+about
+the
+wife
+business
+This
+body
+belongs
+to
+me
+Dr
+For
+a
+little
+while
+only
+Sp
+Have
+you
+ever
+seen
+a
+person
+change
+bodies
+What
+are
+you
+talking
+about
+Dr
+Did
+you
+ever
+stop
+to
+consider
+what
+mind
+is
+Sp
+That
+belongs
+to
+the
+soul
+and
+the
+soul
+is
+part
+of
+the
+Divine
+God
+Dr
+That
+sounds
+very
+well
+Do
+you
+understand
+what
+God
+is
+I
+am
+trying
+to
+reach
+your
+understanding
+You
+have
+lost
+your
+body
+and
+are
+now
+a
+spirit
+absolutely
+invisible
+to
+us
+Sp
+Crazy
+crazy
+crazy
+You
+are
+the
+craziest
+person
+I
+ever
+saw
+Dr
+How
+would
+you
+explain
+the
+situation
+Sp
+That
+girl
+came
+to
+me
+with
+such
+force
+and
+told
+me
+to
+get
+out
+and
+before
+I
+knew
+it
+I
+was
+gone
+I
+stayed
+around
+and
+tried
+and
+tried
+to
+get
+back
+because
+I
+was
+not
+going
+to
+be
+driven
+out
+as
+she
+thought
+I
+have
+been
+watching
+for
+another
+chance
+to
+get
+in
+again
+and
+here
+I
+am
+and
+now
+you
+can
+t
+drive
+me
+out
+Dr
+Should
+not
+such
+an
+experience
+cause
+you
+to
+think
+Sp
+Why
+should
+I
+Dr
+You
+realize
+that
+you
+are
+in
+a
+strange
+condition
+You
+are
+very
+selfish
+you
+know
+that
+I
+am
+telling
+the
+truth
+Sp
+You
+have
+not
+told
+me
+any
+truth
+yet
+Dr
+Ask
+one
+of
+these
+gentlemen
+whose
+hands
+I
+am
+holding
+Ans
+The
+doctor
+is
+holding
+his
+wife
+s
+hands
+Dr
+You
+are
+a
+spirit
+and
+are
+invisible
+to
+us
+I
+am
+holding
+the
+hands
+of
+Mrs
+Wickland
+Sp
+How
+in
+the
+world
+am
+I
+Mrs
+Wickland
+Dr
+You
+are
+not
+Mrs
+Wickland
+You
+are
+only
+using
+her
+body
+Sp
+Now
+you
+know
+we
+cannot
+change
+bodies
+I
+know
+this
+Dr
+You
+have
+lost
+your
+own
+body
+and
+are
+a
+spirit
+Sp
+Then
+why
+did
+I
+lose
+it
+If
+I
+were
+dead
+and
+had
+lost
+my
+body
+how
+in
+the
+world
+could
+I
+have
+been
+walking
+around
+as
+I
+have
+been
+I
+was
+so
+hungry
+for
+a
+while
+and
+I
+wanted
+to
+get
+something
+to
+eat
+but
+that
+thing
+pointing
+to
+Miss
+C
+H
+chased
+me
+out
+I
+put
+up
+some
+fight
+because
+I
+was
+so
+hungry
+Dr
+It
+is
+your
+body
+that
+is
+dead
+you
+have
+lost
+that
+but
+you
+yourself
+are
+not
+dead
+Paul
+said
+There
+is
+a
+natural
+body
+and
+there
+is
+a
+spiritual
+body
+You
+have
+lost
+your
+natural
+body
+Sp
+When
+did
+I
+do
+that
+Dr
+I
+do
+not
+know
+After
+you
+stepped
+out
+of
+your
+physical
+body
+you
+continued
+to
+live
+in
+your
+spiritual
+body
+You
+were
+brought
+here
+to
+obtain
+an
+understanding
+of
+your
+condition
+When
+you
+have
+that
+you
+will
+not
+need
+to
+walk
+in
+the
+darkness
+any
+longer
+You
+will
+then
+have
+an
+understanding
+of
+the
+spirit
+life
+Sp
+I
+have
+been
+walking
+but
+I
+am
+on
+earth
+not
+in
+Heaven
+Dr
+What
+do
+you
+understand
+Heaven
+to
+be
+Sp
+That
+is
+where
+God
+is
+Dr
+The
+Bible
+says
+God
+is
+Love
+and
+Ye
+are
+the
+temple
+of
+God
+and
+the
+Spirit
+of
+God
+dweIleth
+in
+you
+If
+you
+have
+love
+in
+your
+heart
+then
+you
+are
+a
+part
+of
+God
+Sp
+I
+have
+always
+done
+the
+very
+best
+I
+could
+Dr
+Do
+you
+know
+what
+year
+it
+is
+It
+is
+Can
+you
+realize
+that
+you
+have
+been
+in
+the
+dark
+for
+some
+time
+Sp
+I
+have
+been
+in
+the
+dark
+and
+cannot
+remember
+things
+very
+well
+Dr
+That
+is
+because
+you
+have
+lost
+all
+physical
+contact
+and
+have
+no
+understanding
+of
+the
+higher
+life
+You
+have
+been
+brought
+here
+for
+the
+purpose
+of
+being
+helped
+You
+can
+only
+stay
+for
+a
+short
+time
+Sp
+But
+where
+will
+I
+go
+Dr
+To
+the
+spirit
+world
+What
+is
+your
+name
+Sp
+I
+do
+not
+know
+Miss
+C
+H
+You
+told
+it
+to
+me
+this
+afternoon
+You
+said
+your
+name
+was
+Mary
+Bulwer
+and
+that
+you
+were
+from
+Germany
+Sp
+I
+did
+not
+say
+that
+You
+were
+speaking
+to
+my
+friend
+at
+that
+time
+Another
+spirit
+controlling
+patient
+Dr
+Do
+you
+realize
+where
+you
+are
+now
+Do
+you
+know
+that
+you
+are
+in
+Los
+Angeles
+California
+Sp
+No
+Dr
+Where
+do
+you
+think
+you
+are
+Sp
+My
+friend
+and
+I
+were
+traveling
+on
+the
+railroad
+Dr
+Did
+something
+happen
+Sp
+We
+were
+going
+to
+now
+I
+can
+t
+remember
+where
+Oh
+Mary
+To
+a
+spirit
+Don
+t
+go
+You
+know
+you
+were
+my
+companion
+my
+traveling
+companion
+I
+always
+paid
+your
+way
+and
+you
+must
+not
+leave
+me
+now
+Dr
+What
+does
+she
+say
+she
+is
+going
+to
+do
+Sp
+Mary
+won
+t
+you
+please
+tell
+me
+my
+name
+Look
+Look
+at
+that
+fire
+The
+whole
+thing
+is
+on
+fire
+Dr
+You
+are
+again
+going
+through
+the
+condition
+under
+which
+you
+passed
+out
+Sp
+Mary
+Mary
+look
+at
+that
+fire
+Dr
+Were
+you
+in
+a
+railroad
+accident
+Sp
+Yes
+yes
+Dr
+That
+has
+all
+passed
+Sp
+Look
+at
+Mary
+She
+s
+dead
+She
+was
+crushed
+Dr
+They
+are
+revealing
+to
+you
+the
+conditions
+under
+which
+you
+passed
+out
+That
+is
+all
+in
+the
+past
+You
+must
+quiet
+yourself
+Sp
+I
+only
+got
+a
+glimpse
+of
+it
+for
+just
+a
+minute
+Dr
+What
+does
+Mary
+say
+Does
+she
+understand
+that
+she
+has
+passed
+out
+Sp
+She
+is
+lost
+and
+so
+am
+I
+We
+are
+both
+lost
+We
+lost
+our
+way
+Dr
+That
+is
+because
+you
+are
+ignorant
+of
+the
+real
+life
+If
+you
+had
+had
+understanding
+when
+you
+had
+your
+physical
+body
+you
+would
+not
+have
+been
+lost
+Sp
+I
+have
+been
+walking
+and
+Mary
+is
+dead
+Dr
+She
+is
+not
+really
+dead
+she
+only
+lost
+her
+physical
+body
+Mary
+is
+no
+more
+dead
+than
+you
+are
+You
+are
+both
+spirits
+Sp
+I
+died
+in
+that
+terrible
+fire
+Look
+at
+them
+all
+All
+those
+people
+are
+burning
+up
+Greatly
+excited
+Dr
+Forget
+the
+accident
+and
+collect
+yourself
+Try
+to
+calm
+yourself
+and
+forget
+the
+past
+Sp
+Agitated
+at
+sight
+of
+several
+spirits
+I
+don
+t
+want
+to
+see
+them
+any
+of
+them
+Look
+at
+that
+one
+He
+is
+coming
+he
+s
+coming
+I
+don
+t
+want
+to
+see
+you
+I
+don
+t
+want
+you
+and
+I
+told
+you
+I
+did
+not
+want
+you
+Dr
+You
+probably
+wronged
+these
+persons
+in
+life
+and
+are
+now
+having
+to
+meet
+the
+consequences
+Sp
+I
+just
+had
+a
+good
+time
+with
+you
+but
+I
+don
+t
+care
+for
+you
+I
+only
+wanted
+to
+see
+how
+much
+you
+loved
+me
+but
+I
+don
+t
+love
+you
+Now
+they
+say
+they
+come
+to
+accuse
+me
+I
+do
+not
+want
+any
+of
+them
+There
+are
+three
+Dr
+Men
+or
+women
+Sp
+I
+do
+not
+love
+a
+woman
+Why
+do
+they
+come
+here
+Dr
+What
+does
+your
+conscience
+tell
+you
+Sp
+Sneeringly
+He
+killed
+himself
+because
+I
+would
+not
+marry
+him
+the
+fool
+Dr
+Didn
+t
+you
+play
+vampire
+in
+the
+first
+place
+Sp
+That
+s
+my
+affair
+Dr
+You
+will
+now
+have
+to
+strive
+to
+do
+better
+Sp
+Let
+me
+remain
+in
+darkness
+it
+is
+far
+better
+than
+this
+There
+I
+just
+walked
+I
+did
+not
+see
+anything
+but
+I
+am
+tired
+of
+walking
+Dr
+What
+does
+your
+conscience
+tell
+you
+Sp
+Do
+not
+talk
+to
+me
+about
+conscience
+Dr
+Jesus
+said
+Except
+ye
+become
+as
+little
+children
+ye
+shall
+not
+enter
+into
+the
+kingdom
+of
+heaven
+You
+will
+have
+to
+start
+a
+new
+life
+you
+will
+have
+to
+develop
+a
+newness
+of
+spirit
+Sacrifice
+self
+You
+will
+have
+to
+sacrifice
+self
+and
+become
+as
+a
+little
+child
+you
+will
+have
+to
+correct
+your
+mistakes
+Sp
+To
+another
+spirit
+What
+have
+you
+to
+do
+with
+me
+now
+Dr
+You
+have
+wronged
+these
+men
+you
+speak
+of
+Sp
+There
+is
+a
+woman
+here
+too
+What
+have
+you
+to
+do
+with
+me
+I
+said
+No
+I
+never
+paid
+her
+for
+my
+dresses
+Accusing
+me
+just
+because
+I
+did
+not
+pay
+Dr
+Was
+that
+the
+right
+thing
+to
+do
+Your
+conscience
+told
+you
+what
+you
+should
+have
+done
+Now
+you
+will
+have
+to
+serve
+others
+Selfishness
+is
+the
+root
+of
+all
+evil
+Sp
+I
+was
+taught
+nothing
+except
+to
+have
+a
+good
+time
+and
+spend
+money
+Money
+was
+just
+what
+I
+was
+taught
+in
+my
+childhood
+to
+be
+proud
+of
+Not
+a
+serious
+thought
+for
+any
+one
+that
+was
+beneath
+me
+Why
+should
+I
+have
+been
+taught
+that
+and
+now
+have
+to
+suffer
+for
+it
+Dr
+Was
+truth
+in
+your
+heart
+Sp
+I
+was
+taught
+always
+to
+have
+the
+respect
+of
+others
+and
+to
+remember
+that
+I
+was
+rich
+and
+that
+I
+should
+have
+all
+the
+world
+could
+give
+me
+I
+wanted
+money
+and
+when
+I
+broke
+a
+heart
+it
+was
+good
+cheer
+to
+me
+To
+spirits
+I
+said
+Don
+t
+come
+don
+t
+come
+Dr
+You
+have
+been
+brought
+here
+for
+help
+lie
+quiet
+and
+listen
+to
+me
+You
+will
+now
+have
+to
+try
+to
+undo
+your
+mistakes
+Sp
+I
+could
+never
+do
+that
+Dr
+You
+can
+and
+you
+will
+Others
+are
+here
+to
+help
+you
+and
+they
+will
+show
+you
+a
+better
+way
+Don
+t
+be
+selfish
+Sp
+I
+am
+very
+selfish
+and
+I
+have
+always
+been
+very
+selfish
+was
+never
+taught
+anything
+else
+My
+mother
+was
+a
+proud
+woman
+and
+she
+was
+very
+pretty
+Dr
+Unfortunately
+for
+you
+You
+must
+quiet
+yourself
+you
+have
+been
+allowed
+to
+come
+here
+for
+help
+Do
+you
+see
+any
+one
+else
+you
+know
+Sp
+I
+do
+not
+care
+to
+look
+around
+any
+more
+I
+see
+only
+those
+whom
+I
+have
+wronged
+They
+are
+all
+standing
+here
+Oh
+Shrinking
+back
+Why
+should
+I
+suffer
+so
+Dr
+You
+created
+that
+suffering
+yourself
+There
+is
+help
+for
+you
+if
+you
+will
+be
+sincere
+Intelligent
+spirits
+will
+help
+you
+Sp
+I
+thought
+that
+I
+could
+live
+and
+have
+a
+good
+time
+I
+traveled
+everywhere
+I
+wanted
+to
+go
+I
+saw
+everything
+and
+had
+everything
+I
+wanted
+that
+money
+could
+buy
+Every
+wish
+I
+had
+was
+gratified
+Dr
+You
+stupified
+your
+soul
+You
+will
+now
+have
+to
+undo
+your
+own
+follies
+by
+kindness
+You
+will
+have
+to
+serve
+others
+Sp
+I
+cannot
+serve
+anybody
+They
+will
+have
+to
+serve
+me
+I
+have
+never
+done
+anything
+in
+my
+life
+I
+have
+always
+been
+waited
+on
+Dr
+Understand
+that
+unless
+you
+help
+these
+spirits
+you
+will
+continue
+to
+suffer
+You
+will
+have
+nothing
+but
+the
+torment
+of
+your
+own
+conscience
+until
+you
+ask
+for
+mercy
+and
+say
+I
+will
+serve
+Sp
+I
+never
+can
+wait
+on
+any
+one
+that
+would
+be
+a
+step
+beneath
+me
+What
+would
+my
+mother
+say
+if
+I
+should
+wait
+on
+any
+one
+beneath
+me
+Dr
+There
+is
+nobody
+beneath
+you
+Money
+does
+not
+make
+intelligence
+nor
+merit
+Sp
+Nobody
+beneath
+me
+Would
+I
+associate
+with
+my
+dressmaker
+Dr
+When
+you
+go
+to
+the
+spirit
+world
+you
+will
+probably
+find
+that
+your
+humblest
+servant
+has
+a
+higher
+position
+than
+you
+have
+You
+will
+often
+find
+that
+the
+people
+you
+think
+beneath
+you
+have
+the
+most
+beautiful
+homes
+in
+the
+spirit
+world
+You
+have
+much
+to
+do
+to
+overcome
+your
+own
+disposition
+There
+are
+many
+advanced
+spirits
+here
+who
+will
+help
+you
+Jesus
+taught
+us
+that
+we
+must
+humble
+ourselves
+Sp
+You
+do
+not
+know
+what
+that
+would
+mean
+to
+me
+Dr
+My
+wife
+allows
+spirits
+of
+all
+kinds
+to
+control
+her
+brain
+and
+body
+Would
+you
+be
+willing
+to
+sacrifice
+yourself
+as
+she
+does
+She
+allows
+you
+to
+control
+her
+body
+so
+we
+can
+help
+you
+to
+a
+better
+understanding
+Look
+around
+and
+you
+will
+find
+spirits
+here
+who
+will
+help
+you
+Sp
+Oh
+Rudolph
+Spirit
+I
+loved
+you
+but
+you
+know
+that
+my
+pride
+and
+my
+mother
+would
+not
+consent
+to
+our
+marriage
+I
+know
+you
+suffered
+but
+you
+did
+not
+know
+that
+I
+suffered
+also
+You
+know
+you
+could
+not
+give
+me
+the
+social
+standing
+I
+was
+used
+to
+I
+loved
+you
+and
+I
+love
+you
+yet
+Rudolph
+will
+you
+forgive
+me
+I
+would
+have
+liked
+to
+have
+married
+you
+Rudolph
+but
+I
+could
+not
+Dr
+Why
+should
+pride
+and
+money
+be
+obstacles
+to
+love
+Sp
+I
+was
+not
+happy
+but
+I
+had
+to
+crush
+that
+I
+did
+not
+dare
+go
+contrary
+to
+my
+mother
+I
+had
+to
+shine
+in
+society
+with
+a
+broken
+heart
+I
+had
+to
+smile
+at
+all
+those
+fools
+I
+had
+to
+be
+another
+person
+when
+my
+heart
+and
+love
+were
+with
+you
+Rudolph
+but
+forgive
+me
+I
+know
+you
+suffered
+I
+went
+to
+your
+funeral
+but
+mother
+did
+not
+know
+it
+I
+wished
+I
+were
+dead
+and
+could
+go
+with
+you
+but
+I
+had
+to
+close
+the
+door
+to
+love
+From
+the
+moment
+you
+had
+gone
+I
+said
+I
+would
+conquer
+and
+shut
+out
+love
+and
+sympathy
+and
+I
+would
+now
+live
+for
+selfishness
+and
+let
+others
+suffer
+as
+I
+had
+suffered
+for
+the
+love
+I
+had
+to
+shut
+out
+of
+my
+heart
+Rudolph
+forgive
+and
+help
+me
+You
+were
+such
+a
+good
+man
+but
+religion
+and
+money
+and
+mother
+stood
+between
+us
+and
+love
+You
+were
+poor
+but
+you
+were
+good
+He
+says
+if
+he
+could
+have
+been
+with
+me
+he
+could
+have
+taught
+me
+to
+be
+a
+good
+woman
+Yes
+Rudolph
+but
+the
+good
+influence
+you
+brought
+with
+you
+was
+shut
+out
+for
+me
+then
+I
+did
+not
+care
+what
+became
+of
+me
+I
+went
+into
+society
+and
+had
+a
+good
+time
+trying
+to
+drown
+my
+sorrow
+I
+tried
+to
+lead
+every
+man
+on
+so
+that
+I
+could
+get
+him
+down
+at
+my
+feet
+I
+did
+not
+care
+if
+I
+crushed
+men
+I
+wanted
+others
+to
+suffer
+as
+I
+had
+suffered
+Dr
+That
+was
+selfish
+Sp
+I
+was
+taught
+nothing
+but
+selfishness
+Dr
+What
+does
+Rudolph
+say
+Sp
+He
+says
+Alice
+come
+with
+me
+to
+the
+spirit
+world
+Crying
+He
+says
+in
+Heaven
+there
+is
+no
+pride
+to
+interfere
+all
+is
+love
+and
+harmony
+Dr
+We
+can
+help
+you
+Strive
+to
+understand
+When
+you
+realize
+the
+better
+life
+you
+will
+have
+much
+to
+do
+to
+correct
+your
+mistakes
+You
+can
+undo
+your
+mistakes
+by
+kindness
+to
+others
+You
+will
+have
+to
+work
+out
+your
+own
+salvation
+Sp
+Stooping
+forward
+Carl
+don
+t
+go
+I
+know
+you
+meant
+well
+but
+I
+could
+not
+love
+you
+when
+my
+heart
+was
+with
+another
+I
+knew
+I
+was
+at
+fault
+when
+you
+killed
+yourself
+See
+he
+just
+lies
+there
+Crying
+Dr
+He
+too
+will
+find
+understanding
+Others
+will
+help
+him
+Spirit
+is
+indestructible
+Sp
+Look
+there
+That
+cannot
+be
+My
+mother
+Look
+look
+how
+wrinkled
+and
+homely
+she
+is
+That
+cannot
+be
+my
+mother
+She
+says
+she
+is
+but
+it
+cannot
+be
+Oh
+she
+is
+so
+homely
+She
+was
+very
+lovely
+and
+beautiful
+That
+cannot
+be
+mother
+She
+is
+so
+homely
+so
+homely
+Mother
+what
+is
+the
+matter
+with
+you
+You
+had
+such
+a
+beautiful
+form
+now
+you
+are
+all
+shriveled
+Dr
+That
+is
+the
+spirit
+form
+which
+she
+developed
+by
+her
+selfishness
+Her
+spirit
+body
+is
+of
+her
+own
+making
+As
+a
+man
+thinketh
+in
+his
+heart
+so
+is
+he
+Sp
+Mother
+Mother
+what
+is
+the
+matter
+with
+you
+She
+says
+Alice
+I
+am
+at
+fault
+in
+the
+way
+I
+brought
+you
+up
+I
+am
+at
+fault
+for
+not
+bringing
+you
+up
+to
+be
+a
+better
+woman
+than
+you
+were
+I
+am
+at
+fault
+for
+breaking
+up
+that
+true
+love
+with
+Rudolph
+which
+probably
+would
+have
+brought
+out
+your
+better
+nature
+She
+says
+that
+she
+closed
+the
+door
+that
+she
+did
+not
+do
+any
+kind
+acts
+in
+life
+so
+her
+spirit
+body
+was
+all
+crippled
+because
+of
+her
+bad
+deeds
+She
+says
+she
+is
+now
+serving
+and
+when
+she
+does
+a
+good
+act
+some
+of
+her
+crippled
+condition
+disappears
+She
+is
+so
+crippled
+and
+she
+has
+ragged
+clothes
+on
+She
+says
+she
+is
+now
+serving
+with
+the
+body
+she
+earned
+when
+she
+was
+in
+earth
+life
+She
+is
+now
+showing
+me
+the
+body
+she
+has
+earned
+in
+spirit
+It
+is
+better
+than
+the
+other
+but
+her
+face
+is
+all
+wrinkled
+Dr
+Her
+face
+was
+her
+pride
+Sp
+She
+says
+she
+has
+to
+serve
+and
+help
+every
+one
+she
+wronged
+that
+she
+must
+do
+good
+acts
+many
+of
+them
+before
+her
+face
+will
+be
+beautiful
+She
+says
+Alice
+try
+to
+be
+different
+Here
+is
+your
+spirit
+body
+Alice
+Oh
+no
+Not
+that
+Rudolph
+come
+and
+help
+me
+You
+know
+how
+I
+feel
+Dr
+What
+is
+your
+name
+Ask
+your
+mother
+Sp
+My
+mother
+cannot
+tell
+me
+she
+cannot
+remember
+Dr
+Can
+you
+remember
+who
+is
+the
+President
+Sp
+McKinley
+Dr
+He
+was
+killed
+in
+Did
+you
+know
+he
+was
+dead
+He
+was
+shot
+in
+Buffalo
+in
+You
+must
+have
+been
+dead
+twenty
+years
+or
+more
+Sp
+Have
+I
+been
+walking
+all
+that
+time
+Dr
+You
+must
+have
+been
+Sp
+I
+was
+born
+in
+Milwaukee
+I
+wish
+I
+could
+tell
+more
+but
+I
+cannot
+The
+door
+is
+shut
+and
+I
+cannot
+even
+think
+Why
+cannot
+I
+get
+my
+name
+My
+memory
+is
+gone
+Please
+remember
+Alice
+Dr
+Your
+memory
+will
+come
+back
+to
+you
+Realize
+life
+as
+it
+is
+Think
+yourself
+with
+Rudolph
+now
+Sp
+I
+will
+I
+also
+want
+to
+thank
+you
+Goodbye
+Haughty
+superiority
+and
+pride
+of
+station
+had
+long
+kept
+the
+spirit
+of
+a
+cultured
+English
+lady
+in
+the
+earth
+sphere
+but
+with
+an
+understanding
+of
+life
+s
+higher
+purpose
+came
+spiritual
+discernment
+and
+progress
+EXPERIENCE
+OCTOBER
+Spirit
+ESTHER
+SUTHERLAND
+Psychic
+MRS
+WICKLAND
+The
+controlling
+intelligence
+was
+very
+arrogant
+and
+gazed
+disdainfully
+about
+Doctor
+Is
+your
+condition
+strange
+to
+you
+What
+has
+happened
+to
+you
+Spirit
+Many
+things
+have
+happened
+to
+me
+but
+that
+is
+not
+strange
+Dr
+We
+should
+like
+to
+know
+who
+you
+are
+and
+where
+you
+came
+from
+You
+are
+a
+stranger
+here
+Sp
+Condescendingly
+with
+marked
+English
+accent
+I
+fancy
+I
+am
+a
+stranger
+to
+you
+Dr
+May
+I
+ask
+to
+what
+nobility
+you
+belong
+Sp
+What
+sort
+of
+a
+gentleman
+are
+you
+to
+ask
+such
+personal
+questions
+Dr
+Do
+you
+not
+like
+this
+gathering
+Sp
+Greatly
+bored
+I
+do
+not
+know
+anything
+about
+you
+Dr
+Do
+you
+belong
+to
+royalty
+Sp
+Why
+are
+so
+many
+looking
+at
+me
+Some
+are
+standing
+some
+sitting
+Dr
+Some
+must
+be
+spirits
+Sp
+Spirits
+I
+fancy
+it
+is
+only
+imagination
+I
+see
+people
+sitting
+and
+standing
+It
+may
+be
+you
+have
+no
+glasses
+to
+see
+with
+I
+fancy
+you
+are
+of
+the
+more
+common
+class
+Dr
+We
+were
+not
+fortunate
+enough
+to
+be
+born
+in
+the
+upper
+class
+You
+have
+not
+introduced
+yourself
+to
+us
+yet
+Sp
+I
+would
+not
+care
+to
+have
+an
+introduction
+to
+any
+of
+you
+here
+Loftily
+I
+do
+not
+think
+you
+belong
+to
+the
+set
+I
+am
+used
+to
+going
+with
+Dr
+We
+are
+not
+particularly
+anxious
+to
+belong
+to
+that
+set
+but
+unless
+we
+know
+who
+you
+are
+we
+cannot
+pay
+you
+the
+honor
+due
+you
+Sp
+I
+do
+not
+know
+if
+I
+should
+like
+to
+have
+honor
+from
+you
+Dr
+We
+should
+like
+to
+treat
+you
+with
+proper
+respect
+Sp
+You
+have
+joked
+so
+rudely
+Dr
+Lady
+at
+least
+please
+tell
+us
+your
+name
+Sp
+I
+do
+not
+know
+if
+I
+should
+do
+so
+Looking
+her
+questioner
+over
+from
+head
+to
+foot
+through
+an
+imaginary
+lorgnette
+Dr
+It
+would
+not
+do
+you
+any
+harm
+you
+know
+Sp
+Pointing
+to
+reception
+room
+Who
+stands
+there
+Invisibles
+There
+are
+quite
+a
+few
+people
+here
+It
+seems
+like
+a
+meeting
+of
+some
+sort
+I
+do
+not
+know
+why
+I
+should
+have
+come
+here
+Dr
+Won
+t
+you
+please
+ask
+those
+people
+in
+the
+other
+room
+who
+they
+are
+I
+cannot
+see
+them
+Ask
+them
+why
+they
+are
+here
+Sp
+I
+fancy
+that
+is
+a
+select
+crowd
+and
+I
+think
+I
+had
+better
+go
+with
+them
+I
+fancy
+they
+are
+more
+my
+set
+Attempting
+to
+rise
+Dr
+Please
+remain
+seated
+and
+ask
+those
+people
+who
+they
+are
+Sp
+I
+do
+not
+see
+why
+I
+should
+ask
+them
+that
+Dr
+Introduce
+yourself
+to
+them
+Sp
+I
+do
+not
+think
+I
+should
+introduce
+myself
+We
+do
+not
+do
+that
+Dr
+You
+are
+a
+total
+stranger
+to
+us
+you
+might
+be
+an
+imposter
+Sp
+Turning
+frigidly
+away
+and
+speaking
+to
+the
+gentleman
+at
+her
+right
+Recently
+I
+have
+not
+been
+able
+to
+express
+my
+thoughts
+as
+well
+as
+I
+would
+care
+to
+Dr
+Just
+ask
+those
+people
+who
+they
+are
+Sp
+I
+told
+you
+I
+do
+not
+want
+to
+talk
+to
+them
+If
+you
+feel
+like
+talking
+to
+them
+you
+are
+welcome
+to
+go
+there
+and
+speak
+Dr
+But
+we
+cannot
+see
+anybody
+there
+How
+can
+we
+talk
+to
+them
+Sp
+I
+cannot
+help
+it
+I
+cannot
+help
+it
+Dr
+Ask
+them
+if
+they
+are
+spirits
+What
+do
+they
+do
+when
+I
+say
+they
+are
+spirits
+To
+the
+invisible
+assemblage
+Are
+you
+all
+spirits
+To
+controlling
+spirit
+What
+do
+they
+say
+Sp
+Some
+nod
+their
+heads
+Yes
+some
+do
+not
+answer
+but
+I
+cannot
+see
+why
+they
+should
+do
+that
+Most
+of
+them
+answer
+in
+the
+affirmative
+I
+see
+a
+soldier
+in
+uniform
+Dr
+That
+might
+be
+one
+of
+your
+relatives
+Are
+you
+of
+English
+descent
+Sp
+I
+am
+English
+Dr
+Do
+you
+know
+that
+Queen
+Victoria
+is
+dead
+Sp
+Queen
+Victoria
+was
+the
+English
+Queen
+She
+was
+a
+wonderful
+wonderful
+woman
+She
+died
+a
+long
+time
+ago
+Dr
+I
+think
+it
+was
+in
+Sp
+Yes
+I
+think
+it
+was
+was
+it
+not
+Dr
+King
+Edward
+is
+dead
+too
+Sp
+They
+used
+to
+say
+he
+was
+a
+wonderful
+King
+Everybody
+respected
+and
+loved
+him
+He
+was
+very
+much
+for
+everybody
+He
+mingled
+with
+the
+common
+herd
+as
+well
+as
+with
+fine
+society
+Dr
+That
+is
+a
+good
+suggestion
+for
+you
+You
+should
+feel
+more
+at
+home
+with
+the
+common
+herd
+Do
+you
+remember
+the
+Great
+War
+Sp
+What
+Great
+War
+Dr
+Do
+you
+know
+Lord
+Kitchener
+He
+died
+in
+the
+Great
+War
+Sp
+We
+had
+war
+with
+the
+Boers
+Dr
+That
+was
+about
+Did
+you
+know
+Lord
+Kitchener
+Sp
+He
+was
+a
+good
+man
+but
+not
+much
+in
+any
+war
+I
+do
+not
+know
+anything
+about
+the
+Great
+War
+you
+speak
+of
+Dr
+There
+were
+twenty
+three
+or
+four
+nations
+fighting
+each
+other
+England
+was
+fighting
+Germany
+Sp
+I
+fancy
+that
+is
+remarkable
+I
+do
+not
+know
+anything
+about
+that
+I
+used
+to
+read
+a
+great
+deal
+at
+one
+time
+Dr
+Do
+you
+remember
+the
+Kaiser
+Sp
+He
+was
+a
+strange
+man
+Dr
+Do
+you
+know
+that
+the
+Kaiser
+is
+deposed
+Do
+you
+know
+that
+the
+Czar
+and
+his
+family
+were
+killed
+Sp
+How
+Dr
+By
+the
+Bolshevists
+Sp
+What
+Who
+are
+they
+Dr
+They
+are
+the
+ones
+who
+upset
+the
+royalty
+business
+in
+Russia
+Sp
+No
+they
+did
+not
+call
+them
+that
+They
+called
+them
+what
+is
+that
+word
+I
+wish
+to
+say
+Ques
+Nihilist
+Sp
+Yes
+that
+is
+it
+They
+were
+sent
+to
+Siberia
+Dr
+The
+Czar
+was
+sent
+that
+way
+and
+then
+killed
+Sp
+Fancy
+that
+Dr
+Do
+you
+remember
+the
+Emperor
+of
+Austria
+He
+has
+passed
+on
+Sp
+Where
+have
+I
+been
+all
+this
+time
+not
+to
+know
+about
+the
+things
+of
+which
+you
+are
+talking
+Dr
+The
+Hapsburg
+House
+is
+no
+longer
+in
+power
+Sp
+No
+What
+is
+the
+world
+coming
+to
+Dr
+Coming
+to
+Democracy
+Sp
+All
+royalty
+gone
+Then
+the
+common
+herd
+is
+starting
+in
+to
+do
+wrong
+Dr
+There
+may
+be
+no
+aristocracy
+in
+time
+Sp
+We
+have
+noble
+blood
+in
+our
+veins
+Dr
+Suppose
+a
+commoner
+were
+made
+a
+King
+would
+that
+change
+his
+blood
+Do
+you
+remember
+that
+the
+King
+honored
+Napoleon
+and
+gave
+him
+a
+title
+That
+did
+not
+give
+him
+blue
+blood
+Sp
+I
+was
+born
+of
+noble
+blood
+and
+I
+will
+stick
+to
+that
+all
+my
+life
+Dr
+What
+is
+your
+name
+Were
+you
+a
+member
+of
+the
+English
+royal
+family
+Sp
+My
+name
+was
+in
+olden
+times
+well
+I
+have
+not
+had
+my
+name
+for
+a
+long
+time
+It
+seems
+to
+me
+yes
+my
+name
+was
+Esther
+Sutherland
+Ques
+Were
+you
+the
+Duchess
+of
+Sutherland
+Sp
+Indignantly
+No
+I
+was
+not
+the
+Duchess
+but
+one
+of
+the
+distant
+relatives
+They
+all
+had
+more
+money
+while
+I
+only
+had
+the
+title
+That
+is
+worth
+a
+great
+deal
+Ques
+Do
+you
+know
+you
+are
+in
+America
+Sp
+I
+am
+still
+in
+England
+Ques
+Do
+you
+see
+any
+of
+your
+old
+friends
+around
+here
+Dr
+Look
+in
+that
+crowd
+you
+spoke
+of
+can
+you
+find
+some
+one
+you
+know
+Sp
+I
+never
+knew
+that
+Kitchener
+had
+passed
+away
+as
+you
+state
+Dr
+He
+was
+drowned
+when
+a
+war
+vessel
+was
+torpedoed
+on
+the
+Scottish
+Coast
+Do
+you
+know
+him
+Sp
+Yes
+He
+is
+here
+and
+he
+says
+that
+I
+must
+try
+to
+understand
+my
+situation
+Dr
+That
+is
+why
+you
+were
+brought
+here
+Sp
+Pointing
+to
+further
+end
+of
+hall
+Why
+there
+s
+an
+old
+gentleman
+spirit
+lecturing
+that
+I
+heard
+many
+years
+ago
+Just
+fancy
+I
+never
+thought
+I
+would
+hear
+him
+again
+He
+is
+talking
+to
+a
+great
+many
+people
+Spirits
+It
+seems
+we
+have
+many
+here
+who
+just
+came
+to
+investigate
+what
+kind
+of
+a
+meeting
+this
+is
+and
+what
+is
+going
+on
+They
+all
+seem
+to
+be
+trying
+very
+hard
+to
+find
+out
+what
+they
+really
+are
+He
+is
+now
+standing
+on
+that
+platform
+He
+is
+lecturing
+just
+as
+he
+used
+to
+in
+England
+some
+years
+ago
+I
+went
+to
+hear
+him
+but
+he
+talked
+Spiritualism
+I
+did
+not
+really
+know
+what
+he
+meant
+He
+spoke
+well
+He
+said
+his
+name
+is
+Dr
+Peebles
+Famous
+lecturer
+on
+Spiritualism
+He
+said
+to
+me
+You
+go
+in
+there
+so
+I
+came
+He
+says
+I
+want
+you
+to
+get
+understanding
+and
+I
+do
+not
+no
+no
+what
+does
+he
+mean
+He
+says
+he
+does
+not
+want
+me
+to
+stay
+in
+the
+earth
+sphere
+but
+to
+lift
+my
+soul
+up
+to
+God
+and
+understand
+the
+real
+spiritual
+meaning
+of
+Him
+He
+has
+a
+big
+crowd
+around
+him
+some
+he
+is
+trying
+to
+lift
+up
+to
+higher
+things
+others
+he
+is
+trying
+to
+wake
+up
+so
+he
+tells
+me
+They
+are
+not
+sleeping
+are
+they
+Dr
+Yes
+mentally
+The
+Bible
+says
+Blessed
+is
+he
+that
+hath
+part
+in
+the
+first
+resurrection
+on
+such
+the
+second
+death
+has
+no
+power
+Sp
+What
+does
+that
+mean
+Dr
+It
+means
+that
+for
+those
+who
+have
+a
+spiritual
+understanding
+while
+in
+the
+body
+there
+is
+no
+death
+Sp
+Of
+course
+there
+is
+Dr
+No
+one
+ever
+dies
+The
+spirit
+or
+mind
+is
+not
+the
+body
+Sp
+It
+is
+not
+Dr
+You
+are
+dead
+to
+the
+world
+and
+your
+own
+relatives
+and
+evidently
+have
+been
+so
+for
+many
+years
+but
+we
+know
+that
+you
+yourself
+are
+not
+really
+dead
+Sp
+I
+have
+been
+walking
+about
+a
+great
+deal
+and
+I
+have
+traveled
+extensively
+but
+I
+have
+felt
+very
+strange
+Whenever
+I
+wanted
+to
+go
+anywhere
+all
+I
+had
+to
+do
+was
+to
+think
+and
+it
+seemed
+that
+I
+did
+not
+need
+a
+train
+or
+anything
+but
+I
+was
+there
+At
+times
+I
+felt
+I
+must
+be
+in
+America
+because
+I
+always
+heard
+they
+run
+their
+trains
+much
+faster
+than
+in
+England
+Dr
+You
+are
+in
+Los
+Angeles
+California
+Sp
+California
+How
+did
+I
+get
+here
+The
+old
+gentleman
+is
+talking
+to
+a
+big
+crowd
+He
+says
+he
+has
+to
+bring
+them
+here
+to
+get
+them
+to
+understand
+and
+to
+have
+them
+open
+their
+spiritual
+eyes
+to
+see
+Dr
+You
+are
+having
+yours
+opened
+now
+Sp
+Why
+should
+I
+come
+here
+and
+speak
+Why
+do
+the
+rest
+not
+speak
+The
+lecturer
+says
+he
+could
+take
+me
+quicker
+than
+any
+of
+the
+others
+Still
+I
+do
+not
+look
+different
+than
+they
+He
+says
+he
+could
+take
+me
+more
+quickly
+to
+control
+a
+psychic
+Dr
+He
+is
+right
+Sp
+What
+does
+he
+mean
+by
+that
+He
+said
+it
+was
+necessary
+to
+bring
+this
+crowd
+here
+He
+met
+most
+of
+them
+in
+England
+when
+he
+was
+lecturing
+there
+many
+years
+ago
+He
+says
+some
+will
+listen
+to
+his
+lecture
+but
+many
+he
+cannot
+reach
+nor
+even
+waken
+so
+he
+brought
+them
+here
+He
+says
+he
+did
+not
+bring
+me
+here
+to
+waken
+me
+but
+I
+had
+come
+with
+others
+in
+that
+room
+over
+there
+There
+are
+so
+many
+there
+Some
+are
+crippled
+and
+some
+cannot
+speak
+at
+all
+It
+seems
+as
+if
+he
+speaks
+and
+lifts
+them
+up
+and
+then
+they
+waken
+He
+has
+a
+wonderful
+power
+for
+healing
+Dr
+They
+are
+lifted
+up
+by
+his
+thought
+He
+makes
+them
+understand
+that
+their
+crippled
+bodies
+are
+in
+the
+grave
+Sp
+Now
+he
+says
+that
+I
+must
+thank
+you
+for
+the
+privilege
+of
+meeting
+you
+and
+of
+talking
+with
+you
+I
+do
+not
+see
+why
+I
+should
+do
+that
+He
+says
+also
+that
+I
+shall
+have
+to
+put
+all
+my
+pride
+aside
+Yes
+but
+the
+rest
+are
+the
+same
+as
+I
+Dr
+You
+might
+see
+Queen
+Victoria
+or
+King
+Edward
+in
+the
+crowd
+and
+I
+am
+told
+that
+you
+will
+find
+them
+very
+common
+now
+Sp
+Of
+Queen
+Victoria
+they
+always
+said
+she
+talked
+to
+spirits
+and
+everybody
+thought
+she
+was
+a
+little
+crazy
+on
+the
+subject
+Dr
+She
+was
+open
+minded
+Sp
+She
+had
+spirit
+communications
+very
+often
+Dr
+She
+is
+not
+a
+Queen
+any
+longer
+Sp
+Some
+said
+she
+had
+a
+medium
+with
+her
+a
+great
+deal
+to
+ask
+what
+things
+to
+do
+and
+what
+not
+to
+do
+His
+name
+was
+Brown
+I
+believe
+Dr
+Yes
+John
+Brown
+Sp
+She
+said
+she
+always
+had
+to
+ask
+her
+husband
+about
+things
+Dr
+What
+more
+does
+Dr
+Peebles
+say
+Sp
+He
+says
+I
+had
+better
+say
+Good
+Night
+to
+you
+all
+and
+he
+also
+says
+that
+he
+will
+take
+all
+the
+crowd
+away
+with
+him
+and
+that
+he
+will
+show
+them
+the
+spirit
+world
+and
+try
+to
+help
+them
+That
+is
+his
+work
+Dr
+He
+passed
+out
+about
+Six
+months
+ago
+Now
+he
+is
+active
+on
+the
+other
+side
+Sp
+I
+think
+I
+am
+growing
+weak
+I
+feel
+strange
+Dr
+You
+are
+losing
+control
+This
+body
+is
+not
+yours
+it
+is
+my
+wife
+s
+Sp
+What
+do
+you
+mean
+Dr
+She
+is
+a
+psychic
+through
+whom
+you
+are
+talking
+You
+are
+experiencing
+only
+a
+temporary
+sensation
+Sp
+There
+is
+my
+mother
+Spirit
+I
+have
+not
+seen
+her
+for
+many
+years
+Dr
+How
+does
+she
+look
+See
+Chap
+Page
+Spirit
+Lillian
+R
+Sp
+She
+looks
+very
+young
+Dr
+Ask
+her
+if
+she
+has
+understanding
+Sp
+She
+says
+Yes
+she
+was
+very
+much
+interested
+in
+Dr
+Peebles
+lectures
+and
+also
+she
+used
+to
+go
+and
+listen
+to
+Mrs
+Britten
+Dr
+She
+was
+a
+wonderful
+woman
+She
+is
+now
+showing
+object
+lessons
+in
+spirit
+life
+Sp
+Mother
+says
+she
+used
+to
+go
+and
+hear
+her
+quite
+often
+and
+also
+some
+man
+who
+lectured
+Dr
+Was
+his
+name
+Mr
+Wallis
+Sp
+Yes
+He
+was
+quite
+a
+young
+man
+at
+that
+time
+Dr
+He
+has
+also
+passed
+on
+They
+all
+pass
+along
+to
+the
+better
+land
+Sp
+With
+transfigured
+face
+gazing
+raptly
+upon
+some
+vision
+Look
+at
+that
+open
+door
+It
+is
+so
+beautifully
+engraved
+It
+has
+engraved
+on
+it
+The
+Door
+of
+Life
+Understanding
+of
+Life
+Understanding
+of
+God
+in
+the
+True
+Sense
+The
+door
+is
+opening
+very
+slowly
+and
+we
+look
+in
+What
+a
+beautiful
+Hall
+The
+altar
+in
+the
+front
+is
+so
+beautiful
+so
+beautiful
+On
+the
+altar
+in
+the
+center
+is
+a
+beautiful
+statue
+which
+represents
+Wisdom
+There
+is
+a
+statue
+of
+Truth
+one
+of
+Love
+one
+of
+Understanding
+one
+of
+Honesty
+one
+of
+Life
+and
+one
+of
+Modesty
+Wisdom
+is
+the
+center
+statue
+There
+are
+seven
+statues
+in
+all
+each
+holding
+a
+light
+each
+one
+of
+the
+seven
+colors
+Three
+on
+each
+side
+of
+Wisdom
+each
+with
+a
+light
+all
+blending
+into
+Wisdom
+the
+beautiful
+White
+Light
+Wisdom
+Truth
+Honesty
+Love
+Life
+Understanding
+Modesty
+From
+these
+colors
+come
+the
+seven
+musical
+notes
+Each
+note
+corresponds
+to
+a
+color
+and
+then
+goes
+toward
+the
+center
+and
+lends
+into
+Wisdom
+There
+the
+real
+truth
+of
+life
+and
+an
+understanding
+of
+God
+is
+learned
+Dr
+The
+Bible
+says
+God
+is
+Love
+and
+God
+is
+Spirit
+and
+they
+that
+worship
+Him
+must
+worship
+Him
+in
+spirit
+and
+in
+truth
+Sp
+That
+is
+beautiful
+See
+those
+colors
+blend
+They
+go
+on
+and
+on
+blending
+in
+all
+ways
+into
+all
+forms
+into
+all
+kinds
+of
+shapes
+into
+stars
+and
+flowers
+and
+then
+they
+become
+music
+Now
+they
+form
+into
+leaves
+buds
+and
+flowers
+music
+taking
+form
+and
+color
+The
+music
+itself
+I
+never
+heard
+such
+beautiful
+music
+Is
+that
+Heaven
+Dr
+You
+may
+call
+it
+Heaven
+or
+the
+spirit
+world
+Heaven
+is
+a
+condition
+of
+mind
+The
+Bible
+says
+Ye
+are
+the
+temple
+of
+God
+and
+the
+Spirit
+of
+God
+dwelleth
+in
+you
+God
+is
+Love
+and
+Wisdom
+Sp
+They
+say
+to
+me
+This
+is
+the
+Gateway
+to
+the
+Higher
+Life
+You
+have
+had
+a
+glimpse
+of
+it
+but
+you
+cannot
+be
+there
+Why
+cannot
+I
+go
+there
+Dr
+You
+are
+carrying
+a
+load
+of
+which
+you
+must
+rid
+yourself
+your
+pride
+and
+your
+ignorance
+of
+spiritual
+laws
+Sp
+There
+is
+one
+who
+says
+We
+have
+to
+learn
+our
+lessons
+to
+be
+humble
+to
+be
+charitable
+to
+serve
+Learn
+to
+be
+honest
+and
+sincere
+then
+you
+can
+enter
+that
+beautiful
+hall
+Take
+up
+the
+cross
+and
+follow
+me
+That
+cross
+represents
+the
+crucifying
+of
+self
+selfishness
+jealousy
+envy
+bigotry
+dogma
+creeds
+false
+belief
+and
+pride
+Take
+up
+your
+cross
+and
+follow
+me
+That
+means
+that
+I
+must
+crucify
+self
+learn
+to
+serve
+learn
+the
+lesson
+of
+life
+learn
+to
+love
+others
+better
+than
+myself
+Selfishness
+is
+the
+cause
+of
+all
+trouble
+Crucify
+self
+conceit
+Oh
+I
+have
+much
+of
+it
+I
+have
+much
+to
+crucify
+I
+must
+take
+up
+my
+cross
+and
+learn
+my
+lesson
+down
+there
+Pointing
+downward
+Dr
+Jesus
+said
+Except
+ye
+become
+as
+little
+children
+ye
+shall
+not
+enter
+into
+the
+kingdom
+of
+heaven
+Sp
+With
+meek
+humility
+and
+a
+beautiful
+expression
+of
+resignation
+hands
+uplifted
+Take
+me
+I
+am
+ready
+to
+serve
+and
+also
+to
+seek
+for
+truth
+I
+will
+begin
+here
+and
+now
+to
+do
+the
+will
+of
+Heaven
+Whatever
+is
+the
+will
+of
+God
+find
+me
+there
+doing
+it
+I
+must
+not
+go
+to
+church
+to
+find
+God
+I
+must
+find
+Him
+within
+if
+I
+wish
+the
+opening
+of
+the
+door
+to
+that
+beautiful
+Hall
+of
+Understanding
+Wisdom
+and
+Glory
+Now
+I
+have
+to
+start
+at
+the
+bottom
+at
+the
+very
+bottom
+to
+serve
+Is
+that
+to
+be
+my
+mission
+Is
+it
+Dr
+Yes
+every
+one
+must
+serve
+Sp
+Amongst
+all
+those
+crippled
+and
+blind
+people
+I
+am
+to
+show
+them
+the
+way
+The
+door
+was
+opened
+for
+me
+to
+have
+a
+glimpse
+of
+what
+I
+am
+to
+work
+for
+but
+it
+was
+closed
+again
+and
+I
+I
+have
+to
+serve
+I
+have
+never
+served
+It
+will
+be
+very
+hard
+for
+I
+have
+always
+been
+waited
+on
+I
+have
+never
+had
+to
+dress
+myself
+or
+comb
+my
+hair
+I
+never
+have
+done
+it
+in
+all
+my
+life
+never
+Now
+I
+have
+to
+serve
+and
+comb
+the
+matted
+hair
+of
+those
+cripples
+down
+there
+I
+but
+I
+have
+to
+do
+it
+Dr
+Jesus
+said
+My
+yoke
+is
+easy
+and
+my
+burden
+is
+light
+Sp
+Earnestly
+It
+is
+worth
+it
+to
+gain
+that
+crown
+of
+wisdom
+It
+is
+worth
+all
+I
+must
+go
+through
+with
+to
+enter
+that
+beautiful
+hall
+and
+listen
+to
+the
+wonders
+there
+I
+will
+serve
+yes
+I
+honestly
+will
+I
+will
+do
+that
+and
+more
+for
+all
+God
+help
+me
+in
+my
+great
+struggle
+Yes
+I
+promise
+I
+will
+serve
+and
+do
+all
+within
+my
+power
+I
+must
+go
+Good
+Night
+CHAPTER
+XIII
+Orthodoxy
+THE
+science
+of
+religion
+should
+teach
+an
+intelligent
+realization
+of
+the
+nature
+of
+God
+and
+the
+life
+hereafter
+but
+humanity
+is
+still
+kept
+in
+subjection
+by
+fear
+superstition
+dogmas
+and
+creeds
+and
+has
+not
+yet
+attained
+liberation
+through
+a
+full
+understanding
+of
+what
+becomes
+of
+the
+dead
+Passing
+through
+the
+change
+called
+death
+a
+great
+majority
+remain
+in
+entire
+ignorance
+of
+their
+condition
+and
+are
+bound
+for
+a
+time
+to
+the
+earth
+plane
+by
+their
+false
+doctrines
+These
+cling
+to
+their
+orthodox
+ideas
+often
+influencing
+those
+still
+in
+the
+body
+and
+the
+mental
+derangements
+which
+frequently
+follow
+in
+the
+train
+of
+revivals
+are
+examples
+of
+these
+obsessions
+as
+are
+the
+phenomena
+known
+as
+The
+Gift
+of
+Tongues
+and
+Seizure
+by
+The
+Power
+which
+accompany
+many
+revivals
+Religious
+exhortations
+readily
+lead
+to
+mental
+aberrations
+since
+invisible
+religious
+fanatics
+are
+always
+present
+who
+are
+unconscious
+of
+their
+transition
+and
+having
+found
+no
+higher
+life
+retain
+their
+mortal
+bigotry
+and
+by
+their
+presence
+add
+to
+the
+insane
+fervor
+These
+spirits
+often
+make
+themselves
+audible
+to
+excited
+sensitives
+for
+at
+such
+gatherings
+many
+are
+encouraged
+to
+listen
+to
+the
+still
+small
+voice
+supposedly
+of
+God
+During
+religious
+excitement
+the
+psychic
+faculty
+is
+highly
+sensitized
+giving
+mischievous
+spirits
+as
+well
+as
+fanatical
+spirits
+the
+proper
+opportunity
+to
+impress
+credulous
+persons
+with
+their
+whisperings
+Such
+entities
+for
+their
+own
+deceptive
+purposes
+may
+pretend
+to
+be
+angels
+the
+Holy
+Ghost
+or
+The
+Spirit
+of
+God
+and
+the
+thoughtless
+victims
+elated
+and
+unwilling
+to
+listen
+to
+reason
+heed
+these
+whisperings
+which
+so
+frequently
+lead
+to
+obsession
+and
+possession
+resulting
+in
+madness
+insanity
+and
+other
+psychoses
+The
+most
+difficult
+to
+enlighten
+of
+the
+earthbound
+spirits
+are
+the
+religious
+fanatics
+Dominated
+in
+earth
+life
+by
+one
+narrow
+fixed
+idea
+opposed
+to
+logical
+analysis
+and
+independent
+thinking
+they
+are
+found
+after
+passing
+out
+of
+the
+physical
+in
+a
+state
+of
+self
+hypnosis
+ceaselessly
+repeating
+their
+empty
+religious
+jargon
+Nothing
+exists
+for
+them
+but
+their
+dogmatic
+creed
+they
+are
+adamantly
+set
+in
+their
+self
+assurance
+and
+it
+is
+often
+many
+years
+before
+they
+can
+be
+brought
+to
+a
+semblance
+of
+sanity
+EXPERIENCE
+MARCH
+Spirit
+SARAH
+McDONALD
+Psychic
+MRS
+WicKLAND
+The
+spirit
+who
+assumed
+control
+of
+the
+psychic
+tonight
+was
+vigorously
+singing
+a
+religious
+hymn
+Doctor
+Have
+you
+been
+here
+before
+Spirit
+Let
+s
+sing
+some
+more
+Dr
+We
+are
+going
+to
+talk
+now
+Sp
+I
+think
+we
+d
+better
+sing
+another
+song
+Dr
+If
+we
+did
+you
+might
+become
+too
+enthusiastic
+Sp
+We
+are
+in
+church
+and
+you
+know
+you
+have
+to
+sing
+Sing
+Hallelujah
+Tell
+the
+story
+Dr
+We
+are
+going
+to
+be
+sensible
+Sp
+You
+have
+to
+sing
+You
+have
+to
+do
+that
+That
+belongs
+to
+church
+Let
+us
+pray
+in
+Jesus
+name
+for
+evermore
+Dr
+That
+would
+be
+very
+tiresome
+Sp
+Let
+us
+sing
+and
+pray
+to
+the
+Lord
+Hallelujah
+Jesus
+Christ
+Dr
+Now
+stop
+that
+is
+enough
+What
+is
+your
+name
+Sp
+Let
+s
+sing
+and
+pray
+Dr
+You
+must
+be
+sensible
+or
+leave
+Tell
+us
+who
+you
+are
+and
+where
+you
+came
+from
+Sp
+What
+church
+is
+this
+anyhow
+where
+you
+talk
+in
+this
+way
+Dr
+Be
+sensible
+otherwise
+you
+will
+have
+to
+go
+How
+long
+have
+you
+been
+dead
+You
+know
+something
+happened
+to
+you
+You
+have
+been
+hovering
+around
+the
+earth
+probably
+for
+years
+and
+have
+never
+gotten
+anywhere
+Be
+sensible
+Sp
+I
+am
+sensible
+I
+m
+not
+crazy
+Dr
+You
+are
+religiously
+insane
+Sp
+We
+all
+pray
+to
+God
+and
+the
+Holy
+Ghost
+Loudly
+Hallelujah
+Dr
+We
+do
+not
+need
+that
+shouting
+Sp
+I
+am
+doing
+work
+in
+the
+name
+of
+Jesus
+Christ
+Dr
+We
+have
+heard
+such
+talk
+before
+Sp
+Not
+from
+me
+you
+haven
+t
+I
+am
+working
+for
+the
+Lord
+Jesus
+Christ
+Dr
+This
+is
+not
+the
+place
+for
+such
+talk
+as
+that
+Sp
+Are
+you
+a
+sinner
+Dr
+Listen
+to
+me
+Whoever
+you
+are
+you
+have
+lost
+your
+body
+Sp
+What
+church
+is
+this
+Dr
+It
+is
+no
+church
+Sp
+I
+am
+glad
+of
+that
+because
+I
+thought
+the
+church
+must
+surely
+have
+changed
+Let
+me
+talk
+in
+Jesus
+name
+Dr
+You
+have
+been
+brought
+here
+by
+kind
+spirits
+so
+that
+you
+can
+understand
+your
+condition
+You
+are
+a
+spirit
+and
+probably
+have
+been
+for
+a
+long
+time
+You
+will
+not
+listen
+to
+any
+one
+who
+tries
+to
+enlighten
+you
+Sp
+Go
+ahead
+then
+and
+say
+what
+you
+have
+to
+say
+Then
+I
+can
+talk
+too
+Dr
+Understand
+your
+condition
+You
+are
+temporarily
+controlling
+this
+body
+Some
+friend
+brought
+you
+here
+for
+help
+Do
+you
+realize
+that
+something
+happened
+to
+you
+Sp
+No
+Dr
+You
+would
+if
+you
+were
+honest
+You
+know
+that
+you
+are
+in
+a
+strange
+condition
+You
+are
+not
+honest
+enough
+to
+pay
+any
+attention
+to
+it
+Do
+you
+know
+that
+you
+are
+in
+Los
+Angeles
+California
+Sp
+How
+did
+I
+get
+there
+I
+suppose
+I
+sang
+and
+prayed
+as
+a
+missionary
+A
+missionary
+must
+have
+taken
+me
+away
+Dr
+You
+were
+brought
+here
+because
+you
+are
+an
+ignorant
+spirit
+What
+did
+your
+mother
+call
+you
+Sp
+I
+don
+t
+know
+just
+now
+I
+can
+t
+think
+Dr
+You
+have
+lost
+your
+physical
+body
+Ignorant
+spirits
+often
+lose
+the
+memory
+of
+their
+earth
+lives
+You
+do
+not
+even
+remember
+your
+name
+Sp
+My
+name
+is
+Sarah
+in
+Jesus
+name
+Dr
+Sarah
+what
+Sp
+McDonald
+in
+Jesus
+name
+Dr
+You
+know
+that
+all
+that
+shouting
+is
+useless
+Do
+you
+not
+realize
+that
+you
+have
+been
+dead
+for
+some
+time
+Sp
+Hallelujah
+Dr
+You
+do
+not
+even
+know
+that
+you
+are
+dead
+You
+are
+only
+using
+this
+body
+for
+a
+short
+time
+Do
+you
+hear
+me
+Do
+you
+know
+what
+year
+it
+is
+Sp
+In
+Jesus
+name
+I
+do
+not
+care
+Dr
+Religious
+fanatics
+never
+care
+Sp
+I
+am
+a
+Christian
+woman
+in
+Jesus
+name
+Glory
+to
+God
+Hallelujah
+Dr
+Do
+you
+know
+what
+Jesus
+said
+Sp
+Yes
+He
+said
+God
+forgive
+them
+they
+do
+not
+know
+any
+better
+I
+will
+pray
+for
+you
+Dr
+We
+do
+not
+need
+your
+prayers
+Sp
+Glory
+to
+God
+Dr
+Do
+you
+know
+that
+you
+are
+dead
+Sp
+That
+doesn
+t
+interest
+me
+Dr
+You
+are
+controlling
+the
+body
+of
+a
+mortal
+sensitive
+Sp
+Jesus
+is
+my
+friend
+Glory
+Dr
+We
+carry
+on
+experimental
+work
+to
+learn
+what
+becomes
+of
+the
+dead
+We
+always
+find
+that
+the
+most
+ignorant
+stubborn
+spirits
+are
+the
+religious
+fanatics
+shouting
+and
+singing
+all
+the
+time
+Jesus
+said
+Know
+the
+truth
+and
+the
+truth
+shall
+make
+you
+free
+Sp
+God
+forgive
+them
+they
+don
+t
+know
+better
+I
+will
+pray
+for
+you
+all
+Dr
+You
+need
+not
+trouble
+yourself
+You
+do
+not
+understand
+your
+condition
+at
+all
+What
+you
+say
+is
+nothing
+but
+foolish
+talk
+In
+your
+heart
+you
+know
+you
+are
+a
+pretender
+Sp
+God
+forgive
+Let
+us
+pray
+Dr
+We
+do
+not
+need
+your
+hypocritical
+prayers
+Sp
+I
+never
+was
+in
+such
+a
+place
+before
+I
+never
+saw
+anything
+like
+this
+Crying
+I
+do
+not
+know
+what
+will
+become
+of
+me
+Dr
+Try
+to
+understand
+what
+I
+am
+saying
+to
+you
+Stop
+your
+foolish
+religious
+talk
+You
+say
+Jesus
+and
+Lord
+and
+you
+have
+no
+understanding
+of
+true
+religion
+Sp
+God
+help
+me
+God
+help
+me
+God
+forgive
+Dr
+He
+does
+not
+need
+to
+Listen
+to
+what
+I
+say
+Sp
+Drawling
+What
+more
+do
+you
+want
+Dr
+Why
+speak
+with
+such
+affectation
+Do
+you
+know
+that
+you
+are
+controlling
+a
+body
+that
+does
+not
+belong
+to
+you
+Aren
+t
+you
+ashamed
+of
+yourself
+You
+know
+that
+you
+are
+not
+sincere
+Tell
+us
+how
+long
+you
+have
+been
+dead
+You
+must
+realize
+that
+something
+has
+happened
+to
+you
+Intelligent
+spirits
+have
+brought
+you
+here
+and
+allowed
+you
+to
+control
+my
+wife
+s
+body
+and
+we
+are
+trying
+to
+help
+you
+understand
+your
+condition
+but
+that
+does
+not
+seem
+to
+interest
+you
+Sp
+I
+don
+t
+care
+Trying
+to
+bite
+The
+spirit
+would
+not
+listen
+to
+any
+line
+of
+reasoning
+and
+was
+forced
+to
+leave
+She
+was
+immediately
+followed
+by
+a
+little
+child
+who
+came
+in
+crying
+dismally
+EXPERIENCE
+MARCH
+Spirit
+MARY
+ANN
+McDONALD
+PSYCHIC
+MRS
+WICKLAND
+Doctor
+What
+is
+your
+trouble
+Don
+t
+cry
+We
+are
+going
+to
+help
+you
+Spirit
+Where
+is
+Mamma
+Dr
+Have
+you
+lost
+your
+mother
+We
+can
+help
+you
+find
+her
+Tell
+us
+who
+you
+are
+What
+is
+your
+name
+Sp
+Mary
+Ann
+McDonald
+Coughing
+choking
+and
+crying
+Dr
+You
+must
+not
+do
+that
+Why
+do
+you
+cry
+Sp
+What
+s
+the
+matter
+with
+my
+Mamma
+Dr
+Have
+you
+lost
+her
+Sp
+She
+s
+gone
+I
+don
+t
+know
+where
+she
+is
+now
+Dr
+We
+can
+help
+you
+What
+was
+your
+mother
+s
+name
+Sp
+Sarah
+McDonald
+Will
+you
+bring
+Mamma
+to
+me
+Dr
+We
+are
+going
+to
+help
+you
+Where
+was
+your
+home
+Sp
+I
+don
+t
+know
+I
+can
+t
+remember
+All
+my
+Mamma
+does
+is
+to
+pray
+and
+sing
+and
+she
+says
+if
+I
+do
+not
+do
+the
+same
+I
+will
+go
+straight
+to
+the
+devil
+Dr
+You
+will
+not
+go
+to
+the
+devil
+Sp
+I
+cannot
+pray
+and
+sing
+in
+my
+heart
+like
+they
+do
+Dr
+You
+do
+not
+have
+to
+pray
+and
+sing
+There
+is
+no
+religion
+in
+that
+We
+can
+help
+you
+our
+work
+is
+the
+helping
+of
+unfortunate
+spirits
+Sp
+I
+don
+t
+know
+what
+to
+do
+Dr
+You
+have
+lost
+your
+body
+just
+as
+your
+mother
+has
+lost
+hers
+We
+could
+not
+see
+your
+mother
+and
+we
+cannot
+see
+you
+You
+are
+using
+the
+body
+of
+another
+for
+a
+time
+Your
+mother
+was
+here
+and
+controlled
+this
+body
+before
+you
+came
+Sp
+Have
+I
+lost
+her
+Dr
+She
+is
+being
+taken
+care
+of
+She
+has
+been
+taken
+to
+a
+spirit
+hospital
+She
+is
+insane
+on
+religion
+and
+would
+not
+listen
+to
+what
+I
+said
+Sp
+She
+says
+if
+she
+does
+not
+pray
+and
+sing
+all
+the
+time
+God
+will
+not
+forgive
+her
+Dr
+There
+is
+no
+religion
+in
+that
+only
+insanity
+That
+is
+not
+what
+Jesus
+taught
+Sp
+Do
+you
+see
+that
+big
+fire
+Dr
+No
+we
+cannot
+see
+it
+Where
+is
+it
+Sp
+The
+whole
+house
+burned
+all
+up
+My
+mother
+was
+praying
+and
+singing
+I
+didn
+t
+know
+what
+was
+the
+matter
+I
+was
+sleeping
+and
+did
+not
+know
+anything
+about
+the
+house
+burning
+up
+Dr
+Don
+t
+worry
+about
+that
+Sp
+When
+I
+woke
+up
+I
+was
+all
+choked
+I
+couldn
+t
+breathe
+Dr
+That
+is
+all
+past
+now
+What
+town
+did
+you
+live
+in
+Sp
+I
+don
+t
+know
+Just
+wait
+a
+minute
+while
+I
+try
+to
+think
+I
+was
+so
+scared
+that
+my
+mind
+can
+t
+remember
+We
+prayed
+and
+sang
+all
+the
+time
+and
+I
+am
+so
+sick
+and
+tired
+of
+it
+that
+I
+don
+t
+know
+what
+to
+do
+We
+did
+not
+get
+anywhere
+We
+just
+prayed
+the
+same
+thing
+over
+and
+over
+again
+I
+do
+not
+know
+what
+will
+become
+of
+me
+because
+I
+cannot
+feel
+like
+my
+mother
+does
+at
+all
+Dr
+Our
+work
+is
+to
+help
+spirits
+who
+are
+in
+trouble
+and
+you
+will
+find
+happiness
+when
+you
+leave
+here
+Sp
+I
+will
+tell
+you
+The
+minister
+at
+the
+church
+we
+go
+to
+he
+says
+If
+you
+do
+not
+do
+so
+and
+so
+and
+pray
+every
+night
+and
+sacrifice
+everything
+you
+will
+go
+to
+hell
+He
+says
+we
+must
+not
+eat
+but
+must
+lay
+on
+the
+floor
+and
+torture
+our
+bodies
+for
+Christ
+s
+sake
+Dr
+That
+minister
+is
+insane
+Sp
+He
+said
+we
+must
+not
+eat
+anything
+except
+dry
+bread
+with
+water
+He
+said
+I
+had
+been
+a
+sinner
+and
+I
+must
+give
+all
+the
+money
+I
+make
+to
+the
+Lord
+and
+I
+must
+be
+His
+slave
+I
+asked
+him
+if
+the
+Lord
+was
+so
+poor
+that
+He
+needed
+all
+my
+money
+and
+he
+said
+that
+question
+was
+from
+the
+devil
+I
+worked
+very
+hard
+and
+Mamma
+took
+all
+my
+money
+away
+from
+me
+for
+the
+church
+I
+went
+out
+sewing
+in
+a
+shop
+but
+my
+Mamma
+took
+me
+to
+church
+every
+night
+All
+I
+got
+was
+a
+hard
+crust
+of
+bread
+and
+some
+water
+in
+Jesus
+name
+Dr
+How
+old
+are
+you
+Sp
+About
+sixteen
+or
+seventeen
+Dr
+What
+kind
+of
+a
+shop
+did
+you
+work
+in
+Sp
+I
+sewed
+overalls
+Dr
+In
+Chicago
+Sp
+No
+but
+we
+were
+in
+a
+big
+town
+I
+can
+t
+remember
+That
+minister
+preached
+and
+preached
+Dr
+That
+is
+all
+over
+now
+Sp
+Sometimes
+I
+asked
+Mamma
+why
+we
+had
+to
+sing
+and
+pray
+all
+the
+time
+It
+came
+to
+my
+heart
+that
+God
+is
+Love
+and
+we
+are
+His
+children
+so
+why
+does
+He
+let
+us
+work
+so
+hard
+and
+sacrifice
+our
+bodies
+so
+that
+we
+hardly
+have
+any
+strength
+then
+give
+all
+our
+money
+to
+Him
+Is
+He
+so
+poor
+Dr
+The
+Lord
+has
+nothing
+to
+do
+with
+any
+of
+that
+Only
+ignorant
+insane
+persons
+say
+such
+things
+Sp
+He
+is
+a
+minister
+Dr
+What
+church
+did
+you
+belong
+to
+Sp
+The
+minister
+said
+if
+we
+did
+not
+do
+as
+he
+told
+us
+to
+we
+would
+go
+to
+hell
+He
+talks
+and
+talks
+and
+we
+have
+to
+listen
+to
+him
+I
+don
+t
+know
+why
+but
+I
+haven
+t
+sewed
+since
+I
+was
+in
+that
+fire
+It
+seems
+like
+a
+fire
+and
+an
+earthquake
+I
+felt
+so
+bad
+because
+I
+choked
+and
+coughed
+My
+Mamma
+and
+I
+have
+not
+had
+any
+house
+to
+sleep
+in
+The
+minister
+told
+us
+we
+could
+sleep
+most
+anywhere
+but
+if
+we
+worked
+and
+gave
+all
+our
+money
+to
+the
+Lord
+we
+would
+be
+all
+right
+Sometimes
+I
+wanted
+a
+new
+dress
+awful
+bad
+I
+didn
+t
+earn
+so
+very
+much
+money
+but
+if
+I
+could
+have
+kept
+it
+I
+could
+have
+got
+a
+new
+dress
+sometime
+Mamma
+took
+it
+all
+She
+said
+Mary
+Ann
+you
+must
+sacrifice
+for
+the
+Lord
+Sometimes
+I
+said
+I
+may
+go
+to
+hell
+for
+it
+but
+I
+think
+it
+would
+be
+better
+to
+go
+to
+hell
+than
+to
+hear
+about
+the
+Lord
+all
+the
+time
+I
+don
+t
+know
+if
+it
+would
+be
+better
+but
+I
+thought
+it
+would
+be
+Dr
+All
+that
+fanaticism
+is
+wrong
+every
+bit
+of
+it
+God
+is
+Spirit
+and
+God
+is
+Love
+God
+has
+nothing
+to
+do
+with
+such
+fanatical
+talk
+He
+does
+not
+need
+any
+one
+s
+money
+Sp
+Then
+why
+do
+they
+give
+it
+to
+Him
+Dr
+God
+doesn
+t
+get
+it
+the
+ministers
+do
+God
+doesn
+t
+need
+it
+Sp
+Doesn
+t
+God
+need
+our
+money
+Dr
+No
+God
+is
+Spirit
+Spirit
+is
+invisible
+I
+am
+talking
+to
+you
+and
+you
+are
+talking
+to
+me
+but
+you
+are
+invisible
+to
+us
+We
+cannot
+see
+you
+Mind
+is
+invisible
+You
+see
+my
+body
+but
+not
+my
+mind
+God
+is
+invisible
+and
+He
+is
+not
+in
+a
+certain
+place
+as
+we
+are
+He
+is
+the
+Soul
+of
+all
+things
+Sp
+But
+the
+minister
+says
+He
+sits
+on
+a
+throne
+with
+Jesus
+on
+His
+right
+hand
+Why
+did
+he
+tell
+us
+that
+if
+it
+is
+not
+true
+Dr
+Because
+the
+truth
+is
+not
+in
+him
+He
+is
+not
+honest
+Sp
+But
+Jesus
+died
+for
+our
+sins
+Dr
+No
+he
+did
+not
+Sp
+He
+said
+Take
+up
+my
+cross
+and
+follow
+me
+and
+go
+to
+church
+every
+day
+Dr
+Jesus
+never
+mentioned
+going
+to
+church
+His
+teachings
+were
+about
+the
+higher
+life
+Sp
+Heaven
+Dr
+Not
+as
+you
+understand
+it
+Heaven
+is
+a
+happy
+mental
+condition
+If
+you
+could
+have
+had
+a
+new
+dress
+as
+you
+wished
+you
+would
+have
+been
+happy
+wouldn
+t
+you
+Sp
+Yes
+I
+should
+like
+to
+have
+a
+new
+dress
+I
+don
+t
+care
+so
+very
+much
+for
+fancy
+things
+Once
+in
+a
+while
+I
+wanted
+a
+nice
+new
+dress
+and
+not
+what
+the
+minister
+told
+us
+we
+should
+have
+But
+we
+had
+to
+give
+our
+money
+to
+the
+Lord
+Dr
+No
+you
+didn
+t
+You
+gave
+it
+to
+the
+minister
+Sp
+He
+gave
+us
+some
+old
+dresses
+that
+had
+been
+given
+to
+the
+church
+and
+my
+Mamma
+said
+we
+must
+sacrifice
+When
+I
+kicked
+Mamma
+said
+You
+will
+go
+to
+hell
+if
+you
+don
+t
+do
+what
+the
+Lord
+says
+you
+should
+do
+Dr
+There
+is
+no
+such
+place
+as
+hell
+Sp
+No
+hell
+Dr
+Of
+course
+not
+Sp
+Isn
+t
+hell
+a
+burning
+fire
+I
+have
+seen
+it
+burning
+and
+I
+see
+it
+yet
+Dr
+Possibly
+your
+mother
+in
+her
+religious
+insanity
+set
+fire
+to
+the
+house
+Sp
+No
+I
+don
+t
+think
+so
+It
+seems
+like
+there
+was
+an
+earthquake
+and
+then
+after
+that
+there
+was
+the
+fire
+Dr
+Who
+is
+President
+Sp
+I
+don
+t
+know
+I
+ll
+tell
+you
+I
+didn
+t
+have
+so
+very
+much
+school
+I
+went
+to
+work
+when
+I
+was
+nine
+years
+old
+Dr
+Did
+you
+have
+a
+father
+Sp
+I
+did
+not
+know
+my
+father
+Dr
+Your
+schooling
+does
+not
+make
+any
+difference
+You
+have
+lost
+your
+physical
+body
+and
+are
+now
+a
+spirit
+Sp
+I
+lost
+my
+physical
+body
+But
+I
+have
+a
+body
+Dr
+This
+is
+not
+your
+body
+it
+belongs
+to
+my
+wife
+Sp
+Where
+did
+I
+get
+these
+clothes
+from
+Dr
+They
+belong
+to
+my
+wife
+Sp
+But
+I
+should
+like
+to
+have
+my
+own
+clothes
+Dr
+You
+will
+have
+your
+own
+soon
+Sp
+I
+do
+not
+like
+to
+take
+them
+from
+your
+wife
+I
+am
+sorry
+but
+I
+must
+not
+wear
+them
+Dr
+Look
+at
+your
+shoes
+Sp
+I
+must
+be
+in
+Heaven
+Dr
+You
+feel
+better
+do
+you
+not
+than
+when
+you
+were
+praying
+all
+the
+time
+Sp
+I
+feel
+strong
+Did
+I
+get
+something
+to
+eat
+because
+I
+feel
+so
+strong
+Dr
+You
+are
+controlling
+a
+healthy
+body
+This
+is
+my
+wife
+s
+body
+Sp
+I
+don
+t
+like
+to
+have
+your
+wife
+s
+body
+Dr
+You
+will
+only
+stay
+here
+for
+a
+short
+time
+Sp
+Then
+where
+will
+I
+go
+I
+won
+t
+have
+to
+go
+back
+to
+that
+minister
+and
+hear
+all
+those
+crazy
+people
+sing
+all
+the
+time
+will
+I
+When
+the
+minister
+talked
+about
+hell
+and
+damnation
+I
+saw
+a
+big
+fire
+and
+I
+saw
+the
+devil
+with
+his
+pitchfork
+and
+he
+pushed
+people
+in
+Dr
+When
+that
+minister
+was
+preaching
+he
+was
+thinking
+of
+hell
+fire
+and
+made
+a
+picture
+which
+the
+rest
+of
+you
+saw
+and
+it
+appeared
+like
+a
+reality
+But
+it
+was
+only
+a
+phantasm
+which
+he
+created
+Sp
+He
+scared
+us
+with
+it
+Dr
+As
+he
+talked
+it
+would
+appear
+to
+you
+as
+a
+reality
+Sp
+But
+it
+looked
+like
+real
+I
+suppose
+they
+have
+those
+things
+in
+hell
+but
+I
+want
+to
+go
+to
+Heaven
+Dr
+Your
+mother
+and
+the
+minister
+are
+spirits
+but
+ignorant
+of
+the
+fact
+Sp
+Do
+you
+mean
+all
+those
+people
+are
+spirits
+There
+must
+be
+a
+thousand
+all
+singing
+and
+praying
+all
+the
+time
+Sometimes
+we
+got
+just
+bread
+and
+water
+and
+we
+lay
+down
+on
+boards
+We
+must
+be
+there
+all
+the
+time
+otherwise
+the
+minister
+is
+not
+pleased
+with
+us
+and
+he
+says
+if
+we
+do
+not
+get
+down
+on
+our
+knees
+we
+go
+into
+the
+fire
+Dr
+That
+is
+all
+nonsense
+All
+those
+people
+have
+lost
+their
+physical
+bodies
+and
+are
+in
+the
+outer
+darkness
+that
+the
+Bible
+speaks
+about
+They
+are
+in
+blind
+religious
+ignorance
+They
+will
+remain
+in
+that
+condition
+for
+a
+very
+long
+time
+if
+they
+do
+not
+change
+their
+way
+of
+thinking
+They
+are
+filled
+with
+religious
+fanaticism
+Your
+mother
+was
+brought
+here
+for
+understanding
+and
+controlled
+this
+same
+body
+Sp
+Someone
+pushed
+her
+in
+and
+then
+I
+could
+not
+talk
+to
+her
+any
+more
+The
+whole
+crowd
+down
+there
+will
+not
+listen
+to
+any
+body
+they
+just
+sing
+and
+pray
+Dr
+They
+can
+stay
+there
+for
+years
+and
+years
+and
+their
+Lord
+will
+not
+care
+anything
+about
+them
+Sp
+There
+that
+hell
+is
+not
+there
+any
+more
+Dr
+The
+minister
+thinks
+of
+hell
+and
+devils
+and
+creates
+phantasms
+which
+seem
+real
+to
+ignorant
+spirits
+Sp
+Will
+you
+help
+my
+mother
+Dr
+Intelligent
+spirits
+will
+take
+care
+of
+her
+It
+was
+they
+who
+pushed
+her
+in
+here
+to
+bring
+her
+to
+an
+understanding
+The
+difference
+between
+you
+and
+your
+mother
+is
+that
+you
+will
+listen
+and
+she
+would
+not
+Sp
+Then
+you
+do
+not
+think
+God
+would
+be
+angry
+with
+me
+I
+Dr
+Of
+course
+not
+Sp
+Sure
+Dr
+God
+knows
+everything
+He
+is
+All
+in
+All
+He
+is
+the
+Creator
+and
+Creation
+both
+Sp
+Don
+t
+we
+fall
+in
+sin
+Dr
+No
+never
+If
+you
+say
+we
+fall
+in
+sin
+you
+say
+God
+made
+a
+mistake
+when
+He
+created
+us
+He
+is
+All
+Wise
+All
+Powerful
+and
+everywhere
+present
+When
+such
+a
+God
+as
+that
+created
+the
+world
+and
+mankind
+He
+did
+not
+make
+a
+mistake
+allowing
+man
+to
+fall
+in
+sin
+Otherwise
+He
+would
+not
+be
+All
+Wise
+Sp
+Why
+do
+they
+say
+that
+then
+Dr
+People
+worship
+creed
+The
+truth
+is
+given
+allegorically
+in
+the
+Bible
+Sp
+Didn
+t
+Jesus
+die
+for
+our
+sins
+Dr
+Of
+course
+he
+did
+not
+Sp
+The
+minister
+said
+there
+is
+power
+in
+the
+blood
+Dr
+No
+there
+is
+not
+Some
+of
+those
+people
+you
+speak
+of
+have
+probably
+been
+dead
+a
+long
+time
+We
+cannot
+see
+them
+Sp
+Can
+t
+you
+see
+all
+those
+people
+over
+there
+Pointing
+Dr
+No
+they
+are
+spirits
+and
+have
+lost
+their
+bodies
+long
+ago
+They
+are
+blind
+to
+the
+higher
+life
+You
+are
+not
+satisfied
+to
+be
+with
+them
+and
+you
+ask
+questions
+therefore
+we
+can
+help
+you
+to
+an
+understanding
+We
+must
+add
+understanding
+to
+our
+faith
+You
+lost
+your
+own
+body
+perhaps
+many
+years
+ago
+Sp
+Everything
+was
+all
+mixed
+up
+I
+got
+hurt
+in
+the
+head
+Dr
+Don
+t
+you
+remember
+any
+of
+the
+streets
+in
+your
+city
+SP
+No
+I
+can
+t
+remember
+It
+seems
+like
+I
+was
+in
+San
+Francisco
+Ques
+By
+a
+former
+resident
+of
+San
+Francisco
+Did
+you
+go
+across
+the
+Bay
+to
+Oakland
+Sp
+Yes
+and
+we
+went
+to
+Oakland
+to
+the
+prayer
+meeting
+Ques
+Did
+you
+work
+at
+Strauss
+Brothers
+Overall
+Factory
+Was
+it
+on
+Mission
+Street
+Sp
+Mission
+Street
+I
+remember
+now
+We
+lived
+on
+Mission
+Street
+Ques
+Near
+Daly
+toward
+Golden
+Gate
+Park
+Sp
+No
+it
+was
+near
+the
+depot
+Ques
+Toward
+the
+Ferry
+Sp
+Near
+the
+Southern
+Pacific
+Station
+They
+had
+a
+Mission
+House
+on
+Mission
+Street
+Ques
+Was
+that
+toward
+the
+Bay
+Sp
+I
+don
+t
+know
+We
+lived
+in
+a
+little
+house
+we
+rented
+My
+mother
+went
+to
+the
+factory
+too
+but
+she
+got
+sick
+because
+she
+sang
+and
+prayed
+all
+the
+time
+I
+had
+to
+do
+her
+work
+too
+We
+did
+not
+get
+much
+just
+kept
+enough
+so
+we
+could
+live
+The
+minister
+said
+it
+was
+a
+sin
+to
+eat
+meat
+or
+milk
+or
+butter
+or
+eggs
+He
+said
+they
+cost
+too
+much
+and
+that
+we
+must
+sacrifice
+our
+bodies
+Dr
+Was
+your
+father
+dead
+Sp
+I
+think
+he
+died
+when
+I
+was
+a
+little
+girl
+I
+don
+t
+really
+know
+Dr
+Look
+around
+and
+see
+whether
+there
+is
+anyone
+here
+whom
+you
+know
+Other
+spirits
+are
+here
+who
+will
+help
+you
+and
+take
+you
+to
+the
+spirit
+world
+That
+is
+the
+invisible
+world
+around
+the
+physical
+world
+Sp
+I
+see
+such
+a
+pretty
+garden
+Look
+at
+those
+beautiful
+flowers
+just
+look
+at
+them
+I
+never
+saw
+anything
+so
+beautiful
+There
+s
+trees
+and
+flowers
+Hear
+the
+pretty
+birds
+how
+they
+sing
+Look
+at
+that
+beautiful
+lake
+and
+all
+the
+children
+swinging
+on
+the
+shore
+Dr
+That
+is
+the
+spirit
+world
+Sp
+It
+is
+so
+much
+better
+than
+over
+there
+where
+they
+sing
+and
+pray
+Sometimes
+I
+was
+so
+hungry
+that
+nothing
+satisfied
+me
+Isn
+t
+this
+different
+from
+those
+crazy
+singing
+people
+Can
+t
+you
+see
+them
+all
+Couldn
+t
+you
+help
+them
+to
+see
+this
+beautiful
+place
+Dr
+Your
+mother
+was
+here
+controlling
+this
+body
+but
+we
+could
+do
+nothing
+with
+her
+Sp
+Oh
+look
+at
+that
+nice
+little
+house
+over
+there
+It
+has
+two
+rooms
+and
+a
+beautiful
+garden
+full
+of
+flowers
+Dr
+Do
+you
+see
+any
+one
+around
+there
+Sp
+Somebody
+says
+my
+grandmother
+lives
+there
+and
+it
+s
+going
+to
+be
+my
+home
+too
+They
+say
+she
+is
+waiting
+for
+me
+I
+only
+know
+grandmother
+a
+little
+She
+visited
+us
+once
+but
+she
+could
+not
+stay
+because
+Mamma
+was
+carrying
+on
+so
+and
+grandmother
+didn
+t
+believe
+in
+it
+So
+she
+went
+far
+away
+I
+think
+East
+somewhere
+and
+after
+that
+she
+died
+Mamma
+got
+some
+money
+from
+grandma
+I
+don
+t
+know
+just
+how
+much
+but
+I
+think
+she
+said
+a
+little
+more
+than
+a
+thousand
+dollars
+I
+thought
+then
+I
+should
+get
+a
+new
+dress
+but
+the
+Lord
+got
+it
+all
+The
+minister
+said
+the
+next
+Sunday
+that
+she
+would
+go
+up
+into
+the
+Seventh
+Heaven
+because
+she
+gave
+the
+Lord
+all
+that
+money
+She
+would
+not
+eat
+one
+thing
+all
+that
+day
+I
+thought
+sure
+I
+would
+get
+a
+new
+dress
+but
+I
+didn
+t
+Can
+you
+hear
+that
+beautiful
+music
+Listen
+Dr
+We
+cannot
+hear
+it
+Sp
+I
+never
+heard
+anything
+so
+fine
+All
+the
+flowers
+bow
+to
+the
+music
+and
+when
+they
+hear
+it
+they
+look
+happy
+The
+music
+seems
+like
+colors
+and
+it
+seems
+to
+go
+with
+the
+flowers
+When
+the
+music
+changes
+the
+flowers
+have
+a
+different
+color
+Dr
+You
+will
+find
+many
+beautiful
+things
+when
+you
+leave
+here
+Sp
+There
+is
+a
+gentleman
+standing
+there
+and
+he
+looks
+at
+me
+and
+says
+Come
+little
+child
+We
+are
+many
+because
+each
+mother
+had
+her
+children
+that
+she
+took
+to
+church
+with
+her
+One
+time
+I
+ll
+tell
+you
+There
+was
+I
+and
+Bertha
+and
+Clara
+and
+Joe
+Joe
+s
+a
+boy
+we
+all
+went
+into
+a
+corner
+and
+we
+just
+sat
+there
+and
+talked
+The
+minister
+saw
+us
+and
+you
+don
+t
+know
+how
+mad
+he
+was
+He
+said
+he
+would
+have
+to
+punish
+us
+all
+and
+he
+did
+He
+said
+The
+Lord
+will
+punish
+you
+all
+but
+the
+minister
+did
+it
+and
+his
+hand
+was
+awful
+hard
+My
+grandmother
+is
+here
+and
+she
+says
+Mary
+Ann
+you
+can
+come
+with
+me
+and
+we
+will
+try
+all
+we
+can
+to
+help
+your
+mother
+This
+gentleman
+who
+stands
+there
+says
+he
+is
+my
+father
+Grandma
+was
+my
+father
+s
+mother
+Grandma
+says
+he
+died
+East
+Mother
+joined
+the
+Salvation
+Army
+but
+the
+Mission
+Friends
+got
+hold
+of
+her
+We
+came
+from
+Kansas
+when
+I
+was
+a
+little
+girl
+The
+money
+my
+grandma
+sent
+was
+to
+be
+given
+to
+me
+but
+my
+mother
+said
+we
+would
+put
+it
+in
+the
+Lord
+s
+keeping
+So
+the
+Lord
+kept
+it
+and
+I
+didn
+t
+get
+any
+new
+dress
+Dr
+The
+Lord
+did
+not
+get
+that
+money
+either
+Sp
+Whether
+he
+got
+it
+or
+not
+makes
+no
+difference
+now
+I
+will
+get
+my
+new
+dress
+I
+have
+one
+but
+that
+is
+not
+mine
+because
+you
+say
+this
+is
+not
+my
+body
+I
+will
+have
+a
+new
+dress
+but
+I
+don
+t
+want
+sackcloth
+I
+must
+not
+say
+that
+it
+isn
+t
+nice
+Dr
+Now
+you
+are
+going
+to
+serve
+others
+and
+be
+where
+there
+are
+trees
+and
+flowers
+and
+beautiful
+music
+Sp
+This
+gentleman
+comes
+he
+says
+he
+is
+my
+father
+but
+I
+don
+t
+remember
+him
+He
+says
+he
+will
+help
+me
+You
+know
+my
+father
+died
+or
+passed
+out
+Sometimes
+people
+say
+that
+Dr
+Passed
+out
+is
+right
+There
+is
+no
+actual
+death
+nobody
+ever
+dies
+Your
+father
+only
+lost
+his
+body
+Sp
+Isn
+t
+that
+dead
+Dr
+His
+mind
+or
+spirit
+being
+invisible
+while
+in
+the
+body
+is
+still
+invisible
+to
+mortals
+when
+he
+steps
+out
+of
+his
+body
+His
+body
+is
+only
+the
+house
+where
+his
+spirit
+lives
+and
+when
+the
+spirit
+leaves
+the
+body
+the
+body
+is
+placed
+in
+the
+grave
+But
+the
+spirit
+is
+not
+dead
+Sp
+Sometimes
+I
+prayed
+for
+my
+father
+because
+mother
+said
+he
+went
+to
+hell
+Father
+says
+there
+is
+no
+such
+place
+He
+looks
+awful
+nice
+and
+he
+s
+all
+dressed
+up
+I
+wish
+my
+mother
+would
+understand
+Dr
+Don
+t
+worry
+about
+your
+mother
+After
+spirits
+like
+she
+control
+this
+body
+they
+are
+placed
+in
+a
+spirit
+hospital
+Sp
+Can
+you
+talk
+to
+the
+Lord
+too
+I
+wish
+you
+would
+talk
+to
+Him
+because
+He
+takes
+too
+much
+money
+from
+the
+poor
+Dr
+The
+Lord
+does
+not
+do
+that
+it
+is
+the
+minister
+SP
+Why
+here
+comes
+a
+little
+Indian
+girl
+Spirit
+Dr
+Isn
+t
+she
+nice
+She
+will
+show
+you
+beautiful
+things
+Sp
+Can
+I
+go
+with
+her
+What
+is
+her
+name
+Dr
+Silver
+Star
+Sp
+Is
+that
+her
+name
+Will
+you
+play
+with
+me
+little
+girl
+and
+can
+I
+play
+with
+you
+She
+says
+yes
+and
+that
+she
+will
+takeme
+to
+her
+home
+and
+show
+me
+pretty
+things
+Won
+t
+I
+be
+happy
+I
+will
+have
+a
+new
+dress
+not
+this
+sackcloth
+but
+probably
+the
+Lord
+would
+not
+like
+that
+Dr
+Forget
+all
+about
+that
+Go
+with
+the
+intelligent
+spirits
+and
+they
+will
+help
+you
+and
+teach
+you
+Sp
+Silver
+Star
+says
+I
+should
+come
+with
+her
+and
+she
+will
+take
+me
+to
+my
+grandmother
+and
+my
+father
+and
+my
+brother
+Surprised
+Oh
+my
+brother
+I
+forgot
+all
+about
+Lawrence
+He
+was
+so
+little
+when
+he
+died
+Dr
+How
+old
+was
+he
+Sp
+I
+don
+t
+know
+He
+was
+only
+a
+little
+baby
+I
+don
+t
+know
+much
+because
+I
+couldn
+t
+go
+to
+school
+when
+I
+wanted
+to
+I
+had
+to
+work
+for
+the
+Lord
+Dr
+After
+you
+leave
+here
+you
+will
+learn
+many
+things
+Sp
+But
+my
+mother
+said
+the
+Lord
+did
+not
+want
+us
+to
+learn
+because
+we
+must
+sacrifice
+everything
+If
+you
+read
+and
+write
+you
+get
+away
+from
+the
+Lord
+Dr
+Just
+remember
+I
+said
+that
+was
+all
+wrong
+teaching
+Sp
+I
+will
+find
+it
+out
+and
+I
+will
+find
+out
+if
+the
+Lord
+gets
+all
+the
+money
+If
+that
+minister
+took
+all
+that
+money
+I
+will
+tell
+him
+he
+is
+not
+nice
+Dr
+You
+will
+find
+that
+belief
+about
+the
+Lord
+is
+not
+true
+Sp
+And
+I
+thought
+it
+was
+gospel
+truth
+They
+would
+not
+let
+me
+go
+to
+school
+I
+saw
+lots
+of
+children
+learn
+but
+I
+could
+not
+They
+said
+I
+would
+not
+go
+to
+Heaven
+if
+I
+learned
+I
+cried
+when
+I
+could
+not
+have
+a
+new
+dress
+and
+the
+minister
+told
+me
+I
+would
+go
+to
+hell
+Dr
+Now
+you
+will
+learn
+the
+truth
+You
+have
+been
+dead
+probably
+many
+years
+Have
+you
+seen
+Heaven
+Why
+are
+you
+not
+there
+Sp
+That
+s
+true
+Dr
+The
+Bible
+mentions
+the
+outer
+darkness
+you
+were
+in
+darkness
+but
+it
+was
+all
+of
+your
+own
+making
+Sp
+How
+can
+they
+sing
+and
+pray
+all
+the
+time
+when
+they
+are
+dead
+These
+people
+have
+churches
+Once
+in
+a
+while
+they
+go
+to
+other
+churches
+on
+earth
+when
+God
+wants
+them
+in
+some
+other
+church
+Sometimes
+before
+the
+minister
+mortal
+knows
+it
+the
+people
+in
+the
+church
+do
+something
+like
+that
+swaying
+motion
+of
+the
+body
+and
+every
+one
+gets
+up
+and
+jumps
+and
+sings
+The
+mortals
+having
+opened
+themselves
+through
+wild
+emotionalism
+to
+spirit
+obsession
+Their
+minister
+says
+that
+is
+the
+influence
+of
+the
+Holy
+Ghost
+Some
+of
+our
+crowd
+get
+into
+that
+other
+crowd
+and
+make
+them
+all
+jump
+Dr
+Spirits
+such
+as
+you
+speak
+of
+often
+go
+to
+churches
+on
+the
+physical
+side
+and
+unbalance
+the
+people
+making
+them
+demented
+Then
+the
+people
+say
+they
+are
+controlled
+by
+the
+Holy
+Ghost
+Sp
+Silver
+Star
+says
+she
+will
+take
+me
+along
+and
+that
+I
+will
+have
+a
+new
+dress
+Maybe
+it
+is
+not
+right
+but
+it
+feels
+good
+to
+know
+I
+will
+have
+one
+Silver
+Star
+says
+that
+I
+must
+thank
+all
+of
+you
+for
+being
+patient
+with
+me
+Some
+day
+I
+will
+come
+and
+tell
+you
+how
+I
+like
+things
+and
+then
+probably
+I
+can
+remember
+more
+If
+you
+do
+not
+come
+there
+then
+I
+will
+come
+to
+see
+you
+Mary
+Ann
+McDonald
+is
+my
+name
+I
+will
+see
+you
+some
+time
+I
+feel
+like
+saying
+God
+bless
+you
+but
+I
+suppose
+I
+shouldn
+t
+Dr
+That
+is
+all
+right
+Now
+go
+with
+Silver
+Star
+Sp
+All
+right
+Goodbye
+That
+conscientious
+church
+attendance
+faithful
+meeting
+of
+obligations
+and
+upright
+living
+do
+not
+in
+themselves
+insure
+spiritual
+enlightenment
+hereafter
+has
+often
+been
+evidenced
+EXPERIENCE
+JULY
+Spirit
+HENRY
+WILKINS
+Psychic
+MRS
+WICKLAND
+The
+controlling
+intelligence
+was
+apparently
+crippled
+with
+body
+bent
+over
+knees
+Doctor
+Can
+t
+you
+straighten
+yourself
+Wake
+up
+Spirit
+I
+m
+not
+sleeping
+Dr
+Why
+are
+you
+bent
+over
+Sp
+My
+back
+is
+broken
+Dr
+You
+are
+mistaken
+it
+is
+not
+broken
+Sp
+Oh
+yes
+it
+is
+Dr
+It
+may
+have
+been
+broken
+but
+it
+is
+not
+now
+Sp
+I
+tell
+you
+I
+cannot
+straighten
+up
+my
+back
+is
+broken
+Dr
+We
+can
+change
+that
+condition
+Sp
+Many
+times
+they
+told
+me
+that
+but
+they
+never
+could
+Dr
+But
+we
+are
+going
+to
+do
+it
+for
+you
+this
+time
+Sp
+I
+will
+give
+you
+ten
+dollars
+if
+you
+can
+straighten
+me
+out
+Dr
+Where
+is
+the
+money
+Sp
+When
+I
+can
+stand
+up
+I
+will
+give
+it
+to
+you
+If
+you
+can
+cure
+me
+it
+is
+worth
+all
+of
+ten
+dollars
+Dr
+Just
+think
+I
+can
+walk
+and
+you
+will
+be
+able
+to
+walk
+Sp
+You
+will
+have
+to
+show
+me
+Dr
+Move
+your
+legs
+and
+you
+can
+walk
+Sp
+I
+did
+that
+many
+times
+but
+it
+never
+helped
+Dr
+Nevertheless
+you
+can
+be
+cured
+Sp
+But
+I
+have
+no
+money
+I
+haven
+t
+had
+money
+for
+some
+time
+Every
+time
+I
+see
+money
+I
+grab
+it
+but
+it
+gets
+away
+just
+like
+it
+had
+life
+Dr
+I
+will
+explain
+Do
+you
+know
+that
+you
+are
+a
+spirit
+Do
+you
+know
+you
+are
+dead
+yes
+dead
+to
+the
+world
+Sp
+Then
+I
+don
+t
+know
+it
+and
+I
+haven
+t
+been
+in
+Heaven
+I
+was
+a
+good
+Methodist
+I
+went
+to
+church
+every
+Sunday
+and
+also
+to
+Sunday
+School
+I
+prayed
+and
+prayed
+that
+I
+might
+get
+well
+I
+was
+a
+shoemaker
+Dr
+Where
+did
+you
+live
+Sp
+Down
+in
+Texas
+Dr
+What
+is
+your
+name
+Sp
+My
+name
+is
+Henry
+Wilkins
+Dr
+How
+old
+are
+you
+Sp
+I
+am
+an
+old
+man
+in
+the
+sixties
+One
+time
+I
+was
+driving
+a
+horse
+and
+he
+ran
+away
+I
+fell
+off
+the
+wagon
+and
+broke
+my
+back
+I
+used
+to
+be
+a
+farmer
+After
+that
+I
+could
+do
+no
+farming
+At
+that
+time
+I
+was
+in
+the
+thirties
+After
+I
+was
+hurt
+all
+I
+could
+do
+was
+some
+cobbling
+I
+earned
+my
+living
+but
+it
+was
+surely
+hard
+sometimes
+Dr
+Have
+you
+any
+idea
+what
+year
+it
+is
+Sp
+I
+can
+t
+remember
+Dr
+Who
+was
+President
+Sp
+Let
+me
+think
+a
+little
+I
+ought
+to
+know
+that
+I
+think
+if
+I
+remember
+right
+it
+was
+Cleveland
+Dr
+What
+was
+the
+cause
+of
+your
+death
+Sp
+I
+did
+not
+die
+I
+did
+some
+work
+but
+I
+never
+got
+any
+money
+for
+it
+because
+as
+soon
+as
+I
+was
+going
+to
+take
+the
+money
+somebody
+else
+grabbed
+it
+I
+heard
+many
+times
+that
+my
+shop
+belonged
+to
+somebody
+else
+I
+have
+been
+working
+there
+a
+long
+time
+but
+the
+young
+fellow
+there
+he
+always
+takes
+the
+money
+all
+the
+time
+and
+I
+never
+get
+anything
+Dr
+Did
+you
+start
+the
+shop
+Sp
+Yes
+many
+years
+ago
+Some
+young
+fellow
+came
+to
+my
+shop
+and
+helped
+with
+the
+work
+but
+I
+had
+to
+show
+him
+how
+to
+do
+it
+and
+I
+had
+to
+teach
+him
+how
+to
+do
+lots
+of
+things
+He
+got
+all
+the
+money
+I
+never
+got
+a
+smell
+of
+it
+Dr
+The
+fact
+is
+my
+friend
+you
+have
+passed
+out
+and
+are
+so
+called
+dead
+Sp
+I
+have
+done
+nothing
+for
+some
+time
+except
+help
+that
+young
+fellow
+get
+rich
+Dr
+Now
+listen
+to
+me
+You
+lost
+your
+physical
+body
+probably
+while
+you
+had
+that
+shop
+and
+now
+the
+shop
+belongs
+to
+somebody
+else
+The
+young
+man
+did
+not
+know
+you
+were
+there
+but
+you
+may
+have
+impressed
+him
+how
+to
+do
+things
+He
+did
+not
+know
+you
+were
+there
+Sp
+He
+did
+not
+know
+because
+I
+did
+the
+work
+I
+sat
+there
+working
+and
+once
+in
+a
+while
+he
+would
+sit
+right
+on
+me
+I
+could
+not
+chase
+him
+out
+Dr
+Do
+you
+know
+what
+year
+it
+is
+Sp
+It
+is
+Dr
+That
+was
+thirty
+years
+ago
+Do
+you
+know
+where
+you
+are
+You
+are
+in
+Los
+Angeles
+California
+Sp
+California
+Dr
+Look
+at
+these
+clothes
+you
+are
+wearing
+Sp
+Who
+put
+these
+clothes
+on
+me
+I
+don
+t
+want
+to
+be
+dressed
+in
+a
+woman
+s
+clothes
+Dr
+Let
+me
+explain
+Sp
+Bring
+my
+pants
+please
+Dr
+Look
+at
+these
+hands
+Sp
+They
+do
+not
+belong
+to
+me
+I
+have
+a
+ring
+on
+but
+I
+never
+owned
+a
+ring
+Dr
+Suppose
+you
+sat
+here
+mending
+shoes
+Do
+you
+know
+what
+people
+would
+say
+They
+would
+say
+Why
+is
+Mrs
+Wickland
+sitting
+there
+mending
+shoes
+Mrs
+Wickland
+is
+my
+wife
+and
+you
+are
+using
+her
+body
+Sp
+I
+am
+no
+woman
+I
+am
+a
+man
+I
+was
+engaged
+to
+be
+married
+but
+when
+I
+had
+my
+accident
+and
+became
+a
+cripple
+the
+girl
+said
+she
+did
+not
+want
+to
+marry
+a
+cripple
+so
+she
+married
+some
+one
+else
+I
+told
+her
+I
+could
+earn
+just
+as
+much
+money
+by
+mending
+shoes
+as
+I
+did
+when
+a
+farmer
+but
+she
+said
+she
+would
+not
+marry
+a
+cripple
+I
+loved
+her
+just
+the
+same
+and
+I
+love
+her
+still
+Dr
+What
+was
+her
+name
+Sp
+Mary
+Hopkins
+She
+said
+she
+was
+ashamed
+of
+me
+I
+could
+not
+help
+my
+accident
+I
+felt
+that
+if
+she
+loved
+me
+she
+would
+have
+thought
+more
+of
+me
+because
+I
+needed
+her
+more
+Of
+course
+I
+did
+not
+look
+so
+nice
+I
+could
+not
+dance
+and
+do
+the
+things
+she
+wanted
+to
+do
+One
+day
+she
+said
+to
+me
+I
+am
+ashamed
+to
+go
+out
+with
+you
+all
+crippled
+up
+I
+felt
+so
+bad
+because
+I
+did
+not
+think
+she
+could
+be
+so
+cruel
+I
+suffered
+terribly
+It
+was
+not
+enough
+that
+I
+had
+a
+crippled
+body
+but
+my
+heart
+was
+broken
+as
+well
+From
+that
+time
+I
+said
+Women
+are
+all
+devils
+I
+had
+no
+use
+for
+them
+I
+hated
+them
+Dr
+There
+are
+many
+good
+women
+Sp
+Sometimes
+I
+felt
+there
+is
+no
+God
+because
+He
+would
+not
+have
+let
+me
+suffer
+such
+mental
+and
+physical
+pain
+I
+tried
+my
+very
+best
+to
+be
+patient
+Dr
+You
+will
+have
+your
+reward
+for
+it
+now
+Sp
+I
+gave
+money
+to
+the
+church
+They
+said
+I
+must
+give
+money
+because
+God
+needed
+it
+Sometimes
+they
+made
+me
+give
+so
+much
+that
+I
+hadn
+t
+enough
+left
+for
+bread
+and
+butter
+They
+said
+if
+I
+didn
+t
+I
+wouldn
+t
+go
+to
+Heaven
+Dr
+There
+is
+no
+such
+Heaven
+as
+the
+preachers
+teach
+Sp
+Then
+why
+should
+they
+preach
+that
+way
+Dr
+For
+a
+living
+Do
+you
+realize
+that
+the
+teachings
+of
+Jesus
+were
+wonderful
+God
+is
+Spirit
+Jesus
+said
+and
+we
+should
+worship
+Him
+in
+Spirit
+and
+in
+truth
+The
+orthodox
+Christians
+think
+Heaven
+is
+a
+place
+up
+in
+the
+sky
+Heaven
+is
+a
+mental
+condition
+not
+a
+visible
+place
+The
+fact
+is
+we
+are
+spiritual
+beings
+invisible
+while
+occupying
+the
+mortal
+body
+When
+we
+step
+out
+of
+the
+mortal
+body
+we
+are
+still
+spiritual
+beings
+and
+if
+we
+are
+free
+minded
+those
+gone
+before
+will
+meet
+us
+and
+will
+show
+us
+the
+way
+to
+the
+spirit
+world
+God
+is
+not
+a
+visible
+spirit
+but
+God
+is
+Spirit
+God
+is
+Love
+You
+say
+you
+loved
+a
+girl
+Did
+you
+ever
+see
+love
+Sp
+No
+but
+I
+have
+felt
+it
+Dr
+He
+that
+dwelleth
+in
+love
+dwelleth
+in
+God
+We
+are
+talking
+to
+you
+but
+we
+do
+not
+see
+you
+I
+do
+not
+see
+you
+I
+see
+only
+the
+face
+of
+my
+wife
+Sp
+I
+don
+t
+see
+why
+you
+keep
+calling
+me
+your
+wife
+You
+say
+we
+never
+die
+yet
+you
+tell
+me
+I
+am
+dead
+and
+I
+still
+have
+my
+crippled
+body
+Dr
+If
+you
+had
+had
+understanding
+you
+would
+not
+have
+been
+crippled
+all
+these
+years
+since
+your
+death
+Sp
+Could
+I
+have
+been
+well
+all
+these
+years
+Dr
+Yes
+if
+you
+had
+been
+taught
+the
+truth
+Jesus
+said
+The
+people
+honoreth
+me
+with
+their
+lips
+but
+their
+heart
+is
+far
+from
+me
+Sp
+People
+believe
+that
+Jesus
+died
+for
+our
+sins
+and
+that
+if
+we
+are
+good
+we
+will
+go
+to
+Heaven
+when
+we
+die
+I
+am
+not
+there
+Dr
+You
+will
+never
+go
+to
+any
+orthodox
+Heaven
+And
+if
+there
+were
+such
+a
+place
+you
+would
+be
+lonesome
+after
+you
+arrived
+there
+Heaven
+is
+a
+mental
+condition
+attained
+through
+understanding
+Think
+of
+the
+wonders
+of
+Nature
+and
+God
+s
+revelations
+Do
+you
+like
+music
+Sp
+I
+used
+to
+I
+used
+to
+sing
+in
+the
+choir
+My
+girl
+sang
+too
+We
+were
+so
+happy
+I
+always
+felt
+when
+we
+were
+singing
+there
+was
+such
+beautiful
+harmony
+but
+then
+the
+minister
+got
+up
+in
+church
+and
+condemned
+everybody
+that
+did
+not
+give
+enough
+money
+to
+the
+church
+He
+said
+we
+would
+go
+straight
+to
+hell
+I
+could
+never
+see
+the
+justice
+of
+that
+that
+when
+a
+man
+does
+the
+best
+he
+knows
+how
+and
+lives
+a
+clean
+life
+that
+he
+should
+go
+to
+hell
+if
+he
+does
+not
+give
+enough
+money
+to
+the
+church
+Dr
+Do
+you
+know
+who
+was
+the
+founder
+of
+the
+Methodist
+Church
+John
+Wesley
+He
+understood
+the
+real
+life
+on
+the
+other
+side
+and
+lectured
+on
+spirits
+and
+spirit
+communion
+He
+knew
+the
+truth
+he
+did
+not
+just
+believe
+and
+he
+wrote
+of
+it
+but
+his
+people
+do
+not
+follow
+the
+teachings
+of
+the
+founder
+of
+their
+own
+church
+Christians
+do
+not
+understand
+the
+teachings
+of
+Jesus
+They
+do
+not
+want
+to
+understand
+because
+that
+causes
+them
+to
+think
+It
+is
+easier
+to
+merely
+believe
+Spiritual
+things
+must
+be
+spiritually
+discerned
+Sp
+When
+I
+was
+in
+my
+shop
+once
+in
+a
+while
+I
+saw
+my
+father
+and
+mother
+but
+they
+are
+dead
+and
+I
+knew
+I
+could
+not
+be
+with
+them
+Dr
+Why
+not
+Sp
+Because
+I
+was
+in
+life
+cobbling
+in
+my
+shop
+Mother
+said
+to
+me
+Come
+along
+with
+me
+I
+could
+not
+go
+because
+I
+had
+my
+crippled
+body
+and
+I
+had
+to
+earn
+my
+living
+When
+I
+did
+not
+work
+I
+did
+not
+get
+anything
+to
+eat
+and
+I
+was
+awfully
+hungry
+Once
+in
+a
+while
+I
+got
+a
+smell
+from
+the
+restaurant
+but
+that
+was
+all
+unless
+I
+worked
+Dr
+You
+were
+a
+spirit
+so
+could
+not
+eat
+Your
+parents
+came
+to
+you
+because
+they
+are
+spirits
+All
+these
+years
+you
+stayed
+around
+your
+shop
+because
+that
+was
+your
+greatest
+interest
+You
+did
+not
+know
+the
+higher
+laws
+of
+life
+Sp
+I
+was
+taught
+that
+if
+I
+did
+not
+go
+to
+church
+I
+would
+go
+to
+hell
+and
+burn
+for
+ever
+and
+ever
+Dr
+There
+is
+no
+such
+thing
+as
+burning
+for
+ever
+Sp
+Thank
+God
+for
+that
+Dr
+Look
+around
+perhaps
+you
+will
+see
+somebody
+you
+know
+Sp
+I
+am
+sick
+and
+tired
+of
+mending
+shoes
+Dr
+After
+you
+leave
+here
+you
+will
+not
+have
+to
+mend
+any
+more
+shoes
+Sp
+I
+would
+like
+to
+play
+and
+sing
+I
+love
+music
+I
+was
+getting
+along
+very
+nicely
+with
+my
+singing
+lessons
+until
+I
+got
+crippled
+Dr
+Perhaps
+Mary
+is
+here
+now
+Sp
+Mary
+She
+gave
+me
+up
+and
+married
+but
+she
+was
+not
+happy
+She
+married
+a
+drunkard
+She
+suffered
+Seeing
+a
+spirit
+Oh
+there
+is
+my
+mother
+She
+was
+good
+to
+me
+Dr
+Does
+she
+speak
+to
+you
+Sp
+She
+says
+My
+son
+you
+need
+not
+be
+crippled
+any
+longer
+Why
+I
+have
+a
+new
+body
+Mother
+but
+oh
+Mother
+crying
+I
+am
+a
+woman
+now
+Such
+a
+foolish
+thing
+to
+be
+dressed
+up
+like
+a
+woman
+Dr
+You
+are
+only
+talking
+through
+my
+wife
+s
+body
+Sp
+Can
+I
+talk
+through
+another
+person
+s
+body
+Dr
+Yes
+My
+wife
+is
+a
+psychic
+instrument
+through
+whom
+spirits
+can
+talk
+She
+is
+entirely
+unconscious
+while
+you
+are
+speaking
+through
+her
+It
+is
+strange
+but
+true
+Did
+you
+ever
+ask
+yourself
+what
+life
+really
+is
+Sp
+No
+I
+had
+no
+time
+I
+had
+to
+use
+my
+mind
+to
+make
+shoes
+Dr
+That
+is
+no
+excuse
+at
+all
+Sp
+My
+mother
+says
+At
+this
+point
+the
+spirit
+was
+removed
+and
+his
+mother
+assumed
+control
+Spirit
+Henry
+life
+is
+real
+There
+are
+no
+mysterious
+things
+as
+we
+were
+taught
+I
+believed
+in
+the
+same
+church
+as
+you
+You
+know
+father
+never
+cared
+for
+church
+and
+do
+you
+know
+he
+progressed
+more
+rapidly
+than
+I
+in
+the
+spirit
+world
+My
+belief
+and
+dogma
+held
+me
+back
+You
+remember
+father
+studied
+and
+we
+called
+him
+crazy
+because
+once
+in
+a
+while
+he
+went
+to
+Spiritualist
+meetings
+but
+he
+was
+right
+You
+know
+he
+had
+that
+book
+Heaven
+and
+Hell
+by
+Swedenborg
+and
+we
+used
+to
+look
+at
+each
+other
+and
+think
+he
+was
+going
+out
+of
+his
+mind
+We
+went
+to
+church
+and
+he
+did
+not
+yet
+he
+was
+the
+one
+to
+open
+my
+eyes
+to
+see
+better
+things
+when
+I
+reached
+the
+spirit
+side
+of
+life
+If
+he
+had
+not
+opened
+my
+eyes
+I
+would
+still
+be
+bound
+in
+my
+former
+belief
+and
+that
+means
+I
+would
+be
+in
+the
+earth
+sphere
+I
+was
+always
+afraid
+if
+he
+died
+he
+would
+go
+to
+hell
+and
+I
+was
+in
+misery
+You
+remember
+father
+died
+before
+I
+He
+came
+to
+me
+after
+I
+passed
+out
+but
+I
+thought
+it
+was
+imagination
+He
+tried
+very
+hard
+to
+get
+me
+to
+understand
+I
+want
+to
+tell
+you
+that
+creeds
+and
+dogmas
+of
+the
+church
+cause
+many
+earthbound
+spirits
+These
+spirits
+do
+harm
+to
+mortals
+Henry
+the
+Bible
+says
+Where
+your
+treasure
+is
+there
+will
+your
+heart
+be
+also
+Your
+treasure
+was
+your
+workshop
+You
+have
+been
+in
+your
+shop
+helping
+that
+young
+fellow
+unknown
+to
+yourself
+We
+could
+not
+get
+you
+First
+you
+were
+crippled
+and
+we
+could
+not
+get
+you
+to
+realize
+that
+your
+spiritual
+body
+was
+not
+crippled
+but
+your
+mind
+was
+so
+set
+on
+your
+crippled
+body
+that
+you
+could
+think
+of
+nothing
+else
+We
+have
+been
+with
+you
+for
+some
+time
+trying
+to
+get
+you
+to
+come
+with
+us
+but
+we
+could
+not
+One
+day
+we
+were
+passing
+by
+this
+place
+and
+we
+heard
+singing
+so
+we
+came
+into
+the
+meeting
+We
+saw
+that
+spirits
+were
+made
+to
+understand
+when
+nobody
+could
+reach
+them
+otherwise
+so
+I
+said
+Let
+us
+bring
+Henry
+here
+That
+was
+a
+long
+time
+ago
+We
+had
+to
+wait
+our
+turn
+before
+we
+could
+bring
+you
+here
+Now
+Henry
+open
+your
+spirit
+eyes
+and
+see
+that
+your
+spirit
+body
+is
+fresh
+and
+new
+Don
+t
+think
+of
+your
+old
+crippled
+body
+because
+then
+you
+will
+be
+crippled
+Think
+of
+your
+young
+spirit
+body
+and
+you
+will
+be
+young
+You
+will
+be
+happy
+You
+were
+a
+good
+man
+You
+had
+your
+sorrows
+but
+you
+tried
+to
+do
+the
+best
+you
+could
+It
+was
+only
+ignorance
+false
+doctrine
+and
+belief
+that
+held
+you
+back
+Henry
+we
+have
+a
+beautiful
+home
+in
+the
+spirit
+world
+and
+I
+will
+take
+you
+there
+where
+you
+will
+have
+to
+learn
+many
+things
+The
+first
+thing
+is
+to
+throw
+away
+all
+selfishness
+ignorance
+self
+pity
+and
+jealousy
+Come
+with
+me
+with
+an
+open
+heart
+Open
+your
+heart
+to
+God
+in
+a
+spiritual
+way
+and
+you
+will
+find
+the
+Kingdom
+of
+Heaven
+within
+you
+You
+have
+much
+to
+learn
+When
+you
+are
+happy
+you
+will
+find
+that
+happiness
+and
+love
+are
+Heaven
+Selfishness
+and
+ignorance
+are
+hell
+darkness
+is
+hell
+People
+make
+hell
+for
+themselves
+and
+others
+Let
+us
+do
+all
+we
+can
+to
+help
+others
+and
+forget
+self
+If
+you
+think
+only
+of
+self
+when
+you
+pass
+to
+the
+spirit
+side
+of
+life
+you
+will
+find
+yourself
+shut
+up
+in
+a
+room
+alone
+and
+all
+you
+will
+see
+will
+be
+your
+ignorance
+and
+selfishness
+You
+will
+be
+kept
+in
+this
+condition
+until
+you
+cry
+out
+God
+help
+me
+to
+forget
+my
+selfishness
+Let
+us
+do
+the
+work
+that
+is
+always
+waiting
+for
+us
+to
+do
+We
+must
+say
+Get
+thee
+behind
+me
+Satan
+Satan
+or
+the
+devil
+as
+he
+is
+often
+called
+is
+not
+a
+man
+Satan
+is
+only
+selfishness
+ignorance
+and
+bigotry
+these
+are
+the
+devil
+I
+was
+a
+good
+woman
+but
+I
+had
+to
+suffer
+because
+I
+lived
+only
+for
+self
+I
+worshipped
+my
+church
+My
+husband
+was
+taken
+away
+from
+me
+I
+worshipped
+my
+family
+more
+than
+I
+did
+God
+I
+loved
+my
+church
+and
+when
+I
+passed
+away
+I
+clung
+to
+it
+I
+had
+a
+daughter
+and
+I
+got
+into
+her
+magnetic
+aura
+and
+clung
+to
+her
+and
+she
+was
+sent
+to
+the
+asylum
+I
+could
+not
+get
+away
+from
+her
+She
+died
+then
+she
+was
+free
+and
+so
+was
+I
+Then
+father
+came
+and
+told
+me
+what
+I
+had
+done
+by
+my
+selfish
+thoughts
+Then
+I
+had
+to
+serve
+All
+my
+work
+was
+with
+little
+children
+not
+my
+own
+children
+for
+they
+were
+taken
+away
+from
+me
+They
+told
+me
+I
+would
+have
+to
+develop
+as
+much
+love
+for
+other
+children
+as
+I
+had
+for
+my
+own
+and
+when
+I
+reached
+that
+point
+I
+was
+very
+happy
+Now
+I
+have
+children
+not
+my
+own
+but
+any
+child
+is
+mine
+because
+one
+child
+is
+as
+much
+God
+s
+child
+as
+another
+and
+we
+should
+love
+them
+all
+We
+should
+care
+for
+one
+as
+well
+as
+the
+other
+I
+have
+my
+reward
+now
+Every
+one
+loves
+me
+and
+I
+love
+them
+and
+my
+home
+always
+has
+a
+new
+child
+in
+it
+I
+take
+a
+new
+child
+one
+who
+has
+not
+known
+love
+I
+tell
+him
+of
+the
+life
+beyond
+I
+want
+him
+to
+have
+an
+understanding
+of
+God
+Love
+should
+govern
+all
+not
+one
+child
+but
+all
+The
+great
+Universal
+Love
+that
+is
+all
+everything
+One
+child
+should
+be
+loved
+just
+as
+much
+as
+another
+Therefore
+be
+very
+careful
+in
+concentrating
+your
+love
+on
+one
+child
+or
+just
+your
+own
+family
+Do
+not
+put
+your
+mind
+on
+one
+child
+because
+when
+you
+pass
+out
+you
+will
+be
+in
+hell
+You
+will
+stay
+around
+and
+disturb
+that
+child
+and
+sometimes
+as
+in
+my
+case
+the
+child
+goes
+insane
+My
+poor
+girl
+was
+called
+insane
+because
+I
+was
+with
+her
+and
+could
+not
+get
+away
+I
+was
+crying
+all
+the
+time
+because
+I
+wanted
+only
+my
+child
+I
+did
+not
+realize
+I
+was
+controlling
+her
+I
+could
+not
+see
+her
+They
+told
+her
+she
+was
+not
+married
+and
+that
+she
+had
+no
+child
+I
+was
+the
+one
+who
+was
+crying
+for
+my
+child
+my
+daughter
+Because
+she
+asked
+for
+her
+child
+when
+she
+had
+none
+they
+said
+she
+was
+crazy
+and
+sent
+her
+to
+the
+asylum
+So
+you
+see
+friends
+how
+necessary
+it
+is
+that
+we
+should
+all
+learn
+to
+know
+these
+things
+before
+we
+pass
+to
+the
+spirit
+side
+of
+life
+Let
+us
+be
+wise
+and
+learn
+all
+we
+can
+while
+here
+The
+more
+we
+learn
+here
+about
+the
+other
+side
+of
+life
+the
+better
+and
+happier
+we
+shall
+be
+The
+spirit
+body
+is
+only
+a
+counterpart
+of
+the
+physical
+body
+As
+we
+progress
+in
+mind
+we
+grow
+If
+we
+intended
+going
+abroad
+we
+would
+do
+all
+we
+could
+to
+find
+out
+about
+the
+places
+we
+were
+going
+to
+visit
+and
+what
+hotels
+to
+stop
+at
+How
+much
+more
+important
+it
+is
+that
+we
+should
+find
+out
+all
+we
+can
+about
+the
+next
+world
+You
+will
+all
+be
+there
+some
+day
+Find
+out
+all
+you
+can
+then
+when
+you
+are
+ready
+to
+go
+you
+will
+just
+say
+goodbye
+and
+wake
+up
+in
+the
+spirit
+world
+You
+only
+say
+goodbye
+to
+the
+physical
+body
+and
+find
+yourself
+in
+your
+spiritual
+body
+If
+you
+have
+lived
+only
+for
+self
+as
+I
+did
+you
+will
+stay
+right
+where
+you
+have
+been
+just
+where
+you
+left
+off
+as
+I
+did
+and
+suffer
+This
+is
+a
+lesson
+and
+you
+can
+profit
+by
+my
+experience
+Do
+not
+love
+and
+worship
+your
+own
+children
+more
+than
+others
+that
+is
+selfish
+love
+Many
+children
+have
+no
+mother
+Why
+not
+try
+to
+help
+them
+Divide
+your
+love
+with
+some
+child
+who
+has
+no
+mother
+I
+have
+over
+one
+hundred
+to
+care
+for
+now
+I
+have
+tried
+to
+bring
+them
+up
+and
+give
+them
+a
+mother
+s
+love
+They
+never
+knew
+the
+comfort
+of
+a
+home
+I
+have
+worked
+and
+worked
+for
+Henry
+because
+I
+loved
+him
+but
+I
+could
+not
+reach
+him
+My
+husband
+was
+not
+held
+down
+as
+I
+was
+so
+he
+has
+progressed
+much
+higher
+than
+I
+Some
+day
+I
+shall
+probably
+reach
+where
+he
+is
+He
+studied
+deeply
+while
+all
+I
+had
+was
+belief
+Friends
+take
+advantage
+of
+what
+I
+suffered
+and
+learn
+from
+it
+I
+thank
+you
+for
+allowing
+me
+to
+bring
+my
+son
+here
+I
+also
+have
+my
+daughter
+with
+me
+I
+have
+found
+the
+light
+and
+am
+now
+doing
+missionary
+work
+among
+the
+little
+children
+Remember
+do
+not
+be
+selfish
+enough
+to
+worship
+your
+own
+children
+but
+have
+a
+mother
+s
+love
+for
+all
+children
+and
+above
+all
+things
+worship
+God
+first
+Mrs
+A
+a
+patient
+from
+Chicago
+was
+unusually
+sensitive
+to
+psychic
+influences
+and
+her
+mother
+Mrs
+H
+W
+had
+for
+some
+time
+noticed
+in
+her
+daughter
+s
+actions
+a
+similarity
+to
+the
+mannerisms
+of
+a
+minister
+former
+pastor
+of
+a
+church
+which
+she
+had
+attended
+who
+had
+been
+killed
+by
+a
+train
+a
+number
+of
+years
+before
+Mrs
+H
+W
+had
+spoken
+to
+Mr
+A
+her
+daughter
+s
+husband
+of
+this
+similarity
+and
+both
+were
+in
+the
+psychic
+circle
+when
+the
+patient
+also
+present
+was
+concentrated
+for
+EXPERIENCE
+NOVEMBER
+Spirit
+J
+NELSON
+Patient
+MRS
+A
+Psychic
+MRS
+WICKLAND
+The
+controlling
+spirit
+was
+dazed
+and
+seemed
+to
+be
+suffering
+from
+severe
+chest
+pains
+Doctor
+Think
+strength
+and
+you
+will
+be
+able
+to
+talk
+Who
+are
+you
+Spirit
+I
+don
+t
+know
+Dr
+Where
+did
+you
+come
+from
+Sp
+I
+don
+t
+know
+that
+either
+Mr
+A
+Can
+t
+you
+tell
+us
+where
+you
+came
+from
+Sp
+I
+don
+t
+know
+but
+if
+I
+should
+say
+anything
+I
+would
+say
+that
+I
+came
+from
+hell
+Mr
+A
+What
+kind
+of
+hell
+Sp
+Real
+hell
+I
+was
+burning
+up
+Mr
+A
+What
+caused
+that
+Sp
+I
+don
+t
+know
+what
+it
+was
+but
+it
+came
+like
+fire
+Static
+treatment
+given
+patient
+which
+is
+felt
+much
+more
+keenly
+by
+the
+obsessing
+spirit
+than
+the
+patient
+Dr
+It
+woke
+you
+up
+all
+right
+Where
+did
+you
+come
+from
+Sp
+I
+don
+t
+know
+what
+I
+have
+been
+doing
+for
+a
+long
+time
+I
+think
+I
+must
+have
+slept
+and
+then
+I
+woke
+up
+in
+hell
+I
+saw
+all
+kinds
+of
+sparks
+I
+guess
+I
+did
+not
+pray
+enough
+Mr
+A
+What
+were
+you
+doing
+when
+you
+were
+living
+Sp
+I
+don
+t
+know
+I
+don
+t
+know
+what
+I
+did
+If
+I
+could
+only
+know
+what
+is
+the
+matter
+with
+me
+Mr
+A
+What
+were
+you
+doing
+the
+last
+you
+recall
+Sp
+I
+have
+such
+a
+pain
+here
+Rubbing
+the
+chest
+I
+feel
+as
+if
+I
+had
+been
+sick
+I
+can
+t
+remember
+yet
+what
+I
+have
+been
+doing
+Dr
+Your
+memory
+will
+soon
+return
+See
+Chap
+Page
+Paragraph
+Sp
+You
+know
+when
+a
+man
+walks
+and
+walks
+and
+does
+not
+know
+where
+he
+is
+going
+or
+what
+he
+is
+doing
+it
+s
+bad
+Dr
+Were
+you
+on
+a
+journey
+Sp
+I
+don
+t
+recall
+things
+yet
+I
+think
+I
+have
+been
+in
+a
+coma
+state
+for
+a
+long
+time
+When
+I
+was
+walking
+everything
+was
+so
+dark
+I
+couldn
+t
+see
+anything
+I
+have
+such
+pain
+here
+Placing
+hand
+on
+chest
+Now
+I
+remember
+something
+I
+got
+into
+a
+crowd
+and
+they
+pushed
+me
+and
+pushed
+me
+Earth
+sphere
+condition
+after
+death
+Then
+I
+saw
+just
+a
+little
+star
+of
+light
+Magnetic
+aura
+of
+psychic
+sensitive
+the
+patient
+he
+had
+been
+obsessing
+They
+seemed
+to
+be
+crowding
+me
+in
+and
+in
+until
+at
+last
+I
+got
+to
+hell
+The
+crowd
+was
+pushing
+me
+forward
+and
+I
+did
+not
+know
+where
+I
+was
+going
+then
+I
+got
+these
+sparks
+I
+always
+thought
+I
+had
+been
+chosen
+to
+save
+others
+and
+here
+I
+was
+in
+hell
+myself
+The
+fire
+was
+awful
+I
+had
+it
+for
+a
+while
+then
+I
+seemed
+to
+get
+lost
+again
+I
+don
+t
+know
+what
+is
+to
+become
+of
+me
+Dr
+What
+is
+your
+name
+Sp
+I
+do
+not
+know
+yet
+I
+am
+so
+dazed
+I
+can
+t
+recall
+anything
+I
+seem
+to
+be
+getting
+somewhere
+I
+must
+have
+gone
+through
+a
+very
+severe
+sickness
+People
+crowded
+me
+and
+they
+came
+after
+me
+and
+I
+felt
+I
+had
+not
+done
+right
+I
+was
+always
+sincere
+Mr
+A
+Did
+you
+believe
+in
+hell
+Sp
+Yes
+I
+did
+Mr
+A
+Did
+you
+believe
+in
+Jesus
+Sp
+Yes
+I
+was
+one
+chosen
+to
+save
+others
+but
+yet
+I
+went
+to
+hell
+and
+I
+was
+to
+save
+others
+Dr
+Now
+we
+will
+try
+to
+help
+you
+out
+of
+it
+Sp
+There
+are
+so
+many
+people
+around
+here
+They
+seem
+to
+want
+so
+much
+of
+me
+Dr
+They
+must
+be
+the
+people
+you
+tried
+to
+save
+but
+did
+not
+Sp
+They
+all
+ask
+me
+to
+save
+them
+now
+but
+I
+cannot
+save
+myself
+Mr
+A
+Did
+something
+happen
+to
+you
+Sp
+I
+think
+so
+My
+head
+hurts
+me
+so
+much
+and
+I
+have
+pains
+here
+Chest
+I
+don
+t
+know
+where
+I
+am
+I
+wish
+you
+could
+take
+away
+this
+dark
+gloom
+At
+times
+I
+have
+felt
+that
+I
+did
+not
+know
+anything
+Mr
+A
+Who
+are
+you
+Are
+you
+a
+man
+or
+a
+woman
+Sp
+I
+am
+a
+man
+and
+I
+do
+not
+know
+anything
+except
+that
+the
+crowd
+pushed
+me
+and
+I
+got
+to
+hell
+Mr
+A
+Did
+anything
+happen
+to
+you
+Sp
+I
+don
+t
+know
+Mr
+A
+Where
+did
+you
+live
+Sp
+In
+Chicago
+I
+think
+I
+seem
+to
+be
+blind
+and
+I
+feel
+so
+strange
+Mr
+A
+Were
+you
+going
+to
+any
+particular
+place
+while
+you
+were
+walking
+Sp
+I
+don
+t
+know
+but
+I
+see
+a
+train
+coming
+so
+fast
+and
+then
+I
+remember
+getting
+into
+a
+crowd
+Say
+do
+you
+think
+my
+name
+is
+Nelson
+Sometimes
+that
+seems
+to
+be
+my
+name
+and
+sometimes
+it
+doesn
+t
+Mr
+A
+Were
+you
+Pastor
+Nelson
+Were
+you
+a
+minister
+Sp
+It
+seems
+I
+was
+at
+times
+That
+s
+my
+name
+My
+name
+is
+Nelson
+Mrs
+H
+W
+Do
+you
+know
+me
+Sp
+I
+recall
+the
+voice
+Mr
+A
+Where
+did
+you
+know
+her
+Sp
+In
+Chicago
+I
+can
+see
+a
+train
+coming
+so
+fast
+and
+then
+everything
+got
+dark
+but
+I
+remember
+something
+hit
+me
+in
+the
+chest
+Didn
+t
+I
+have
+a
+wife
+Mr
+A
+Yes
+and
+several
+children
+Mrs
+H
+W
+Don
+t
+you
+know
+me
+Sp
+Yes
+you
+used
+to
+come
+to
+my
+church
+You
+were
+a
+good
+church
+member
+but
+you
+got
+away
+Dr
+Do
+you
+know
+that
+lady
+The
+patient
+Mrs
+A
+Sp
+No
+Dr
+Did
+you
+know
+L
+W
+The
+patient
+s
+maiden
+name
+Sp
+Yes
+Dr
+That
+is
+she
+Sp
+She
+was
+much
+younger
+Mr
+A
+Do
+you
+remember
+coming
+from
+Western
+Springs
+Sp
+Yes
+I
+had
+been
+preaching
+Mr
+A
+You
+were
+hit
+by
+a
+train
+and
+killed
+Sp
+I
+cannot
+recall
+that
+I
+am
+dead
+but
+I
+know
+I
+have
+been
+mixed
+up
+I
+am
+in
+such
+a
+crowd
+What
+is
+the
+matter
+with
+my
+head
+Mr
+A
+Do
+you
+know
+a
+Mrs
+Nelson
+who
+used
+to
+live
+on
+Foster
+Avenue
+Sp
+Yes
+that
+s
+my
+wife
+There
+was
+somebody
+else
+along
+with
+me
+when
+I
+came
+to
+the
+trains
+and
+they
+pushed
+me
+ahead
+of
+the
+train
+The
+train
+was
+coming
+this
+way
+and
+I
+was
+going
+over
+there
+Somebody
+got
+hold
+of
+me
+and
+then
+there
+was
+such
+a
+big
+crowd
+I
+remember
+the
+big
+crowd
+after
+I
+was
+hit
+by
+the
+train
+That
+big
+crowd
+has
+been
+after
+me
+all
+the
+time
+Spirits
+Dr
+That
+is
+because
+you
+did
+not
+teach
+them
+correctly
+Sp
+Somebody
+says
+These
+are
+your
+followers
+that
+you
+have
+misled
+in
+the
+wrong
+path
+Dr
+Why
+did
+you
+mislead
+them
+Sp
+I
+taught
+them
+God
+s
+truth
+Dr
+Possibly
+as
+far
+as
+you
+knew
+Sp
+I
+tried
+to
+save
+humanity
+from
+hell
+Dr
+And
+then
+you
+went
+there
+yourself
+Sp
+I
+was
+only
+in
+it
+for
+a
+little
+while
+but
+it
+was
+terrible
+I
+did
+not
+imagine
+it
+that
+way
+I
+thought
+hell
+would
+be
+different
+than
+pouring
+down
+fire
+fire
+and
+brimstone
+and
+it
+smarted
+like
+everything
+I
+cannot
+see
+why
+I
+should
+have
+been
+in
+hell
+Dr
+It
+must
+be
+because
+your
+teachings
+were
+wrong
+All
+these
+people
+accuse
+you
+of
+having
+misled
+them
+Sp
+I
+gave
+myself
+up
+to
+God
+Dr
+Did
+God
+ask
+you
+to
+do
+that
+Or
+did
+you
+do
+it
+for
+a
+living
+Sp
+I
+tried
+to
+save
+people
+from
+sin
+I
+suppose
+I
+did
+save
+some
+Dr
+You
+did
+not
+save
+yourself
+Sp
+That
+lady
+over
+there
+pointing
+to
+Mrs
+H
+W
+should
+go
+to
+hell
+She
+did
+not
+stick
+to
+the
+church
+as
+she
+should
+Dr
+You
+stuck
+to
+the
+church
+and
+yet
+you
+say
+you
+have
+been
+in
+hell
+Sp
+Yes
+that
+s
+so
+Dr
+Then
+how
+do
+you
+know
+your
+church
+and
+your
+teaching
+were
+right
+You
+were
+a
+Servant
+of
+God
+yet
+you
+went
+to
+hell
+You
+were
+supposed
+to
+be
+better
+than
+the
+congregation
+Sp
+Pointing
+Is
+that
+Mrs
+W
+Dr
+Yes
+Sp
+To
+Mrs
+H
+W
+Why
+don
+t
+you
+go
+to
+church
+Mrs
+H
+W
+I
+do
+sometimes
+Dr
+She
+doesn
+t
+want
+to
+go
+to
+hell
+where
+you
+say
+you
+have
+been
+You
+went
+to
+church
+and
+yet
+you
+went
+to
+hell
+You
+taught
+the
+wrong
+thing
+You
+do
+not
+want
+her
+to
+follow
+in
+your
+footsteps
+do
+you
+Sp
+I
+don
+t
+want
+her
+to
+go
+to
+hell
+where
+I
+have
+been
+Dr
+Then
+the
+church
+must
+be
+wrong
+Mr
+A
+Was
+your
+name
+Nelson
+J
+Nelson
+Your
+wife
+is
+living
+in
+the
+same
+house
+on
+Foster
+Avenue
+Sp
+Yes
+that
+s
+my
+name
+Now
+I
+remember
+Mr
+A
+You
+were
+killed
+eight
+years
+ago
+SP
+I
+have
+not
+seen
+my
+wife
+and
+children
+for
+a
+long
+time
+Dr
+You
+did
+not
+preach
+the
+truth
+when
+you
+were
+trying
+to
+save
+souls
+and
+you
+did
+not
+save
+your
+own
+For
+years
+you
+have
+been
+in
+the
+purgatory
+of
+ignorance
+Sp
+How
+is
+my
+wife
+She
+loved
+me
+Mr
+A
+She
+is
+well
+Sp
+How
+could
+my
+wife
+leave
+me
+as
+she
+did
+Mr
+A
+She
+did
+not
+leave
+you
+she
+buried
+your
+body
+in
+Graceland
+Do
+you
+know
+Graceland
+Cemetery
+Sp
+Yes
+Dr
+Do
+you
+believe
+in
+spirits
+Sp
+What
+do
+you
+mean
+Dr
+Ghosts
+Sp
+No
+Dr
+Doesn
+t
+the
+Bible
+speak
+of
+them
+Sp
+Not
+particularly
+Dr
+Yes
+it
+does
+Jesus
+used
+to
+cast
+out
+unclean
+spirits
+and
+the
+apostles
+did
+also
+Have
+you
+met
+Jesus
+Sp
+No
+I
+have
+not
+met
+any
+one
+I
+have
+been
+in
+the
+crowd
+and
+they
+have
+been
+pushing
+me
+all
+the
+time
+Dr
+Those
+were
+people
+whom
+you
+had
+taught
+falsely
+before
+they
+died
+Sp
+One
+day
+I
+saw
+a
+little
+light
+Dr
+You
+got
+into
+the
+aura
+of
+this
+lady
+Mrs
+A
+Mr
+A
+She
+is
+my
+wife
+Why
+are
+you
+bothering
+her
+Why
+don
+t
+you
+go
+to
+the
+Heaven
+you
+taught
+Why
+do
+you
+stay
+around
+the
+earth
+Sp
+Are
+you
+in
+hell
+too
+Mr
+A
+No
+we
+are
+on
+earth
+Your
+hell
+was
+static
+electricity
+that
+we
+gave
+you
+Dr
+That
+was
+the
+only
+way
+we
+could
+drive
+you
+away
+from
+this
+lady
+Mr
+A
+Why
+didn
+t
+you
+go
+the
+way
+you
+taught
+Sp
+I
+do
+not
+know
+Mr
+A
+Why
+didn
+t
+you
+teach
+the
+truth
+when
+you
+lived
+on
+earth
+Sp
+I
+taught
+the
+way
+I
+learned
+and
+the
+Bishop
+told
+me
+what
+to
+do
+I
+taught
+the
+religion
+taught
+on
+earth
+Dr
+That
+is
+a
+misconception
+You
+yourself
+have
+proven
+that
+it
+is
+a
+fallacy
+You
+have
+been
+dead
+eight
+years
+and
+yet
+you
+are
+an
+earthbound
+spirit
+Sp
+I
+certainly
+expected
+to
+be
+in
+Heaven
+Dr
+You
+did
+not
+teach
+the
+truth
+That
+lady
+Mrs
+H
+W
+will
+reach
+Heaven
+quicker
+than
+you
+will
+Sp
+She
+will
+How
+do
+you
+know
+that
+Dr
+She
+has
+learned
+the
+real
+truth
+the
+truth
+of
+the
+spirit
+world
+and
+spirit
+existence
+Paul
+taught
+about
+spirits
+Jesus
+cast
+out
+unclean
+spirits
+Sp
+We
+cannot
+compare
+ourselves
+with
+Jesus
+Jesus
+was
+the
+son
+of
+God
+Dr
+The
+Bible
+says
+Ye
+are
+all
+the
+children
+of
+God
+and
+Jesus
+said
+I
+and
+my
+Father
+are
+one
+Sp
+He
+was
+God
+s
+Beloved
+Son
+God
+sent
+Him
+to
+save
+us
+from
+sin
+Dr
+I
+will
+tell
+you
+who
+said
+that
+In
+the
+year
+A
+D
+at
+the
+Council
+of
+Nice
+Italy
+Constantine
+declared
+Jesus
+to
+be
+The
+Son
+of
+God
+and
+very
+God
+and
+his
+declaration
+was
+officially
+accepted
+by
+the
+Christian
+Church
+Sp
+Christ
+was
+God
+s
+Beloved
+Son
+and
+if
+we
+believe
+in
+Him
+we
+shall
+inherit
+salvation
+Dr
+Why
+didn
+t
+you
+do
+it
+Sp
+Jesus
+is
+God
+s
+Son
+and
+if
+you
+believe
+in
+Him
+you
+will
+be
+saved
+Dr
+Then
+where
+are
+you
+now
+Sp
+I
+don
+t
+quite
+understand
+it
+yet
+Dr
+But
+you
+said
+you
+had
+been
+in
+hell
+Does
+your
+conscience
+not
+tell
+you
+you
+were
+wrong
+I
+think
+it
+does
+Sp
+It
+accuses
+me
+Dr
+If
+you
+will
+listen
+carefully
+you
+will
+realize
+that
+you
+were
+wrong
+You
+never
+felt
+quite
+satisfied
+with
+the
+story
+of
+God
+s
+creation
+of
+the
+world
+did
+you
+Sp
+We
+should
+not
+argue
+about
+God
+God
+is
+perfect
+and
+we
+are
+His
+children
+and
+if
+we
+believe
+in
+Him
+we
+shall
+inherit
+salvation
+Dr
+You
+say
+God
+is
+perfect
+You
+say
+God
+created
+everything
+and
+that
+He
+knows
+everything
+therefore
+He
+must
+have
+known
+beforehand
+that
+His
+creation
+would
+be
+imperfect
+and
+that
+man
+would
+fall
+in
+sin
+Would
+you
+create
+a
+world
+and
+then
+destroy
+it
+Sp
+People
+fall
+in
+sin
+and
+God
+s
+Son
+came
+to
+save
+us
+Dr
+Did
+God
+know
+that
+the
+world
+would
+fall
+in
+sin
+Did
+He
+know
+it
+and
+yet
+create
+it
+Does
+that
+sound
+reasonable
+Did
+He
+know
+that
+fallen
+angels
+would
+obsess
+people
+Was
+He
+All
+Wise
+The
+preachers
+are
+at
+fault
+in
+their
+teachings
+Sp
+We
+were
+taught
+that
+When
+we
+are
+teachers
+of
+the
+Gospel
+we
+must
+live
+up
+to
+it
+and
+we
+must
+believe
+it
+Dr
+You
+did
+not
+use
+your
+reason
+or
+you
+would
+not
+have
+believed
+what
+you
+were
+taught
+The
+people
+who
+are
+crowding
+you
+now
+are
+evidently
+the
+very
+ones
+you
+tried
+to
+save
+and
+they
+too
+are
+in
+darkness
+They
+did
+not
+find
+Heaven
+What
+does
+the
+Bible
+say
+Ye
+are
+the
+temple
+of
+God
+and
+the
+Spirit
+of
+God
+dwelleth
+in
+you
+God
+is
+Love
+and
+he
+that
+dwelleth
+in
+Love
+dwelleth
+in
+God
+According
+to
+your
+teachings
+you
+should
+have
+found
+God
+before
+this
+But
+you
+have
+not
+The
+teachings
+of
+Jesus
+contain
+wonderful
+truths
+but
+they
+are
+not
+understood
+It
+is
+easier
+to
+teach
+that
+Jesus
+died
+for
+our
+sins
+and
+that
+we
+will
+be
+saved
+and
+everything
+will
+be
+all
+right
+Now
+you
+will
+have
+to
+obtain
+understanding
+Sp
+If
+I
+am
+dead
+then
+I
+should
+see
+God
+Dr
+You
+will
+never
+see
+God
+God
+is
+not
+a
+person
+on
+a
+throne
+God
+is
+Spirit
+and
+God
+is
+Intelligence
+Have
+you
+ever
+seen
+music
+Sp
+I
+have
+heard
+it
+Dr
+Did
+you
+love
+your
+wife
+and
+family
+Sp
+Yes
+I
+did
+Dr
+Have
+you
+ever
+seen
+that
+love
+If
+you
+understand
+the
+Love
+Principle
+in
+the
+higher
+sense
+you
+will
+understand
+that
+God
+is
+Love
+That
+was
+Jesus
+own
+teaching
+Sp
+We
+have
+to
+teach
+as
+I
+did
+Don
+t
+you
+think
+Mrs
+W
+that
+I
+did
+all
+right
+Dr
+She
+left
+your
+church
+Sp
+She
+went
+astray
+Dr
+You
+say
+you
+are
+a
+man
+and
+yet
+here
+you
+are
+controlling
+my
+wife
+s
+body
+Did
+you
+ever
+believe
+in
+mediumship
+Sp
+That
+is
+all
+humbug
+Dr
+There
+must
+be
+some
+truth
+in
+it
+You
+are
+proving
+it
+yourself
+Sp
+I
+didn
+t
+feel
+that
+anybody
+should
+give
+up
+church
+for
+that
+humbug
+Dr
+You
+yourself
+are
+proving
+that
+it
+is
+not
+a
+humbug
+for
+you
+are
+talking
+through
+a
+medium
+now
+Look
+at
+these
+hands
+and
+see
+if
+they
+belong
+to
+you
+Did
+you
+have
+a
+wedding
+ring
+Sp
+That
+s
+a
+woman
+s
+ring
+Dr
+You
+are
+using
+my
+wife
+s
+body
+Sp
+How
+did
+I
+get
+into
+it
+Dr
+You
+are
+an
+invisible
+spirit
+We
+do
+not
+see
+you
+You
+are
+talking
+through
+my
+wife
+s
+physical
+organs
+Now
+you
+see
+how
+little
+you
+really
+know
+of
+the
+laws
+of
+Life
+and
+Love
+and
+the
+Hereafter
+Sp
+Things
+seem
+so
+strange
+There
+was
+a
+time
+I
+recall
+now
+I
+am
+getting
+some
+of
+my
+memory
+back
+I
+recall
+I
+got
+hurt
+Dr
+When
+the
+train
+struck
+you
+you
+were
+driven
+from
+your
+body
+Sp
+I
+remember
+going
+home
+and
+I
+stayed
+at
+home
+but
+my
+wife
+didn
+t
+seem
+to
+notice
+me
+Dr
+Your
+wife
+did
+not
+know
+you
+were
+there
+You
+were
+invisible
+to
+her
+Sp
+I
+tried
+to
+talk
+to
+her
+and
+the
+children
+but
+they
+took
+n
+notice
+of
+me
+so
+I
+thought
+what
+s
+the
+use
+I
+prayed
+and
+prayed
+I
+went
+away
+from
+my
+wife
+and
+I
+could
+not
+get
+back
+I
+was
+parted
+from
+her
+and
+everything
+was
+so
+strange
+Then
+I
+got
+into
+this
+crowd
+and
+they
+followed
+me
+and
+again
+I
+tried
+to
+go
+home
+and
+after
+I
+got
+there
+I
+talked
+to
+my
+wife
+and
+children
+but
+it
+seemed
+as
+if
+no
+one
+cared
+for
+me
+because
+they
+would
+not
+talk
+to
+me
+and
+took
+no
+notice
+of
+me
+I
+put
+my
+hand
+on
+my
+wife
+and
+it
+seemed
+as
+if
+my
+hand
+went
+right
+through
+her
+I
+talked
+to
+my
+wife
+again
+but
+no
+response
+so
+I
+went
+out
+again
+and
+got
+into
+that
+crowd
+and
+I
+was
+with
+them
+until
+I
+got
+into
+hell
+There
+were
+so
+many
+in
+the
+crowd
+that
+we
+were
+like
+sardines
+One
+came
+after
+another
+and
+then
+I
+was
+pushed
+ahead
+Controlled
+the
+sensitive
+I
+saw
+a
+little
+light
+and
+after
+that
+there
+was
+fire
+and
+brimstone
+Dr
+You
+were
+in
+the
+magnetic
+aura
+of
+that
+lady
+Mrs
+A
+and
+obsessed
+her
+and
+finally
+controlled
+her
+body
+Sp
+How
+could
+I
+do
+that
+Dr
+I
+am
+going
+to
+answer
+your
+question
+in
+true
+Yankee
+style
+by
+asking
+another
+How
+could
+you
+control
+this
+body
+You
+see
+how
+little
+you
+know
+about
+the
+mysteries
+of
+God
+You
+preached
+only
+a
+doctrine
+but
+did
+not
+understand
+the
+truth
+Sp
+When
+you
+go
+to
+a
+Seminary
+and
+learn
+what
+they
+teach
+you
+you
+have
+to
+preach
+it
+whether
+you
+like
+it
+or
+not
+Dr
+You
+sinned
+against
+the
+Holy
+Ghost
+because
+your
+better
+judgment
+told
+you
+it
+was
+not
+right
+Jesus
+did
+not
+teach
+what
+you
+taught
+Sp
+I
+was
+not
+very
+successful
+in
+my
+ministry
+this
+statement
+was
+afterward
+confirmed
+as
+many
+others
+are
+not
+because
+it
+seemed
+as
+if
+the
+audience
+my
+followers
+did
+not
+stand
+by
+me
+and
+then
+I
+was
+discouraged
+and
+felt
+what
+was
+the
+use
+No
+one
+seemed
+to
+care
+for
+my
+preaching
+I
+was
+very
+discouraged
+I
+felt
+sometimes
+as
+if
+I
+should
+give
+up
+the
+whole
+thing
+Dr
+Why
+didn
+t
+you
+Sp
+If
+I
+should
+tell
+you
+the
+truth
+and
+tell
+you
+why
+I
+didn
+t
+I
+should
+say
+it
+was
+because
+I
+had
+a
+wife
+and
+family
+to
+support
+But
+I
+was
+not
+successful
+as
+a
+minister
+I
+wish
+I
+had
+never
+studied
+for
+the
+ministry
+but
+had
+been
+more
+of
+a
+mechanic
+I
+would
+have
+had
+a
+happier
+life
+It
+was
+later
+learned
+that
+during
+his
+earth
+life
+the
+spirit
+had
+made
+this
+same
+remark
+to
+a
+fellow
+minister
+I
+could
+not
+provide
+for
+my
+wife
+as
+I
+wanted
+to
+and
+she
+is
+a
+good
+woman
+My
+salary
+was
+small
+and
+when
+you
+have
+a
+family
+to
+support
+and
+have
+to
+get
+your
+salary
+by
+your
+mouth
+it
+is
+hard
+when
+you
+don
+t
+get
+any
+encouragement
+from
+your
+followers
+Some
+found
+fault
+with
+me
+I
+would
+go
+into
+the
+pulpit
+and
+my
+heart
+would
+not
+be
+in
+my
+work
+because
+I
+knew
+they
+did
+not
+like
+me
+I
+was
+not
+happy
+I
+wished
+that
+I
+had
+not
+studied
+in
+my
+younger
+days
+but
+had
+earned
+an
+honest
+living
+I
+see
+things
+now
+that
+I
+did
+not
+see
+before
+I
+was
+blind
+and
+I
+see
+now
+that
+I
+was
+greatly
+at
+fault
+I
+should
+not
+have
+followed
+in
+the
+path
+I
+did
+They
+found
+fault
+with
+me
+here
+and
+there
+and
+the
+Bishop
+sent
+a
+poor
+fellow
+from
+one
+place
+to
+another
+and
+sometimes
+it
+meant
+a
+whole
+month
+s
+salary
+Sometimes
+I
+had
+to
+borrow
+money
+so
+that
+I
+could
+move
+At
+last
+I
+got
+tired
+of
+being
+moved
+around
+I
+would
+get
+a
+few
+friends
+in
+one
+place
+then
+we
+would
+have
+to
+move
+and
+I
+got
+discouraged
+Finally
+I
+got
+a
+house
+and
+I
+said
+I
+was
+going
+to
+stay
+there
+and
+told
+them
+if
+they
+did
+not
+want
+me
+or
+they
+could
+not
+find
+anything
+for
+me
+to
+do
+I
+would
+go
+to
+work
+I
+never
+could
+get
+enough
+together
+to
+properly
+support
+my
+family
+because
+they
+changed
+me
+so
+often
+The
+Bishop
+would
+move
+me
+from
+one
+place
+to
+another
+That
+is
+not
+the
+right
+life
+to
+live
+I
+would
+not
+wish
+my
+worst
+enemy
+to
+be
+a
+minister
+It
+s
+pretty
+hard
+on
+a
+fellow
+Now
+I
+am
+in
+a
+worse
+condition
+that
+I
+was
+because
+I
+m
+blind
+Dr
+Before
+you
+leave
+here
+we
+will
+open
+your
+eyes
+and
+send
+you
+on
+your
+way
+rejoising
+First
+tell
+me
+if
+there
+is
+any
+cure
+for
+my
+blindness
+Dr
+We
+will
+open
+your
+eyes
+The
+Bible
+says
+Eyes
+have
+they
+but
+they
+see
+not
+they
+have
+ears
+but
+they
+hear
+not
+Yours
+is
+only
+spiritual
+blindness
+Sp
+I
+wish
+I
+could
+open
+those
+spiritual
+eyes
+Dr
+It
+is
+not
+the
+fault
+of
+Jesus
+teachings
+that
+you
+are
+spiritually
+blind
+It
+was
+wrong
+to
+teach
+as
+you
+taught
+That
+is
+the
+cause
+of
+your
+present
+condition
+If
+you
+say
+that
+God
+sent
+Jesus
+as
+a
+special
+Savior
+you
+infer
+that
+God
+made
+a
+mistake
+when
+He
+created
+man
+and
+He
+did
+not
+Sp
+Jesus
+was
+God
+s
+Beloved
+Son
+Dr
+That
+conception
+is
+wrong
+Jesus
+said
+I
+and
+my
+Father
+are
+one
+and
+we
+are
+told
+in
+the
+Bible
+Ye
+are
+all
+the
+children
+of
+God
+Are
+we
+not
+strangers
+to
+ourselves
+Sp
+We
+fall
+in
+sin
+Do
+you
+believe
+in
+the
+Devil
+Dr
+In
+the
+first
+place
+God
+is
+not
+a
+person
+He
+is
+Spirit
+All
+Wise
+All
+Powerful
+everywhere
+present
+We
+accept
+that
+as
+the
+first
+principle
+in
+the
+Universe
+God
+is
+All
+in
+All
+If
+God
+is
+All
+in
+All
+as
+the
+Bible
+says
+would
+He
+make
+the
+big
+mistake
+which
+Christianity
+implies
+he
+made
+when
+it
+asserts
+that
+God
+s
+creation
+was
+so
+imperfectly
+planned
+that
+man
+was
+doomed
+to
+fall
+in
+sin
+and
+that
+the
+sending
+of
+a
+Savior
+was
+the
+only
+means
+of
+rectifying
+this
+mistake
+The
+church
+teaches
+that
+some
+of
+the
+angels
+fell
+That
+means
+they
+became
+something
+inferior
+How
+could
+that
+be
+if
+they
+were
+created
+out
+of
+God
+s
+own
+substance
+That
+Something
+Supreme
+created
+the
+world
+and
+placed
+us
+here
+had
+He
+not
+forethought
+and
+foresight
+enough
+to
+see
+what
+would
+happen
+Sp
+We
+were
+born
+into
+this
+world
+and
+fell
+in
+sin
+Dr
+Didn
+t
+God
+know
+what
+would
+happen
+Sp
+I
+suppose
+so
+Dr
+I
+am
+showing
+you
+that
+the
+orthodox
+teaching
+is
+wrong
+Much
+of
+the
+Bible
+is
+simply
+a
+collection
+of
+allegories
+Jesus
+always
+spoke
+in
+parables
+Spiritual
+things
+must
+be
+spiritually
+discerned
+When
+Jesus
+wished
+to
+teach
+the
+people
+that
+they
+should
+love
+their
+fellow
+man
+as
+themselves
+what
+did
+He
+say
+He
+told
+them
+the
+story
+of
+The
+Good
+Samaritan
+the
+story
+of
+a
+certain
+man
+who
+went
+from
+Jerusalem
+to
+Jericho
+and
+fell
+among
+thieves
+who
+beat
+him
+and
+left
+him
+half
+dead
+A
+certain
+priest
+came
+that
+way
+and
+when
+he
+saw
+him
+he
+passed
+by
+on
+the
+other
+side
+Then
+a
+Levite
+came
+and
+he
+passed
+by
+on
+the
+other
+side
+But
+a
+certain
+Samaritan
+came
+and
+when
+he
+saw
+him
+he
+had
+compassion
+on
+him
+and
+bound
+up
+his
+wounds
+and
+brought
+him
+to
+an
+inn
+and
+cared
+for
+him
+And
+when
+he
+left
+the
+inn
+he
+paid
+the
+host
+to
+take
+care
+of
+the
+man
+Then
+Jesus
+asked
+the
+lawyer
+which
+one
+represented
+his
+fellow
+man
+and
+the
+lawyer
+answered
+He
+that
+showed
+mercy
+Sp
+But
+that
+is
+history
+Dr
+No
+that
+is
+allegory
+Sp
+How
+do
+you
+know
+Dr
+The
+very
+Bible
+tells
+us
+so
+Jesus
+told
+that
+story
+simply
+as
+a
+parable
+to
+show
+what
+The
+principle
+Your
+doctrine
+blinded
+you
+Sp
+Then
+don
+t
+you
+believe
+that
+really
+happened
+Dr
+No
+Jesus
+spoke
+in
+parables
+Sp
+I
+was
+not
+taught
+that
+way
+When
+I
+was
+not
+taught
+that
+way
+how
+could
+I
+know
+more
+than
+I
+did
+Ministers
+teach
+as
+I
+did
+all
+the
+time
+The
+way
+you
+say
+it
+is
+all
+new
+to
+me
+Dr
+That
+is
+the
+true
+teaching
+of
+Jesus
+Sp
+Don
+t
+you
+believe
+he
+died
+for
+our
+sins
+Dr
+No
+I
+do
+not
+Did
+Jesus
+die
+to
+please
+God
+Sp
+No
+he
+died
+to
+save
+us
+from
+sin
+Dr
+Do
+you
+mean
+to
+say
+that
+God
+created
+a
+special
+son
+for
+people
+to
+kill
+so
+they
+could
+be
+saved
+Sp
+We
+must
+not
+talk
+against
+God
+Dr
+I
+am
+talking
+against
+erroneous
+teachings
+Sp
+Do
+you
+believe
+in
+such
+things
+Mrs
+W
+Mrs
+H
+W
+I
+do
+now
+Dr
+Jesus
+said
+Except
+ye
+become
+as
+little
+children
+ye
+shall
+not
+enter
+into
+the
+kingdom
+of
+heaven
+What
+do
+children
+do
+They
+ask
+questions
+They
+want
+to
+know
+Did
+you
+seek
+to
+understand
+No
+You
+only
+tried
+to
+teach
+the
+doctrine
+of
+belief
+Did
+you
+ever
+understand
+flowers
+Sp
+They
+belong
+to
+Nature
+We
+must
+not
+worship
+Nature
+Dr
+God
+made
+Nature
+We
+must
+not
+worship
+Nature
+we
+must
+worship
+God
+But
+God
+is
+in
+Nature
+He
+speaks
+to
+us
+through
+Nature
+The
+corrected
+translations
+of
+the
+Bible
+tell
+us
+that
+Jesus
+said
+God
+is
+Spirit
+He
+did
+not
+say
+God
+is
+a
+Spirit
+but
+God
+is
+Spirit
+and
+they
+that
+worship
+Him
+must
+worship
+Him
+in
+Spirit
+and
+in
+truth
+Sp
+I
+never
+heard
+things
+explained
+like
+that
+before
+Dr
+We
+want
+to
+open
+your
+spiritual
+eyes
+so
+that
+you
+can
+see
+God
+is
+Love
+and
+he
+that
+dwelleth
+in
+Love
+dwelleth
+in
+God
+Where
+are
+you
+going
+to
+find
+God
+outside
+of
+yourself
+What
+is
+love
+What
+does
+love
+look
+like
+Sp
+I
+cannot
+describe
+how
+it
+looks
+You
+feel
+it
+Dr
+Love
+is
+the
+fulfillment
+of
+the
+law
+Thou
+shalt
+love
+thy
+neighbor
+as
+thyself
+Sp
+Are
+you
+a
+minister
+Dr
+Not
+as
+you
+understand
+the
+term
+I
+honor
+God
+but
+not
+dogma
+I
+realize
+that
+the
+Universe
+did
+not
+make
+itself
+God
+is
+Spirit
+Power
+the
+Soul
+of
+the
+Universe
+He
+is
+a
+Practical
+Something
+in
+which
+the
+heavenly
+bodies
+all
+move
+If
+we
+want
+to
+understand
+God
+we
+must
+understand
+ourselves
+We
+must
+try
+to
+understand
+why
+we
+are
+living
+beings
+What
+is
+the
+size
+and
+breadth
+of
+mind
+How
+large
+or
+small
+is
+mind
+Sp
+You
+say
+that
+I
+am
+a
+spirit
+and
+that
+I
+am
+talking
+through
+this
+lady
+s
+body
+How
+is
+that
+possible
+You
+also
+say
+that
+I
+bothered
+that
+other
+lady
+Mrs
+A
+Dr
+There
+is
+a
+psychic
+law
+whereby
+spirits
+can
+control
+mortals
+When
+correctly
+followed
+we
+have
+spirit
+communication
+of
+the
+highest
+order
+Perversion
+of
+this
+law
+results
+in
+obsession
+Mrs
+A
+is
+a
+natural
+psychic
+and
+you
+and
+other
+spirits
+came
+into
+her
+magnetic
+aura
+and
+interfered
+with
+her
+life
+She
+came
+to
+California
+to
+be
+helped
+She
+is
+in
+California
+now
+and
+so
+are
+you
+Sp
+California
+How
+did
+I
+get
+here
+Dr
+By
+another
+wonderful
+law
+You
+followed
+her
+The
+obsession
+of
+mortals
+by
+spirits
+is
+a
+fact
+that
+has
+been
+known
+in
+all
+ages
+Sp
+You
+do
+not
+mean
+that
+I
+have
+been
+bothering
+that
+lady
+Dr
+Yes
+and
+would
+have
+helped
+to
+ruin
+her
+life
+Sp
+How
+did
+I
+get
+to
+her
+Dr
+How
+did
+you
+come
+here
+How
+are
+you
+controlling
+the
+body
+of
+Mrs
+Wickland
+Sp
+I
+don
+t
+realize
+that
+I
+have
+ever
+done
+any
+wrong
+Dr
+We
+had
+to
+give
+the
+lady
+the
+electrical
+treatment
+we
+did
+in
+order
+to
+expel
+you
+from
+her
+aura
+You
+are
+not
+the
+only
+one
+that
+has
+been
+removed
+When
+many
+minds
+try
+to
+function
+through
+one
+body
+it
+creates
+a
+disturbance
+Others
+would
+say
+that
+my
+wife
+is
+insane
+just
+now
+because
+she
+is
+a
+woman
+and
+yet
+you
+speaking
+through
+her
+say
+you
+are
+a
+man
+and
+a
+minister
+Another
+mystery
+is
+that
+Mrs
+Wickland
+is
+entirely
+unconscious
+at
+this
+time
+Sp
+How
+did
+I
+come
+to
+this
+body
+Dr
+Spirit
+helpers
+brought
+you
+here
+and
+allowed
+you
+to
+control
+my
+wife
+because
+she
+is
+a
+psychic
+sensitive
+Sp
+I
+did
+not
+mean
+to
+do
+anybody
+harm
+I
+just
+followed
+the
+crowd
+and
+they
+pushed
+me
+in
+I
+did
+not
+know
+any
+one
+in
+particular
+in
+the
+crowd
+I
+was
+blind
+and
+could
+not
+see
+so
+I
+just
+kept
+with
+them
+Dr
+Do
+you
+know
+why
+you
+were
+blind
+You
+had
+lost
+your
+physical
+eyes
+but
+were
+not
+aware
+of
+the
+fact
+You
+were
+in
+the
+spirit
+world
+but
+you
+knew
+nothing
+of
+the
+spiritual
+laws
+You
+were
+in
+what
+the
+Bible
+calls
+outer
+darkness
+Sp
+Does
+outer
+darkness
+mean
+when
+you
+don
+t
+understand
+Dr
+Yes
+When
+you
+lost
+your
+physical
+body
+you
+lost
+your
+physical
+eyes
+but
+you
+did
+not
+know
+it
+and
+since
+you
+did
+not
+understand
+the
+higher
+life
+your
+spiritual
+vision
+was
+not
+open
+Sp
+I
+have
+had
+a
+body
+and
+I
+have
+had
+eyes
+Dr
+You
+have
+a
+spiritual
+body
+but
+you
+were
+mentally
+blind
+Do
+you
+remember
+that
+Paul
+spoke
+of
+a
+natural
+body
+and
+a
+spiritual
+body
+First
+that
+which
+is
+natural
+and
+afterward
+that
+which
+is
+spiritual
+Sp
+Do
+you
+mean
+to
+say
+that
+I
+was
+spiritually
+blind
+when
+I
+was
+a
+spiritual
+adviser
+Dr
+Yes
+When
+you
+have
+your
+spiritual
+eyes
+open
+you
+will
+realize
+what
+Jesus
+meant
+when
+He
+said
+I
+and
+my
+Father
+are
+one
+Jesus
+said
+Be
+ye
+therefore
+perfect
+even
+as
+your
+Father
+which
+is
+in
+Heaven
+is
+perfect
+The
+Bible
+says
+Add
+to
+your
+faith
+knowledge
+and
+Jesus
+said
+Know
+the
+truth
+and
+the
+truth
+shall
+make
+you
+free
+The
+Bible
+states
+Blessed
+is
+he
+that
+hath
+part
+in
+the
+first
+resurrection
+that
+is
+obtains
+understanding
+while
+in
+the
+body
+on
+such
+the
+second
+death
+hath
+no
+power
+meaning
+that
+when
+ignorance
+is
+replaced
+by
+understanding
+spiritual
+light
+is
+obtained
+Sp
+Do
+you
+mean
+to
+say
+that
+I
+had
+no
+real
+comprehension
+of
+the
+truth
+Dr
+You
+had
+faith
+but
+you
+did
+not
+have
+knowledge
+you
+only
+had
+orthodoxy
+Sp
+Then
+you
+mean
+that
+all
+my
+followers
+and
+the
+church
+people
+who
+came
+to
+hear
+me
+will
+all
+be
+spiritually
+blind
+Dr
+Many
+of
+them
+may
+be
+if
+they
+follow
+your
+teachings
+If
+you
+look
+you
+will
+probably
+see
+others
+here
+SP
+There
+is
+a
+big
+audience
+here
+and
+they
+are
+all
+listening
+During
+a
+psychic
+circle
+of
+this
+nature
+many
+earthbound
+spirits
+are
+brought
+to
+profit
+by
+the
+experience
+of
+the
+spirit
+who
+is
+controlling
+the
+psychic
+Dr
+It
+is
+our
+own
+stupidity
+that
+keeps
+us
+back
+We
+should
+use
+the
+wonderful
+mind
+that
+God
+gave
+us
+We
+have
+the
+marvelous
+universe
+to
+study
+and
+try
+to
+understand
+Did
+you
+ever
+stop
+to
+think
+how
+fruit
+grows
+You
+plant
+a
+seed
+in
+the
+ground
+it
+decomposes
+and
+out
+of
+it
+grows
+a
+tree
+Sp
+That
+belongs
+to
+Nature
+Dr
+Nature
+is
+the
+body
+of
+God
+God
+is
+All
+in
+All
+You
+taught
+that
+in
+church
+Sp
+I
+have
+said
+that
+many
+times
+but
+I
+did
+not
+see
+it
+as
+you
+do
+Dr
+If
+God
+is
+All
+in
+All
+would
+not
+creation
+itself
+be
+a
+part
+of
+God
+Sp
+I
+never
+thought
+of
+it
+in
+that
+light
+It
+seems
+strange
+that
+while
+I
+gave
+truth
+to
+my
+people
+I
+should
+find
+myself
+in
+this
+darkness
+Say
+are
+you
+a
+minister
+Dr
+No
+I
+am
+not
+but
+I
+try
+to
+understand
+God
+s
+wonders
+and
+the
+meaning
+of
+existence
+Sp
+You
+have
+studied
+the
+Bible
+pretty
+well
+You
+seem
+to
+know
+the
+Bible
+much
+better
+than
+I
+did
+myself
+Dr
+I
+regard
+its
+teachings
+differently
+Sp
+You
+seem
+to
+quote
+the
+Bible
+by
+heart
+I
+should
+like
+to
+have
+you
+write
+down
+all
+you
+have
+told
+me
+I
+should
+like
+to
+have
+your
+statements
+written
+down
+and
+if
+I
+could
+give
+it
+to
+the
+people
+as
+you
+have
+given
+it
+to
+me
+I
+should
+be
+very
+glad
+Dr
+Now
+your
+spiritual
+eyes
+will
+be
+opened
+and
+you
+will
+see
+others
+who
+will
+teach
+you
+the
+same
+things
+Advanced
+spirits
+will
+teach
+you
+how
+to
+progress
+in
+a
+rational
+way
+in
+the
+spirit
+world
+and
+you
+will
+be
+taught
+much
+more
+than
+I
+tell
+you
+You
+will
+not
+be
+in
+the
+dark
+any
+longer
+If
+you
+will
+look
+around
+you
+may
+see
+some
+one
+you
+know
+who
+has
+passed
+on
+Sp
+Should
+we
+call
+them
+back
+Dr
+Call
+them
+back
+from
+where
+Sp
+From
+Heaven
+Dr
+Jesus
+said
+The
+Kingdom
+of
+God
+is
+within
+you
+and
+in
+the
+Bible
+you
+will
+find
+Ye
+are
+the
+temple
+of
+God
+and
+the
+Spirit
+of
+God
+dwelleth
+in
+you
+Sp
+Don
+t
+you
+think
+we
+should
+all
+go
+to
+Heaven
+Dr
+Heaven
+is
+not
+a
+place
+Sp
+We
+must
+have
+some
+place
+to
+stay
+Dr
+Heaven
+is
+a
+condition
+of
+mind
+When
+you
+are
+happy
+is
+that
+not
+Heaven
+The
+more
+happiness
+you
+create
+around
+yourself
+the
+more
+Heaven
+you
+will
+have
+Happiness
+is
+Heaven
+Sp
+But
+we
+have
+to
+be
+in
+some
+place
+Dr
+You
+are
+in
+the
+spirit
+world
+I
+have
+told
+you
+that
+You
+can
+only
+attain
+Heaven
+or
+happiness
+as
+you
+develop
+Sp
+Where
+is
+that
+place
+the
+spirit
+world
+Dr
+It
+surrounds
+the
+physical
+world
+You
+will
+be
+taught
+all
+that
+Jesus
+said
+Seek
+and
+ye
+shall
+find
+knock
+and
+it
+shall
+be
+opened
+unto
+you
+Sp
+There
+are
+many
+people
+here
+Spirits
+Some
+are
+very
+happy
+and
+contented
+and
+they
+seem
+to
+be
+asking
+me
+to
+come
+to
+the
+home
+of
+understanding
+life
+happiness
+and
+the
+spirit
+world
+What
+is
+the
+spirit
+world
+Dr
+That
+is
+the
+world
+of
+the
+spirits
+who
+understand
+Nature
+s
+higher
+laws
+Sp
+Before
+I
+go
+with
+them
+I
+should
+so
+like
+to
+send
+a
+message
+to
+my
+wife
+Will
+somebody
+take
+it
+to
+her
+Mrs
+H
+W
+I
+will
+be
+glad
+to
+Sp
+Tell
+my
+wife
+I
+have
+found
+that
+life
+is
+more
+serious
+than
+I
+thought
+and
+we
+should
+try
+to
+understand
+more
+of
+God
+s
+wonders
+and
+not
+only
+believe
+Spiritual
+vision
+opening
+with
+a
+flood
+of
+understanding
+face
+upturned
+and
+arms
+outstretched
+I
+want
+to
+tell
+my
+wife
+that
+I
+have
+learned
+more
+about
+the
+wonderful
+world
+beyond
+than
+I
+ever
+knew
+before
+My
+spiritual
+eyes
+are
+open
+I
+wish
+so
+much
+that
+she
+could
+accept
+the
+proof
+that
+has
+been
+revealed
+to
+me
+All
+this
+time
+as
+you
+have
+told
+me
+I
+have
+been
+dead
+I
+have
+been
+in
+darkness
+but
+as
+this
+gentleman
+tells
+me
+it
+was
+a
+spiritual
+darkness
+My
+eyes
+are
+open
+and
+I
+can
+now
+see
+A
+beautiful
+world
+lies
+before
+me
+I
+want
+my
+wife
+to
+understand
+these
+things
+so
+that
+she
+will
+not
+be
+in
+the
+dark
+as
+I
+have
+been
+Tell
+her
+not
+to
+have
+belief
+alone
+Investigate
+and
+find
+out
+what
+the
+life
+beyond
+is
+I
+do
+wish
+I
+could
+teach
+about
+the
+beautiful
+land
+beyond
+as
+I
+see
+it
+before
+me
+There
+are
+wonderful
+landscapes
+and
+homes
+of
+all
+descriptions
+My
+eyes
+are
+open
+and
+now
+I
+see
+Here
+is
+one
+beautiful
+home
+and
+there
+another
+A
+man
+stands
+here
+and
+he
+says
+to
+me
+that
+the
+homes
+in
+the
+spirit
+world
+are
+not
+bought
+with
+money
+but
+are
+acquired
+by
+good
+acts
+done
+here
+on
+earth
+This
+man
+this
+teacher
+says
+Be
+unselfish
+and
+have
+love
+for
+others
+then
+you
+will
+have
+a
+beautiful
+home
+in
+the
+spirit
+world
+If
+you
+live
+for
+yourself
+alone
+you
+will
+have
+only
+a
+little
+shanty
+for
+you
+have
+done
+nothing
+to
+help
+your
+fellow
+man
+Give
+help
+to
+others
+and
+serve
+the
+ones
+who
+need
+help
+These
+are
+also
+the
+teachings
+of
+Jesus
+I
+see
+beautiful
+homes
+around
+but
+where
+is
+mine
+I
+have
+none
+I
+have
+not
+seen
+it
+yet
+Dr
+By
+helping
+and
+serving
+others
+you
+will
+soon
+have
+one
+Sp
+I
+want
+my
+wife
+to
+know
+that
+we
+should
+live
+so
+on
+earth
+that
+when
+we
+come
+to
+the
+beautiful
+world
+beyond
+we
+shall
+have
+a
+home
+We
+must
+do
+as
+our
+better
+nature
+tells
+us
+to
+do
+Dr
+Now
+you
+are
+preaching
+an
+excellent
+sermon
+Sp
+I
+am
+not
+preaching
+it
+This
+man
+spirit
+tells
+me
+that
+He
+stands
+right
+here
+by
+me
+He
+says
+The
+Bible
+states
+It
+is
+easier
+for
+a
+camel
+to
+go
+through
+the
+eye
+of
+a
+needle
+than
+for
+a
+rich
+man
+to
+enter
+into
+the
+Kingdom
+of
+God
+He
+says
+I
+will
+illustrate
+to
+you
+what
+a
+home
+would
+be
+if
+a
+man
+sells
+his
+soul
+for
+money
+and
+does
+not
+help
+others
+There
+is
+the
+home
+of
+a
+millionaire
+who
+has
+taken
+money
+from
+the
+poor
+people
+and
+grasped
+all
+he
+could
+In
+the
+spirit
+world
+his
+house
+will
+be
+a
+mere
+hovel
+in
+the
+ground
+for
+he
+could
+not
+enter
+one
+of
+those
+beautiful
+homes
+Those
+homes
+were
+built
+by
+good
+deeds
+done
+for
+others
+and
+not
+for
+self
+He
+will
+have
+to
+work
+through
+service
+to
+an
+understanding
+of
+a
+higher
+condition
+There
+are
+homes
+of
+all
+descriptions
+and
+castles
+too
+This
+teacher
+says
+that
+many
+times
+there
+are
+in
+these
+beautiful
+castles
+poor
+old
+widows
+and
+men
+who
+were
+outcasts
+but
+who
+lived
+for
+others
+and
+not
+for
+self
+Their
+acts
+were
+acts
+of
+kindness
+not
+selfishness
+They
+made
+many
+sacrifices
+There
+are
+many
+homes
+from
+castles
+down
+and
+down
+until
+they
+are
+made
+of
+dirt
+many
+surrounded
+by
+snakes
+a
+miserable
+condition
+through
+which
+the
+selfish
+must
+pass
+Now
+he
+points
+to
+a
+house
+and
+says
+This
+is
+yours
+this
+little
+tiny
+house
+You
+were
+honest
+in
+what
+you
+taught
+so
+you
+have
+a
+house
+even
+though
+small
+Some
+have
+none
+You
+did
+not
+seek
+for
+the
+truth
+you
+accepted
+things
+as
+they
+were
+presented
+to
+you
+Now
+you
+will
+have
+to
+work
+for
+others
+and
+make
+a
+home
+for
+your
+wife
+and
+children
+You
+must
+work
+now
+and
+try
+to
+help
+them
+realize
+the
+beauties
+of
+the
+life
+beyond
+Is
+it
+not
+more
+beautiful
+to
+see
+the
+spirit
+world
+in
+the
+true
+sense
+of
+life
+than
+to
+preach
+the
+gospel
+of
+condemnation
+Why
+should
+we
+not
+open
+our
+spiritual
+eyes
+and
+understand
+God
+as
+He
+is
+instead
+of
+picturing
+Him
+as
+a
+monster
+of
+cruelty
+He
+says
+Christians
+murder
+their
+fellow
+men
+The
+war
+has
+grown
+out
+of
+selfishness
+The
+churches
+will
+soon
+fall
+and
+there
+will
+be
+a
+new
+religion
+that
+will
+bring
+true
+understanding
+and
+all
+people
+on
+earth
+will
+open
+their
+eyes
+and
+see
+the
+real
+truth
+of
+God
+s
+wonderful
+manifestations
+Isn
+t
+it
+wonderful
+How
+I
+wish
+I
+could
+come
+back
+and
+tell
+people
+the
+truth
+as
+I
+see
+it
+now
+I
+would
+tell
+my
+people
+that
+I
+had
+not
+taught
+properly
+and
+so
+had
+not
+helped
+them
+Now
+I
+could
+give
+them
+the
+truth
+and
+help
+them
+I
+would
+not
+need
+to
+tell
+them
+that
+if
+they
+did
+not
+live
+the
+right
+kind
+of
+life
+they
+would
+go
+to
+hell
+Hell
+is
+only
+ignorance
+and
+selfishness
+If
+only
+I
+could
+give
+this
+truth
+to
+my
+followers
+How
+I
+wish
+I
+could
+go
+back
+and
+preach
+what
+I
+know
+now
+I
+would
+work
+to
+help
+them
+to
+a
+spiritual
+understanding
+and
+I
+would
+not
+teach
+condemnation
+as
+I
+sometimes
+did
+I
+would
+try
+to
+help
+them
+open
+their
+eyes
+and
+understand
+what
+life
+really
+is
+I
+wish
+that
+they
+could
+see
+the
+beautiful
+land
+and
+homes
+that
+I
+have
+seen
+I
+will
+work
+and
+work
+hard
+to
+make
+a
+home
+for
+my
+wife
+and
+children
+The
+home
+I
+want
+is
+not
+mine
+yet
+but
+I
+have
+a
+small
+beginning
+I
+will
+work
+to
+give
+my
+wife
+and
+children
+the
+home
+I
+have
+always
+wanted
+them
+to
+have
+What
+is
+this
+With
+great
+excitement
+This
+man
+says
+this
+is
+the
+lower
+sphere
+I
+see
+where
+ignorant
+spirits
+travel
+in
+darkness
+Here
+is
+another
+scene
+which
+is
+the
+result
+of
+my
+work
+How
+sick
+these
+spirits
+are
+and
+how
+crippled
+They
+are
+blind
+and
+grasping
+Dr
+They
+are
+showing
+you
+the
+lower
+earth
+sphere
+Sp
+This
+man
+says
+they
+are
+showing
+me
+the
+result
+of
+orthodox
+teaching
+Look
+at
+those
+drunkards
+and
+murderers
+Dr
+They
+are
+now
+showing
+you
+these
+scenes
+so
+when
+you
+leave
+this
+body
+and
+begin
+to
+progress
+you
+can
+better
+help
+others
+Sp
+He
+says
+this
+is
+a
+condition
+which
+false
+teachings
+and
+human
+selfishness
+have
+created
+These
+spirits
+look
+like
+snakes
+Look
+at
+the
+nails
+on
+their
+hands
+This
+is
+terrible
+Some
+are
+on
+their
+knees
+crawling
+and
+some
+are
+on
+all
+fours
+That
+and
+that
+and
+that
+is
+my
+work
+Oh
+God
+This
+is
+the
+result
+of
+wrong
+teaching
+It
+is
+terrible
+Now
+this
+man
+shows
+me
+an
+asylum
+of
+crazy
+people
+and
+there
+are
+crazy
+spirits
+around
+them
+all
+Oh
+that
+is
+hell
+hell
+They
+shout
+and
+howl
+What
+a
+sight
+what
+a
+horrible
+sight
+They
+are
+showing
+me
+the
+real
+things
+Here
+is
+a
+human
+being
+with
+three
+or
+four
+spirits
+crawling
+on
+him
+Now
+he
+shows
+me
+another
+place
+it
+is
+this
+place
+here
+Institute
+Hall
+There
+is
+a
+Spirit
+Home
+built
+within
+this
+room
+an
+Inner
+Hall
+There
+are
+many
+spirits
+here
+He
+says
+We
+take
+them
+from
+obsessed
+mortals
+and
+bring
+them
+into
+this
+Hall
+and
+keep
+them
+there
+until
+we
+can
+convert
+them
+Often
+we
+must
+have
+them
+control
+this
+psychic
+to
+bring
+them
+to
+an
+understanding
+By
+bringing
+one
+to
+an
+understanding
+the
+door
+is
+opened
+for
+many
+others
+One
+or
+two
+are
+allowed
+to
+control
+and
+the
+others
+see
+how
+they
+are
+enlightened
+and
+then
+they
+learn
+that
+they
+also
+must
+go
+with
+friendly
+spirits
+to
+the
+world
+beyond
+Let
+us
+preach
+the
+gospel
+of
+truth
+so
+there
+will
+not
+be
+this
+earthbound
+spirit
+condition
+caused
+by
+ignorance
+and
+selfishness
+If
+only
+I
+could
+return
+to
+help
+preach
+this
+great
+truth
+that
+I
+have
+found
+Dr
+Now
+you
+have
+been
+shown
+the
+way
+and
+you
+must
+go
+with
+these
+advanced
+spirits
+who
+will
+help
+you
+Sp
+Will
+I
+go
+with
+that
+man
+Dr
+Yes
+He
+will
+teach
+you
+many
+great
+truths
+Sp
+He
+says
+that
+it
+is
+false
+teaching
+of
+ministers
+which
+brings
+people
+to
+this
+hell
+He
+says
+I
+must
+go
+but
+before
+I
+go
+I
+want
+to
+thank
+you
+all
+for
+helping
+me
+to
+a
+home
+in
+the
+spirit
+world
+To
+Mr
+A
+He
+also
+wants
+me
+to
+ask
+you
+to
+please
+forgive
+me
+I
+meant
+no
+wrong
+to
+your
+wife
+it
+was
+only
+ignorance
+on
+my
+part
+To
+Mrs
+A
+I
+want
+to
+ask
+you
+to
+forgive
+me
+I
+will
+help
+you
+all
+I
+can
+but
+not
+before
+I
+know
+how
+I
+will
+do
+all
+within
+my
+power
+to
+help
+you
+become
+free
+from
+the
+condition
+you
+are
+in
+Now
+I
+see
+those
+around
+you
+Fight
+and
+we
+will
+help
+you
+win
+I
+also
+want
+to
+thank
+you
+Mrs
+W
+for
+helping
+me
+because
+this
+man
+says
+you
+helped
+me
+to
+an
+understanding
+God
+bless
+you
+and
+my
+dear
+wife
+Please
+bring
+this
+message
+to
+her
+Three
+years
+after
+the
+above
+experience
+when
+Mrs
+H
+W
+was
+again
+present
+in
+our
+circle
+the
+spirit
+of
+Pastor
+Nelson
+returned
+and
+spoke
+through
+the
+psychic
+EXPERIENCE
+MARCH
+Spirit
+J
+NELSON
+PSYCHIC
+MRS
+WICKLAND
+I
+have
+come
+here
+tonight
+to
+thank
+you
+all
+for
+the
+help
+I
+received
+in
+this
+little
+circle
+You
+gave
+me
+the
+truth
+and
+I
+also
+learned
+that
+I
+had
+unconsciously
+been
+obsessing
+some
+one
+I
+wish
+all
+could
+understand
+and
+know
+the
+laws
+that
+govern
+the
+spirit
+conditions
+on
+this
+earth
+life
+I
+was
+not
+a
+bad
+spirit
+but
+I
+was
+ignorant
+of
+the
+laws
+I
+should
+have
+been
+much
+more
+enlightened
+because
+I
+used
+to
+preach
+to
+people
+and
+try
+to
+help
+them
+understand
+the
+real
+life
+but
+how
+few
+ministers
+who
+stand
+in
+the
+pulpit
+today
+give
+out
+the
+truth
+They
+all
+know
+there
+is
+a
+life
+after
+this
+but
+they
+cling
+to
+the
+old
+orthodox
+belief
+Some
+are
+ready
+to
+grasp
+the
+truth
+and
+some
+are
+not
+I
+thank
+you
+for
+helping
+me
+I
+felt
+like
+saying
+I
+was
+in
+hell
+because
+of
+those
+electric
+sparks
+for
+I
+thought
+the
+devil
+himself
+was
+after
+me
+but
+I
+was
+brought
+to
+a
+realization
+of
+what
+I
+should
+have
+done
+when
+in
+life
+and
+that
+I
+should
+not
+obsess
+any
+one
+To
+Mrs
+H
+W
+I
+also
+want
+to
+thank
+you
+Mrs
+W
+for
+helping
+me
+and
+to
+ask
+your
+forgiveness
+for
+having
+obsessed
+your
+daughter
+But
+I
+assure
+you
+I
+did
+it
+unconsciously
+I
+did
+not
+realize
+the
+laws
+that
+govern
+I
+was
+not
+taught
+myself
+I
+thought
+I
+was
+teaching
+my
+people
+about
+the
+real
+life
+but
+I
+was
+not
+I
+preached
+about
+Christ
+dying
+for
+our
+sins
+that
+you
+must
+believe
+and
+faith
+will
+make
+you
+free
+That
+is
+not
+so
+To
+faith
+we
+must
+add
+knowledge
+and
+that
+will
+make
+us
+free
+so
+the
+Good
+Book
+says
+I
+did
+not
+preach
+that
+I
+taught
+to
+faith
+add
+belief
+and
+you
+will
+be
+saved
+How
+very
+little
+ministers
+do
+to
+help
+uplift
+people
+or
+to
+give
+them
+a
+right
+understanding
+of
+God
+We
+always
+tell
+them
+to
+believe
+believe
+We
+do
+not
+want
+people
+to
+have
+knowledge
+because
+then
+they
+begin
+to
+ask
+questions
+that
+we
+cannot
+answer
+so
+we
+tell
+them
+to
+believe
+and
+have
+patience
+and
+they
+will
+be
+saved
+Why
+should
+we
+not
+teach
+them
+the
+real
+truth
+and
+have
+them
+understand
+God
+and
+life
+in
+the
+true
+sense
+The
+time
+is
+coming
+when
+the
+ministers
+cannot
+preach
+the
+old
+dogmas
+to
+the
+people
+They
+will
+have
+to
+change
+if
+they
+want
+the
+people
+to
+fill
+their
+churches
+I
+know
+I
+was
+not
+a
+good
+minister
+I
+mean
+I
+was
+not
+popular
+I
+could
+never
+hold
+my
+people
+because
+I
+did
+not
+have
+my
+whole
+heart
+and
+soul
+in
+the
+work
+I
+felt
+that
+we
+should
+believe
+but
+at
+times
+a
+strong
+power
+came
+to
+me
+and
+I
+felt
+that
+I
+should
+have
+more
+real
+knowledge
+of
+the
+life
+hereafter
+but
+I
+shut
+the
+door
+to
+it
+Now
+I
+am
+sorry
+that
+I
+did
+not
+try
+to
+investigate
+more
+When
+I
+went
+out
+of
+my
+body
+I
+went
+so
+quickly
+that
+I
+did
+not
+realize
+the
+change
+You
+know
+Mrs
+W
+there
+was
+quite
+a
+company
+of
+us
+and
+we
+were
+all
+rushing
+to
+get
+home
+I
+stepped
+over
+to
+the
+other
+track
+and
+another
+train
+which
+I
+did
+not
+see
+coming
+killed
+me
+I
+did
+not
+even
+realize
+that
+I
+was
+hurt
+When
+the
+rest
+of
+them
+went
+home
+I
+went
+with
+them
+I
+went
+to
+my
+home
+but
+I
+did
+not
+realize
+that
+anything
+unusual
+had
+taken
+place
+I
+could
+not
+understand
+things
+I
+went
+first
+to
+one
+then
+another
+but
+nobody
+seemed
+to
+notice
+me
+It
+was
+very
+queer
+I
+did
+not
+know
+what
+to
+do
+Where
+should
+I
+go
+where
+could
+I
+go
+I
+went
+to
+my
+church
+and
+stayed
+there
+still
+I
+did
+not
+realize
+that
+I
+had
+passed
+out
+One
+day
+Mrs
+W
+you
+came
+to
+church
+In
+your
+thoughts
+of
+me
+I
+saw
+a
+light
+because
+I
+was
+in
+darkness
+I
+did
+not
+feel
+sick
+but
+I
+did
+not
+feel
+quite
+myself
+so
+I
+followed
+you
+to
+see
+if
+I
+could
+get
+an
+explanation
+When
+you
+reached
+home
+suddenly
+I
+seemed
+to
+be
+closed
+up
+in
+a
+room
+and
+I
+was
+in
+very
+close
+quarters
+Obsessing
+Mrs
+W
+s
+daughter
+Mrs
+A
+After
+a
+while
+I
+went
+to
+sleep
+I
+slept
+in
+a
+way
+and
+still
+I
+felt
+weak
+and
+had
+such
+a
+strange
+sensation
+There
+were
+several
+others
+with
+me
+but
+I
+cannot
+describe
+the
+condition
+except
+to
+say
+that
+we
+seemed
+to
+be
+in
+a
+room
+too
+small
+for
+us
+We
+were
+all
+packed
+in
+like
+sardines
+I
+could
+hardly
+get
+my
+breath
+Then
+I
+fell
+asleep
+and
+I
+slept
+for
+a
+long
+time
+I
+did
+not
+realize
+anything
+after
+that
+until
+I
+got
+fire
+all
+over
+my
+body
+Static
+electricity
+given
+patient
+There
+seemed
+to
+be
+fire
+all
+over
+me
+and
+I
+could
+not
+realize
+what
+it
+was
+All
+I
+could
+see
+was
+this
+fire
+and
+how
+it
+thundered
+At
+first
+I
+thought
+I
+was
+really
+dead
+and
+in
+hell
+because
+I
+could
+not
+imagine
+anything
+else
+I
+thought
+I
+a
+minister
+trying
+to
+save
+people
+from
+hell
+and
+here
+I
+am
+right
+in
+it
+myself
+Then
+I
+woke
+up
+and
+there
+was
+more
+fire
+but
+before
+I
+knew
+it
+I
+was
+alive
+again
+and
+I
+could
+talk
+which
+I
+could
+not
+do
+before
+Having
+been
+transferred
+to
+Mrs
+Wickland
+While
+I
+did
+not
+know
+I
+was
+dead
+yet
+I
+felt
+I
+had
+to
+come
+to
+life
+again
+I
+found
+I
+had
+been
+brought
+to
+this
+little
+circle
+for
+help
+and
+I
+want
+to
+thank
+you
+all
+for
+waking
+me
+up
+I
+have
+no
+grudge
+against
+you
+for
+having
+given
+me
+that
+hell
+fire
+It
+helped
+me
+from
+hell
+to
+Heaven
+or
+as
+we
+like
+to
+call
+it
+the
+spirit
+world
+I
+found
+the
+hereafter
+very
+different
+from
+anything
+I
+ever
+dreamed
+of
+What
+do
+we
+think
+we
+ministers
+I
+want
+to
+say
+that
+we
+do
+not
+think
+at
+all
+We
+preach
+but
+we
+do
+not
+practice
+We
+do
+not
+realize
+what
+we
+are
+doing
+when
+we
+try
+to
+save
+people
+save
+them
+from
+what
+Since
+I
+left
+you
+and
+you
+gave
+me
+the
+true
+understanding
+of
+life
+as
+it
+is
+I
+have
+seen
+much
+I
+have
+learned
+much
+In
+the
+three
+years
+since
+I
+woke
+up
+I
+do
+not
+say
+three
+years
+since
+I
+passed
+out
+because
+the
+rest
+of
+the
+time
+I
+was
+in
+a
+dream
+state
+but
+in
+the
+three
+years
+since
+I
+have
+had
+an
+understanding
+of
+life
+everything
+has
+been
+so
+beautiful
+and
+I
+have
+been
+very
+happy
+and
+busy
+I
+have
+my
+hands
+full
+with
+my
+work
+My
+mission
+is
+to
+go
+to
+the
+religious
+fanatics
+in
+the
+spirit
+world
+and
+preach
+to
+them
+the
+truth
+They
+are
+in
+darkness
+They
+pray
+and
+sing
+and
+they
+think
+that
+Christ
+died
+for
+their
+sins
+All
+they
+do
+is
+to
+pray
+and
+sing
+and
+they
+do
+not
+get
+anywhere
+There
+are
+many
+people
+on
+the
+earth
+plane
+who
+go
+insane
+but
+they
+are
+only
+controlled
+by
+crazy
+spirits
+who
+are
+religious
+fanatics
+and
+all
+they
+do
+is
+sing
+and
+pray
+They
+are
+wild
+Some
+I
+cannot
+reach
+some
+I
+can
+turn
+to
+an
+understanding
+of
+the
+higher
+life
+I
+hope
+the
+time
+will
+come
+when
+the
+ministers
+who
+preach
+the
+gospel
+will
+preach
+a
+true
+interpretation
+of
+the
+Bible
+not
+the
+one
+Orthodoxy
+teaches
+Mrs
+W
+I
+want
+you
+to
+tell
+the
+Pastor
+of
+your
+church
+that
+I
+said
+he
+must
+not
+hide
+his
+light
+under
+a
+bushel
+but
+must
+teach
+the
+truth
+He
+must
+study
+and
+learn
+the
+true
+lesson
+of
+life
+He
+must
+give
+out
+the
+truth
+to
+his
+people
+Tell
+him
+I
+said
+he
+can
+give
+it
+out
+little
+by
+little
+and
+before
+he
+knows
+it
+he
+will
+have
+given
+them
+the
+whole
+truth
+and
+he
+will
+have
+many
+more
+people
+attending
+his
+church
+than
+he
+has
+now
+People
+do
+not
+believe
+now
+in
+the
+old
+dogmas
+but
+they
+want
+something
+the
+truth
+Tell
+him
+that
+I
+wanted
+you
+to
+say
+this
+to
+him
+I
+have
+found
+my
+home
+in
+the
+spirit
+world
+and
+am
+happy
+but
+I
+have
+a
+great
+deal
+to
+do
+I
+have
+to
+undo
+the
+wrong
+teaching
+I
+gave
+to
+the
+people
+when
+I
+was
+on
+earth
+I
+taught
+dogma
+and
+now
+I
+have
+to
+give
+them
+the
+truth
+Mrs
+W
+please
+forgive
+me
+for
+having
+obsessed
+your
+daughter
+I
+had
+no
+intention
+of
+doing
+what
+I
+did
+for
+I
+did
+it
+unconsciously
+Before
+I
+go
+I
+want
+to
+ask
+a
+favor
+of
+you
+Mrs
+W
+and
+that
+is
+tell
+Rev
+W
+to
+study
+and
+look
+into
+the
+truth
+before
+he
+comes
+to
+the
+spirit
+world
+so
+he
+will
+not
+be
+in
+darkness
+as
+I
+was
+Tell
+him
+he
+can
+give
+the
+truth
+to
+his
+people
+because
+the
+majority
+are
+ready
+for
+it
+It
+is
+very
+monotonous
+to
+sit
+and
+listen
+to
+the
+old
+time
+dogmas
+over
+and
+over
+again
+Tell
+him
+I
+said
+if
+he
+does
+not
+do
+this
+people
+will
+leave
+his
+church
+He
+is
+a
+good
+speaker
+and
+a
+good
+man
+and
+if
+he
+teaches
+the
+real
+truth
+as
+he
+will
+find
+it
+if
+he
+studies
+he
+will
+have
+many
+followers
+but
+if
+he
+keeps
+on
+with
+the
+old
+doctrine
+he
+will
+not
+have
+many
+attending
+his
+church
+If
+he
+interests
+his
+congregation
+and
+has
+a
+revival
+meeting
+to
+tell
+them
+he
+has
+found
+the
+real
+truth
+he
+will
+see
+things
+will
+soon
+be
+different
+Nearly
+every
+one
+in
+his
+church
+has
+been
+to
+some
+Spiritualist
+meeting
+They
+want
+the
+truth
+so
+tell
+him
+to
+give
+it
+to
+them
+Tell
+him
+the
+old
+people
+in
+the
+Home
+should
+be
+rightly
+taught
+because
+they
+will
+soon
+come
+to
+the
+spirit
+side
+of
+life
+and
+it
+is
+better
+that
+they
+should
+know
+about
+the
+land
+they
+are
+going
+to
+The
+young
+men
+of
+the
+present
+day
+do
+not
+want
+to
+be
+orthodox
+ministers
+They
+want
+other
+doctrines
+They
+know
+the
+old
+dogma
+is
+not
+the
+real
+truth
+and
+they
+do
+not
+want
+to
+preach
+contrary
+to
+their
+knowledge
+There
+are
+not
+many
+applications
+for
+the
+ministry
+now
+Tell
+Rev
+W
+if
+he
+will
+preach
+the
+truth
+he
+will
+have
+many
+young
+people
+in
+his
+church
+Tell
+him
+to
+present
+the
+ideas
+of
+the
+founder
+of
+his
+church
+John
+Wesley
+the
+founder
+of
+the
+Methodist
+Church
+lectured
+on
+spirit
+phenomena
+All
+he
+has
+to
+do
+is
+to
+present
+Wesley
+s
+doctrine
+Now
+I
+must
+go
+Good
+Night
+CHAPTER
+XIV
+Christian
+Science
+THE
+domination
+of
+any
+one
+fixed
+opinion
+to
+the
+exclusion
+of
+further
+mental
+growth
+holds
+the
+spirit
+in
+a
+state
+of
+nonprogression
+as
+has
+been
+attested
+by
+intelligences
+who
+on
+earth
+had
+held
+strongly
+to
+the
+Christian
+Science
+teaching
+regarding
+the
+non
+existence
+of
+matter
+and
+who
+have
+told
+of
+the
+difficulties
+encountered
+in
+freeing
+themselves
+A
+friend
+of
+ours
+had
+been
+a
+deep
+student
+of
+Christian
+Science
+and
+at
+the
+same
+time
+an
+investigator
+of
+the
+facts
+concerning
+spirit
+return
+Shortly
+after
+he
+had
+passed
+away
+he
+was
+brought
+to
+our
+circle
+to
+be
+awakened
+through
+controlling
+Mrs
+Wickland
+and
+has
+since
+told
+us
+something
+of
+the
+conditions
+in
+the
+spirit
+world
+EXPERIENCE
+JANUARY
+spirit
+MR
+H
+M
+Psychic
+MRS
+WICKLAND
+I
+am
+pleased
+to
+come
+here
+again
+I
+felt
+that
+I
+must
+take
+advantage
+of
+this
+evening
+to
+say
+something
+to
+my
+dear
+wife
+present
+in
+the
+circle
+I
+am
+so
+glad
+I
+can
+talk
+to
+her
+as
+we
+always
+talked
+I
+am
+happy
+she
+is
+here
+God
+bless
+you
+my
+wife
+We
+were
+so
+happy
+together
+I
+would
+not
+care
+to
+come
+back
+here
+at
+all
+if
+it
+were
+not
+that
+she
+is
+still
+on
+earth
+This
+world
+is
+only
+a
+school
+where
+we
+gain
+understanding
+through
+experience
+In
+the
+spirit
+world
+we
+go
+on
+and
+on
+progressing
+but
+before
+we
+can
+progress
+we
+must
+have
+understanding
+of
+the
+spiritual
+laws
+If
+we
+have
+not
+the
+right
+understanding
+then
+we
+remain
+in
+darkness
+and
+hover
+around
+the
+earth
+plane
+I
+am
+pleased
+that
+I
+had
+even
+a
+little
+knowledge
+of
+the
+higher
+life
+for
+when
+I
+reached
+there
+my
+spiritual
+eyes
+were
+open
+and
+I
+could
+see
+and
+realize
+the
+beauties
+of
+the
+spirit
+world
+I
+have
+met
+many
+of
+my
+dear
+friends
+on
+the
+spirit
+side
+of
+life
+Many
+whom
+I
+knew
+are
+still
+in
+darkness
+and
+I
+have
+tried
+to
+help
+them
+understand
+their
+transition
+If
+I
+could
+only
+express
+the
+conditions
+on
+the
+spirit
+side
+of
+life
+so
+that
+you
+would
+get
+the
+full
+meaning
+There
+is
+such
+beauty
+such
+harmony
+I
+have
+to
+thank
+little
+Silver
+Star
+one
+of
+Mrs
+Wickland
+s
+guides
+for
+having
+awakened
+me
+when
+I
+reached
+the
+other
+side
+Even
+with
+my
+knowledge
+of
+the
+other
+world
+I
+might
+have
+slept
+a
+long
+time
+because
+when
+I
+passed
+out
+I
+was
+in
+a
+heavy
+sleep
+from
+an
+opiate
+which
+was
+given
+me
+on
+account
+of
+the
+nature
+of
+my
+sickness
+But
+this
+little
+Indian
+girl
+called
+me
+by
+name
+and
+woke
+me
+up
+and
+brought
+me
+to
+the
+spirit
+world
+You
+know
+I
+had
+been
+sick
+for
+a
+long
+time
+and
+I
+was
+very
+sick
+before
+I
+passed
+out
+I
+made
+my
+mistake
+in
+trying
+for
+so
+long
+to
+cure
+myself
+Christian
+Science
+says
+we
+should
+overcome
+matter
+We
+cannot
+overcome
+matter
+by
+will
+When
+we
+are
+in
+the
+physical
+body
+and
+the
+body
+needs
+certain
+forces
+of
+which
+it
+is
+made
+if
+we
+do
+not
+get
+them
+in
+our
+food
+we
+must
+get
+them
+through
+medicine
+and
+so
+build
+up
+the
+body
+because
+will
+cannot
+conquer
+substance
+God
+has
+given
+us
+a
+will
+to
+use
+as
+a
+force
+in
+Nature
+and
+we
+should
+use
+it
+rightly
+When
+as
+Scientists
+we
+refuse
+to
+do
+this
+we
+must
+suffer
+the
+consequences
+I
+was
+an
+example
+of
+such
+a
+consequence
+I
+went
+into
+Science
+with
+full
+will
+power
+and
+full
+faith
+that
+there
+is
+no
+such
+thing
+as
+matter
+and
+that
+we
+should
+overcome
+it
+I
+tried
+and
+failed
+Mrs
+Eddy
+is
+suffering
+now
+for
+advancing
+that
+idea
+When
+you
+have
+a
+dress
+that
+is
+wearing
+out
+you
+try
+to
+get
+some
+material
+of
+the
+same
+color
+and
+quality
+with
+which
+to
+mend
+the
+dress
+We
+do
+not
+do
+that
+with
+our
+bodies
+We
+think
+the
+body
+should
+develop
+the
+substance
+it
+needs
+when
+it
+wears
+out
+I
+did
+not
+get
+enough
+elements
+in
+my
+food
+to
+build
+up
+my
+physical
+body
+my
+organs
+became
+atrophied
+and
+sluggish
+and
+were
+inactive
+because
+I
+did
+not
+take
+the
+right
+food
+to
+give
+them
+proper
+activity
+I
+should
+have
+gone
+to
+a
+physician
+to
+have
+them
+put
+in
+normal
+condition
+but
+instead
+I
+tried
+to
+use
+my
+will
+to
+make
+them
+work
+I
+tried
+by
+intelligence
+to
+overcome
+and
+build
+up
+the
+weak
+part
+of
+my
+body
+That
+is
+just
+as
+if
+one
+refused
+to
+mend
+a
+worn
+place
+in
+a
+dress
+insisting
+that
+no
+hole
+could
+come
+in
+that
+dress
+I
+was
+just
+as
+foolish
+about
+my
+body
+and
+I
+had
+to
+suffer
+the
+results
+When
+the
+body
+needs
+toning
+up
+we
+must
+do
+something
+to
+tone
+it
+up
+and
+to
+get
+the
+electric
+forces
+set
+right
+I
+passed
+out
+because
+I
+wore
+out
+my
+body
+with
+my
+mind
+and
+did
+not
+feed
+it
+or
+take
+sufficient
+care
+of
+it
+God
+gave
+us
+our
+bodies
+and
+He
+also
+gave
+us
+minds
+to
+take
+care
+of
+them
+If
+we
+become
+one
+sided
+and
+think
+mind
+is
+all
+then
+we
+get
+into
+trouble
+I
+took
+good
+care
+of
+my
+clothes
+but
+how
+little
+I
+took
+care
+of
+my
+body
+If
+I
+had
+paid
+half
+as
+much
+attention
+to
+my
+body
+as
+I
+did
+to
+my
+clothes
+I
+feel
+that
+I
+would
+have
+been
+on
+earth
+today
+Probably
+some
+day
+things
+will
+be
+so
+understood
+that
+there
+will
+be
+no
+death
+I
+mean
+that
+we
+will
+merely
+step
+out
+of
+the
+physical
+body
+into
+the
+spirit
+world
+If
+one
+would
+prepare
+himself
+for
+passing
+out
+of
+the
+body
+as
+he
+does
+for
+a
+journey
+he
+would
+be
+able
+to
+say
+Now
+I
+am
+ready
+to
+go
+I
+am
+through
+with
+this
+world
+It
+is
+time
+for
+me
+to
+go
+and
+I
+want
+to
+go
+to
+the
+spirit
+side
+of
+life
+Then
+there
+would
+be
+no
+dread
+Many
+Christian
+Scientists
+ruin
+their
+bodies
+by
+lack
+of
+right
+care
+and
+often
+go
+as
+far
+as
+I
+did
+they
+use
+will
+no
+reason
+and
+take
+improper
+nourishment
+or
+not
+enough
+I
+knew
+about
+ten
+years
+ago
+that
+I
+should
+attend
+to
+my
+inactive
+organs
+If
+I
+had
+had
+them
+attended
+to
+I
+would
+not
+have
+suffered
+as
+I
+did
+I
+suffered
+a
+great
+deal
+and
+I
+used
+my
+will
+to
+make
+inactive
+parts
+act
+I
+should
+have
+liked
+to
+remain
+on
+earth
+long
+enough
+to
+do
+the
+work
+I
+felt
+I
+should
+do
+but
+I
+will
+do
+the
+work
+on
+the
+spirit
+side
+of
+life
+and
+when
+my
+wife
+comes
+we
+will
+work
+together
+My
+dear
+wife
+if
+I
+had
+thought
+less
+of
+mental
+or
+Christian
+Science
+and
+given
+more
+thought
+to
+the
+material
+side
+of
+things
+then
+you
+would
+be
+in
+a
+better
+position
+than
+you
+are
+now
+I
+really
+lost
+all
+thought
+of
+things
+material
+and
+I
+guess
+I
+thought
+we
+could
+live
+on
+air
+and
+I
+always
+thought
+conditions
+would
+change
+some
+time
+I
+did
+not
+realize
+I
+was
+so
+hypnotized
+in
+my
+work
+that
+I
+hardly
+lived
+in
+the
+material
+world
+If
+it
+had
+not
+been
+for
+my
+wife
+I
+think
+that
+sometimes
+I
+would
+have
+forgotten
+that
+I
+should
+eat
+at
+all
+I
+thank
+God
+she
+was
+not
+so
+deeply
+interested
+in
+the
+work
+as
+I
+because
+then
+there
+might
+be
+two
+dead
+people
+Before
+leaving
+I
+must
+tell
+you
+of
+a
+little
+experience
+When
+I
+passed
+out
+I
+was
+awakened
+by
+hearing
+somebody
+say
+How
+do
+you
+do
+I
+listened
+and
+once
+again
+I
+heard
+the
+quaint
+voice
+of
+my
+little
+friend
+Silver
+Star
+Then
+I
+thought
+I
+must
+be
+in
+California
+because
+I
+remembered
+that
+Dr
+Wickland
+and
+his
+wife
+were
+there
+and
+I
+thought
+that
+Silver
+Star
+was
+speaking
+through
+Mrs
+Wickland
+Nobody
+says
+How
+do
+you
+do
+like
+Silver
+Star
+I
+did
+not
+realize
+that
+I
+had
+passed
+out
+of
+my
+body
+Again
+I
+heard
+Silver
+Star
+say
+How
+do
+you
+do
+in
+her
+strange
+way
+and
+then
+I
+began
+to
+wonder
+where
+I
+was
+All
+at
+once
+I
+seemed
+to
+be
+alive
+again
+Then
+I
+felt
+better
+I
+thought
+I
+must
+have
+gone
+through
+the
+crisis
+of
+my
+sickness
+and
+now
+I
+am
+feeling
+better
+and
+am
+waking
+up
+That
+was
+the
+time
+Silver
+Star
+brought
+me
+in
+to
+control
+Mrs
+Wickland
+I
+realized
+that
+I
+was
+weak
+from
+my
+sickness
+but
+having
+no
+pain
+I
+thought
+I
+was
+getting
+better
+I
+felt
+so
+light
+and
+strong
+that
+my
+first
+thought
+was
+that
+I
+could
+finish
+my
+book
+but
+when
+I
+really
+came
+to
+myself
+I
+heard
+Dr
+Wickland
+talking
+to
+me
+Then
+I
+thought
+Well
+how
+did
+I
+get
+to
+California
+How
+did
+I
+get
+here
+I
+must
+be
+dreaming
+It
+was
+some
+time
+before
+I
+realized
+where
+I
+was
+I
+did
+not
+even
+then
+realize
+that
+I
+was
+controlling
+Doctor
+asked
+me
+who
+I
+was
+I
+thought
+it
+strange
+that
+he
+did
+not
+know
+me
+but
+I
+told
+him
+that
+I
+was
+Mr
+M
+and
+asked
+whether
+he
+did
+not
+know
+me
+Doctor
+was
+very
+much
+surprised
+and
+explained
+as
+gently
+as
+he
+could
+that
+I
+had
+passed
+out
+of
+my
+mortal
+body
+a
+week
+before
+and
+was
+now
+a
+spirit
+That
+was
+the
+first
+time
+I
+realized
+that
+I
+had
+passed
+out
+of
+my
+physical
+body
+into
+a
+spiritual
+body
+It
+was
+very
+pleasant
+to
+think
+that
+I
+had
+wakened
+in
+a
+mortal
+body
+instead
+of
+in
+darkness
+Afterwards
+I
+saw
+many
+of
+my
+friends
+and
+I
+felt
+that
+there
+is
+no
+death
+Doctor
+talked
+to
+me
+for
+a
+while
+and
+then
+my
+father
+mother
+sister
+and
+brother
+all
+came
+to
+me
+and
+they
+brought
+many
+relatives
+and
+friends
+and
+we
+had
+a
+happy
+reunion
+one
+that
+can
+never
+be
+forgotten
+Only
+I
+wanted
+you
+my
+wife
+to
+be
+with
+me
+when
+I
+met
+all
+my
+relatives
+and
+friends
+When
+I
+realized
+that
+I
+was
+using
+an
+earthly
+body
+I
+felt
+sick
+again
+and
+my
+will
+power
+seemed
+to
+fail
+me
+I
+began
+to
+feel
+very
+weak
+and
+a
+sensation
+of
+sickness
+came
+over
+me
+I
+at
+once
+thought
+of
+my
+little
+friend
+Silver
+Star
+and
+she
+said
+I
+must
+throw
+away
+my
+old
+clothes
+because
+I
+had
+no
+use
+for
+my
+old
+body
+for
+I
+had
+new
+clothes
+now
+When
+I
+thought
+of
+my
+spiritual
+body
+I
+arose
+I
+felt
+I
+had
+new
+clothes
+and
+I
+received
+strength
+and
+left
+the
+physical
+altogether
+The
+magnetic
+current
+was
+cut
+and
+I
+dropped
+my
+old
+clothes
+entirely
+I
+was
+then
+lifted
+bodily
+so
+it
+seemed
+and
+I
+felt
+I
+was
+floating
+and
+we
+went
+through
+conditions
+of
+all
+kinds
+I
+felt
+so
+strange
+and
+saw
+so
+much
+that
+I
+grew
+fearful
+so
+they
+told
+me
+to
+shut
+my
+eyes
+and
+keep
+them
+shut
+which
+I
+did
+I
+did
+not
+know
+anything
+after
+that
+until
+they
+placed
+me
+on
+a
+beautiful
+bed
+I
+was
+very
+tired
+and
+all
+I
+wanted
+was
+to
+rest
+just
+rest
+When
+I
+awoke
+from
+that
+sleep
+of
+rest
+my
+relatives
+and
+friends
+were
+around
+me
+Somebody
+said
+Now
+you
+are
+well
+and
+strong
+and
+we
+will
+take
+a
+journey
+to
+our
+home
+in
+the
+spirit
+world
+We
+went
+to
+many
+of
+their
+homes
+Each
+had
+a
+little
+home
+We
+were
+united
+and
+happy
+for
+here
+only
+harmony
+exists
+We
+traveled
+from
+one
+place
+to
+another
+When
+I
+had
+been
+to
+visit
+quite
+a
+few
+friends
+they
+said
+Now
+you
+have
+seen
+the
+spirit
+side
+of
+life
+Here
+we
+are
+not
+idle
+This
+is
+not
+a
+world
+in
+which
+one
+is
+idle
+it
+is
+a
+world
+of
+busy
+minds
+It
+is
+each
+one
+s
+duty
+to
+work
+Now
+you
+are
+strong
+and
+we
+will
+take
+another
+journey
+to
+earth
+I
+wanted
+to
+see
+my
+wife
+so
+much
+You
+were
+in
+my
+mind
+so
+much
+my
+wife
+and
+I
+wanted
+to
+see
+you
+We
+passed
+through
+the
+spirit
+world
+and
+earth
+sphere
+to
+matter
+again
+The
+earth
+is
+a
+little
+globe
+The
+globe
+has
+a
+sphere
+around
+it
+The
+distance
+between
+the
+spirit
+world
+and
+the
+world
+of
+matter
+is
+about
+sixty
+miles
+This
+sphere
+is
+the
+world
+of
+the
+spirits
+in
+darkness
+Christ
+went
+to
+the
+spirits
+in
+darkness
+and
+prison
+the
+prison
+of
+ignorance
+We
+passed
+through
+conditions
+that
+cannot
+be
+described
+the
+most
+hideous
+the
+most
+fiendish
+so
+ugly
+that
+I
+cannot
+describe
+them
+It
+made
+me
+shudder
+to
+see
+the
+condition
+of
+the
+crippled
+minds
+the
+selfish
+minds
+the
+jealous
+minds
+Each
+had
+the
+countenance
+of
+his
+mind
+They
+were
+dressed
+as
+when
+on
+earth
+but
+only
+because
+of
+their
+minds
+They
+were
+like
+vermin
+They
+were
+like
+a
+lot
+of
+worms
+stirred
+up
+and
+crawling
+over
+one
+another
+Talk
+about
+hell
+that
+surely
+was
+hell
+They
+told
+me
+that
+was
+the
+earthbound
+sphere
+Then
+we
+came
+to
+matter
+again
+We
+saw
+the
+people
+walking
+around
+in
+a
+life
+of
+matter
+each
+one
+in
+some
+kind
+of
+business
+It
+looked
+like
+a
+world
+of
+ants
+and
+each
+one
+seemed
+to
+have
+some
+of
+these
+evil
+minded
+spirits
+clinging
+to
+him
+They
+are
+like
+the
+barnacles
+on
+boats
+some
+are
+shaken
+off
+but
+others
+come
+on
+I
+cannot
+describe
+the
+sight
+I
+have
+been
+with
+you
+my
+wife
+You
+have
+felt
+me
+I
+could
+not
+impress
+you
+because
+I
+was
+not
+strong
+enough
+to
+use
+my
+mind
+for
+that
+purpose
+but
+still
+you
+have
+felt
+me
+It
+has
+only
+been
+a
+little
+because
+I
+had
+not
+strength
+enough
+to
+come
+closer
+I
+am
+with
+you
+a
+great
+deal
+After
+I
+learn
+in
+spirit
+how
+to
+overcome
+matter
+then
+I
+can
+come
+to
+you
+and
+help
+you
+I
+will
+build
+a
+home
+for
+you
+in
+the
+spirit
+world
+and
+when
+that
+home
+is
+finished
+and
+your
+work
+here
+is
+done
+then
+I
+shall
+be
+the
+one
+to
+meet
+you
+and
+we
+will
+have
+a
+real
+home
+I
+want
+to
+thank
+you
+all
+for
+the
+privilege
+of
+coming
+to
+your
+little
+circle
+and
+would
+like
+to
+come
+again
+some
+other
+time
+An
+extract
+from
+another
+communication
+from
+Mr
+H
+M
+follows
+the
+same
+line
+of
+thought
+as
+the
+previous
+remarks
+EXPERIENCE
+NOVEMBER
+Spirit
+MR
+H
+M
+Psychic
+MRS
+WICKLAND
+I
+wish
+that
+I
+had
+had
+less
+belief
+that
+I
+could
+cure
+myself
+by
+thought
+Everything
+that
+God
+has
+put
+in
+Nature
+is
+for
+man
+to
+use
+not
+misuse
+We
+should
+not
+condemn
+anything
+that
+God
+has
+given
+the
+world
+to
+use
+but
+we
+have
+so
+many
+beliefs
+and
+creeds
+that
+we
+forget
+the
+principle
+of
+our
+Maker
+If
+we
+would
+understand
+His
+wonderful
+work
+through
+Nature
+we
+would
+love
+others
+better
+than
+we
+do
+Do
+not
+condemn
+anything
+but
+teach
+men
+and
+women
+to
+love
+each
+other
+teach
+them
+to
+know
+what
+their
+duties
+are
+in
+this
+mundane
+sphere
+Those
+on
+earth
+have
+so
+many
+creeds
+and
+fads
+that
+they
+drown
+themselves
+in
+their
+faith
+forgetting
+that
+it
+is
+their
+duty
+to
+help
+the
+weak
+ones
+instead
+of
+stepping
+on
+their
+feet
+So
+it
+is
+also
+with
+the
+body
+God
+gave
+us
+to
+take
+care
+of
+and
+not
+misuse
+For
+my
+part
+I
+should
+have
+done
+more
+to
+learn
+what
+was
+the
+matter
+with
+me
+instead
+of
+only
+thinking
+there
+was
+nothing
+the
+matter
+that
+I
+only
+imagined
+it
+and
+that
+there
+was
+no
+such
+thing
+as
+sickness
+If
+I
+had
+not
+hypnotized
+myself
+in
+that
+belief
+of
+Mrs
+Eddy
+s
+that
+mind
+should
+overcome
+matter
+and
+that
+it
+is
+only
+our
+mortal
+mind
+that
+is
+so
+called
+sick
+and
+we
+have
+not
+the
+right
+understanding
+if
+I
+had
+tried
+to
+find
+out
+what
+was
+the
+matter
+with
+me
+and
+called
+on
+some
+physician
+one
+who
+had
+studied
+anatomy
+and
+the
+philosophy
+of
+life
+one
+who
+had
+spent
+years
+in
+studying
+human
+nature
+and
+the
+human
+body
+I
+should
+have
+been
+better
+off
+Christian
+Scientists
+condemn
+physicians
+yet
+physicians
+have
+devoted
+their
+lives
+through
+centuries
+to
+the
+study
+and
+control
+of
+all
+sickness
+Should
+we
+condemn
+them
+and
+say
+there
+is
+no
+such
+thing
+as
+sickness
+Why
+should
+anybody
+condemn
+another
+who
+has
+devoted
+his
+whole
+life
+to
+study
+Christian
+Science
+says
+there
+is
+no
+such
+thing
+as
+sickness
+and
+that
+you
+are
+not
+in
+the
+understanding
+Suppose
+that
+in
+olden
+times
+we
+had
+held
+the
+theory
+that
+there
+is
+no
+matter
+How
+about
+Harvey
+He
+discovered
+the
+circulation
+of
+the
+blood
+Poor
+man
+He
+was
+killed
+because
+of
+his
+discovery
+he
+was
+killed
+by
+ignorant
+people
+who
+did
+not
+believe
+the
+truth
+So
+one
+thing
+after
+another
+has
+been
+discovered
+in
+human
+anatomy
+Yet
+Christian
+Scientists
+discard
+that
+altogether
+and
+also
+say
+that
+there
+is
+no
+such
+thing
+as
+the
+body
+I
+did
+not
+take
+care
+of
+the
+body
+that
+God
+gave
+me
+I
+thought
+mind
+should
+overcome
+it
+If
+I
+had
+consulted
+a
+physician
+I
+might
+even
+be
+with
+you
+today
+Do
+not
+let
+yourselves
+be
+hypnotized
+by
+ideas
+Every
+theory
+has
+some
+good
+in
+it
+but
+let
+us
+take
+the
+good
+and
+discard
+the
+rest
+As
+Mrs
+Eddy
+now
+sees
+these
+things
+she
+wishes
+she
+could
+correct
+many
+of
+her
+statements
+She
+now
+has
+to
+suffer
+for
+her
+mistakes
+and
+it
+is
+very
+hard
+for
+her
+Her
+followers
+come
+to
+the
+spirit
+side
+of
+life
+and
+expect
+to
+find
+things
+as
+she
+taught
+them
+Mrs
+Eddy
+herself
+has
+spoken
+in
+our
+circle
+several
+times
+and
+has
+brought
+invisible
+audiences
+which
+she
+endeavored
+to
+free
+from
+the
+misconceptions
+acquired
+from
+her
+teachings
+relating
+to
+the
+problems
+of
+life
+and
+matter
+EXPERIENCE
+FEBRUARY
+Spirit
+MARY
+BAKER
+EDDY
+Psychic
+MRS
+WICKLAND
+I
+am
+here
+again
+and
+I
+feel
+so
+sad
+Do
+not
+doubt
+me
+do
+not
+doubt
+me
+Why
+will
+people
+doubt
+me
+Help
+me
+God
+help
+me
+I
+am
+in
+a
+terrible
+condition
+I
+knew
+about
+the
+wonderful
+truth
+of
+the
+life
+beyond
+I
+knew
+it
+well
+while
+in
+life
+but
+I
+shut
+the
+door
+because
+I
+wanted
+a
+religion
+of
+my
+own
+Spiritualism
+belonged
+to
+the
+past
+days
+I
+wanted
+something
+new
+something
+higher
+something
+better
+than
+spirit
+return
+I
+taught
+that
+you
+must
+not
+let
+any
+entities
+control
+you
+or
+influence
+you
+or
+give
+you
+any
+inspiration
+but
+that
+you
+must
+be
+Yourself
+and
+develop
+yourself
+and
+be
+one
+with
+the
+Infinite
+Shut
+the
+door
+to
+the
+spirit
+world
+and
+be
+selfish
+that
+was
+I
+I
+had
+the
+truth
+of
+healing
+the
+sick
+I
+was
+a
+medium
+and
+in
+my
+younger
+days
+my
+childhood
+I
+was
+obsessed
+As
+I
+grew
+older
+no
+one
+knew
+what
+was
+the
+matter
+with
+me
+for
+I
+had
+such
+queer
+spells
+Now
+I
+know
+what
+it
+was
+an
+influence
+was
+controlling
+me
+whenever
+I
+had
+the
+spells
+I
+was
+of
+a
+very
+nervous
+temperament
+and
+I
+was
+cured
+of
+those
+spells
+by
+Dr
+Quimby
+He
+believed
+in
+the
+work
+of
+obsession
+I
+took
+some
+of
+his
+doctrine
+and
+used
+it
+for
+my
+own
+The
+doctrine
+would
+have
+been
+all
+right
+if
+I
+had
+not
+denied
+the
+finer
+forces
+in
+Nature
+I
+denied
+matter
+but
+friends
+as
+I
+told
+you
+one
+time
+I
+had
+a
+vision
+and
+I
+saw
+how
+they
+treated
+patients
+in
+the
+other
+world
+but
+at
+that
+time
+I
+thought
+it
+was
+a
+dream
+They
+were
+teaching
+the
+spirits
+that
+there
+is
+no
+such
+thing
+as
+matter
+They
+said
+Forget
+it
+is
+is
+only
+imagination
+You
+are
+not
+sick
+you
+just
+imagine
+it
+That
+belongs
+to
+matter
+That
+is
+only
+your
+mortal
+mind
+You
+should
+overcome
+and
+develop
+the
+spirit
+within
+you
+I
+thought
+that
+this
+vision
+meant
+that
+I
+was
+to
+teach
+that
+on
+earth
+and
+I
+set
+to
+work
+Now
+I
+see
+my
+mistake
+because
+there
+is
+matter
+and
+so
+long
+as
+you
+live
+on
+the
+material
+plane
+you
+will
+have
+to
+recognize
+matter
+When
+you
+reach
+the
+spirit
+side
+of
+life
+your
+mind
+has
+to
+be
+taught
+to
+overcome
+matter
+not
+cling
+to
+it
+because
+spirits
+in
+darkness
+are
+clinging
+to
+matter
+as
+much
+as
+we
+cling
+to
+matter
+when
+we
+have
+our
+physical
+bodies
+I
+took
+this
+and
+taught
+it
+and
+started
+on
+my
+work
+It
+was
+so
+misunderstood
+because
+I
+could
+not
+myself
+explain
+why
+matter
+was
+not
+If
+only
+I
+could
+get
+people
+to
+recognize
+matter
+and
+recognize
+the
+truth
+of
+life
+after
+this
+If
+I
+could
+only
+go
+back
+to
+my
+Church
+and
+teach
+the
+truth
+the
+genuine
+Truth
+of
+God
+God
+is
+the
+Spirit
+of
+the
+Universe
+and
+we
+are
+a
+part
+of
+that
+Great
+Spirit
+Understanding
+this
+we
+can
+overcome
+matter
+You
+are
+in
+the
+material
+body
+and
+you
+become
+sick
+You
+become
+sick
+because
+there
+is
+a
+lack
+of
+something
+in
+your
+body
+which
+you
+must
+have
+some
+element
+that
+helps
+in
+some
+way
+or
+another
+But
+your
+mind
+can
+help
+to
+overcome
+If
+I
+had
+taught
+that
+instead
+of
+denying
+matter
+altogether
+it
+would
+have
+been
+so
+much
+better
+I
+wanted
+money
+and
+we
+concentrated
+to
+have
+the
+grandest
+churches
+in
+the
+world
+My
+aim
+was
+to
+have
+churches
+of
+my
+own
+teaching
+all
+over
+the
+universe
+I
+lost
+the
+opportunity
+to
+develop
+people
+s
+finer
+nature
+the
+finer
+nature
+of
+men
+and
+women
+because
+I
+shut
+the
+door
+of
+love
+and
+sympathy
+Do
+not
+doubt
+who
+this
+is
+do
+not
+doubt
+me
+I
+am
+here
+I
+am
+here
+I
+am
+no
+more
+than
+any
+human
+being
+Mine
+was
+a
+life
+which
+did
+not
+do
+what
+it
+ought
+I
+want
+to
+be
+helped
+My
+people
+come
+to
+me
+and
+want
+help
+and
+I
+need
+help
+myself
+They
+cling
+to
+me
+and
+hold
+me
+down
+and
+I
+shut
+the
+door
+for
+their
+happiness
+We
+have
+only
+one
+mind
+You
+understand
+where
+I
+got
+the
+mortal
+mind
+part
+from
+I
+thought
+that
+should
+be
+taught
+here
+but
+it
+should
+only
+be
+taught
+beyond
+the
+grave
+beyond
+the
+veil
+and
+only
+to
+the
+earthbound
+spirits
+who
+are
+in
+darkness
+and
+cling
+to
+matter
+That
+should
+be
+taught
+on
+the
+spirit
+side
+of
+life
+and
+not
+on
+the
+earth
+plane
+Have
+love
+and
+sympathy
+and
+do
+the
+very
+best
+you
+know
+how
+for
+others
+I
+could
+not
+leave
+this
+matter
+alone
+and
+I
+do
+not
+feel
+that
+I
+should
+because
+it
+crushes
+me
+so
+I
+came
+to
+this
+circle
+because
+so
+many
+have
+been
+helped
+here
+I
+go
+from
+one
+place
+to
+another
+and
+you
+will
+hear
+of
+me
+at
+different
+intervals
+because
+I
+can
+explain
+to
+a
+few
+at
+each
+place
+and
+in
+that
+way
+people
+will
+wake
+up
+We
+cannot
+do
+much
+yet
+but
+will
+you
+allow
+me
+to
+come
+here
+once
+in
+a
+while
+when
+I
+see
+I
+can
+be
+helped
+You
+know
+I
+have
+so
+many
+people
+who
+hold
+me
+down
+and
+say
+Why
+did
+you
+teach
+this
+Why
+did
+you
+shut
+the
+door
+for
+us
+Give
+us
+light
+give
+us
+light
+and
+understanding
+So
+many
+people
+are
+here
+but
+they
+cling
+to
+matter
+So
+many
+of
+my
+people
+are
+here
+and
+in
+talking
+with
+you
+I
+talk
+to
+them
+You
+understand
+I
+knew
+the
+real
+truth
+but
+I
+shut
+the
+door
+I
+cannot
+open
+the
+door
+to
+many
+of
+my
+followers
+because
+I
+shut
+the
+door
+for
+them
+and
+closed
+the
+door
+for
+myself
+and
+when
+they
+pass
+out
+the
+door
+is
+closed
+They
+want
+me
+to
+help
+them
+and
+when
+I
+explain
+things
+to
+them
+in
+the
+true
+light
+they
+doubt
+me
+and
+say
+that
+I
+am
+not
+Mrs
+Eddy
+because
+she
+did
+not
+preach
+such
+lessons
+I
+thank
+you
+for
+giving
+me
+this
+little
+time
+Tonight
+many
+of
+my
+followers
+came
+with
+me
+and
+through
+my
+talk
+to
+you
+they
+will
+be
+helped
+Their
+subconsciousness
+which
+is
+asleep
+must
+be
+awakened
+Question
+Is
+the
+little
+pamphlet
+recently
+published
+called
+Confession
+by
+Mrs
+Eddy
+from
+the
+Spirit
+World
+authentic
+Spirit
+Certainly
+it
+is
+I
+am
+trying
+through
+every
+avenue
+to
+speak
+I
+am
+not
+going
+to
+stop
+here
+I
+will
+take
+advantage
+of
+every
+chance
+there
+is
+for
+me
+to
+tell
+the
+truth
+and
+reach
+my
+people
+You
+may
+hear
+from
+others
+that
+I
+have
+talked
+with
+them
+I
+will
+bring
+up
+the
+above
+subject
+here
+and
+there
+People
+doubt
+me
+now
+but
+I
+shall
+keep
+on
+I
+will
+not
+rest
+We
+will
+have
+centers
+for
+the
+work
+I
+want
+you
+here
+to
+help
+me
+spread
+the
+news
+not
+much
+just
+a
+little
+thought
+now
+and
+then
+will
+help
+I
+will
+get
+my
+people
+together
+and
+bring
+them
+here
+and
+talk
+to
+them
+if
+I
+may
+come
+once
+in
+a
+while
+for
+I
+can
+reach
+them
+more
+easily
+when
+I
+control
+a
+mortal
+body
+God
+bless
+you
+all
+and
+again
+I
+thank
+you
+for
+the
+privilege
+of
+having
+this
+opportunity
+of
+speaking
+to
+some
+of
+my
+people
+and
+helping
+them
+Further
+evidence
+of
+the
+fact
+that
+Mrs
+Eddy
+when
+on
+earth
+knew
+the
+truth
+regarding
+the
+spirit
+side
+of
+life
+and
+the
+earthbound
+condition
+is
+found
+in
+one
+of
+the
+early
+editions
+of
+the
+Christian
+Science
+text
+book
+in
+the
+chapter
+on
+The
+Science
+of
+Being
+If
+the
+Principle
+rule
+and
+demonstration
+of
+Being
+are
+not
+in
+the
+least
+understood
+before
+what
+is
+termed
+death
+overtakes
+mortals
+they
+will
+rise
+no
+higher
+in
+the
+scale
+of
+existence
+at
+that
+single
+point
+of
+experience
+but
+will
+remain
+as
+material
+as
+before
+the
+transition
+still
+seeking
+happiness
+through
+a
+material
+instead
+of
+through
+a
+spiritual
+sense
+of
+Life
+and
+from
+selfish
+and
+inferior
+motives
+So
+long
+as
+the
+error
+or
+belief
+lasts
+that
+life
+and
+mind
+are
+finite
+and
+physical
+and
+are
+manifested
+through
+brain
+and
+nerves
+so
+long
+the
+penalty
+of
+sickness
+sin
+and
+death
+will
+continue
+To
+the
+other
+the
+spiritual
+class
+relates
+the
+scripture
+On
+such
+the
+second
+death
+hath
+no
+power
+A
+spirit
+who
+had
+become
+fanatical
+over
+the
+Christian
+Science
+teachings
+was
+brought
+in
+by
+Mrs
+Eddy
+as
+an
+example
+of
+the
+difficulties
+which
+she
+encountered
+in
+the
+work
+of
+enlightening
+her
+followers
+EXPERIENCE
+JUNE
+Spirit
+NAME
+UNKNOWN
+Psychic
+MRS
+WICKLAND
+Spirit
+What
+kind
+of
+a
+meeting
+is
+this
+Doctor
+This
+meeting
+is
+held
+for
+the
+purpose
+of
+helping
+ignorant
+spirits
+spirits
+in
+darkness
+Sp
+We
+should
+not
+sing
+so
+much
+as
+we
+do
+for
+that
+belongs
+to
+the
+mortal
+mind
+We
+should
+be
+quiet
+and
+concentrate
+our
+minds
+to
+understand
+Dr
+To
+understand
+what
+Sp
+The
+true
+understanding
+Dr
+What
+is
+that
+Sp
+The
+Spirit
+of
+God
+Dr
+And
+what
+is
+that
+Sp
+If
+you
+do
+not
+know
+then
+you
+had
+better
+study
+and
+understand
+Dr
+If
+you
+can
+tell
+us
+something
+about
+God
+or
+Spirit
+we
+should
+all
+be
+glad
+to
+hear
+it
+Sp
+God
+is
+All
+in
+All
+and
+we
+are
+a
+part
+of
+that
+great
+Divinity
+We
+should
+concentrate
+and
+put
+our
+mind
+toward
+the
+Great
+Spirit
+We
+should
+develop
+the
+finer
+forces
+within
+us
+but
+I
+am
+not
+here
+to
+talk
+to
+any
+one
+Dr
+Should
+you
+not
+like
+to
+enlighten
+us
+Sp
+I
+do
+not
+know
+if
+you
+belong
+to
+The
+Church
+Dr
+Did
+you
+not
+say
+that
+God
+is
+All
+in
+All
+Then
+we
+are
+a
+part
+of
+Him
+also
+Sp
+If
+you
+have
+the
+right
+understanding
+you
+are
+If
+you
+do
+not
+have
+that
+understanding
+then
+you
+are
+not
+you
+are
+more
+of
+the
+mortal
+mind
+Dr
+Are
+we
+not
+a
+part
+of
+God
+if
+God
+is
+All
+in
+All
+Sp
+I
+do
+not
+care
+to
+answer
+your
+questions
+Dr
+Is
+the
+mortal
+mind
+also
+of
+God
+What
+happens
+to
+people
+after
+death
+Sp
+I
+have
+nothing
+to
+do
+with
+death
+Dr
+Have
+you
+found
+God
+Sp
+God
+is
+within
+you
+when
+you
+have
+the
+right
+understanding
+of
+His
+wonderful
+works
+Dr
+How
+is
+it
+with
+yourself
+Sp
+I
+am
+one
+with
+that
+Great
+Spirit
+because
+I
+have
+understanding
+Dr
+Understanding
+of
+what
+Sp
+God
+and
+how
+to
+develop
+your
+own
+self
+Dr
+As
+far
+as
+I
+can
+tell
+you
+have
+developed
+selfishness
+Sp
+That
+all
+belongs
+to
+the
+mortal
+mind
+Dr
+What
+happens
+to
+people
+when
+they
+lose
+their
+bodies
+Sp
+They
+go
+back
+to
+the
+Infinite
+Dr
+Where
+do
+they
+go
+Sp
+Don
+t
+you
+know
+I
+know
+but
+I
+do
+not
+care
+to
+speak
+of
+it
+I
+do
+not
+argue
+I
+know
+myself
+but
+I
+do
+not
+like
+to
+teach
+I
+am
+one
+of
+His
+Elect
+Dr
+Then
+you
+do
+not
+like
+to
+teach
+ignorant
+people
+Sp
+No
+I
+do
+not
+Dr
+What
+church
+do
+you
+belong
+to
+Sp
+I
+belong
+to
+The
+Church
+of
+Understanding
+Dr
+Where
+does
+it
+exist
+Sp
+It
+is
+the
+church
+that
+should
+be
+all
+over
+the
+world
+the
+church
+where
+the
+people
+understand
+and
+know
+they
+can
+overcome
+matter
+and
+overcome
+mortal
+mind
+and
+be
+one
+with
+the
+Infinite
+Dr
+Are
+you
+a
+Christian
+Scientist
+Sp
+Yes
+Why
+do
+I
+have
+to
+come
+down
+to
+such
+mortalminded
+people
+Dr
+Don
+t
+you
+think
+you
+must
+have
+made
+some
+misstep
+which
+brought
+you
+down
+to
+such
+people
+as
+we
+are
+Don
+t
+you
+think
+if
+you
+had
+read
+and
+studied
+the
+Bible
+and
+had
+acquired
+an
+understanding
+of
+the
+real
+mystery
+of
+life
+it
+would
+have
+given
+you
+more
+peace
+of
+mind
+Isn
+t
+it
+strange
+that
+you
+should
+come
+down
+to
+such
+common
+clay
+as
+we
+are
+Sp
+I
+suppose
+I
+have
+come
+here
+to
+do
+some
+missionary
+work
+among
+you
+I
+suppose
+I
+came
+to
+teach
+you
+to
+forget
+mortal
+mind
+You
+should
+all
+be
+loving
+and
+kind
+one
+with
+the
+Infinite
+You
+are
+not
+in
+the
+understanding
+I
+may
+have
+come
+to
+lead
+you
+up
+to
+God
+to
+the
+right
+understanding
+I
+must
+help
+you
+all
+to
+understand
+You
+must
+take
+the
+first
+step
+and
+read
+Mrs
+Eddy
+s
+books
+then
+you
+will
+be
+one
+with
+the
+Infinite
+and
+leave
+all
+mortal
+mind
+behind
+You
+go
+on
+and
+on
+You
+have
+to
+go
+through
+a
+great
+deal
+to
+get
+understanding
+You
+can
+be
+led
+up
+to
+the
+Infinite
+God
+if
+you
+read
+and
+study
+You
+have
+not
+understanding
+of
+the
+Infinite
+Dr
+What
+does
+that
+Infinite
+Understanding
+call
+you
+Sp
+I
+do
+not
+care
+to
+talk
+or
+argue
+with
+you
+Dr
+What
+did
+they
+call
+you
+when
+you
+had
+a
+mortal
+mind
+Sp
+Call
+me
+Names
+belong
+to
+the
+mortal
+mind
+and
+I
+have
+nothing
+to
+do
+with
+that
+It
+degrades
+one
+and
+drags
+one
+down
+I
+came
+to
+teach
+you
+regarding
+the
+Infinite
+the
+Spirit
+within
+you
+Dr
+Do
+we
+have
+to
+give
+you
+two
+dollars
+for
+your
+teaching
+Sp
+That
+belongs
+to
+the
+mortal
+mind
+Develop
+the
+Spark
+of
+the
+Divine
+within
+you
+then
+you
+will
+rise
+to
+the
+Infinite
+God
+Dr
+Do
+you
+suppose
+we
+could
+ever
+climb
+so
+high
+Sp
+Yes
+by
+studying
+and
+studying
+It
+is
+the
+only
+salvation
+for
+you
+Dr
+You
+seem
+to
+have
+gone
+so
+far
+that
+you
+cannot
+join
+in
+anything
+with
+us
+Sp
+I
+have
+passed
+beyond
+mortal
+mind
+and
+we
+do
+not
+need
+to
+go
+back
+we
+go
+forward
+Dr
+It
+hurts
+to
+come
+down
+to
+mortal
+mind
+again
+doesn
+t
+it
+There
+is
+an
+old
+saying
+that
+What
+goes
+up
+must
+come
+down
+Sp
+What
+kind
+of
+people
+are
+you
+Dr
+We
+are
+just
+common
+sense
+people
+just
+mortal
+mind
+people
+Sp
+Then
+I
+must
+raise
+you
+to
+a
+higher
+level
+Dr
+What
+is
+your
+name
+Sp
+Just
+call
+me
+Infinite
+Dr
+Christ
+went
+among
+sinners
+Are
+you
+better
+than
+He
+Sp
+I
+am
+one
+with
+the
+Infinite
+God
+myself
+Dr
+Have
+you
+seen
+God
+Sp
+God
+is
+within
+you
+You
+are
+a
+part
+of
+the
+Infinite
+You
+are
+happy
+with
+Him
+the
+God
+of
+the
+Universe
+just
+beautiful
+Bliss
+and
+Harmony
+Dr
+How
+did
+you
+happen
+to
+come
+here
+Sp
+I
+suppose
+I
+came
+to
+be
+your
+teacher
+Dr
+You
+spoke
+of
+going
+forward
+and
+that
+God
+is
+All
+in
+All
+Is
+He
+within
+you
+Sp
+I
+am
+one
+with
+the
+Infinite
+I
+am
+in
+love
+with
+the
+Lord
+and
+the
+Infinite
+You
+people
+here
+are
+still
+in
+your
+mortal
+caskets
+You
+do
+not
+know
+anything
+Dr
+That
+is
+a
+very
+elaborate
+statement
+Sp
+We
+have
+to
+overcome
+it
+is
+just
+an
+error
+Dr
+On
+your
+part
+or
+ours
+Sp
+I
+must
+help
+you
+to
+climb
+higher
+I
+came
+to
+be
+a
+teacher
+to
+you
+all
+to
+help
+you
+to
+understand
+and
+become
+one
+with
+the
+Infinite
+Dr
+Probably
+an
+exchange
+of
+ideas
+might
+be
+helpful
+SP
+I
+do
+not
+need
+any
+teaching
+I
+am
+one
+with
+the
+All
+in
+All
+Dr
+What
+do
+scientists
+think
+will
+happen
+when
+they
+die
+SP
+They
+shall
+be
+a
+part
+of
+the
+Divine
+I
+was
+a
+follower
+in
+one
+of
+the
+churches
+of
+Christian
+Science
+I
+belonged
+to
+the
+Mother
+Church
+in
+Boston
+I
+am
+one
+of
+the
+Elect
+Dr
+Did
+you
+ever
+see
+Mrs
+Eddy
+Sp
+Mrs
+Eddy
+is
+Christ
+Himself
+She
+is
+my
+Christ
+she
+is
+God
+Himself
+She
+is
+the
+most
+wonderful
+woman
+on
+earth
+and
+she
+is
+the
+one
+we
+should
+worship
+Dr
+How
+long
+have
+you
+been
+so
+radical
+on
+that
+subject
+Sp
+I
+will
+not
+answer
+you
+Dr
+How
+long
+has
+Mrs
+Eddy
+been
+dead
+Sp
+I
+do
+not
+care
+to
+argue
+with
+you
+Dr
+Who
+died
+first
+you
+or
+Mrs
+Eddy
+Sp
+With
+asperity
+I
+will
+not
+answer
+your
+questions
+Dr
+I
+did
+not
+think
+you
+had
+so
+much
+malicious
+magnetism
+Sp
+Mrs
+Eddy
+never
+died
+She
+never
+will
+because
+she
+is
+the
+Teacher
+of
+the
+Infinite
+Spirit
+Dr
+Have
+you
+ever
+seen
+Mrs
+Eddy
+Sp
+She
+is
+in
+Boston
+Dr
+She
+is
+dead
+Sp
+She
+is
+not
+dead
+and
+she
+never
+will
+die
+Dr
+Mrs
+Eddy
+died
+several
+years
+ago
+Sp
+Her
+teachings
+were
+that
+she
+would
+never
+die
+She
+will
+go
+from
+the
+mortal
+casket
+into
+the
+Infinite
+Dr
+How
+long
+is
+it
+since
+you
+died
+Sp
+I
+did
+not
+die
+I
+only
+left
+my
+mortal
+casket
+I
+was
+a
+fine
+practitioner
+Dr
+How
+did
+you
+come
+to
+Los
+Angeles
+California
+Sp
+I
+am
+not
+in
+Los
+Angeles
+I
+am
+in
+Boston
+Dr
+Some
+intelligent
+spirits
+have
+brought
+you
+here
+to
+be
+helped
+But
+the
+entity
+was
+so
+wrapped
+in
+her
+own
+ideas
+that
+she
+would
+not
+listen
+to
+anything
+else
+and
+was
+taken
+away
+after
+which
+Mrs
+Eddy
+came
+EXPERIENCE
+JUNE
+Spirit
+MARY
+BAKER
+EDDY
+Psychic
+MRS
+WICKLAND
+Good
+Evening
+I
+am
+Mrs
+Eddy
+Mary
+Baker
+Eddy
+I
+wanted
+to
+come
+back
+here
+again
+to
+give
+you
+one
+demonstration
+of
+what
+I
+have
+had
+to
+deal
+with
+Referring
+to
+preceding
+spirit
+I
+cannot
+do
+anything
+with
+people
+when
+they
+are
+like
+that
+until
+they
+contact
+matter
+again
+I
+feel
+so
+sad
+and
+sorry
+for
+I
+shut
+the
+door
+myself
+I
+want
+you
+to
+let
+me
+come
+here
+and
+extend
+help
+to
+a
+great
+number
+of
+spirits
+by
+speaking
+through
+the
+psychic
+to
+an
+invisible
+audience
+that
+have
+the
+same
+understanding
+of
+my
+doctrine
+If
+I
+had
+only
+opened
+the
+door
+of
+the
+real
+spiritual
+understanding
+and
+taught
+the
+real
+truth
+on
+earth
+things
+would
+be
+different
+I
+knew
+I
+had
+the
+truth
+We
+should
+unite
+and
+be
+one
+strong
+body
+because
+I
+know
+there
+is
+power
+in
+concentration
+and
+I
+only
+wish
+that
+I
+could
+have
+the
+whole
+world
+understand
+this
+doctrine
+If
+I
+could
+only
+come
+back
+and
+tell
+my
+people
+what
+I
+now
+have
+to
+do
+You
+saw
+the
+demonstration
+you
+had
+here
+tonight
+I
+asked
+the
+Band
+of
+Mercy
+to
+bring
+one
+of
+my
+followers
+in
+to
+show
+what
+I
+have
+to
+deal
+with
+With
+this
+one
+we
+could
+probably
+demonstrate
+to
+a
+hundred
+similar
+spirits
+the
+folly
+of
+the
+mortal
+mind
+idea
+Concentrate
+your
+mind
+over
+and
+over
+again
+and
+again
+round
+and
+round
+and
+read
+and
+read
+that
+was
+the
+way
+I
+taught
+one
+was
+to
+reach
+understanding
+I
+said
+my
+followers
+should
+read
+my
+books
+and
+read
+them
+and
+read
+them
+until
+they
+became
+second
+nature
+When
+you
+are
+in
+matter
+the
+mind
+has
+to
+have
+some
+food
+But
+when
+my
+people
+pass
+to
+the
+spirit
+side
+of
+life
+and
+matter
+is
+no
+more
+and
+they
+have
+thrown
+off
+the
+mortal
+error
+you
+see
+just
+where
+they
+are
+What
+can
+I
+do
+with
+them
+How
+much
+could
+you
+do
+with
+them
+under
+similar
+circumstances
+There
+is
+my
+work
+and
+more
+is
+coming
+Every
+day
+there
+are
+more
+and
+more
+people
+coming
+I
+try
+to
+help
+them
+because
+I
+taught
+mortal
+error
+and
+did
+not
+teach
+the
+truth
+I
+feel
+so
+sad
+and
+I
+do
+wish
+I
+could
+tell
+them
+to
+open
+the
+door
+for
+the
+spirit
+of
+understanding
+and
+not
+keep
+on
+just
+reading
+and
+reading
+and
+concentrating
+In
+every
+church
+all
+over
+the
+United
+States
+where
+we
+have
+churches
+they
+use
+the
+same
+lesson
+on
+the
+same
+Sunday
+They
+form
+a
+circle
+round
+and
+round
+and
+you
+must
+know
+they
+form
+a
+very
+strong
+magnet
+and
+draw
+people
+into
+the
+same
+condition
+When
+they
+come
+here
+they
+cling
+to
+me
+cling
+to
+me
+so
+closely
+and
+what
+am
+I
+to
+do
+If
+I
+tell
+them
+the
+common
+sense
+things
+I
+should
+have
+taught
+them
+they
+will
+not
+believe
+I
+knew
+I
+had
+the
+real
+truth
+and
+I
+had
+power
+but
+I
+was
+selfish
+I
+wanted
+to
+have
+a
+religion
+of
+my
+own
+I
+wanted
+one
+that
+the
+whole
+world
+should
+know
+What
+have
+I
+now
+When
+my
+people
+pass
+to
+the
+spirit
+side
+of
+life
+the
+door
+is
+closed
+and
+I
+cannot
+open
+it
+What
+progress
+could
+you
+make
+with
+the
+spirit
+you
+had
+here
+tonight
+I
+thank
+the
+Mercy
+Band
+and
+all
+of
+you
+here
+because
+through
+this
+experience
+we
+took
+this
+spirit
+to
+the
+spirit
+world
+and
+they
+will
+teach
+her
+through
+object
+lessons
+There
+were
+many
+Scientists
+here
+tonight
+and
+they
+saw
+how
+foolish
+it
+all
+is
+their
+eyes
+were
+opened
+and
+the
+spirit
+friends
+took
+them
+away
+with
+them
+The
+one
+here
+we
+could
+not
+do
+much
+with
+but
+she
+was
+an
+object
+lesson
+to
+teach
+the
+others
+and
+in
+time
+she
+will
+be
+helped
+My
+people
+read
+and
+read
+and
+the
+majority
+come
+over
+here
+without
+any
+understanding
+I
+closed
+the
+door
+for
+my
+people
+and
+it
+is
+hard
+It
+is
+easy
+for
+them
+so
+long
+as
+they
+are
+in
+the
+mortal
+body
+but
+when
+they
+have
+lost
+the
+mortal
+body
+they
+see
+nothing
+For
+them
+there
+is
+no
+spirit
+world
+it
+is
+all
+Infinite
+I
+taught
+them
+to
+close
+the
+door
+to
+the
+spirit
+world
+and
+I
+taught
+them
+to
+read
+only
+my
+books
+I
+wanted
+a
+religion
+of
+my
+own
+I
+was
+a
+trance
+medium
+and
+I
+gave
+readings
+but
+I
+must
+confess
+I
+felt
+that
+was
+too
+common
+I
+wanted
+to
+reach
+more
+intelligent
+people
+because
+I
+found
+that
+Spiritualism
+would
+not
+reach
+the
+people
+I
+wanted
+to
+reach
+so
+I
+took
+Quimby
+s
+doctrine
+and
+also
+as
+I
+told
+you
+previously
+the
+vision
+I
+had
+of
+mortal
+mind
+in
+the
+spirit
+world
+and
+combined
+the
+two
+I
+want
+it
+understood
+that
+I
+used
+to
+give
+readings
+in
+Boston
+I
+was
+very
+selfish
+and
+wanted
+to
+be
+somebody
+and
+have
+some
+kind
+of
+a
+religion
+where
+I
+could
+have
+a
+following
+I
+wished
+once
+that
+on
+my
+birthday
+church
+bells
+all
+over
+the
+United
+States
+would
+ring
+and
+before
+I
+died
+I
+had
+that
+wish
+I
+wanted
+to
+be
+one
+that
+would
+be
+looked
+up
+to
+I
+was
+brought
+up
+in
+such
+orthodoxy
+that
+I
+would
+not
+have
+anything
+to
+do
+with
+any
+of
+the
+churches
+I
+went
+into
+Spiritualism
+first
+and
+found
+that
+was
+much
+better
+than
+Orthodoxy
+so
+I
+followed
+it
+for
+some
+years
+but
+I
+felt
+I
+could
+not
+get
+very
+far
+with
+it
+and
+in
+the
+end
+I
+was
+obsessed
+What
+I
+saw
+in
+visions
+I
+put
+in
+Science
+and
+Health
+That
+book
+was
+written
+through
+the
+visions
+I
+had
+It
+was
+not
+from
+my
+own
+brain
+If
+only
+with
+that
+I
+had
+given
+the
+truth
+which
+my
+brother
+wanted
+me
+to
+he
+was
+in
+the
+spirit
+world
+but
+I
+would
+not
+I
+did
+things
+Albert
+brother
+said
+I
+should
+not
+do
+and
+I
+closed
+the
+door
+for
+him
+During
+the
+last
+of
+my
+days
+I
+was
+not
+myself
+very
+much
+All
+through
+life
+I
+was
+back
+and
+forth
+on
+the
+invisible
+plane
+You
+know
+I
+was
+a
+psychic
+and
+I
+could
+have
+been
+a
+very
+good
+one
+and
+have
+done
+more
+good
+to
+the
+world
+through
+my
+psychic
+power
+than
+I
+did
+At
+the
+last
+I
+was
+too
+obsessed
+to
+be
+responsible
+for
+all
+I
+was
+doing
+If
+I
+had
+used
+my
+psychic
+power
+I
+could
+have
+helped
+thousands
+Now
+I
+have
+to
+deal
+with
+what
+you
+saw
+here
+tonight
+So
+long
+as
+my
+people
+are
+in
+the
+mortal
+body
+they
+are
+all
+right
+but
+once
+the
+body
+is
+lost
+things
+go
+round
+and
+round
+My
+followers
+are
+in
+just
+as
+bad
+a
+condition
+as
+are
+those
+who
+followed
+orthodoxy
+When
+they
+pass
+out
+of
+the
+body
+everything
+they
+see
+is
+mortal
+mind
+Possibly
+you
+felt
+sorry
+you
+did
+not
+convert
+the
+spirit
+you
+had
+here
+tonight
+but
+while
+not
+successful
+with
+her
+hundreds
+of
+others
+were
+converted
+through
+seeing
+how
+foolish
+it
+all
+is
+and
+were
+helped
+through
+your
+talk
+This
+room
+was
+crowded
+with
+people
+and
+I
+hope
+you
+will
+all
+be
+liberal
+enough
+to
+never
+shut
+the
+door
+for
+the
+beautiful
+truth
+of
+spirit
+return
+I
+bless
+you
+all
+and
+give
+you
+my
+solid
+support
+and
+help
+and
+I
+hope
+you
+will
+allow
+me
+to
+bring
+more
+unfortunate
+ones
+sometime
+I
+thank
+you
+for
+keeping
+the
+door
+open
+for
+me
+to
+come
+I
+am
+only
+mortal
+and
+I
+am
+not
+of
+the
+Real
+Infinite
+either
+We
+all
+have
+our
+ups
+and
+downs
+here
+as
+well
+as
+on
+the
+other
+side
+of
+life
+People
+think
+that
+they
+change
+their
+condition
+when
+they
+die
+but
+they
+do
+not
+My
+people
+are
+especially
+fixed
+because
+everything
+with
+them
+outside
+of
+themselves
+is
+mortal
+mind
+and
+their
+own
+mind
+is
+Infinite
+Many
+who
+were
+followers
+of
+my
+Church
+have
+gone
+into
+New
+Thought
+From
+New
+Thought
+they
+come
+into
+a
+more
+spiritual
+understanding
+New
+Thought
+is
+more
+liberal
+In
+New
+Thought
+they
+branch
+out
+and
+being
+liberal
+will
+look
+into
+spirit
+return
+They
+are
+more
+liberal
+in
+their
+reading
+of
+books
+I
+forbade
+my
+people
+to
+read
+anything
+but
+Science
+books
+That
+was
+because
+of
+my
+selfishness
+I
+wanted
+a
+church
+of
+my
+own
+with
+my
+people
+under
+my
+thumb
+How
+I
+do
+wish
+I
+had
+taught
+obsession
+which
+I
+knew
+was
+true
+but
+I
+did
+not
+When
+I
+used
+to
+go
+into
+trances
+I
+wrote
+a
+great
+deal
+and
+when
+I
+came
+to
+myself
+I
+would
+deny
+what
+I
+got
+I
+was
+obsessed
+by
+some
+spirit
+who
+wanted
+me
+to
+do
+such
+work
+and
+I
+could
+not
+really
+help
+myself
+If
+I
+had
+written
+the
+books
+as
+they
+were
+given
+to
+me
+and
+credited
+their
+source
+I
+might
+have
+revolutionized
+the
+world
+I
+again
+want
+to
+thank
+you
+and
+hope
+I
+can
+come
+another
+time
+I
+also
+want
+to
+thank
+you
+lady
+Mrs
+M
+mentioned
+in
+the
+first
+experience
+of
+this
+chapter
+because
+your
+husband
+helped
+me
+in
+the
+very
+beginning
+In
+the
+spirit
+world
+He
+was
+one
+that
+helped
+me
+to
+a
+better
+understanding
+and
+brought
+me
+here
+where
+I
+could
+get
+help
+I
+hope
+you
+will
+have
+all
+the
+success
+you
+wish
+Concentrate
+your
+mind
+on
+success
+and
+have
+no
+fear
+that
+you
+will
+not
+succeed
+and
+all
+over
+the
+world
+will
+spread
+this
+wonderful
+truth
+of
+spirit
+return
+and
+obsession
+and
+through
+your
+obsession
+work
+you
+will
+cure
+many
+more
+people
+than
+I
+did
+In
+our
+work
+often
+when
+a
+healing
+was
+instantaneous
+it
+was
+an
+obsession
+being
+relieved
+You
+understand
+also
+that
+all
+the
+healers
+are
+in
+the
+circle
+of
+concentration
+with
+the
+power
+of
+the
+whole
+church
+to
+aid
+them
+and
+that
+power
+of
+concentration
+is
+so
+strong
+that
+an
+obsession
+cannot
+live
+in
+that
+atmosphere
+Many
+I
+cured
+were
+obsessed
+but
+they
+concentrated
+that
+they
+were
+not
+sick
+How
+are
+they
+helped
+I
+will
+tell
+you
+The
+average
+doctor
+tells
+a
+patient
+that
+he
+has
+such
+and
+such
+a
+sickness
+He
+creates
+a
+fear
+in
+his
+mind
+Let
+us
+take
+a
+case
+of
+gall
+stones
+It
+is
+very
+hard
+to
+diagnose
+such
+a
+case
+correctly
+The
+doctor
+says
+the
+patient
+has
+gall
+stones
+sometimes
+he
+operates
+when
+that
+should
+not
+be
+done
+Sometimes
+the
+patient
+gets
+well
+without
+an
+operation
+That
+is
+due
+to
+his
+mind
+He
+concentrates
+his
+mind
+on
+gall
+stones
+gall
+stones
+until
+he
+can
+think
+of
+nothing
+else
+You
+understand
+you
+have
+in
+your
+mind
+a
+creative
+power
+We
+have
+a
+spark
+of
+the
+Infinite
+within
+us
+In
+that
+Divine
+spark
+God
+created
+the
+world
+all
+in
+it
+and
+you
+as
+a
+part
+Each
+of
+us
+has
+much
+of
+that
+creative
+power
+and
+when
+you
+set
+your
+mind
+working
+with
+that
+power
+you
+create
+your
+condition
+When
+you
+go
+to
+one
+of
+my
+practitioners
+the
+first
+thing
+that
+is
+done
+is
+to
+take
+your
+mind
+off
+your
+sickness
+You
+are
+given
+absent
+treatment
+to
+get
+rid
+of
+fear
+You
+have
+the
+same
+creative
+power
+within
+yourself
+In
+a
+case
+of
+diphtheria
+the
+mind
+can
+help
+but
+we
+cannot
+kill
+germs
+There
+are
+many
+things
+we
+fail
+in
+but
+we
+have
+success
+with
+chronic
+cases
+We
+have
+more
+success
+because
+so
+many
+are
+obsessed
+When
+you
+have
+fear
+you
+are
+negative
+I
+will
+be
+with
+you
+to
+teach
+obsession
+to
+the
+world
+Teach
+the
+real
+truth
+and
+do
+not
+care
+for
+people
+s
+opinions
+If
+only
+I
+could
+go
+to
+my
+Mother
+Church
+and
+teach
+them
+the
+truth
+Thank
+you
+each
+and
+every
+one
+of
+you
+and
+sometime
+I
+shall
+come
+again
+That
+the
+mind
+has
+power
+to
+create
+the
+condition
+in
+which
+a
+spirit
+finds
+itself
+after
+transition
+is
+illustrated
+in
+the
+following
+experience
+A
+former
+patient
+of
+ours
+Mrs
+Anna
+R
+who
+had
+at
+one
+time
+been
+under
+our
+care
+and
+had
+been
+entirely
+restored
+to
+health
+many
+years
+later
+left
+her
+home
+to
+care
+for
+a
+sister
+in
+law
+Mrs
+Jessie
+R
+who
+was
+very
+ill
+The
+latter
+was
+a
+Christian
+Scientist
+and
+denied
+that
+spirit
+obsession
+had
+been
+the
+cause
+of
+the
+former
+illness
+of
+her
+sisterin
+law
+claiming
+that
+Christian
+Science
+and
+her
+own
+concentration
+had
+cured
+her
+She
+was
+a
+masculine
+type
+a
+very
+large
+woman
+preferring
+to
+assist
+her
+husband
+with
+his
+oil
+station
+rather
+than
+care
+for
+her
+home
+After
+a
+long
+illness
+she
+died
+in
+the
+arms
+of
+Mrs
+Anna
+R
+who
+then
+remained
+in
+the
+house
+to
+care
+for
+the
+widower
+and
+also
+keep
+house
+for
+him
+She
+occupied
+the
+room
+and
+bed
+of
+her
+sister
+in
+law
+and
+not
+only
+attended
+to
+all
+household
+duties
+but
+spent
+much
+time
+working
+in
+the
+garden
+until
+her
+strength
+failed
+when
+she
+became
+negative
+and
+was
+again
+disturbed
+by
+spirit
+interference
+She
+acted
+in
+a
+masculine
+manner
+and
+a
+brother
+Mr
+Herman
+M
+realizing
+that
+some
+spirit
+had
+taken
+possession
+of
+his
+sister
+at
+first
+thought
+the
+entity
+was
+a
+man
+But
+Mrs
+Anna
+R
+began
+to
+talk
+as
+though
+she
+were
+Mrs
+Jessie
+R
+and
+authoritatively
+ordered
+everyone
+to
+leave
+the
+house
+Mr
+M
+urged
+his
+sister
+to
+come
+to
+us
+for
+treatment
+but
+this
+she
+refused
+to
+do
+insisting
+under
+control
+of
+the
+obsessing
+entity
+that
+Christian
+Science
+cured
+me
+the
+last
+time
+Mr
+M
+then
+telephoned
+us
+regarding
+the
+situation
+and
+attended
+a
+seance
+in
+our
+home
+mentally
+commanding
+the
+spirit
+that
+was
+troubling
+his
+sister
+to
+come
+with
+him
+We
+concentrated
+for
+the
+patient
+and
+when
+Mrs
+Wickland
+became
+entranced
+a
+corroborative
+conversation
+with
+the
+controlling
+spirit
+ensued
+Spirit
+MRS
+JESSIE
+R
+Patient
+MRS
+ANNA
+R
+PSYCHIC
+MRS
+WICKLAND
+Doctor
+Can
+you
+tell
+us
+something
+about
+yourself
+Touching
+arm
+Spirit
+Leave
+me
+alone
+Dr
+We
+want
+to
+enlighten
+you
+Sp
+I
+am
+enlightened
+enough
+They
+thought
+they
+were
+going
+to
+get
+me
+but
+they
+got
+left
+Intelligent
+spirits
+Dr
+To
+whom
+do
+you
+refer
+Sp
+Those
+people
+I
+don
+t
+want
+you
+to
+hold
+my
+arm
+You
+have
+no
+right
+to
+touch
+me
+Dr
+I
+have
+a
+right
+to
+touch
+the
+arm
+of
+my
+wife
+Sp
+Struggling
+I
+don
+t
+want
+to
+be
+held
+down
+Mr
+G
+Be
+a
+nice
+fellow
+Sp
+Fellow
+I
+m
+not
+a
+man
+I
+m
+a
+woman
+Can
+t
+you
+see
+that
+Dr
+When
+I
+look
+at
+you
+I
+see
+my
+wife
+Sp
+I
+don
+t
+care
+There
+must
+be
+something
+the
+matter
+with
+you
+They
+all
+think
+they
+are
+smart
+Evidently
+referring
+to
+intelligent
+spirits
+who
+had
+been
+endeavoring
+to
+free
+patient
+from
+influence
+of
+this
+entity
+I
+tell
+them
+they
+can
+t
+fool
+me
+I
+don
+t
+want
+to
+talk
+to
+any
+of
+you
+Dr
+To
+whom
+are
+you
+talking
+Sp
+Flourishing
+hand
+I
+m
+talking
+to
+all
+of
+you
+This
+is
+my
+house
+and
+my
+home
+Dr
+Can
+you
+tell
+us
+your
+name
+Sp
+I
+don
+t
+think
+I
+need
+to
+tell
+you
+my
+name
+Mr
+G
+The
+gentleman
+on
+your
+left
+is
+Dr
+Wickland
+Sp
+Oh
+so
+that
+s
+it
+Dramatically
+Now
+you
+can
+all
+get
+out
+of
+here
+This
+is
+my
+home
+and
+I
+m
+going
+to
+stay
+right
+here
+Dr
+Just
+now
+you
+are
+in
+our
+home
+Do
+you
+know
+me
+Sp
+Yes
+I
+knew
+you
+some
+years
+ago
+When
+visiting
+the
+patient
+Mrs
+Anna
+R
+who
+had
+been
+restored
+to
+health
+while
+under
+our
+care
+But
+I
+never
+believed
+in
+you
+I
+was
+a
+good
+Christian
+Scientist
+Now
+all
+of
+you
+get
+right
+out
+of
+here
+This
+is
+my
+home
+What
+right
+have
+any
+of
+you
+here
+Mr
+G
+You
+speak
+as
+if
+you
+were
+omnipotent
+Sp
+I
+am
+not
+God
+but
+I
+am
+next
+to
+Him
+When
+you
+are
+a
+true
+Christian
+Scientist
+you
+come
+next
+to
+God
+Dr
+What
+about
+the
+lady
+whom
+you
+have
+been
+bothering
+Sp
+She
+can
+go
+to
+the
+dickens
+When
+I
+get
+well
+I
+ll
+show
+her
+That
+s
+my
+home
+Dr
+Did
+you
+buy
+it
+Sp
+I
+worked
+and
+helped
+pay
+for
+it
+Now
+others
+are
+occupying
+my
+home
+but
+when
+I
+get
+well
+I
+ll
+chase
+them
+out
+Dr
+Who
+is
+occupying
+it
+Sp
+My
+husband
+is
+there
+for
+one
+Dr
+Do
+you
+want
+him
+to
+leave
+Sp
+I
+want
+everybody
+to
+get
+out
+Dr
+Did
+you
+pass
+out
+Sp
+Oh
+no
+you
+ll
+find
+out
+that
+I
+m
+not
+dead
+yet
+I
+scared
+one
+woman
+Dr
+Who
+was
+that
+Sp
+She
+laid
+down
+on
+my
+bed
+but
+I
+made
+her
+get
+up
+I
+scared
+her
+Mrs
+N
+W
+Remembering
+that
+upon
+a
+recent
+visit
+to
+the
+patient
+s
+home
+she
+had
+lain
+down
+to
+rest
+upon
+the
+bed
+which
+had
+belonged
+to
+the
+former
+mistress
+of
+the
+house
+but
+had
+been
+unable
+to
+remain
+there
+because
+of
+an
+unpleasant
+influence
+I
+wasn
+t
+at
+all
+frightened
+Sp
+Just
+the
+same
+I
+made
+you
+get
+up
+Dr
+What
+satisfaction
+do
+you
+find
+in
+staying
+around
+the
+house
+Don
+t
+you
+realize
+you
+are
+a
+spirit
+Sp
+I
+don
+t
+believe
+in
+spirits
+and
+never
+did
+Several
+years
+ago
+you
+talked
+spirits
+to
+me
+but
+I
+didn
+t
+believe
+you
+and
+would
+not
+listen
+to
+you
+This
+had
+been
+the
+case
+Mr
+M
+Do
+we
+know
+you
+Sp
+I
+am
+Jessie
+R
+Sister
+in
+law
+of
+patient
+Mrs
+Anna
+R
+You
+thought
+you
+would
+chase
+me
+out
+Herm
+but
+you
+got
+left
+Mr
+M
+I
+think
+we
+succeeded
+in
+getting
+you
+away
+You
+are
+at
+Dr
+Wickland
+s
+home
+now
+Sp
+All
+of
+you
+tried
+to
+chase
+me
+out
+but
+you
+got
+left
+Dr
+No
+they
+didn
+t
+because
+you
+are
+now
+at
+our
+home
+Sp
+I
+never
+liked
+you
+You
+believe
+in
+spirits
+and
+I
+don
+t
+Dr
+You
+believe
+in
+the
+continuation
+of
+life
+don
+t
+you
+What
+are
+spirits
+but
+those
+who
+have
+passed
+on
+to
+a
+continued
+existence
+Sp
+Angrily
+I
+tell
+you
+I
+have
+not
+passed
+on
+I
+live
+in
+my
+home
+and
+I
+want
+everybody
+chased
+out
+Dr
+Christian
+Scientists
+die
+just
+as
+other
+persons
+do
+Sp
+Not
+if
+they
+are
+in
+the
+understanding
+Dr
+Mrs
+Eddy
+died
+Where
+does
+a
+Christian
+Scientist
+expect
+to
+go
+when
+he
+loses
+the
+physical
+body
+Sp
+Body
+The
+body
+is
+only
+imagination
+Dr
+Then
+why
+do
+you
+object
+when
+I
+touch
+your
+arm
+Sp
+Because
+I
+feel
+tied
+up
+I
+was
+a
+big
+fat
+woman
+and
+here
+I
+am
+with
+a
+little
+body
+I
+have
+told
+you
+before
+I
+don
+t
+like
+you
+and
+I
+never
+did
+Dr
+Why
+Sp
+Because
+you
+always
+talked
+about
+spirits
+Dr
+Yes
+we
+often
+talked
+about
+the
+subject
+You
+are
+now
+proving
+the
+fact
+of
+spirit
+return
+Sp
+Addressing
+patient
+s
+brother
+Mr
+Herman
+M
+Herm
+why
+did
+you
+bring
+me
+here
+Mr
+M
+I
+thought
+you
+needed
+a
+little
+education
+You
+were
+not
+doing
+the
+right
+thing
+where
+you
+were
+Dr
+Did
+you
+come
+here
+in
+an
+auto
+Sp
+I
+don
+t
+know
+how
+I
+came
+Herm
+made
+me
+come
+with
+him
+Dr
+Did
+you
+bring
+anyone
+else
+with
+you
+Referring
+to
+spirits
+obsessing
+the
+patient
+Sp
+Three
+of
+us
+came
+They
+help
+me
+They
+are
+all
+good
+Christian
+Scientists
+They
+don
+t
+associate
+with
+anybody
+but
+their
+own
+people
+because
+it
+causes
+cross
+currents
+I
+was
+the
+leader
+Laughing
+They
+all
+thought
+I
+was
+a
+man
+I
+did
+a
+man
+s
+work
+so
+why
+shouldn
+t
+I
+have
+the
+honor
+of
+being
+a
+man
+My
+husband
+was
+sick
+but
+he
+is
+well
+now
+Just
+as
+soon
+as
+Anna
+came
+he
+braced
+up
+Dr
+Because
+your
+sister
+in
+law
+took
+proper
+care
+of
+him
+Sp
+What
+business
+had
+they
+to
+bring
+me
+here
+I
+said
+I
+would
+never
+go
+to
+Wicklands
+again
+Patient
+had
+made
+similar
+statements
+the
+day
+before
+although
+normally
+very
+friendly
+Mr
+M
+I
+heard
+last
+Sunday
+that
+the
+Christian
+Scientists
+take
+the
+credit
+for
+curing
+Anna
+some
+years
+ago
+when
+the
+Wicklands
+straightened
+her
+out
+and
+got
+rascal
+spirits
+away
+from
+her
+Sp
+To
+Mr
+M
+I
+will
+get
+you
+yet
+Mr
+M
+Don
+t
+worry
+about
+me
+You
+had
+better
+try
+to
+get
+understanding
+Dr
+This
+body
+belongs
+to
+Mrs
+Wickland
+Sp
+I
+used
+to
+talk
+to
+you
+folks
+when
+I
+came
+to
+your
+house
+to
+see
+Anna
+but
+I
+had
+no
+use
+for
+you
+If
+you
+had
+become
+Christian
+Scientists
+I
+would
+have
+been
+interested
+in
+you
+Dr
+You
+are
+controlling
+the
+body
+of
+Mrs
+Wickland
+and
+she
+is
+unconscious
+while
+you
+talk
+through
+her
+You
+claim
+you
+are
+Jessie
+R
+but
+when
+I
+look
+at
+you
+I
+see
+the
+face
+of
+my
+wife
+hence
+you
+are
+a
+spirit
+Sp
+How
+could
+I
+get
+in
+this
+little
+body
+when
+I
+am
+a
+big
+fat
+woman
+Dr
+You
+are
+a
+spirit
+and
+spirit
+does
+not
+need
+a
+big
+body
+You
+must
+realize
+you
+are
+a
+spirit
+and
+understand
+your
+situation
+When
+spirits
+are
+ignorant
+of
+their
+condition
+they
+often
+cause
+much
+trouble
+The
+spirit
+of
+Mrs
+Eddy
+has
+spoken
+through
+this
+same
+instrument
+several
+times
+and
+she
+has
+always
+expressed
+regret
+that
+she
+failed
+to
+include
+in
+her
+teachings
+the
+truth
+of
+spirit
+communication
+which
+she
+knew
+from
+her
+own
+experience
+to
+be
+a
+fact
+Sp
+Where
+is
+Wes
+Wesley
+R
+her
+husband
+Dr
+On
+the
+ranch
+because
+that
+is
+his
+home
+Sp
+He
+likes
+it
+there
+much
+better
+now
+than
+he
+used
+to
+Why
+is
+Mel
+R
+bothering
+me
+Referring
+to
+spirit
+husband
+of
+patient
+He
+is
+here
+now
+He
+says
+I
+have
+no
+business
+to
+bother
+his
+wife
+Dr
+Ask
+him
+whether
+you
+are
+so
+called
+dead
+Sp
+He
+says
+Yes
+and
+that
+everything
+you
+have
+said
+is
+true
+He
+bothers
+me
+all
+the
+time
+Dr
+He
+is
+not
+in
+the
+physical
+we
+cannot
+see
+him
+You
+know
+that
+he
+has
+passed
+out
+You
+say
+he
+bothers
+you
+Sp
+Yes
+He
+is
+here
+and
+he
+says
+I
+shall
+not
+stay
+around
+the
+house
+but
+must
+keep
+away
+and
+leave
+my
+husband
+and
+Anna
+alone
+Dr
+Does
+any
+one
+ever
+talk
+to
+you
+Sp
+No
+they
+take
+no
+notice
+of
+me
+and
+that
+s
+what
+makes
+me
+so
+mad
+Listening
+to
+some
+invisible
+You
+tell
+Anna
+that
+I
+feel
+sorry
+for
+what
+I
+have
+done
+to
+her
+Her
+husband
+spirit
+has
+opened
+my
+eyes
+I
+am
+also
+sorry
+for
+Wes
+Dr
+You
+must
+acquire
+understanding
+Sp
+Pray
+for
+me
+Tell
+Anna
+how
+sorry
+I
+am
+that
+I
+have
+disturbed
+her
+I
+did
+not
+have
+a
+proper
+understanding
+and
+I
+was
+angry
+I
+had
+a
+quick
+temper
+Herm
+you
+know
+that
+Dr
+It
+was
+wrong
+to
+upset
+Mrs
+R
+She
+thought
+a
+great
+deal
+of
+you
+Sp
+Penitently
+I
+can
+see
+how
+selfish
+I
+have
+been
+My
+Christian
+Science
+belief
+was
+only
+a
+cloak
+Dr
+The
+higher
+ideals
+of
+Christian
+Science
+are
+excellent
+but
+should
+include
+the
+whole
+of
+life
+Sp
+Help
+Anna
+Dr
+Are
+there
+any
+more
+spirits
+troubling
+her
+Sp
+Yes
+there
+are
+Mr
+M
+Isn
+t
+Mel
+trying
+to
+get
+them
+away
+Sp
+He
+chased
+me
+all
+the
+time
+and
+I
+didn
+t
+like
+it
+Dr
+He
+wanted
+you
+to
+realize
+your
+condition
+and
+leave
+his
+wife
+alone
+SP
+Will
+you
+help
+her
+Doctor
+Dr
+That
+is
+what
+we
+are
+trying
+to
+do
+Sp
+I
+liked
+my
+home
+very
+much
+I
+was
+taken
+very
+sick
+and
+I
+went
+to
+sleep
+died
+and
+after
+awhile
+when
+I
+woke
+up
+things
+were
+changed
+Anna
+was
+taking
+care
+of
+my
+home
+and
+I
+stood
+it
+for
+awhile
+then
+I
+wanted
+my
+place
+as
+I
+had
+always
+had
+it
+I
+commenced
+to
+bother
+Anna
+Poor
+girl
+I
+wouldn
+t
+let
+her
+come
+here
+Please
+help
+her
+and
+help
+me
+too
+Dr
+Yes
+we
+will
+but
+you
+must
+also
+help
+yourself
+Sp
+They
+spirits
+tell
+me
+I
+have
+to
+go
+but
+where
+I
+don
+t
+know
+Dr
+Mrs
+R
+s
+husband
+and
+other
+spirits
+will
+take
+care
+of
+you
+and
+teach
+you
+how
+to
+progress
+in
+your
+new
+life
+Forget
+the
+past
+You
+must
+broaden
+your
+mind
+Realize
+there
+is
+a
+spirit
+world
+We
+are
+all
+spirits
+whether
+in
+the
+body
+or
+out
+of
+it
+My
+wife
+allows
+spirits
+to
+control
+her
+body
+in
+order
+that
+we
+may
+enlighten
+them
+and
+learn
+the
+facts
+If
+the
+future
+life
+were
+more
+clearly
+understood
+such
+conditions
+as
+yours
+would
+not
+exist
+If
+you
+had
+understood
+the
+truth
+of
+spirit
+existence
+spirits
+could
+have
+helped
+you
+at
+the
+time
+you
+passed
+on
+But
+your
+mind
+was
+on
+the
+earth
+plane
+Now
+you
+have
+an
+opportunity
+to
+learn
+and
+advance
+Sp
+Clint
+is
+here
+Spirit
+a
+brother
+of
+the
+patient
+He
+says
+I
+should
+come
+with
+him
+I
+had
+him
+on
+one
+side
+and
+Mel
+on
+the
+other
+you
+can
+imagine
+how
+I
+have
+been
+bothered
+Where
+shall
+I
+go
+when
+I
+leave
+here
+Dr
+These
+spirit
+friends
+will
+take
+care
+of
+you
+Sp
+Addressing
+Mr
+M
+in
+audience
+Will
+you
+forgive
+me
+Mr
+M
+Surely
+we
+know
+you
+did
+not
+understand
+Sp
+Tell
+Anna
+I
+will
+do
+the
+best
+I
+can
+to
+help
+her
+when
+I
+learn
+how
+I
+bothered
+her
+because
+I
+did
+not
+like
+the
+way
+things
+had
+been
+changed
+in
+the
+house
+then
+all
+at
+once
+I
+lost
+myself
+Obsessed
+patient
+Doctor
+I
+never
+liked
+you
+because
+you
+believed
+in
+spirits
+but
+now
+I
+have
+to
+thank
+you
+for
+helping
+me
+Dr
+Be
+open
+minded
+think
+yourself
+with
+your
+spirit
+friends
+and
+you
+will
+be
+with
+them
+Sp
+Goodbye
+The
+following
+day
+a
+sister
+of
+Mrs
+R
+telephoned
+that
+a
+noticeable
+change
+had
+taken
+place
+in
+the
+patient
+and
+that
+the
+latter
+had
+that
+morning
+said
+I
+want
+to
+go
+to
+Dr
+Wickland
+for
+treatment
+Upon
+her
+arrival
+Mrs
+R
+was
+extremely
+exhausted
+and
+between
+static
+treatments
+slept
+for
+two
+days
+but
+upon
+the
+third
+day
+awoke
+clear
+in
+mind
+Further
+records
+of
+statements
+made
+by
+the
+founder
+of
+Christian
+Science
+follow
+EXPERIENCE
+DECEMBER
+Spirit
+MARY
+BAKER
+EDDY
+Psychic
+MRS
+WICKLAND
+I
+wanted
+to
+come
+again
+to
+speak
+of
+the
+work
+you
+are
+doing
+What
+a
+blessing
+it
+is
+to
+humanity
+to
+help
+the
+mortals
+here
+on
+earth
+and
+the
+spirit
+who
+has
+passed
+on
+in
+ignorance
+with
+no
+knowledge
+of
+the
+life
+beyond
+I
+closed
+the
+door
+I
+should
+have
+opened
+wide
+to
+give
+my
+knowledge
+to
+the
+world
+I
+had
+the
+power
+and
+gift
+that
+God
+gave
+me
+to
+do
+work
+to
+help
+humanity
+and
+to
+teach
+humanity
+that
+there
+is
+a
+life
+after
+this
+I
+was
+a
+medium
+and
+could
+have
+helped
+open
+the
+door
+from
+the
+spirit
+world
+to
+earth
+life
+but
+I
+closed
+it
+because
+of
+my
+selfishness
+Also
+I
+liked
+to
+have
+something
+new
+that
+was
+not
+known
+before
+and
+to
+establish
+a
+religion
+of
+my
+own
+I
+taught
+the
+wrong
+religion
+of
+life
+and
+I
+denied
+the
+truth
+of
+spirit
+return
+and
+tried
+to
+give
+out
+other
+things
+which
+suited
+my
+own
+fancy
+my
+own
+self
+again
+I
+shut
+the
+door
+for
+myself
+and
+for
+my
+followers
+hereafter
+If
+you
+could
+only
+help
+me
+to
+open
+the
+door
+again
+to
+tell
+them
+that
+I
+am
+trying
+my
+very
+best
+to
+open
+the
+eyes
+of
+my
+followers
+Tell
+them
+not
+to
+shut
+the
+door
+to
+the
+truth
+Truth
+will
+stand
+wherever
+you
+find
+it
+but
+do
+not
+deny
+it
+when
+you
+find
+it
+I
+denied
+it
+and
+so
+I
+suffer
+Here
+are
+my
+followers
+coming
+to
+me
+one
+by
+one
+Every
+day
+there
+are
+some
+coming
+over
+to
+the
+spirit
+side
+of
+life
+and
+I
+am
+trying
+to
+tell
+them
+of
+the
+beautiful
+spirit
+world
+But
+they
+say
+No
+you
+are
+not
+Mrs
+Eddy
+because
+she
+did
+not
+teach
+that
+when
+she
+was
+on
+earth
+You
+are
+only
+a
+false
+person
+And
+then
+they
+go
+away
+You
+see
+what
+I
+have
+to
+deal
+with
+and
+I
+cannot
+progress
+until
+I
+can
+help
+all
+these
+to
+open
+their
+eyes
+We
+should
+not
+deny
+God
+s
+wonderful
+manifestation
+of
+matter
+It
+is
+real
+not
+imagination
+You
+could
+not
+live
+without
+matter
+You
+could
+not
+have
+manifestations
+without
+matter
+I
+denied
+the
+wonderful
+manifestation
+of
+matter
+and
+called
+it
+only
+imagination
+and
+error
+We
+have
+only
+one
+mind
+the
+mind
+that
+God
+gave
+to
+every
+mortal
+being
+Matter
+belongs
+to
+material
+things
+Still
+we
+have
+matter
+in
+the
+spirit
+world
+but
+more
+ethereal
+I
+denied
+it
+What
+is
+my
+spiritual
+body
+now
+It
+is
+in
+a
+very
+crippled
+condition
+because
+my
+mind
+was
+so
+closed
+and
+I
+denied
+the
+truth
+I
+prayed
+to
+God
+and
+I
+said
+that
+God
+was
+All
+in
+All
+and
+His
+manifestations
+beautiful
+and
+said
+that
+we
+should
+look
+up
+to
+Him
+Where
+is
+God
+What
+is
+God
+I
+said
+to
+my
+people
+that
+God
+is
+Love
+and
+Love
+is
+God
+but
+that
+phrase
+became
+only
+empty
+talk
+with
+my
+followers
+We
+must
+realize
+God
+and
+where
+God
+is
+God
+is
+Life
+God
+is
+Electricity
+because
+electricity
+is
+life
+Electricity
+is
+only
+one
+part
+of
+God
+s
+wonderful
+manifestation
+Flowers
+and
+colors
+of
+all
+kinds
+are
+manifestations
+of
+His
+wonders
+Go
+into
+chemistry
+go
+into
+the
+wonderful
+mystery
+of
+life
+go
+into
+the
+microscopical
+world
+These
+I
+denied
+entirely
+I
+denied
+there
+was
+such
+a
+thing
+as
+disease
+and
+denied
+the
+existence
+of
+germs
+When
+you
+get
+into
+the
+microscopical
+world
+you
+will
+find
+a
+world
+in
+itself
+and
+a
+very
+wonderful
+one
+Now
+I
+am
+talking
+of
+what
+I
+have
+learned
+Body
+and
+spirit
+are
+the
+nearest
+to
+His
+wonderful
+manifestation
+yet
+a
+little
+microbe
+can
+kill
+the
+body
+but
+not
+the
+spirit
+Why
+should
+we
+not
+be
+powerful
+enough
+to
+overcome
+a
+little
+microbe
+I
+denied
+God
+by
+denying
+matter
+Let
+us
+go
+into
+chemistry
+and
+see
+the
+wonderful
+things
+there
+That
+is
+matter
+Did
+I
+go
+into
+it
+No
+I
+did
+not
+It
+is
+easy
+to
+say
+there
+is
+no
+such
+thing
+as
+matter
+that
+it
+is
+only
+mortal
+error
+Let
+us
+study
+Anything
+that
+is
+in
+matter
+study
+in
+every
+phase
+I
+have
+my
+eyes
+open
+now
+I
+wish
+I
+could
+come
+back
+to
+teach
+my
+people
+the
+wonders
+of
+Nature
+and
+the
+wonders
+we
+can
+do
+to
+help
+humanity
+and
+the
+spirits
+that
+are
+in
+darkness
+I
+am
+here
+myself
+I
+have
+to
+serve
+for
+what
+I
+have
+done
+and
+I
+speak
+not
+here
+alone
+but
+everywhere
+I
+came
+to
+tell
+you
+this
+Let
+everyone
+open
+the
+door
+to
+the
+spirit
+world
+when
+he
+has
+once
+found
+it
+Do
+not
+deny
+it
+do
+not
+deny
+it
+Christ
+said
+do
+not
+hide
+your
+light
+under
+a
+bushel
+Let
+it
+shine
+for
+others
+Christ
+said
+I
+am
+the
+light
+of
+the
+world
+he
+that
+followeth
+me
+shall
+not
+walk
+in
+darkness
+Christ
+was
+the
+Truth
+When
+you
+find
+the
+truth
+do
+not
+deny
+it
+but
+give
+it
+out
+to
+the
+world
+I
+shut
+the
+door
+I
+wanted
+to
+keep
+the
+people
+under
+my
+control
+and
+I
+did
+I
+am
+now
+suffering
+for
+what
+I
+did
+Tonight
+I
+feel
+so
+happy
+to
+think
+I
+can
+be
+of
+help
+to
+earthbound
+spirits
+that
+are
+doing
+very
+much
+mischief
+to
+humanity
+If
+you
+could
+only
+see
+how
+many
+spirits
+there
+are
+in
+darkness
+who
+cling
+to
+human
+bodies
+and
+obsess
+people
+and
+send
+them
+to
+the
+asylums
+or
+to
+the
+spirit
+world
+by
+shortening
+their
+lives
+There
+is
+so
+much
+work
+to
+be
+done
+Let
+us
+all
+join
+hands
+and
+work
+together
+to
+spread
+the
+truth
+of
+the
+life
+hereafter
+and
+also
+to
+help
+the
+earthbound
+spirits
+Do
+not
+cast
+them
+away
+and
+say
+they
+are
+devils
+They
+are
+only
+ignorant
+spirits
+like
+myself
+I
+wanted
+to
+be
+something
+in
+the
+world
+and
+sold
+my
+soul
+for
+money
+Let
+us
+all
+join
+together
+and
+pray
+to
+God
+to
+open
+the
+hearts
+of
+all
+my
+people
+to
+look
+into
+the
+higher
+life
+of
+spirits
+If
+all
+my
+churches
+could
+be
+turned
+into
+sanitariums
+for
+earthbound
+spirits
+what
+great
+good
+could
+be
+done
+We
+could
+empty
+the
+asylums
+and
+help
+people
+out
+of
+their
+misery
+Let
+us
+help
+the
+unfortunate
+ones
+instead
+of
+sending
+them
+to
+the
+asylums
+where
+they
+are
+mistreated
+for
+it
+is
+not
+understood
+that
+the
+poor
+ones
+who
+are
+obsessed
+have
+to
+suffer
+because
+of
+the
+spirits
+who
+control
+them
+Let
+us
+try
+to
+do
+all
+we
+can
+to
+spread
+the
+truth
+and
+help
+every
+one
+who
+is
+obsessed
+God
+bless
+you
+all
+Goodbye
+EXPERIENCE
+AUGUST
+Spirit
+MARY
+BAKER
+EDDY
+Psychic
+MRS
+WICKLAND
+I
+wish
+all
+could
+realize
+and
+understand
+how
+beautiful
+and
+simple
+conditions
+are
+if
+people
+would
+only
+open
+their
+eyes
+to
+see
+them
+I
+mean
+they
+should
+open
+the
+soul
+eyes
+but
+they
+are
+so
+material
+And
+everything
+that
+is
+being
+taught
+is
+only
+matter
+People
+cannot
+grasp
+spiritual
+things
+The
+Bible
+is
+a
+beautiful
+book
+if
+it
+is
+read
+spiritually
+not
+taken
+literally
+and
+not
+as
+history
+I
+wanted
+to
+study
+and
+learn
+what
+is
+in
+life
+what
+is
+the
+aim
+of
+life
+here
+on
+earth
+If
+you
+would
+only
+stop
+to
+think
+and
+study
+yourself
+a
+little
+you
+would
+see
+how
+wonderfully
+God
+has
+manifested
+in
+you
+First
+there
+is
+your
+material
+body
+how
+beautifully
+and
+wonderfully
+it
+is
+constructed
+But
+how
+much
+more
+wonderful
+your
+mind
+is
+How
+few
+understand
+the
+real
+meaning
+of
+life
+it
+is
+always
+theory
+or
+dogma
+It
+seems
+hard
+to
+get
+people
+to
+understand
+When
+they
+get
+a
+little
+glimpse
+of
+light
+they
+add
+dogma
+and
+theories
+of
+various
+kinds
+If
+they
+would
+only
+be
+natural
+and
+look
+at
+Nature
+Everywhere
+you
+look
+it
+is
+so
+simple
+to
+understand
+There
+is
+no
+dogma
+or
+theory
+in
+Nature
+s
+finer
+forces
+These
+forces
+are
+hidden
+but
+they
+are
+for
+you
+to
+discover
+It
+is
+for
+you
+to
+find
+God
+s
+wonderful
+manifestation
+in
+Nature
+Let
+us
+worship
+God
+in
+that
+way
+Let
+us
+worship
+Him
+in
+that
+wonderful
+spirit
+which
+is
+everywhere
+Let
+us
+send
+out
+love
+to
+His
+children
+We
+are
+all
+children
+of
+God
+not
+just
+my
+child
+or
+your
+child
+but
+all
+Do
+not
+think
+there
+is
+no
+one
+for
+you
+but
+your
+own
+child
+That
+attitude
+is
+a
+sin
+and
+very
+selfish
+for
+it
+is
+all
+only
+for
+self
+Let
+us
+give
+out
+love
+as
+God
+gives
+it
+to
+us
+all
+Let
+the
+sun
+shine
+every
+day
+on
+us
+and
+on
+everybody
+not
+one
+or
+two
+but
+all
+Let
+the
+sun
+of
+understanding
+bring
+out
+beautiful
+thoughts
+of
+love
+I
+want
+to
+know
+the
+real
+life
+I
+have
+had
+many
+difficulties
+and
+I
+still
+have
+because
+I
+wanted
+to
+shine
+and
+I
+wanted
+to
+be
+a
+light
+I
+wanted
+to
+be
+known
+as
+one
+of
+The
+Teachers
+I
+had
+my
+difficulties
+before
+I
+attained
+my
+ambition
+I
+followed
+studies
+of
+various
+kinds
+but
+most
+of
+all
+the
+secret
+of
+suggestion
+If
+you
+knew
+how
+to
+apply
+and
+concentrate
+Get
+one
+thing
+in
+mind
+and
+do
+not
+let
+anything
+else
+come
+into
+your
+mind
+just
+concentrate
+your
+thoughts
+on
+that
+very
+thing
+Suggest
+and
+suggest
+and
+concentrate
+then
+you
+will
+gain
+strength
+and
+power
+When
+you
+talk
+try
+to
+suggest
+things
+keep
+them
+in
+your
+mind
+and
+hold
+them
+because
+you
+have
+power
+over
+them
+There
+are
+meetings
+of
+various
+kinds
+but
+in
+a
+meeting
+for
+concentration
+and
+suggestion
+there
+is
+power
+and
+strength
+A
+man
+can
+hold
+his
+audience
+by
+his
+hypnotic
+power
+and
+you
+follow
+along
+and
+presently
+you
+get
+strength
+and
+power
+I
+studied
+that
+because
+I
+wanted
+to
+have
+such
+power
+and
+I
+got
+it
+I
+got
+that
+but
+another
+much
+more
+important
+thing
+I
+did
+not
+get
+which
+was
+to
+study
+Nature
+s
+finer
+forces
+instead
+of
+clothing
+myself
+with
+one
+idea
+and
+just
+circling
+around
+and
+around
+I
+held
+people
+in
+that
+circle
+and
+did
+not
+let
+them
+get
+out
+If
+I
+had
+only
+done
+what
+was
+first
+given
+to
+me
+in
+a
+vision
+That
+is
+what
+I
+should
+have
+done
+but
+I
+closed
+the
+door
+because
+I
+wanted
+to
+hold
+my
+people
+through
+suggestion
+I
+felt
+that
+I
+had
+the
+power
+to
+conquer
+everything
+even
+the
+world
+I
+did
+a
+great
+deal
+but
+selfishness
+crept
+in
+I
+meant
+well
+in
+the
+beginning
+and
+I
+did
+well
+but
+I
+was
+selfish
+I
+thought
+I
+had
+it
+all
+Others
+had
+power
+before
+me
+and
+others
+will
+have
+it
+after
+me
+in
+the
+same
+way
+but
+I
+felt
+I
+had
+it
+all
+and
+that
+I
+had
+found
+it
+all
+I
+was
+not
+true
+I
+should
+have
+said
+I
+had
+found
+the
+truth
+and
+I
+should
+have
+given
+it
+to
+others
+as
+it
+was
+given
+to
+me
+but
+I
+did
+not
+I
+called
+it
+my
+own
+and
+I
+closed
+the
+door
+for
+the
+real
+truth
+I
+found
+the
+truth
+in
+the
+beginning
+but
+I
+clung
+to
+theory
+and
+that
+is
+the
+way
+with
+all
+of
+us
+who
+try
+to
+be
+leading
+lights
+We
+are
+always
+clinging
+to
+theories
+and
+not
+to
+the
+truth
+Theories
+seem
+to
+hold
+the
+people
+better
+than
+does
+the
+truth
+We
+do
+not
+teach
+it
+as
+we
+should
+The
+truth
+would
+always
+stand
+if
+we
+did
+not
+deny
+it
+All
+leaders
+want
+a
+little
+theory
+of
+their
+own
+and
+want
+to
+gather
+the
+people
+around
+them
+and
+hold
+them
+They
+succeed
+for
+a
+while
+only
+for
+truth
+will
+spring
+up
+and
+spread
+Do
+not
+be
+afraid
+of
+the
+truth
+do
+not
+be
+ashamed
+of
+it
+Some
+day
+or
+other
+every
+one
+will
+have
+an
+understanding
+of
+truth
+It
+is
+there
+and
+it
+will
+blossom
+Do
+not
+clothe
+it
+with
+dogma
+and
+theory
+If
+I
+had
+taught
+the
+truth
+I
+should
+be
+so
+much
+happier
+and
+it
+would
+have
+been
+so
+much
+better
+for
+my
+Church
+I
+thank
+you
+for
+what
+you
+have
+done
+in
+publishing
+my
+little
+article
+It
+will
+shed
+a
+little
+light
+here
+and
+there
+People
+may
+say
+No
+and
+scoff
+but
+they
+cannot
+do
+so
+truthfully
+because
+my
+spirit
+will
+be
+there
+and
+impress
+the
+truth
+upon
+them
+I
+never
+felt
+that
+I
+was
+a
+little
+woman
+I
+felt
+that
+I
+had
+the
+power
+to
+conquer
+the
+world
+You
+can
+have
+that
+power
+too
+if
+fear
+does
+not
+interfere
+with
+you
+Concentrate
+and
+shut
+the
+door
+to
+fear
+Do
+not
+let
+fear
+come
+in
+If
+you
+feel
+fear
+say
+No
+no
+no
+I
+am
+not
+afraid
+I
+shall
+conquer
+and
+you
+will
+be
+surprised
+at
+your
+power
+In
+a
+moment
+you
+will
+feel
+you
+are
+a
+giant
+Shut
+the
+door
+to
+fear
+and
+open
+the
+door
+to
+spiritual
+power
+and
+the
+strength
+of
+God
+will
+flow
+in
+and
+give
+you
+strength
+and
+power
+to
+conquer
+You
+can
+never
+accomplish
+anything
+when
+you
+have
+fear
+Take
+five
+minutes
+each
+day
+and
+concentrate
+on
+fear
+Say
+Published
+in
+the
+magazine
+Reason
+I
+shall
+never
+be
+afraid
+I
+can
+conquer
+and
+keep
+on
+and
+on
+and
+you
+will
+be
+surprised
+at
+the
+result
+There
+is
+always
+worry
+and
+fear
+Worry
+is
+the
+sister
+to
+fear
+When
+you
+have
+conquered
+these
+two
+you
+will
+have
+strength
+and
+power
+and
+you
+can
+help
+in
+healing
+You
+can
+help
+everybody
+by
+just
+speaking
+a
+word
+to
+them
+When
+I
+had
+conquered
+fear
+and
+worry
+I
+sent
+my
+thoughts
+for
+strength
+and
+health
+to
+the
+persons
+who
+were
+sick
+That
+was
+power
+and
+removed
+the
+fear
+of
+sickness
+from
+them
+When
+you
+treat
+persons
+the
+first
+thing
+is
+to
+take
+away
+fear
+and
+worry
+Let
+them
+forget
+themselves
+Forget
+self
+and
+you
+will
+be
+surprised
+how
+strong
+and
+well
+you
+will
+be
+That
+is
+the
+secret
+of
+health
+It
+takes
+time
+to
+conquer
+do
+not
+be
+discouraged
+If
+it
+looks
+dark
+overcome
+fear
+and
+worry
+When
+you
+once
+have
+conquered
+you
+will
+be
+well
+You
+will
+be
+well
+and
+you
+will
+do
+well
+in
+every
+way
+Now
+I
+will
+say
+just
+a
+few
+words
+about
+my
+experience
+in
+the
+spirit
+world
+In
+the
+first
+place
+when
+I
+passed
+into
+the
+spirit
+side
+of
+life
+it
+was
+in
+one
+way
+surprising
+to
+me
+because
+I
+had
+concentrated
+that
+I
+should
+live
+forever
+and
+had
+gotten
+the
+idea
+in
+my
+mind
+that
+I
+would
+not
+die
+I
+had
+the
+idea
+that
+there
+is
+no
+death
+and
+that
+I
+would
+never
+die
+I
+took
+it
+literally
+I
+thought
+my
+body
+would
+never
+die
+and
+that
+I
+would
+stay
+on
+earth
+forever
+There
+is
+no
+death
+when
+you
+have
+understanding
+we
+only
+change
+the
+physical
+body
+for
+the
+spiritual
+My
+body
+began
+to
+grow
+old
+I
+concentrated
+and
+suggested
+but
+I
+used
+too
+much
+energy
+in
+my
+work
+and
+I
+wore
+out
+Finally
+I
+lost
+out
+and
+another
+stepped
+in
+at
+the
+last
+I
+was
+obsessed
+Of
+course
+my
+people
+did
+not
+know
+it
+but
+there
+were
+times
+when
+I
+was
+not
+myself
+I
+thought
+I
+would
+never
+die
+but
+I
+had
+to
+go
+just
+the
+same
+Now
+I
+can
+see
+how
+ridiculous
+the
+thing
+was
+You
+know
+I
+did
+not
+believe
+in
+matter
+There
+was
+no
+such
+thing
+as
+matter
+still
+my
+body
+was
+placed
+in
+a
+casket
+and
+sealed
+so
+well
+that
+my
+body
+could
+never
+get
+out
+of
+the
+casket
+It
+was
+sealed
+in
+many
+ways
+so
+nobody
+could
+get
+it
+If
+there
+is
+no
+matter
+why
+should
+all
+that
+money
+have
+been
+used
+to
+put
+my
+body
+into
+the
+grave
+That
+was
+against
+my
+teachings
+but
+we
+are
+material
+nevertheless
+When
+I
+woke
+up
+to
+life
+remember
+I
+say
+life
+because
+that
+was
+the
+real
+life
+I
+had
+a
+spirit
+body
+In
+my
+visions
+I
+had
+been
+to
+the
+spirit
+world
+many
+times
+and
+had
+always
+returned
+to
+earth
+This
+time
+I
+felt
+that
+I
+could
+go
+back
+again
+but
+my
+body
+was
+not
+there
+It
+had
+been
+interred
+Still
+I
+did
+not
+realize
+the
+change
+because
+I
+had
+closed
+the
+door
+for
+spirit
+return
+I
+did
+not
+want
+to
+teach
+it
+I
+knew
+it
+because
+I
+was
+a
+medium
+in
+my
+early
+days
+I
+gave
+readings
+in
+Boston
+for
+some
+time
+and
+I
+gave
+lectures
+as
+well
+but
+after
+a
+while
+I
+denied
+it
+all
+the
+truth
+was
+not
+in
+me
+When
+I
+woke
+up
+in
+my
+spirit
+body
+I
+still
+did
+not
+realize
+that
+it
+was
+not
+my
+material
+body
+It
+was
+very
+hard
+for
+me
+to
+understand
+that
+I
+had
+gone
+through
+the
+change
+called
+death
+because
+I
+had
+concentrated
+and
+concentrated
+that
+I
+should
+never
+die
+The
+realization
+took
+much
+time
+Then
+I
+had
+much
+to
+do
+and
+many
+difficulties
+to
+overcome
+First
+of
+all
+came
+my
+brother
+Albert
+When
+he
+came
+I
+felt
+that
+I
+did
+not
+want
+to
+have
+anything
+to
+do
+with
+spirits
+You
+see
+I
+said
+in
+my
+book
+that
+there
+is
+no
+such
+thing
+as
+spirit
+return
+I
+had
+so
+hypnotized
+myself
+with
+that
+theory
+that
+it
+was
+real
+to
+me
+Albert
+came
+and
+told
+me
+that
+I
+had
+not
+taught
+the
+whole
+truth
+There
+was
+a
+time
+when
+I
+was
+a
+medium
+and
+he
+talked
+through
+me
+but
+after
+a
+while
+I
+refused
+to
+allow
+this
+Now
+he
+came
+to
+me
+again
+and
+said
+Come
+I
+will
+show
+you
+that
+what
+you
+have
+taught
+is
+not
+true
+and
+that
+you
+did
+not
+tell
+the
+truth
+After
+that
+my
+first
+husband
+came
+He
+understood
+me
+better
+than
+the
+rest
+He
+showed
+me
+the
+way
+One
+by
+one
+many
+friends
+came
+Then
+came
+Quimby
+he
+said
+You
+took
+my
+theory
+Why
+did
+you
+not
+give
+me
+a
+little
+credit
+for
+the
+help
+I
+gave
+you
+Then
+I
+saw
+how
+selfish
+I
+had
+been
+I
+was
+accused
+I
+was
+helped
+but
+had
+not
+given
+credit
+for
+it
+I
+was
+obsessed
+when
+I
+was
+a
+young
+child
+and
+often
+had
+spells
+of
+obsession
+For
+many
+years
+those
+obsession
+spells
+came
+over
+me
+Quimby
+helped
+me
+he
+took
+the
+spirits
+away
+and
+taught
+me
+the
+true
+religion
+He
+taught
+me
+to
+know
+myself
+He
+taught
+me
+spirit
+return
+but
+I
+did
+not
+listen
+After
+he
+had
+gone
+I
+took
+his
+theory
+as
+my
+own
+In
+the
+spirit
+world
+I
+had
+to
+go
+through
+a
+great
+deal
+to
+over
+come
+selfishness
+I
+had
+to
+serve
+and
+learn
+the
+lesson
+of
+life
+as
+a
+little
+child
+I
+had
+to
+be
+taught
+about
+God
+in
+a
+different
+way
+Mental
+healing
+is
+something
+we
+should
+all
+learn
+It
+is
+of
+great
+importance
+Let
+us
+all
+learn
+to
+overcome
+by
+suggestion
+and
+concentration
+Get
+your
+mind
+centered
+and
+learn
+the
+art
+of
+concentration
+Take
+some
+object
+say
+that
+table
+concentrate
+and
+concentrate
+and
+try
+to
+hold
+your
+mind
+on
+that
+table
+nothing
+else
+for
+five
+minutes
+You
+cannot
+do
+it
+Try
+try
+very
+hard
+and
+after
+a
+while
+you
+will
+succeed
+That
+is
+the
+secret
+of
+health
+concentration
+is
+the
+secret
+of
+power
+You
+must
+be
+able
+to
+concentrate
+your
+mind
+on
+one
+object
+for
+five
+minutes
+This
+will
+require
+a
+long
+long
+time
+of
+practice
+It
+does
+not
+come
+to
+you
+at
+once
+because
+as
+soon
+as
+you
+try
+to
+concentrate
+and
+keep
+your
+mind
+absolutely
+on
+the
+table
+there
+will
+be
+a
+dozen
+other
+thoughts
+coming
+into
+your
+mind
+Keep
+them
+out
+and
+keep
+your
+mind
+on
+the
+object
+and
+you
+will
+find
+in
+time
+that
+I
+am
+right
+When
+you
+can
+concentrate
+your
+mind
+for
+even
+one
+or
+two
+minutes
+you
+have
+gained
+much
+Say
+to
+yourself
+I
+can
+concentrate
+for
+I
+have
+no
+fear
+or
+worry
+and
+keep
+on
+concentrating
+Shut
+other
+things
+out
+and
+keep
+on
+shutting
+them
+out
+and
+before
+you
+know
+it
+you
+will
+have
+strength
+and
+you
+will
+feel
+powerful
+because
+you
+have
+a
+part
+of
+life
+itself
+God
+When
+you
+have
+gained
+that
+power
+you
+can
+say
+to
+a
+sick
+person
+I
+send
+you
+power
+and
+you
+will
+have
+strength
+and
+health
+and
+you
+will
+be
+surprised
+how
+quickly
+recovery
+follows
+Before
+you
+try
+to
+send
+out
+that
+power
+concentrate
+your
+mind
+on
+one
+object
+for
+fifteen
+minutes
+Do
+not
+think
+Now
+I
+have
+the
+power
+in
+my
+hands
+and
+I
+can
+heal
+for
+you
+cannot
+heal
+if
+your
+mind
+is
+not
+there
+For
+that
+reason
+many
+healers
+are
+not
+successful
+The
+mind
+must
+be
+centered
+on
+one
+object
+before
+you
+can
+heal
+That
+is
+the
+secret
+of
+healing
+Now
+learn
+the
+lesson
+and
+conquer
+When
+you
+are
+sick
+or
+you
+go
+into
+a
+sick
+room
+concentrate
+your
+mind
+on
+some
+object
+Hold
+your
+mind
+on
+that
+object
+for
+a
+while
+and
+you
+will
+feel
+that
+you
+have
+great
+power
+and
+that
+you
+can
+heal
+because
+you
+will
+receive
+strength
+from
+God
+to
+heal
+That
+is
+another
+secret
+We
+should
+all
+understand
+it
+By
+concentration
+without
+fear
+and
+worry
+you
+can
+all
+heal
+but
+remember
+settle
+your
+mind
+first
+before
+you
+begin
+to
+heal
+for
+otherwise
+it
+will
+be
+of
+no
+use
+Now
+I
+have
+taken
+up
+too
+much
+of
+your
+time
+but
+I
+wanted
+to
+say
+a
+few
+words
+and
+to
+thank
+you
+for
+having
+my
+article
+published
+It
+will
+awaken
+some
+people
+and
+teach
+them
+to
+think
+and
+understand
+that
+the
+real
+life
+is
+on
+the
+other
+side
+Do
+not
+try
+to
+lean
+on
+others
+but
+stand
+by
+your
+own
+self
+and
+conquer
+self
+then
+you
+can
+help
+others
+and
+bring
+them
+together
+in
+one
+circle
+of
+harmony
+and
+you
+will
+have
+true
+happiness
+This
+is
+Mary
+Baker
+Eddy
+Thank
+you
+for
+letting
+me
+come
+Good
+Night
+CHAPTER
+XV
+Theosophy
+THAT
+the
+belief
+in
+reincarnation
+on
+earth
+is
+a
+fallacious
+one
+and
+prevents
+progression
+to
+higher
+spiritual
+realms
+after
+transition
+has
+been
+frequently
+declared
+by
+advanced
+spirits
+while
+numerous
+cases
+of
+obsession
+which
+have
+come
+under
+our
+care
+have
+been
+due
+to
+spirits
+who
+in
+endeavoring
+to
+reincarnate
+in
+children
+have
+found
+themselves
+imprisoned
+in
+the
+magnetic
+aura
+causing
+great
+suffering
+to
+both
+their
+victims
+and
+themselves
+A
+little
+boy
+in
+Chicago
+Jack
+T
+had
+been
+normal
+until
+the
+age
+of
+five
+when
+he
+began
+to
+manifest
+precocious
+tendencies
+and
+acted
+strangely
+Formerly
+he
+had
+had
+the
+natural
+disposition
+of
+a
+child
+but
+began
+to
+fret
+about
+things
+ordinarily
+foreign
+to
+a
+child
+s
+mind
+and
+acted
+in
+many
+ways
+like
+an
+adult
+He
+worried
+over
+trifles
+lay
+awake
+at
+night
+with
+strange
+mutterings
+and
+presentiments
+and
+at
+times
+had
+an
+uncontrollable
+temper
+He
+was
+a
+boy
+of
+good
+appearance
+but
+talked
+constantly
+of
+being
+old
+homely
+and
+ugly
+looking
+and
+was
+so
+intractable
+that
+efforts
+at
+reprimand
+and
+correction
+proved
+of
+no
+avail
+This
+condition
+became
+so
+aggravated
+that
+his
+family
+despaired
+of
+restoring
+the
+boy
+s
+reason
+A
+relative
+who
+knew
+of
+our
+experimental
+work
+in
+abnormal
+psychology
+wrote
+to
+the
+Institute
+requesting
+us
+to
+concentrate
+for
+the
+boy
+This
+was
+done
+and
+an
+entity
+whose
+actions
+and
+expressions
+were
+in
+every
+way
+like
+those
+of
+the
+boy
+was
+attracted
+to
+the
+psychic
+Mrs
+Wickland
+This
+entity
+said
+his
+name
+was
+Charlie
+Herrman
+he
+was
+aware
+of
+having
+died
+and
+declared
+he
+was
+a
+very
+homely
+man
+with
+ugly
+features
+and
+a
+face
+covered
+with
+pock
+marks
+Nobody
+had
+cared
+for
+him
+and
+this
+fact
+preyed
+on
+his
+mind
+Someone
+had
+once
+told
+him
+that
+after
+death
+individuals
+could
+reincarnate
+and
+become
+whatever
+they
+wished
+to
+be
+Since
+his
+only
+desire
+was
+to
+be
+good
+looking
+so
+that
+others
+would
+not
+shun
+him
+he
+decided
+to
+try
+and
+reincarnate
+As
+a
+result
+he
+became
+entangled
+in
+the
+magnetic
+aura
+of
+a
+small
+boy
+and
+was
+unable
+to
+free
+himself
+See
+Chap
+Page
+Spirit
+John
+Edwards
+Finding
+that
+he
+was
+helplessly
+imprisoned
+and
+incapable
+of
+making
+himself
+understood
+he
+had
+outbursts
+of
+temper
+and
+felt
+like
+flying
+to
+pieces
+They
+called
+me
+Jack
+at
+times
+but
+I
+am
+not
+Jack
+That
+was
+not
+my
+name
+and
+I
+could
+not
+understand
+Our
+concentration
+for
+the
+boy
+had
+freed
+the
+spirit
+and
+for
+this
+he
+was
+very
+grateful
+After
+instructions
+were
+given
+regarding
+spiritual
+progression
+and
+he
+had
+been
+assured
+that
+he
+need
+no
+longer
+be
+homely
+if
+he
+would
+discard
+old
+ideas
+from
+his
+mind
+forget
+self
+and
+strive
+to
+help
+others
+he
+expressed
+great
+eagerness
+to
+go
+with
+the
+spirits
+who
+he
+stated
+had
+come
+to
+help
+him
+In
+a
+letter
+written
+a
+few
+days
+later
+by
+the
+boy
+s
+mother
+we
+were
+informed
+that
+a
+remarkable
+change
+had
+occurred
+in
+the
+child
+Jack
+is
+now
+a
+boy
+again
+and
+has
+been
+very
+good
+this
+week
+really
+like
+he
+used
+to
+be
+He
+remained
+normal
+and
+received
+excellent
+grades
+in
+school
+where
+his
+progress
+from
+that
+time
+on
+was
+unusually
+rapid
+At
+one
+time
+we
+concentrated
+for
+a
+crippled
+child
+in
+Hollywood
+with
+interesting
+results
+EXPERIENCE
+NOVEMBER
+Spirit
+WILLIAM
+STANLEY
+Psychic
+MRS
+WICKLAND
+Spirit
+Is
+it
+really
+true
+that
+I
+am
+well
+now
+Can
+I
+talk
+Can
+I
+move
+my
+arms
+and
+feet
+Then
+reincarnation
+is
+true
+because
+before
+I
+could
+neither
+talk
+nor
+walk
+How
+did
+I
+get
+out
+of
+the
+child
+Doctor
+Intelligent
+spirits
+brought
+you
+here
+for
+help
+Sp
+I
+wanted
+to
+come
+back
+and
+reincarnate
+in
+a
+child
+and
+I
+got
+in
+and
+could
+not
+get
+out
+I
+was
+so
+paralyzed
+that
+I
+could
+not
+express
+myself
+and
+I
+was
+in
+an
+awful
+state
+I
+was
+a
+Theosophist
+and
+I
+wanted
+to
+reincarnate
+to
+be
+great
+I
+got
+into
+a
+child
+s
+body
+and
+crippled
+it
+and
+also
+crippled
+my
+mind
+and
+that
+of
+the
+child
+I
+stayed
+in
+the
+child
+because
+I
+did
+not
+know
+how
+to
+get
+out
+I
+acted
+as
+a
+child
+and
+I
+could
+not
+talk
+I
+know
+I
+passed
+out
+of
+my
+mortal
+body
+some
+years
+ago
+far
+away
+in
+India
+but
+I
+do
+not
+realize
+when
+it
+took
+place
+I
+wanted
+so
+much
+to
+reincarnate
+and
+to
+come
+back
+to
+this
+earth
+life
+to
+live
+my
+other
+Karma
+Do
+not
+hold
+on
+to
+the
+thought
+of
+coming
+back
+but
+look
+for
+something
+higher
+for
+the
+state
+I
+was
+in
+was
+the
+worst
+torture
+anybody
+could
+have
+I
+lived
+in
+Calcutta
+and
+wanted
+to
+learn
+to
+be
+a
+Master
+and
+go
+through
+my
+Karma
+but
+instead
+I
+am
+as
+you
+see
+me
+to
+be
+I
+reincarnated
+in
+a
+child
+and
+became
+crippled
+and
+I
+also
+got
+into
+the
+vibration
+of
+the
+mother
+It
+was
+very
+hard
+and
+I
+want
+to
+warn
+others
+never
+to
+come
+back
+and
+try
+to
+reincarnate
+through
+a
+little
+child
+Leave
+reincarnation
+alone
+because
+it
+is
+only
+a
+mistake
+but
+the
+philosophy
+of
+Theosophy
+is
+very
+fine
+Look
+upward
+don
+t
+think
+of
+the
+astral
+shells
+for
+they
+are
+of
+no
+use
+I
+was
+very
+selfish
+and
+wanted
+to
+come
+back
+to
+earth
+life
+just
+to
+be
+something
+great
+but
+instead
+I
+got
+into
+a
+very
+low
+state
+I
+had
+intended
+to
+show
+the
+Theosophists
+that
+I
+could
+come
+back
+and
+reincarnate
+in
+a
+child
+Madam
+Blavatsky
+should
+have
+taught
+differently
+Pointing
+to
+an
+invisible
+I
+will
+tell
+you
+Madam
+you
+are
+the
+one
+who
+is
+to
+blame
+for
+the
+condition
+I
+am
+in
+today
+Madam
+Blavatsky
+stands
+here
+trying
+to
+help
+me
+now
+She
+is
+the
+one
+who
+gave
+me
+the
+teachings
+and
+thoughts
+of
+reincarnation
+and
+now
+she
+is
+trying
+to
+show
+me
+the
+right
+way
+and
+states
+there
+is
+no
+such
+thing
+as
+reincarnation
+One
+gets
+all
+mixed
+up
+trying
+to
+enter
+another
+s
+body
+for
+reincarnation
+Dr
+What
+is
+your
+name
+Sp
+I
+cannot
+recall
+my
+name
+just
+now
+Madam
+Blavatsky
+was
+in
+India
+and
+taught
+Theosophy
+had
+many
+followers
+and
+I
+was
+with
+her
+I
+have
+also
+met
+Anna
+Kingsford
+and
+Dr
+Hartmann
+and
+he
+also
+was
+to
+blame
+for
+my
+condition
+They
+pushed
+me
+in
+here
+that
+I
+might
+be
+taught
+and
+freed
+I
+am
+so
+pleased
+that
+I
+can
+talk
+again
+that
+is
+something
+I
+have
+not
+been
+able
+to
+do
+for
+years
+Madam
+Blavatsky
+Anna
+Kingsford
+and
+the
+Judge
+were
+all
+great
+lights
+and
+now
+they
+have
+found
+out
+their
+big
+mistakes
+They
+are
+all
+working
+to
+get
+their
+victims
+free
+and
+so
+they
+brought
+me
+to
+this
+place
+for
+instruction
+and
+guidance
+I
+was
+in
+India
+having
+been
+there
+for
+many
+years
+My
+father
+was
+an
+officer
+in
+the
+Army
+I
+spent
+most
+of
+my
+time
+in
+Calcutta
+where
+I
+met
+all
+the
+great
+lights
+of
+Theosophy
+and
+I
+joined
+the
+Theosophical
+Society
+I
+liked
+Colonel
+Olcott
+he
+was
+a
+great
+fellow
+I
+remember
+being
+very
+sick
+in
+India
+for
+some
+time
+I
+have
+no
+desire
+to
+reincarnate
+again
+because
+reincarnation
+is
+a
+wrong
+doctrine
+It
+creates
+a
+selfishness
+to
+come
+back
+One
+can
+learn
+without
+being
+reincarnated
+What
+I
+suppose
+did
+I
+learn
+in
+my
+last
+reincarnation
+in
+the
+child
+What
+did
+I
+learn
+I
+believed
+in
+Theosophy
+and
+my
+Karma
+and
+I
+thought
+I
+had
+to
+go
+through
+with
+it
+Colonel
+Olcott
+belonged
+to
+the
+Great
+Masters
+He
+belonged
+to
+the
+spirit
+of
+Fire
+and
+Water
+I
+mean
+the
+elementals
+of
+Fire
+and
+Water
+Dr
+Have
+you
+ever
+heard
+of
+mediums
+Sp
+They
+are
+only
+astral
+shells
+Madam
+Blavatsky
+says
+we
+must
+all
+help
+those
+who
+try
+to
+reincarnate
+She
+and
+the
+others
+have
+come
+to
+say
+they
+are
+trying
+to
+help
+and
+for
+that
+purpose
+have
+formed
+a
+big
+society
+I
+thought
+I
+had
+come
+to
+life
+when
+I
+came
+here
+and
+that
+I
+could
+reincarnate
+and
+talk
+to
+them
+as
+I
+did
+in
+life
+I
+did
+not
+know
+they
+had
+passed
+over
+Teaching
+as
+they
+did
+why
+did
+they
+not
+reincarnate
+the
+same
+as
+I
+Madam
+Blavatsky
+was
+a
+great
+missionary
+as
+you
+know
+She
+says
+she
+is
+now
+trying
+to
+make
+all
+her
+victims
+understand
+about
+the
+life
+after
+this
+as
+it
+really
+is
+She
+says
+that
+she
+was
+a
+medium
+at
+one
+time
+but
+that
+she
+did
+not
+want
+anybody
+to
+control
+her
+She
+thought
+you
+should
+develop
+your
+own
+self
+and
+mental
+faculties
+and
+go
+through
+yourKarma
+I
+should
+not
+have
+been
+taught
+the
+falseness
+I
+was
+Madam
+tells
+me
+that
+I
+should
+listen
+to
+this
+gentleman
+Dr
+W
+and
+that
+he
+will
+explain
+things
+Explanations
+were
+given
+regarding
+life
+on
+the
+earth
+plane
+the
+preparation
+for
+the
+life
+that
+is
+to
+follow
+and
+the
+fact
+that
+the
+knowledge
+and
+wisdom
+gained
+here
+will
+be
+the
+light
+of
+understanding
+each
+one
+carries
+to
+the
+other
+side
+of
+life
+The
+spirit
+finally
+gave
+the
+name
+of
+William
+Stanley
+and
+departed
+grateful
+for
+the
+enlightenment
+he
+had
+received
+J
+A
+a
+listless
+crippled
+boy
+of
+seven
+years
+with
+an
+adult
+manner
+of
+speech
+was
+a
+patient
+from
+Chicago
+who
+suffered
+from
+convulsions
+and
+a
+slow
+hesitant
+stammering
+was
+notional
+about
+his
+food
+and
+subject
+to
+violent
+attacks
+of
+temper
+Through
+concentration
+a
+spirit
+was
+dislodged
+from
+him
+a
+superficial
+Theosophist
+who
+was
+peculiarly
+self
+hypnotized
+EXPERIENCE
+APRIL
+Spirit
+EDWARD
+JACKSON
+Patient
+J
+A
+PSYChiC
+MRS
+WICKLAND
+Doctor
+Have
+you
+been
+here
+before
+Spirit
+Slowly
+Myself
+do
+not
+know
+Dr
+How
+old
+are
+you
+Sp
+Drawling
+Me
+do
+not
+know
+Dr
+Where
+did
+you
+come
+from
+Sp
+Where
+they
+shot
+fire
+at
+me
+Static
+treatment
+given
+patient
+Dr
+How
+old
+are
+you
+Sp
+Myself
+do
+not
+know
+Dr
+Don
+t
+you
+understand
+that
+you
+have
+lost
+your
+physical
+body
+and
+are
+a
+spirit
+Listen
+to
+intelligent
+spirits
+who
+will
+help
+you
+Sp
+Me
+does
+not
+know
+anything
+about
+spirits
+Dr
+Don
+t
+you
+want
+to
+know
+something
+about
+them
+Where
+did
+you
+expect
+to
+go
+after
+death
+Sp
+Me
+does
+not
+know
+Dr
+Would
+you
+like
+to
+know
+anything
+Sp
+That
+takes
+care
+of
+itself
+Dr
+If
+you
+had
+been
+more
+concerned
+about
+the
+facts
+of
+life
+you
+would
+not
+be
+in
+this
+condition
+you
+would
+be
+in
+the
+spirit
+world
+Do
+you
+know
+anything
+about
+the
+spirit
+world
+Sp
+No
+Dr
+Would
+you
+care
+to
+know
+Sp
+I
+do
+not
+know
+Dr
+You
+must
+want
+to
+know
+You
+have
+lost
+your
+mortal
+body
+and
+do
+not
+understand
+it
+Sp
+I
+don
+t
+care
+Dr
+You
+will
+have
+to
+care
+Are
+you
+happy
+in
+your
+present
+condition
+Sp
+No
+Dr
+Were
+you
+sick
+Sp
+I
+was
+Dr
+What
+was
+the
+matter
+with
+you
+Sp
+Crippled
+Dr
+Where
+did
+you
+live
+Sp
+I
+don
+t
+know
+It
+is
+a
+long
+time
+since
+I
+was
+born
+Dr
+Were
+you
+a
+man
+or
+a
+woman
+Sp
+I
+suppose
+I
+am
+a
+man
+Dr
+Were
+you
+married
+Sp
+No
+Dr
+Why
+Sp
+No
+one
+likes
+a
+cripple
+and
+I
+stuttered
+and
+stuttered
+a
+great
+deal
+I
+also
+studied
+Dr
+What
+did
+you
+study
+Sp
+All
+kinds
+of
+books
+that
+came
+my
+way
+Dr
+On
+religion
+Sp
+Why
+yes
+Dr
+Were
+you
+orthodox
+Sp
+No
+thank
+God
+Dr
+Did
+you
+have
+any
+fixed
+opinions
+at
+all
+Sp
+Once
+for
+a
+time
+I
+studied
+Then
+I
+was
+shut
+up
+in
+one
+place
+one
+time
+and
+another
+place
+another
+time
+It
+is
+the
+fourth
+time
+I
+have
+been
+reincarnated
+Obsessed
+sensitives
+Twice
+I
+got
+in
+a
+cripple
+Dr
+Were
+you
+a
+cripple
+in
+the
+first
+place
+Sp
+I
+do
+not
+remember
+anything
+about
+it
+People
+told
+me
+to
+remember
+about
+my
+lives
+but
+I
+do
+not
+I
+know
+I
+was
+once
+a
+cripple
+and
+then
+I
+got
+into
+somebody
+and
+was
+more
+crippled
+But
+I
+got
+out
+I
+do
+not
+know
+how
+I
+got
+out
+I
+feel
+stronger
+now
+than
+I
+have
+before
+I
+thought
+when
+I
+reincarnated
+I
+should
+be
+a
+nice
+young
+man
+but
+instead
+I
+got
+crippled
+because
+I
+suppose
+my
+mind
+was
+crippled
+Dr
+What
+did
+they
+call
+you
+when
+you
+were
+a
+cripple
+Sp
+I
+had
+so
+many
+names
+but
+you
+know
+I
+liked
+the
+last
+time
+I
+liked
+it
+very
+much
+to
+be
+a
+rich
+man
+s
+son
+so
+I
+did
+not
+need
+to
+work
+I
+had
+my
+father
+to
+work
+for
+me
+I
+had
+a
+good
+time
+Dr
+Did
+you
+become
+a
+rich
+man
+s
+son
+Sp
+In
+a
+way
+yes
+and
+in
+another
+way
+no
+Dr
+What
+is
+your
+name
+Sp
+My
+name
+was
+once
+upon
+a
+time
+I
+do
+not
+know
+Some
+time
+ago
+when
+I
+was
+studying
+Theosophy
+I
+was
+a
+cripple
+born
+Some
+friends
+brought
+some
+books
+to
+me
+about
+Madam
+Blavatsky
+They
+called
+me
+Edward
+Jackson
+Dr
+What
+other
+names
+did
+you
+have
+Sp
+The
+other
+was
+J
+Dr
+Was
+J
+a
+grown
+man
+or
+a
+boy
+Sp
+I
+do
+not
+like
+that
+fire
+shooting
+and
+someone
+talking
+all
+kinds
+of
+things
+Why
+cannot
+I
+reincarnate
+and
+not
+be
+a
+cripple
+all
+the
+time
+Dr
+I
+suppose
+when
+you
+found
+yourself
+in
+a
+rich
+man
+s
+family
+and
+thought
+of
+reincarnation
+you
+believed
+you
+were
+experiencing
+your
+former
+condition
+again
+Sp
+It
+is
+Karma
+to
+develop
+one
+s
+highest
+self
+so
+the
+Theosophists
+say
+They
+chased
+me
+out
+so
+I
+tried
+again
+because
+I
+wanted
+to
+know
+if
+that
+theory
+is
+true
+or
+not
+Dr
+It
+is
+very
+true
+in
+one
+way
+earthbound
+spirits
+can
+control
+mortal
+sensitives
+That
+is
+very
+true
+Sp
+They
+must
+live
+out
+their
+Karma
+which
+has
+been
+put
+out
+for
+them
+it
+is
+the
+only
+way
+Dr
+Where
+did
+you
+come
+from
+SP
+Chicago
+I
+was
+going
+to
+be
+a
+rich
+man
+s
+son
+but
+I
+was
+turned
+out
+Dr
+Did
+you
+like
+that
+Sp
+I
+was
+fighting
+and
+when
+I
+get
+mad
+I
+do
+not
+care
+what
+I
+say
+and
+I
+get
+mad
+once
+in
+a
+while
+Sometimes
+I
+get
+so
+mad
+because
+I
+shall
+be
+a
+cripple
+all
+my
+life
+When
+I
+reincarnated
+I
+got
+into
+the
+same
+crippled
+state
+again
+Dr
+Don
+t
+you
+think
+you
+had
+better
+stop
+trying
+to
+reincarnate
+Sp
+I
+must
+live
+out
+my
+Karma
+and
+must
+not
+interfere
+with
+it
+Dr
+Then
+you
+must
+continue
+suffering
+because
+of
+your
+foolishness
+Sp
+I
+was
+trying
+to
+get
+to
+Devachan
+I
+was
+not
+well
+educated
+but
+I
+read
+up
+on
+Devachan
+which
+is
+the
+resting
+place
+where
+they
+reincarnate
+again
+Dr
+You
+came
+back
+too
+soon
+Sp
+Theosophy
+appealed
+to
+my
+mind
+and
+then
+I
+wanted
+to
+have
+a
+good
+time
+You
+must
+not
+interfere
+with
+your
+Karma
+You
+can
+choose
+your
+life
+and
+I
+was
+going
+to
+have
+plenty
+of
+money
+but
+I
+got
+crippled
+again
+But
+my
+mind
+was
+good
+They
+said
+you
+should
+not
+think
+of
+your
+former
+life
+Dr
+Who
+told
+you
+that
+Sp
+They
+said
+you
+should
+progress
+and
+not
+interfere
+with
+your
+Karma
+then
+you
+would
+get
+to
+Devachan
+I
+suppose
+I
+must
+be
+an
+astral
+shell
+I
+did
+not
+study
+enough
+Dr
+Would
+you
+like
+to
+use
+a
+little
+discrimination
+and
+progress
+in
+the
+right
+way
+to
+the
+spirit
+life
+Sp
+I
+want
+to
+go
+to
+Devachan
+that
+is
+the
+best
+place
+for
+me
+Then
+you
+can
+be
+a
+Master
+Dr
+You
+should
+become
+a
+Master
+of
+your
+own
+destiny
+Sp
+I
+want
+to
+be
+a
+Great
+Master
+Then
+I
+would
+not
+be
+a
+cripple
+and
+would
+have
+lived
+out
+my
+Karma
+Dr
+How
+were
+you
+crippled
+Sp
+In
+my
+legs
+Dr
+Could
+you
+not
+walk
+Sp
+No
+my
+knees
+were
+too
+weak
+and
+my
+ankles
+were
+weak
+I
+am
+crippled
+all
+over
+now
+Dr
+Could
+you
+think
+and
+talk
+SP
+Yes
+Dr
+Do
+you
+like
+corn
+meal
+mush
+An
+especial
+aversion
+of
+the
+patient
+Sp
+I
+don
+t
+know
+what
+you
+mean
+Dr
+Are
+you
+particular
+about
+eating
+Sp
+I
+will
+not
+eat
+meat
+and
+not
+much
+fish
+I
+like
+to
+have
+some
+raw
+vegetables
+I
+want
+my
+food
+more
+sun
+kissed
+I
+want
+to
+go
+to
+Devachan
+and
+be
+a
+Master
+Dr
+Master
+of
+what
+Sp
+Master
+of
+Higher
+Things
+I
+want
+to
+be
+a
+Master
+Dr
+Madam
+Blavatsky
+denies
+reincarnation
+now
+and
+says
+it
+is
+folly
+Sp
+She
+doesn
+t
+know
+what
+she
+is
+talking
+about
+Dr
+Do
+you
+want
+to
+be
+perfectly
+well
+again
+Sp
+Then
+I
+have
+to
+reincarnate
+again
+Dr
+Now
+wake
+up
+and
+be
+sensible
+Understand
+you
+are
+a
+spirit
+You
+are
+now
+controlling
+the
+body
+of
+my
+wife
+Sp
+I
+did
+not
+reincarnate
+in
+another
+person
+s
+body
+I
+thought
+next
+time
+I
+would
+reincarnate
+differently
+You
+say
+I
+am
+a
+woman
+now
+I
+do
+not
+want
+to
+be
+a
+girl
+I
+want
+to
+be
+a
+man
+Dr
+You
+are
+using
+a
+woman
+s
+body
+just
+now
+Sp
+I
+have
+to
+be
+born
+again
+even
+if
+I
+am
+crippled
+Dr
+Don
+t
+be
+foolish
+Realize
+you
+are
+no
+longer
+crippled
+Sp
+How
+can
+you
+tell
+any
+one
+not
+to
+be
+a
+cripple
+when
+they
+are
+Dr
+You
+are
+now
+a
+free
+spirit
+temporarily
+controlling
+a
+woman
+s
+body
+Sp
+I
+do
+not
+understand
+what
+you
+are
+talking
+about
+Dr
+Your
+Devachan
+does
+not
+work
+at
+all
+You
+did
+not
+study
+thoroughly
+Sp
+Yes
+I
+did
+but
+I
+disregarded
+it
+Dr
+Do
+not
+talk
+such
+nonsense
+It
+makes
+nice
+earthbound
+spirits
+Sp
+We
+have
+to
+reincarnate
+to
+learn
+and
+get
+all
+kinds
+of
+experiences
+Dr
+I
+suppose
+you
+could
+not
+progress
+to
+Devachan
+if
+you
+did
+not
+have
+all
+the
+different
+experiences
+Sp
+You
+have
+to
+come
+back
+and
+learn
+them
+Dr
+Do
+you
+know
+what
+you
+have
+been
+doing
+You
+have
+been
+controlling
+different
+persons
+and
+disturbing
+their
+lives
+An
+ignorant
+spirit
+ruins
+the
+life
+of
+a
+mortal
+sensitive
+by
+clinging
+to
+him
+You
+have
+been
+brought
+here
+for
+help
+and
+are
+now
+controlling
+my
+wife
+s
+body
+Sp
+I
+have
+to
+reincarnate
+in
+your
+wife
+No
+I
+must
+reincarnate
+in
+a
+child
+and
+be
+born
+again
+Dr
+This
+is
+not
+your
+body
+It
+belongs
+to
+my
+wife
+and
+you
+are
+using
+it
+temporarily
+Sp
+Then
+I
+have
+to
+reincarnate
+in
+your
+wife
+Dr
+You
+are
+controlling
+her
+body
+for
+a
+short
+time
+only
+Look
+at
+this
+hand
+do
+you
+know
+it
+Sp
+I
+have
+reincarnated
+again
+in
+your
+wife
+s
+body
+No
+you
+must
+reincarnate
+again
+in
+a
+child
+and
+be
+born
+again
+Dr
+You
+do
+not
+know
+what
+you
+are
+talking
+about
+If
+you
+understood
+the
+truth
+you
+would
+not
+talk
+as
+you
+do
+You
+are
+an
+earthbound
+spirit
+making
+cripples
+of
+children
+Sp
+That
+is
+my
+Karma
+I
+have
+to
+so
+live
+until
+I
+get
+Devachan
+Dr
+You
+live
+so
+only
+because
+of
+your
+ignorance
+Sp
+When
+you
+have
+a
+chance
+to
+reincarnate
+why
+should
+you
+not
+do
+it
+Dr
+When
+you
+have
+a
+chance
+to
+take
+possession
+of
+the
+body
+of
+another
+and
+ruin
+his
+life
+is
+it
+right
+to
+do
+so
+Sp
+I
+would
+just
+as
+soon
+be
+that
+spirit
+in
+that
+body
+Dr
+The
+asylums
+are
+full
+of
+people
+who
+are
+controlled
+by
+earthbound
+spirits
+like
+you
+You
+have
+been
+ruining
+the
+lives
+of
+children
+Evidently
+you
+have
+come
+from
+a
+boy
+we
+know
+When
+we
+applied
+static
+sparks
+to
+the
+boy
+we
+got
+you
+out
+Now
+you
+are
+allowed
+to
+control
+my
+wife
+s
+body
+temporarily
+and
+we
+are
+trying
+to
+make
+you
+understand
+your
+condition
+Sp
+That
+has
+nothing
+to
+do
+with
+my
+Karma
+Dr
+You
+have
+lost
+your
+physical
+body
+a
+long
+time
+ago
+Do
+you
+realize
+that
+you
+are
+controlling
+my
+wife
+s
+body
+Sp
+It
+is
+my
+Karma
+and
+I
+don
+t
+care
+Dr
+You
+have
+been
+bothering
+a
+little
+boy
+and
+you
+should
+now
+listen
+to
+what
+is
+being
+told
+you
+Sp
+I
+know
+the
+only
+truth
+is
+reincarnation
+I
+have
+reincarnated
+and
+I
+will
+again
+Dr
+You
+will
+have
+to
+leave
+at
+once
+if
+you
+cannot
+be
+sensible
+Sp
+You
+cannot
+frighten
+me
+out
+I
+am
+reincarnated
+Dr
+Where
+is
+your
+mother
+Sp
+She
+is
+in
+Devachan
+She
+is
+ready
+to
+reincarnate
+again
+Dr
+You
+will
+soon
+see
+spirits
+who
+will
+show
+you
+something
+different
+Sp
+They
+are
+only
+astral
+shells
+Dr
+They
+will
+put
+you
+in
+a
+dark
+dungeon
+You
+do
+not
+know
+the
+A
+B
+C
+of
+Theosophy
+You
+do
+not
+want
+to
+know
+Sp
+You
+cannot
+stop
+my
+talking
+if
+I
+want
+to
+talk
+I
+am
+reincarnated
+again
+I
+am
+going
+to
+live
+out
+this
+Karma
+If
+I
+am
+a
+woman
+now
+I
+will
+live
+it
+out
+If
+I
+get
+killed
+that
+is
+part
+of
+my
+Karma
+I
+will
+just
+have
+to
+study
+and
+get
+in
+the
+Inner
+Circle
+and
+know
+that
+God
+is
+my
+Creator
+I
+have
+reincarnated
+and
+I
+will
+reincarnate
+again
+then
+go
+to
+Devachan
+and
+be
+happy
+I
+will
+finish
+my
+Karma
+Dr
+You
+get
+out
+and
+take
+your
+Karma
+with
+you
+Sp
+You
+think
+you
+are
+going
+to
+take
+away
+what
+is
+my
+Karma
+but
+you
+will
+not
+I
+am
+happy
+and
+I
+am
+going
+Smiling
+beatifically
+the
+spirit
+departed
+Several
+extracts
+are
+given
+from
+remarks
+made
+in
+our
+circle
+at
+various
+times
+by
+the
+spirit
+of
+Ralph
+S
+son
+in
+law
+of
+a
+lady
+who
+attended
+our
+circles
+He
+and
+his
+wife
+in
+former
+years
+had
+been
+deeply
+interested
+in
+Theosophy
+and
+when
+he
+reached
+the
+spirit
+world
+he
+had
+found
+it
+difficult
+to
+free
+himself
+from
+preconceived
+ideas
+EXPERIENCE
+MARCH
+Spirit
+RALPH
+S
+Psychic
+MRS
+WICKLAND
+Spirit
+I
+have
+been
+here
+before
+and
+I
+was
+so
+anxious
+to
+come
+again
+Doctor
+Who
+are
+you
+friend
+Sp
+Don
+t
+you
+know
+who
+I
+am
+I
+am
+Ralph
+S
+I
+studied
+a
+great
+deal
+about
+Theosophy
+and
+the
+law
+of
+developing
+myself
+regarding
+the
+higher
+things
+but
+forgot
+to
+study
+the
+truth
+My
+wife
+and
+I
+studied
+to
+develop
+ourselves
+aiming
+for
+the
+highest
+but
+we
+forgot
+to
+learn
+the
+simple
+lesson
+of
+life
+everlasting
+How
+little
+we
+know
+of
+the
+world
+beyond
+How
+I
+do
+wish
+we
+had
+both
+understood
+more
+of
+life
+There
+is
+so
+much
+dogma
+Now
+I
+have
+so
+much
+to
+unlearn
+so
+much
+to
+overcome
+Dr
+Love
+is
+the
+fulfillment
+of
+the
+law
+Sp
+Yes
+we
+have
+to
+serve
+Ques
+Are
+you
+happy
+Sp
+In
+one
+way
+yes
+but
+not
+in
+another
+If
+only
+the
+door
+were
+not
+closed
+Ques
+Which
+door
+Sp
+The
+door
+of
+communication
+My
+wife
+would
+be
+afraid
+if
+I
+tried
+to
+manifest
+myself
+to
+her
+It
+hurts
+me
+We
+studied
+and
+studied
+so
+much
+and
+it
+was
+very
+hard
+to
+find
+that
+when
+I
+reached
+the
+spirit
+side
+of
+life
+I
+knew
+so
+little
+and
+was
+in
+darkness
+I
+am
+pleased
+to
+know
+Mother
+that
+you
+are
+not
+ashamed
+to
+stand
+for
+the
+truth
+Give
+it
+to
+others
+as
+much
+as
+you
+can
+for
+it
+will
+help
+you
+in
+return
+EXPERIENCE
+APRIL
+Spirit
+RALPH
+S
+Psychic
+MRS
+WICKLAND
+Here
+I
+am
+again
+This
+is
+Ralph
+Mother
+I
+want
+to
+come
+to
+my
+wife
+but
+cannot
+as
+the
+door
+is
+shut
+I
+know
+it
+is
+as
+much
+my
+fault
+as
+it
+is
+my
+wife
+s
+The
+door
+is
+shut
+for
+me
+and
+will
+be
+for
+some
+time
+because
+of
+the
+dogma
+and
+creed
+there
+is
+in
+the
+mind
+If
+only
+my
+wife
+would
+realize
+the
+truth
+it
+is
+so
+simple
+but
+the
+simple
+truth
+is
+always
+rejected
+Something
+mysterious
+is
+always
+accepted
+We
+thought
+that
+by
+working
+out
+our
+Karma
+everything
+would
+be
+all
+right
+but
+we
+developed
+selfishness
+It
+is
+selfish
+to
+shut
+yourself
+up
+and
+try
+to
+be
+a
+Master
+Master
+of
+what
+We
+should
+try
+to
+master
+ourselves
+try
+to
+learn
+about
+all
+things
+look
+up
+to
+all
+things
+because
+God
+is
+in
+all
+things
+and
+is
+Love
+and
+Wisdom
+We
+should
+not
+feel
+that
+because
+of
+a
+little
+learning
+we
+are
+better
+than
+others
+merely
+because
+we
+studied
+to
+be
+Great
+Masters
+We
+speak
+of
+things
+of
+which
+we
+do
+not
+realize
+the
+full
+import
+and
+we
+make
+ourselves
+sensitive
+and
+become
+obsessed
+I
+realize
+now
+how
+dangerous
+the
+doctrine
+of
+Reincarnation
+is
+According
+to
+that
+doctrine
+this
+would
+be
+the
+time
+for
+me
+to
+reincarnate
+Should
+I
+reincarnate
+and
+obsess
+a
+child
+and
+tie
+both
+of
+us
+up
+in
+one
+body
+until
+such
+time
+as
+the
+child
+leaves
+the
+mortal
+The
+two
+made
+an
+agreement
+that
+should
+one
+pass
+out
+the
+other
+would
+not
+try
+to
+establish
+communication
+considering
+this
+to
+be
+a
+hinderance
+to
+the
+ego
+In
+its
+progression
+to
+Devachan
+body
+Why
+should
+I
+reincarnate
+and
+make
+a
+child
+become
+an
+idiot
+All
+creeds
+should
+be
+set
+aside
+and
+we
+should
+seek
+the
+simple
+truth
+of
+life
+Love
+God
+above
+all
+things
+and
+your
+neighbor
+as
+yourself
+There
+would
+be
+great
+rejoicing
+if
+everybody
+tried
+to
+live
+up
+to
+that
+teaching
+then
+there
+would
+be
+true
+happiness
+Creeds
+and
+dogmas
+interfere
+and
+make
+us
+selfish
+and
+selfishness
+is
+the
+root
+of
+all
+evil
+I
+am
+to
+blame
+for
+the
+present
+conditions
+surrounding
+my
+wife
+Her
+refusal
+to
+receive
+spirit
+communications
+My
+work
+now
+is
+to
+come
+down
+to
+earth
+to
+help
+the
+ones
+who
+believe
+in
+the
+same
+theory
+as
+I
+did
+and
+are
+engaged
+in
+the
+same
+study
+I
+was
+I
+have
+to
+work
+hard
+trying
+to
+bring
+them
+to
+realize
+the
+truth
+I
+must
+also
+work
+to
+try
+to
+bring
+my
+wife
+to
+the
+realization
+that
+she
+must
+not
+go
+into
+that
+dogma
+any
+further
+If
+she
+does
+she
+will
+become
+more
+psychic
+and
+will
+be
+obsessed
+by
+some
+theory
+or
+other
+I
+do
+not
+mean
+obsessed
+by
+spirits
+but
+ideas
+I
+was
+more
+deeply
+steeped
+in
+the
+dogma
+of
+reincarnation
+than
+my
+wife
+because
+I
+was
+further
+advanced
+in
+my
+studies
+I
+went
+into
+the
+subject
+deeper
+than
+she
+We
+were
+both
+so
+selfish
+in
+our
+theory
+that
+we
+could
+not
+see
+anything
+else
+and
+we
+condemned
+all
+other
+theories
+We
+felt
+we
+were
+better
+than
+many
+others
+because
+we
+lived
+to
+sacrifice
+Having
+adhered
+to
+a
+restricted
+diet
+a
+supposed
+requirement
+for
+spiritual
+attainment
+The
+body
+is
+only
+a
+dress
+for
+the
+spirit
+We
+should
+eat
+what
+comes
+before
+us
+Let
+us
+not
+put
+our
+minds
+on
+eating
+and
+drinking
+We
+should
+not
+sacrifice
+our
+bodies
+and
+crucify
+the
+flesh
+to
+become
+more
+spiritual
+That
+was
+never
+meant
+to
+be
+Take
+care
+of
+your
+body
+but
+do
+not
+rob
+it
+of
+its
+needs
+God
+gave
+it
+to
+you
+to
+take
+care
+of
+Keep
+it
+in
+a
+healthy
+condition
+so
+the
+spirit
+can
+work
+through
+it
+to
+the
+best
+advantage
+It
+does
+not
+make
+us
+spiritual
+to
+abstain
+from
+certain
+foods
+We
+need
+specific
+elements
+for
+the
+body
+so
+let
+us
+strive
+our
+utmost
+to
+take
+care
+of
+it
+My
+wife
+is
+hard
+to
+reach
+We
+had
+agreed
+not
+to
+try
+to
+call
+each
+other
+back
+after
+death
+We
+were
+hypnotized
+by
+our
+theosophical
+theory
+that
+we
+must
+go
+on
+and
+clear
+our
+Karma
+and
+that
+we
+cannot
+open
+the
+door
+to
+the
+higher
+life
+unless
+we
+go
+very
+slowly
+This
+makes
+it
+much
+harder
+for
+me
+I
+am
+to
+blame
+as
+much
+as
+she
+is
+I
+shut
+the
+door
+for
+her
+as
+much
+as
+she
+shut
+the
+door
+for
+me
+I
+condemned
+Spiritualism
+because
+I
+thought
+the
+theory
+we
+held
+was
+the
+real
+one
+and
+that
+everything
+else
+was
+false
+Of
+course
+there
+is
+some
+deception
+in
+Spiritualism
+but
+there
+is
+good
+as
+well
+as
+bad
+in
+every
+movement
+Let
+us
+not
+be
+carried
+away
+by
+anything
+let
+us
+use
+reason
+in
+all
+things
+EXPERIENCE
+NOVEMBER
+Spirit
+RALPH
+S
+Psychic
+MRS
+WICKLAND
+It
+will
+soon
+be
+three
+years
+since
+I
+passed
+away
+but
+in
+those
+three
+years
+I
+have
+learned
+a
+great
+deal
+I
+did
+not
+find
+conditions
+as
+I
+had
+believed
+them
+I
+am
+sorry
+that
+I
+was
+so
+set
+in
+my
+mind
+on
+the
+theory
+of
+Theosophy
+that
+we
+must
+come
+back
+again
+and
+again
+in
+order
+to
+reach
+the
+higher
+plane
+Since
+I
+have
+come
+to
+the
+spirit
+side
+of
+life
+I
+have
+not
+had
+any
+thought
+of
+coming
+back
+except
+to
+help
+my
+dear
+wife
+We
+both
+studied
+to
+learn
+about
+life
+but
+after
+I
+came
+here
+I
+tried
+to
+impress
+her
+that
+there
+was
+nothing
+more
+to
+learn
+about
+the
+religion
+we
+had
+both
+studied
+because
+it
+is
+not
+the
+true
+religion
+If
+I
+came
+back
+I
+could
+not
+reincarnate
+as
+I
+thought
+I
+would
+rather
+come
+back
+to
+help
+my
+wife
+and
+learn
+all
+I
+can
+about
+spirit
+return
+than
+to
+come
+and
+stay
+in
+one
+state
+for
+a
+certain
+time
+then
+come
+back
+again
+as
+a
+baby
+I
+had
+said
+to
+my
+wife
+that
+I
+would
+not
+come
+back
+to
+her
+because
+I
+wanted
+to
+go
+on
+and
+be
+a
+Master
+We
+think
+a
+Master
+is
+one
+who
+is
+very
+highly
+developed
+and
+cannot
+do
+anything
+but
+be
+holy
+You
+do
+not
+want
+to
+become
+such
+a
+Master
+the
+greatest
+masters
+serve
+The
+more
+we
+learn
+in
+the
+spirit
+world
+the
+more
+we
+want
+to
+serve
+Here
+we
+want
+to
+help
+to
+learn
+to
+teach
+others
+Christ
+is
+worshipped
+as
+a
+Master
+Did
+He
+come
+back
+He
+went
+among
+the
+poor
+and
+lowly
+trying
+to
+teach
+and
+serve
+people
+and
+to
+help
+them
+to
+a
+higher
+life
+and
+understanding
+Learn
+the
+truth
+give
+it
+to
+others
+and
+serve
+others
+Be
+a
+master
+in
+learning
+but
+humble
+in
+serving
+When
+we
+have
+learned
+to
+serve
+others
+we
+have
+learned
+the
+lesson
+Christ
+taught
+When
+we
+have
+reached
+that
+state
+we
+can
+love
+our
+enemies
+as
+ourselves
+and
+God
+above
+all
+things
+Then
+we
+are
+masters
+That
+does
+not
+mean
+that
+we
+are
+so
+high
+that
+we
+cannot
+come
+back
+to
+serve
+to
+teach
+to
+help
+others
+It
+means
+that
+we
+must
+all
+be
+masters
+of
+ourselves
+and
+conquer
+all
+desires
+In
+a
+little
+talk
+given
+one
+evening
+by
+one
+whose
+writings
+were
+well
+known
+to
+many
+reincarnation
+was
+also
+mentioned
+EXPERIENCE
+JANUARY
+Spirit
+ELLA
+WHEELER
+WILCOX
+Psychic
+MRS
+WICKLAND
+Good
+Evening
+I
+have
+not
+been
+here
+before
+But
+I
+heard
+of
+you
+while
+I
+was
+on
+earth
+and
+I
+also
+heard
+of
+your
+work
+and
+had
+read
+your
+pamphlet
+We
+should
+all
+try
+to
+understand
+the
+true
+meaning
+of
+God
+but
+how
+few
+try
+to
+understand
+the
+actual
+truth
+Truth
+is
+always
+crucified
+Truth
+should
+be
+known
+and
+not
+clothed
+with
+all
+sorts
+of
+creeds
+When
+I
+was
+in
+earth
+life
+I
+was
+once
+a
+bond
+servant
+with
+wrong
+ideas
+and
+foolish
+thoughts
+of
+truth
+but
+toward
+the
+last
+the
+simple
+truth
+and
+an
+understanding
+of
+the
+real
+life
+beyond
+were
+shown
+to
+me
+and
+I
+accepted
+them
+The
+truth
+had
+to
+come
+to
+me
+through
+sorrow
+We
+do
+not
+seek
+for
+truth
+until
+we
+have
+had
+a
+deep
+sorrow
+such
+as
+losing
+a
+dear
+husband
+or
+friend
+then
+the
+heart
+seeks
+after
+the
+truth
+and
+will
+not
+let
+dogmas
+and
+creeds
+stand
+in
+the
+way
+We
+are
+hungry
+to
+know
+about
+the
+life
+beyond
+and
+to
+learn
+if
+our
+dear
+ones
+and
+friends
+are
+with
+us
+to
+guide
+and
+help
+I
+felt
+the
+loss
+of
+my
+dear
+husband
+so
+keenly
+that
+I
+was
+brokenhearted
+I
+could
+not
+think
+that
+I
+would
+not
+be
+with
+him
+and
+near
+him
+again
+but
+the
+light
+of
+truth
+and
+the
+understanding
+that
+there
+is
+no
+death
+came
+to
+me
+and
+I
+felt
+him
+around
+me
+This
+beautiful
+truth
+will
+come
+to
+everyone
+who
+earnestly
+seeks
+after
+it
+and
+after
+finding
+it
+we
+must
+stand
+for
+it
+in
+all
+honesty
+and
+sincerity
+because
+if
+we
+do
+not
+doubt
+will
+come
+in
+and
+fear
+and
+shut
+the
+door
+for
+our
+dear
+ones
+who
+have
+only
+gone
+ahead
+to
+prepare
+our
+home
+everlasting
+How
+we
+mortals
+are
+clothed
+with
+doubt
+and
+when
+the
+truth
+of
+continued
+existence
+is
+presented
+to
+us
+even
+then
+we
+doubt
+The
+Bible
+is
+full
+of
+the
+beautiful
+truth
+which
+is
+revealed
+to
+us
+but
+still
+we
+all
+doubt
+When
+I
+found
+the
+truth
+I
+wanted
+to
+teach
+it
+to
+the
+world
+but
+my
+physical
+body
+was
+not
+strong
+enough
+to
+do
+what
+I
+should
+have
+liked
+I
+tried
+to
+tell
+it
+to
+the
+soldiers
+because
+I
+knew
+that
+to
+them
+the
+truth
+would
+be
+a
+Godsend
+because
+they
+were
+here
+today
+and
+tomorrow
+there
+Should
+I
+not
+when
+I
+had
+found
+the
+truth
+give
+them
+the
+understanding
+that
+there
+is
+no
+death
+They
+then
+felt
+that
+they
+could
+go
+right
+on
+and
+fight
+because
+they
+realized
+that
+death
+was
+not
+the
+end
+of
+life
+It
+would
+only
+be
+the
+clothing
+the
+body
+which
+would
+be
+destroyed
+How
+courageous
+and
+how
+happy
+they
+were
+when
+I
+said
+to
+them
+that
+there
+is
+no
+death
+only
+a
+transition
+to
+a
+happier
+and
+more
+beautiful
+state
+and
+I
+wished
+so
+much
+that
+I
+could
+give
+them
+more
+I
+spent
+my
+life
+in
+dogmas
+all
+my
+life
+in
+trying
+to
+do
+good
+I
+did
+good
+but
+my
+thoughts
+were
+clothed
+with
+dogmas
+of
+different
+kinds
+At
+last
+I
+found
+the
+truth
+Oh
+my
+dear
+Robert
+had
+to
+go
+to
+open
+the
+door
+before
+I
+could
+realize
+what
+was
+awaiting
+me
+I
+did
+some
+good
+after
+I
+found
+the
+truth
+let
+us
+all
+do
+the
+same
+People
+will
+scoff
+at
+you
+at
+times
+but
+never
+mind
+never
+mind
+By
+so
+doing
+you
+will
+become
+stronger
+and
+you
+will
+find
+that
+it
+will
+help
+you
+to
+grow
+in
+understanding
+I
+found
+the
+truth
+but
+by
+a
+dangerous
+method
+I
+had
+to
+struggle
+as
+well
+with
+that
+The
+Ouija
+Board
+is
+a
+dangerous
+thing
+and
+I
+found
+it
+out
+It
+greatly
+weakened
+me
+Be
+very
+guarded
+in
+seeking
+for
+the
+truth
+for
+it
+is
+a
+dangerous
+road
+You
+must
+learn
+the
+way
+in
+order
+to
+have
+help
+and
+guidance
+I
+had
+struggles
+with
+others
+because
+I
+went
+into
+the
+midst
+of
+earthbound
+spirits
+as
+well
+as
+the
+soldiers
+If
+you
+could
+only
+realize
+the
+dreadful
+pressure
+around
+the
+soldiers
+They
+wanted
+light
+on
+one
+side
+as
+well
+as
+on
+the
+other
+Spirits
+yet
+in
+ignorance
+of
+the
+higher
+life
+It
+was
+too
+much
+pressure
+on
+my
+physical
+body
+and
+I
+gave
+out
+I
+could
+not
+stand
+it
+or
+the
+thoughts
+that
+were
+centered
+on
+me
+I
+taught
+the
+truth
+to
+the
+soldiers
+on
+earth
+but
+I
+did
+not
+realize
+how
+many
+I
+lectured
+to
+who
+had
+gone
+before
+The
+strain
+was
+too
+great
+for
+me
+so
+I
+came
+home
+not
+weak
+in
+spirit
+but
+in
+body
+Still
+I
+feel
+happy
+that
+I
+was
+enabled
+to
+help
+I
+found
+the
+world
+of
+spirits
+where
+I
+could
+be
+with
+my
+dear
+one
+whom
+I
+loved
+the
+most
+You
+wonder
+where
+the
+real
+life
+is
+The
+real
+life
+is
+on
+the
+other
+side
+of
+the
+grave
+as
+you
+call
+it
+This
+life
+is
+only
+a
+temporary
+school
+the
+school
+of
+learning
+to
+know
+ourselves
+and
+for
+what
+object
+we
+are
+here
+People
+think
+that
+when
+they
+die
+they
+will
+see
+God
+but
+how
+few
+realize
+what
+God
+means
+God
+is
+the
+Life
+of
+all
+things
+How
+little
+people
+think
+of
+this
+earth
+plane
+and
+what
+it
+really
+is
+It
+is
+only
+an
+infinitesimal
+part
+of
+the
+Universe
+Once
+I
+thought
+of
+reincarnation
+I
+was
+at
+one
+time
+a
+Theosophist
+Theosophy
+is
+all
+right
+so
+far
+as
+it
+goes
+the
+thoughts
+and
+teachings
+are
+beautiful
+but
+why
+should
+we
+reincarnate
+on
+this
+little
+planet
+I
+would
+not
+care
+to
+come
+back
+to
+the
+earth
+plane
+except
+to
+tell
+you
+of
+the
+higher
+and
+real
+life
+which
+lies
+before
+you
+I
+would
+not
+like
+to
+come
+back
+to
+this
+earth
+plane
+again
+to
+be
+a
+little
+baby
+and
+I
+do
+not
+see
+why
+I
+should
+for
+what
+would
+I
+learn
+Could
+souls
+like
+we
+come
+back
+into
+children
+again
+and
+feel
+satisfied
+After
+you
+have
+learned
+the
+higher
+things
+of
+life
+you
+do
+not
+care
+to
+come
+back
+to
+matter
+another
+time
+You
+want
+to
+learn
+while
+here
+and
+gain
+sufficient
+knowledge
+so
+that
+when
+you
+pass
+on
+you
+will
+not
+want
+to
+come
+back
+and
+learn
+it
+over
+You
+can
+learn
+much
+about
+the
+other
+side
+of
+life
+while
+here
+and
+when
+you
+pass
+over
+there
+you
+will
+learn
+more
+and
+more
+of
+things
+which
+you
+could
+not
+learn
+while
+here
+because
+you
+could
+not
+understand
+them
+Oh
+the
+world
+of
+worlds
+If
+you
+could
+only
+travel
+to
+the
+beautiful
+worlds
+beyond
+and
+see
+the
+grandeur
+there
+We
+also
+have
+to
+serve
+to
+bring
+others
+to
+the
+same
+harmony
+we
+enjoy
+We
+cannot
+return
+and
+be
+babies
+again
+but
+we
+step
+down
+to
+earth
+life
+to
+help
+our
+loved
+ones
+and
+friends
+There
+was
+a
+time
+when
+I
+thought
+I
+had
+reincarnated
+because
+when
+I
+would
+write
+I
+felt
+that
+I
+had
+been
+here
+before
+but
+I
+find
+that
+it
+was
+only
+spirits
+who
+sent
+the
+thoughts
+to
+my
+mind
+and
+gave
+me
+strength
+to
+write
+and
+in
+that
+way
+I
+felt
+that
+I
+had
+been
+here
+before
+It
+was
+only
+another
+s
+mind
+reflecting
+on
+my
+mind
+The
+work
+you
+are
+doing
+here
+is
+one
+I
+wish
+I
+had
+known
+about
+and
+could
+have
+helped
+with
+because
+it
+is
+so
+much
+needed
+So
+many
+need
+help
+and
+enlightenment
+We
+cannot
+reach
+many
+from
+our
+side
+of
+life
+because
+they
+are
+bond
+servants
+to
+creeds
+and
+desires
+of
+different
+kinds
+which
+attract
+them
+to
+this
+earth
+plane
+We
+must
+have
+stations
+like
+this
+where
+we
+can
+bring
+them
+and
+open
+their
+spiritual
+eyes
+that
+they
+may
+see
+Then
+they
+will
+see
+us
+and
+we
+can
+help
+them
+to
+a
+better
+understanding
+Let
+us
+all
+try
+to
+concentrate
+for
+training
+schools
+where
+earthbound
+spirits
+can
+be
+brought
+for
+enlightenment
+You
+may
+be
+surprised
+to
+think
+I
+came
+tonight
+I
+have
+tried
+to
+come
+through
+Ouija
+Boards
+and
+I
+have
+tried
+to
+come
+other
+ways
+but
+here
+I
+can
+step
+in
+and
+talk
+as
+you
+talk
+It
+is
+like
+talking
+through
+a
+telephone
+and
+I
+feel
+strong
+I
+feel
+now
+that
+I
+am
+amongst
+you
+really
+in
+body
+and
+in
+spirit
+We
+must
+all
+unite
+and
+do
+all
+we
+can
+to
+further
+this
+work
+because
+we
+want
+stations
+like
+this
+here
+there
+and
+everywhere
+In
+time
+you
+will
+have
+receivers
+which
+will
+record
+messages
+from
+our
+side
+of
+life
+It
+will
+not
+be
+long
+before
+a
+message
+will
+come
+over
+this
+receiver
+from
+the
+other
+world
+that
+will
+awaken
+the
+people
+from
+their
+creeds
+It
+will
+awaken
+the
+churches
+Churches
+will
+be
+empty
+but
+it
+will
+only
+be
+for
+a
+short
+time
+because
+a
+new
+religion
+will
+spring
+up
+a
+religion
+which
+will
+be
+founded
+on
+the
+truth
+of
+spirit
+return
+and
+not
+on
+dogma
+People
+will
+live
+for
+others
+and
+will
+not
+grasp
+all
+for
+themselves
+The
+churches
+will
+be
+for
+the
+people
+and
+not
+for
+creeds
+People
+will
+pay
+money
+to
+the
+church
+but
+it
+will
+be
+to
+further
+the
+work
+of
+the
+beautiful
+truth
+of
+the
+life
+beyond
+There
+will
+not
+be
+any
+salvation
+but
+you
+will
+learn
+to
+know
+that
+we
+are
+with
+you
+There
+will
+be
+churches
+which
+will
+have
+open
+doors
+for
+the
+spirits
+as
+well
+as
+the
+mortals
+I
+wanted
+to
+come
+to
+California
+to
+see
+your
+work
+while
+I
+was
+on
+earth
+as
+I
+had
+heard
+of
+you
+and
+was
+very
+much
+interested
+in
+your
+pamphlet
+and
+your
+work
+I
+wrote
+a
+little
+about
+it
+but
+I
+thought
+I
+could
+do
+more
+if
+I
+could
+see
+you
+in
+person
+However
+I
+went
+to
+the
+spirit
+life
+before
+I
+could
+meet
+you
+Now
+I
+am
+here
+to
+see
+your
+work
+If
+you
+could
+only
+realize
+what
+vast
+numbers
+invisibles
+there
+are
+outside
+the
+door
+who
+are
+waiting
+for
+a
+chance
+to
+come
+in
+to
+learn
+the
+truth
+of
+life
+and
+how
+they
+are
+crowding
+each
+other
+for
+help
+Now
+I
+cannot
+take
+more
+of
+your
+time
+but
+I
+do
+thank
+you
+for
+letting
+me
+come
+I
+am
+glad
+if
+I
+can
+be
+of
+some
+service
+to
+you
+in
+your
+work
+Have
+courage
+People
+refuse
+to
+recognize
+the
+fact
+of
+obsession
+because
+they
+think
+it
+hurts
+the
+cause
+spirit
+return
+I
+believed
+in
+it
+thoroughly
+because
+it
+is
+true
+and
+I
+knew
+it
+I
+am
+Ella
+Wheeler
+Wilcox
+I
+wanted
+to
+come
+here
+to
+give
+you
+encouragement
+in
+your
+work
+Go
+on
+with
+the
+work
+of
+obsession
+because
+it
+is
+so
+much
+needed
+and
+we
+will
+give
+you
+help
+from
+this
+side
+of
+life
+Please
+understand
+I
+would
+have
+been
+here
+in
+your
+concentration
+circle
+before
+but
+the
+door
+is
+crowded
+with
+people
+who
+are
+waiting
+for
+an
+opportunity
+to
+come
+We
+have
+to
+come
+one
+by
+one
+This
+evening
+I
+am
+very
+happy
+to
+say
+was
+my
+turn
+This
+work
+is
+so
+much
+needed
+to
+help
+humanity
+There
+is
+only
+one
+other
+that
+I
+know
+of
+who
+has
+such
+concentration
+circles
+where
+the
+medium
+allows
+earthbound
+spirits
+to
+control
+There
+are
+very
+few
+indeed
+who
+will
+allow
+earthbound
+spirits
+to
+come
+in
+and
+control
+For
+my
+part
+I
+know
+only
+one
+other
+and
+I
+have
+been
+hunting
+for
+some
+time
+to
+see
+where
+the
+work
+could
+be
+done
+The
+work
+of
+obsession
+as
+carried
+on
+by
+you
+should
+be
+done
+in
+every
+town
+and
+city
+Every
+medium
+should
+be
+willing
+to
+do
+this
+line
+of
+work
+The
+time
+will
+come
+when
+every
+minister
+will
+speak
+regarding
+the
+philosophy
+of
+life
+and
+spirit
+return
+and
+all
+isms
+will
+be
+done
+away
+with
+I
+cannot
+stay
+any
+longer
+but
+I
+thank
+you
+very
+much
+for
+the
+privilege
+of
+coming
+and
+shall
+come
+again
+some
+time
+I
+hope
+A
+venerable
+family
+friend
+Dr
+J
+M
+Peebles
+former
+Consul
+to
+Turkey
+world
+traveler
+and
+for
+sixty
+years
+an
+international
+lecturer
+on
+psychic
+science
+passed
+on
+at
+the
+age
+of
+ninety
+nine
+and
+has
+since
+spoken
+through
+Mrs
+Wickland
+upon
+various
+occasions
+sometimes
+bringing
+earthbound
+spirits
+for
+enlightenment
+EXPERIENCE
+OCTOBER
+Spirit
+DR
+J
+M
+PEEBLES
+Psychic
+MRS
+WICKLAND
+Spirit
+Good
+Evening
+my
+friends
+I
+thank
+you
+for
+opening
+the
+door
+so
+I
+could
+bring
+in
+the
+ones
+that
+are
+in
+misery
+and
+have
+them
+find
+understanding
+I
+like
+to
+be
+here
+with
+you
+and
+I
+like
+to
+help
+you
+with
+your
+work
+Doctor
+Whoever
+you
+are
+you
+are
+very
+welcome
+Sp
+You
+know
+who
+I
+am
+you
+know
+This
+is
+Dr
+Peebles
+I
+am
+young
+now
+I
+was
+always
+young
+in
+spirit
+but
+my
+body
+commenced
+to
+grow
+old
+and
+I
+could
+not
+always
+do
+as
+I
+wished
+I
+should
+very
+much
+have
+liked
+to
+live
+to
+be
+one
+hundred
+years
+old
+but
+I
+could
+not
+I
+had
+a
+most
+beautiful
+celebration
+on
+my
+hundredth
+birthday
+in
+the
+spirit
+world
+among
+friends
+I
+was
+very
+glad
+to
+go
+When
+I
+reached
+the
+spirit
+world
+I
+was
+glad
+to
+find
+such
+glory
+and
+happiness
+and
+beauty
+I
+understood
+about
+the
+spirit
+world
+but
+it
+cannot
+be
+described
+I
+cannot
+tell
+you
+how
+it
+is
+when
+we
+have
+understanding
+Even
+though
+I
+had
+been
+a
+Spiritualist
+for
+many
+many
+years
+still
+I
+clung
+to
+dogma
+as
+well
+I
+was
+a
+Spiritualist
+on
+one
+side
+but
+I
+could
+not
+give
+up
+the
+dogma
+of
+the
+Christian
+religion
+it
+was
+my
+hoodoo
+I
+traveled
+around
+the
+world
+five
+times
+saw
+many
+conditions
+of
+life
+and
+heard
+many
+different
+lectures
+on
+the
+Great
+Truth
+Let
+us
+not
+have
+beliefs
+Let
+us
+only
+learn
+to
+understand
+the
+grandeur
+of
+God
+Realize
+that
+this
+little
+earth
+is
+only
+a
+grammar
+school
+It
+is
+not
+a
+University
+not
+even
+a
+High
+School
+it
+is
+only
+the
+first
+lesson
+of
+life
+Many
+do
+not
+learn
+in
+that
+school
+Dr
+Who
+had
+been
+discussing
+reincarnation
+with
+a
+member
+of
+the
+circle
+jestingly
+They
+reincarnate
+again
+Sp
+Earnestly
+No
+they
+do
+not
+Why
+should
+you
+want
+to
+come
+back
+again
+Why
+should
+you
+go
+back
+to
+be
+confined
+in
+a
+small
+body
+and
+have
+no
+will
+of
+your
+own
+In
+the
+spirit
+world
+you
+are
+free
+to
+travel
+everywhere
+you
+do
+not
+need
+a
+physical
+body
+Why
+go
+back
+into
+that
+prison
+again
+Why
+should
+a
+child
+ready
+to
+enter
+High
+School
+go
+back
+to
+the
+Sixth
+Seventh
+or
+Eighth
+grade
+Those
+of
+you
+who
+are
+here
+at
+the
+present
+time
+when
+you
+have
+learned
+the
+primary
+lesson
+of
+life
+would
+you
+like
+to
+go
+back
+into
+a
+small
+body
+and
+know
+nothing
+When
+you
+travel
+you
+learn
+You
+can
+learn
+in
+one
+day
+here
+what
+it
+takes
+ten
+or
+twelve
+years
+to
+learn
+on
+earth
+If
+you
+feel
+like
+seeing
+things
+you
+travel
+During
+my
+life
+I
+studied
+Reincarnation
+and
+also
+Mrs
+Cora
+Richmond
+s
+Re
+embodiment
+Ques
+What
+is
+Re
+embodiment
+Dr
+It
+is
+a
+projection
+of
+self
+into
+the
+physical
+to
+acquire
+certain
+experiences
+Sp
+She
+believed
+you
+had
+to
+have
+many
+experiences
+that
+you
+had
+to
+be
+a
+murderer
+a
+thief
+a
+salesman
+a
+tailor
+that
+you
+must
+learn
+all
+the
+trades
+and
+professions
+Why
+can
+t
+you
+learn
+these
+experiences
+through
+others
+If
+you
+come
+in
+contact
+with
+a
+man
+you
+do
+not
+need
+to
+be
+perfect
+to
+profit
+by
+his
+experience
+You
+can
+learn
+by
+object
+lessons
+We
+teach
+children
+by
+object
+lessons
+and
+so
+it
+is
+through
+life
+In
+the
+spirit
+world
+if
+you
+wish
+to
+see
+a
+big
+factory
+making
+all
+sorts
+of
+machinery
+you
+can
+as
+a
+spirit
+go
+there
+by
+thinking
+and
+can
+learn
+all
+about
+it
+If
+you
+want
+to
+learn
+what
+they
+are
+doing
+in
+other
+parts
+of
+the
+world
+in
+Russia
+Germany
+England
+Indian
+Australia
+think
+and
+you
+are
+there
+and
+so
+learn
+your
+lessons
+Should
+you
+then
+be
+born
+again
+All
+you
+learn
+in
+life
+is
+only
+like
+a
+day
+in
+spirit
+I
+do
+not
+mean
+you
+grasp
+it
+all
+at
+once
+You
+have
+nothing
+to
+hold
+you
+when
+you
+are
+free
+remember
+a
+free
+spirit
+free
+and
+open
+to
+learn
+Dr
+For
+instance
+here
+when
+we
+want
+to
+know
+what
+is
+in
+a
+book
+we
+have
+to
+go
+through
+it
+In
+the
+spirit
+world
+I
+presume
+you
+sense
+the
+contents
+Sp
+Yes
+you
+sense
+it
+by
+feeling
+When
+you
+are
+in
+the
+body
+you
+have
+to
+act
+through
+the
+brain
+and
+it
+is
+difficult
+but
+in
+the
+spirit
+world
+you
+are
+free
+You
+have
+no
+brain
+to
+interfere
+Life
+is
+everlasting
+Everything
+you
+have
+learned
+through
+life
+that
+belongs
+to
+the
+soul
+is
+stored
+in
+your
+memory
+but
+so
+long
+as
+you
+live
+in
+the
+material
+body
+the
+cells
+clog
+up
+You
+lose
+your
+memory
+because
+the
+spirit
+cannot
+work
+on
+the
+brain
+cells
+as
+well
+in
+old
+age
+as
+in
+youth
+The
+cells
+are
+not
+so
+active
+and
+there
+are
+times
+when
+memory
+is
+shut
+out
+There
+are
+times
+when
+you
+feel
+like
+a
+drowning
+man
+everything
+stands
+before
+you
+things
+which
+have
+been
+forgotten
+As
+spirits
+we
+have
+our
+memory
+but
+when
+we
+come
+back
+and
+control
+a
+medium
+sometimes
+even
+our
+names
+are
+forgotten
+We
+get
+into
+another
+body
+very
+much
+like
+obsession
+Dr
+That
+must
+be
+a
+form
+of
+obsession
+Sp
+No
+it
+is
+not
+When
+obsession
+takes
+place
+the
+spirit
+clings
+to
+that
+body
+and
+it
+is
+hard
+to
+let
+go
+I
+would
+say
+that
+there
+is
+not
+one
+person
+on
+earth
+who
+is
+not
+obsessed
+in
+one
+way
+or
+another
+You
+know
+in
+olden
+times
+when
+I
+was
+a
+young
+boy
+life
+was
+very
+different
+from
+what
+it
+is
+now
+We
+did
+not
+hurry
+because
+there
+was
+nothing
+to
+hurry
+for
+Now
+life
+is
+all
+hurry
+People
+are
+living
+too
+rapid
+a
+life
+If
+a
+man
+does
+not
+work
+fast
+they
+say
+Quit
+him
+if
+he
+does
+not
+do
+that
+and
+that
+Quit
+him
+Nowadays
+people
+have
+to
+be
+so
+keen
+that
+the
+nervous
+system
+fails
+and
+they
+lose
+themselves
+then
+the
+spirits
+step
+in
+If
+you
+were
+a
+clairvoyant
+and
+walked
+down
+some
+busy
+street
+You
+would
+be
+surprised
+to
+find
+how
+many
+persons
+have
+invisible
+company
+Very
+few
+people
+on
+entering
+the
+spirit
+side
+of
+life
+even
+among
+the
+Spiritualists
+who
+preach
+it
+understand
+the
+condition
+of
+the
+higher
+life
+Dr
+They
+usually
+care
+only
+for
+phenomena
+they
+do
+not
+care
+for
+philosophy
+Sp
+Tonight
+I
+brought
+about
+one
+hundred
+spirits
+here
+At
+first
+I
+lectured
+to
+them
+and
+tried
+to
+waken
+them
+but
+could
+not
+Then
+I
+saw
+the
+English
+lady
+spirit
+who
+preceded
+him
+in
+controlling
+psychic
+and
+from
+her
+actions
+I
+thought
+she
+would
+listen
+but
+she
+would
+not
+So
+she
+was
+allowed
+to
+control
+Mrs
+Wickland
+and
+served
+as
+an
+object
+lesson
+The
+other
+spirits
+were
+watching
+her
+as
+they
+thought
+she
+acted
+so
+strangely
+They
+were
+curious
+so
+they
+roused
+themselves
+and
+woke
+up
+then
+I
+could
+talk
+You
+may
+think
+that
+sometimes
+we
+bring
+in
+strange
+spirits
+but
+it
+is
+to
+help
+many
+others
+as
+well
+as
+to
+give
+the
+controlling
+spirit
+an
+understanding
+of
+spiritual
+things
+Forget
+Reincarnation
+because
+it
+is
+a
+sandbag
+around
+your
+neck
+You
+will
+have
+that
+so
+centered
+in
+your
+mind
+that
+you
+will
+think
+and
+think
+about
+only
+that
+and
+then
+you
+will
+stay
+just
+where
+you
+are
+You
+cannot
+progress
+because
+your
+mind
+will
+always
+revert
+to
+the
+earth
+again
+and
+that
+Gate
+which
+was
+opened
+for
+the
+English
+lady
+could
+never
+be
+opened
+to
+any
+one
+who
+believed
+in
+reincarnation
+The
+thought
+of
+it
+is
+so
+self
+hypnotizing
+and
+so
+self
+satisfying
+that
+there
+is
+nothing
+in
+your
+mind
+except
+coming
+back
+and
+those
+are
+real
+selfish
+thoughts
+You
+wrap
+yourself
+in
+those
+thoughts
+and
+you
+remain
+just
+where
+you
+are
+You
+cannot
+reincarnate
+I
+have
+seen
+the
+effect
+of
+such
+thoughts
+and
+have
+also
+talked
+with
+people
+who
+believed
+in
+reincarnation
+Ques
+What
+does
+Madam
+Blavatsky
+think
+about
+reincarnation
+now
+Sp
+We
+had
+some
+dispute
+about
+it
+when
+I
+was
+on
+earth
+and
+we
+have
+had
+more
+since
+I
+came
+here
+She
+does
+not
+believe
+in
+it
+now
+She
+has
+had
+her
+lesson
+It
+took
+a
+very
+long
+time
+but
+now
+all
+she
+would
+like
+to
+come
+back
+for
+would
+be
+to
+correct
+her
+mistakes
+Dr
+That
+is
+hard
+to
+do
+Sp
+I
+had
+my
+hobby
+I
+thought
+I
+should
+see
+Christ
+I
+have
+not
+seen
+Him
+and
+never
+will
+Christ
+is
+the
+Principle
+of
+God
+Christ
+is
+the
+Principle
+of
+Life
+Jesus
+is
+Truth
+and
+Christ
+is
+Enlightenment
+and
+Understanding
+When
+you
+have
+found
+See
+Chap
+Page
+M
+Spirit
+Esther
+Sutherland
+yourself
+and
+learn
+to
+be
+one
+with
+your
+Maker
+that
+is
+At
+OneMent
+with
+God
+Through
+Jesus
+you
+find
+the
+Truth
+and
+Jesus
+has
+to
+be
+crucified
+that
+Christ
+may
+live
+We
+must
+overcome
+earthly
+things
+Crucify
+selfishness
+and
+jealousy
+on
+the
+cross
+Truth
+cannot
+be
+selfish
+or
+jealous
+selfishness
+and
+jealousy
+belong
+to
+the
+lower
+part
+of
+man
+Do
+not
+become
+hypnotized
+in
+any
+way
+by
+dogma
+creed
+or
+belief
+but
+find
+God
+within
+yourself
+and
+be
+free
+Ask
+to
+hear
+to
+see
+to
+feel
+and
+to
+know
+God
+then
+your
+eyes
+will
+be
+opened
+to
+spiritual
+things
+and
+you
+will
+not
+want
+to
+come
+back
+to
+this
+earth
+life
+again
+You
+could
+not
+live
+on
+earth
+more
+than
+once
+no
+no
+You
+cannot
+light
+again
+a
+candle
+that
+has
+burned
+out
+Life
+is
+progression
+not
+retrogression
+You
+go
+from
+one
+degree
+to
+another
+and
+so
+on
+and
+on
+In
+the
+spirit
+world
+your
+time
+is
+so
+taken
+up
+with
+duties
+that
+you
+have
+no
+time
+to
+think
+of
+coming
+back
+You
+want
+to
+see
+your
+friends
+and
+you
+want
+to
+travel
+because
+you
+can
+see
+all
+you
+want
+to
+when
+you
+are
+free
+and
+have
+understanding
+Many
+ask
+How
+about
+children
+who
+have
+passed
+out
+and
+have
+not
+had
+earth
+life
+experience
+They
+have
+it
+The
+spirit
+of
+the
+mother
+s
+love
+brings
+the
+children
+to
+her
+often
+they
+are
+around
+her
+and
+in
+this
+way
+learn
+of
+earth
+life
+They
+are
+also
+taught
+We
+have
+in
+the
+spirit
+world
+teachers
+of
+higher
+things
+and
+they
+teach
+by
+object
+lessons
+We
+take
+children
+to
+schools
+of
+various
+kinds
+and
+teach
+them
+God
+s
+wonders
+There
+they
+learn
+the
+real
+life
+not
+merely
+reading
+and
+writing
+They
+learn
+the
+real
+lessons
+anatomy
+astrology
+astronomy
+and
+many
+other
+subjects
+Those
+are
+the
+studies
+of
+the
+children
+and
+the
+masters
+therein
+are
+teaching
+the
+lessons
+Our
+schools
+teach
+progression
+to
+a
+higher
+life
+I
+wish
+you
+could
+open
+your
+eyes
+to
+see
+how
+rapidly
+the
+children
+progress
+by
+object
+lessons
+I
+want
+to
+tell
+you
+that
+I
+am
+with
+you
+in
+your
+work
+I
+want
+you
+to
+understand
+that
+I
+have
+not
+left
+you
+People
+are
+lost
+for
+lack
+of
+a
+real
+understanding
+of
+life
+Obsession
+is
+very
+very
+bad
+Insane
+asylums
+are
+filled
+and
+the
+doctors
+do
+not
+know
+what
+to
+do
+to
+stop
+insanity
+Let
+us
+have
+more
+love
+for
+each
+other
+let
+us
+all
+help
+the
+weak
+ones
+and
+reach
+the
+point
+where
+all
+are
+brothers
+and
+sisters
+When
+that
+time
+comes
+everybody
+will
+work
+just
+half
+the
+time
+they
+do
+now
+they
+will
+have
+more
+time
+for
+themselves
+and
+will
+have
+more
+pleasures
+Now
+half
+the
+people
+are
+idle
+and
+are
+a
+detriment
+to
+themselves
+and
+the
+world
+at
+large
+If
+all
+would
+work
+for
+others
+and
+not
+have
+such
+unrest
+it
+would
+be
+better
+for
+everybody
+Now
+I
+must
+not
+say
+any
+more
+but
+must
+go
+Good
+Night
+Very
+unexpectedly
+we
+had
+a
+visit
+from
+the
+one
+whose
+teachings
+and
+writings
+have
+made
+world
+wide
+the
+theory
+of
+Reincarnation
+EXPERIENCE
+NOVEMBER
+Spirit
+MADAM
+BLAVATSKY
+Psychic
+MRS
+WICKLAND
+I
+wanted
+to
+come
+to
+you
+this
+evening
+I
+believe
+in
+the
+work
+this
+little
+circle
+is
+doing
+and
+I
+am
+very
+pleased
+with
+the
+work
+you
+are
+carrying
+on
+I
+wish
+there
+were
+more
+to
+help
+us
+to
+meet
+us
+on
+a
+half
+way
+basis
+to
+understand
+there
+is
+no
+death
+I
+do
+wish
+I
+had
+taught
+this
+truth
+more
+and
+also
+that
+I
+had
+tried
+to
+look
+further
+into
+it
+I
+knew
+about
+it
+I
+also
+had
+many
+manifestations
+I
+do
+not
+know
+why
+but
+when
+truth
+comes
+to
+us
+we
+shut
+it
+out
+Truth
+is
+always
+hidden
+We
+have
+to
+search
+to
+find
+it
+Theories
+and
+dogmas
+seem
+to
+have
+more
+chance
+in
+the
+world
+than
+truth
+Every
+one
+has
+some
+manifestations
+but
+hides
+them
+instead
+of
+acknowledging
+them
+I
+wanted
+to
+be
+a
+leader
+in
+some
+way
+or
+another
+Now
+I
+want
+to
+bring
+the
+truth
+to
+the
+world
+I
+knew
+of
+spirit
+manifestations
+and
+I
+had
+them
+myself
+I
+did
+a
+great
+deal
+in
+my
+early
+days
+along
+this
+line
+but
+I
+commenced
+to
+investigate
+Theosophy
+Philosophy
+and
+Theosophy
+should
+go
+hand
+in
+hand
+To
+me
+came
+Reincarnation
+It
+appealed
+to
+me
+for
+a
+time
+I
+could
+not
+see
+the
+truth
+clearly
+I
+felt
+that
+it
+was
+very
+unjust
+some
+should
+be
+rich
+and
+have
+such
+good
+times
+and
+that
+others
+should
+be
+poor
+and
+have
+so
+much
+trouble
+Others
+did
+not
+get
+enough
+earth
+experience
+at
+least
+so
+I
+felt
+I
+studied
+Reincarnation
+and
+I
+thought
+there
+was
+truth
+and
+justice
+in
+the
+theory
+that
+we
+come
+back
+and
+learn
+and
+have
+more
+experiences
+I
+taught
+it
+and
+wanted
+to
+bring
+it
+out
+to
+the
+world
+and
+its
+peoples
+I
+felt
+that
+I
+remembered
+far
+back
+in
+my
+past
+I
+felt
+I
+knew
+all
+about
+my
+past
+but
+I
+was
+mistaken
+Memories
+of
+past
+lives
+are
+caused
+by
+spirits
+that
+bring
+such
+thoughts
+and
+represent
+the
+lives
+they
+lived
+A
+spirit
+impresses
+you
+with
+the
+experiences
+of
+its
+life
+and
+these
+are
+implanted
+in
+your
+mind
+as
+your
+own
+You
+then
+think
+you
+remember
+your
+past
+When
+you
+study
+especially
+when
+you
+study
+Theosophy
+you
+develop
+your
+mind
+and
+live
+in
+an
+atmosphere
+of
+mind
+You
+remove
+yourself
+as
+much
+as
+possible
+from
+the
+physical
+Naturally
+you
+become
+sensitive
+and
+naturally
+you
+feel
+the
+spirits
+around
+you
+They
+speak
+to
+you
+by
+impressions
+and
+their
+past
+will
+be
+like
+a
+panorama
+You
+feel
+it
+and
+you
+live
+over
+the
+past
+of
+spirits
+and
+you
+make
+the
+mistake
+of
+taking
+this
+for
+the
+memory
+of
+former
+incarnations
+I
+did
+not
+know
+this
+when
+I
+lived
+I
+took
+it
+for
+granted
+that
+these
+memories
+were
+true
+but
+when
+I
+came
+to
+the
+spirit
+side
+of
+life
+I
+learned
+differently
+I
+studied
+a
+great
+deal
+Theosophy
+is
+the
+best
+and
+highest
+philosophy
+of
+life
+intrinsically
+but
+let
+us
+study
+the
+truth
+let
+us
+live
+up
+to
+the
+truth
+of
+it
+and
+forget
+theories
+Let
+us
+develop
+the
+truth
+within
+us
+find
+ourselves
+Do
+not
+let
+us
+look
+far
+away
+do
+not
+let
+us
+look
+in
+the
+past
+do
+not
+let
+us
+look
+into
+the
+future
+but
+let
+us
+find
+ourselves
+in
+our
+present
+condition
+and
+let
+us
+be
+true
+to
+ourselves
+Let
+us
+forget
+all
+theories
+and
+dogmas
+Let
+us
+know
+and
+feel
+the
+nearness
+of
+God
+Reincarnation
+is
+not
+true
+I
+did
+not
+want
+to
+believe
+that
+They
+told
+me
+here
+in
+the
+spirit
+world
+that
+I
+could
+not
+reincarnate
+I
+have
+tried
+and
+tried
+to
+come
+back
+to
+be
+somebody
+else
+but
+I
+could
+not
+We
+cannot
+reincarnate
+We
+progress
+we
+do
+not
+come
+back
+Why
+should
+you
+come
+back
+to
+live
+another
+life
+when
+you
+have
+gained
+experience
+and
+an
+understanding
+while
+you
+were
+here
+and
+furthermore
+since
+this
+is
+only
+a
+preliminary
+school
+on
+earth
+Let
+us
+learn
+to
+find
+ourselves
+While
+I
+am
+sorry
+to
+say
+many
+have
+not
+found
+themselves
+let
+all
+of
+us
+here
+acquire
+knowledge
+so
+that
+when
+we
+go
+to
+the
+spirit
+side
+of
+life
+we
+shall
+go
+on
+to
+a
+higher
+life
+In
+earth
+life
+you
+have
+your
+material
+body
+to
+hinder
+you
+If
+you
+want
+to
+write
+a
+book
+you
+have
+to
+look
+up
+data
+here
+and
+there
+and
+go
+to
+the
+library
+to
+find
+some
+book
+that
+contains
+what
+you
+wish
+to
+know
+You
+may
+have
+to
+go
+from
+one
+place
+to
+another
+and
+yet
+not
+find
+it
+It
+all
+takes
+time
+and
+time
+is
+limited
+You
+are
+hindered
+In
+the
+spirit
+world
+if
+we
+want
+data
+on
+a
+certain
+thing
+we
+think
+of
+it
+and
+it
+is
+all
+before
+us
+There
+is
+no
+time
+no
+matter
+to
+hinder
+In
+the
+spirit
+world
+if
+we
+want
+earthly
+experience
+do
+you
+think
+we
+have
+to
+reincarnate
+to
+get
+that
+experience
+No
+we
+do
+not
+For
+illustration
+say
+one
+wants
+to
+know
+more
+about
+medicine
+He
+then
+goes
+to
+a
+school
+as
+a
+student
+hears
+everything
+sees
+everything
+and
+comes
+in
+contact
+with
+everything
+learning
+it
+much
+quicker
+than
+he
+could
+grasp
+it
+on
+earth
+and
+he
+has
+it
+much
+clearer
+in
+his
+mind
+In
+earth
+life
+you
+have
+to
+study
+for
+years
+and
+then
+you
+do
+not
+get
+it
+as
+clearly
+as
+we
+do
+Suppose
+you
+want
+experience
+in
+the
+spirit
+world
+with
+machinery
+or
+anything
+else
+you
+can
+get
+it
+easily
+We
+have
+everything
+in
+the
+spirit
+world
+because
+everything
+that
+is
+invented
+on
+earth
+has
+first
+been
+invented
+in
+the
+spirit
+world
+Suppose
+an
+inventor
+passes
+on
+before
+completion
+of
+his
+invention
+He
+will
+not
+give
+it
+up
+He
+studies
+it
+on
+the
+spirit
+side
+of
+life
+because
+it
+is
+easier
+to
+study
+there
+as
+he
+has
+more
+time
+When
+he
+has
+everything
+ready
+he
+finds
+some
+sensitive
+and
+impresses
+the
+invention
+on
+his
+mind
+Then
+that
+one
+commences
+on
+it
+perfects
+it
+and
+gives
+it
+to
+the
+world
+If
+I
+impress
+a
+sensitive
+with
+an
+idea
+in
+one
+sense
+I
+reincarnate
+not
+in
+his
+body
+but
+by
+impressing
+him
+with
+what
+I
+want
+done
+In
+this
+way
+we
+come
+and
+go
+if
+we
+are
+attracted
+to
+earth
+life
+and
+want
+to
+be
+here
+When
+you
+have
+once
+reached
+the
+spirit
+world
+where
+all
+are
+congenial
+where
+all
+is
+life
+where
+all
+is
+bliss
+where
+there
+is
+no
+jealousy
+no
+envy
+where
+all
+is
+one
+grand
+harmony
+do
+you
+think
+for
+one
+moment
+that
+you
+would
+want
+to
+leave
+that
+beautiful
+condition
+to
+come
+back
+to
+earth
+and
+be
+a
+little
+baby
+restricted
+in
+mind
+and
+knowing
+nothing
+nothing
+whatever
+Furthermore
+you
+might
+get
+into
+a
+sickly
+crippled
+body
+and
+be
+worse
+than
+you
+were
+before
+No
+reincarnation
+is
+not
+true
+I
+believed
+it
+I
+taught
+it
+and
+I
+was
+sure
+that
+I
+should
+come
+back
+and
+be
+somebody
+else
+But
+I
+will
+not
+I
+can
+do
+far
+more
+good
+now
+If
+I
+want
+to
+do
+some
+missionary
+work
+or
+some
+good
+I
+go
+down
+to
+the
+earth
+sphere
+the
+earthbound
+sphere
+where
+the
+spirits
+are
+in
+all
+kinds
+of
+misery
+I
+preach
+to
+them
+and
+teach
+them
+I
+try
+to
+rescue
+them
+So
+I
+find
+my
+work
+Why
+should
+we
+go
+down
+from
+the
+harmony
+in
+the
+spirit
+world
+to
+what
+I
+might
+call
+hell
+Here
+we
+have
+one
+group
+singing
+and
+praying
+and
+praising
+God
+from
+early
+morning
+until
+night
+and
+they
+are
+so
+selfhypnotized
+that
+we
+cannot
+talk
+to
+them
+We
+go
+to
+another
+group
+and
+there
+we
+find
+the
+misers
+They
+are
+so
+busy
+counting
+money
+money
+which
+is
+their
+God
+that
+we
+cannot
+reach
+them
+We
+go
+to
+others
+who
+have
+been
+ruined
+in
+life
+they
+are
+bitter
+and
+jealous
+they
+have
+nothing
+but
+revenge
+in
+their
+minds
+They
+have
+no
+love
+or
+kindness
+They
+are
+like
+sponges
+which
+have
+been
+dipped
+in
+muddy
+water
+you
+would
+not
+even
+know
+they
+were
+sponges
+Their
+love
+has
+turned
+to
+hate
+and
+they
+cannot
+be
+taught
+love
+and
+kindness
+They
+will
+spit
+at
+you
+they
+will
+laugh
+at
+you
+for
+they
+feel
+that
+there
+is
+no
+God
+no
+kindness
+no
+love
+but
+all
+is
+jealousy
+and
+selfishness
+But
+we
+are
+not
+disappointed
+our
+mission
+is
+to
+turn
+these
+souls
+to
+better
+things
+We
+may
+have
+a
+hard
+time
+We
+cannot
+go
+there
+and
+pray
+for
+them
+no
+no
+They
+would
+shut
+the
+door
+and
+say
+they
+did
+not
+want
+us
+and
+so
+we
+cannot
+go
+there
+and
+talk
+and
+lecture
+You
+may
+ask
+how
+it
+is
+possible
+to
+reach
+them
+First
+we
+try
+to
+concentrate
+on
+them
+Then
+we
+have
+music
+Sometimes
+we
+have
+to
+play
+very
+softly
+so
+they
+can
+hardly
+hear
+it
+then
+we
+play
+a
+little
+louder
+No
+matter
+how
+evil
+how
+mean
+how
+low
+souls
+have
+been
+they
+will
+listen
+to
+music
+When
+they
+have
+given
+their
+attention
+to
+the
+music
+we
+concentrate
+on
+them
+to
+waken
+and
+look
+up
+to
+higher
+things
+Artists
+then
+paint
+pictures
+of
+the
+higher
+life
+for
+them
+object
+lessons
+little
+stories
+Their
+life
+history
+can
+be
+seen
+by
+us
+and
+we
+put
+this
+in
+pictures
+one
+by
+one
+and
+let
+them
+see
+the
+mistakes
+they
+have
+made
+Presently
+they
+ask
+questions
+and
+then
+we
+come
+a
+little
+closer
+to
+them
+After
+that
+we
+take
+them
+to
+the
+higher
+life
+In
+another
+group
+are
+those
+who
+are
+self
+hypnotized
+They
+have
+gone
+to
+sleep
+They
+were
+taught
+that
+death
+is
+a
+sleep
+and
+that
+they
+will
+sleep
+until
+the
+Last
+Day
+when
+God
+will
+sit
+on
+His
+throne
+and
+judge
+them
+They
+are
+difficult
+to
+reach
+especially
+if
+they
+have
+put
+themselves
+into
+an
+actual
+death
+sleep
+Sometimes
+we
+have
+to
+bring
+them
+to
+control
+a
+medium
+and
+waken
+them
+in
+that
+way
+When
+we
+cannot
+reach
+the
+earthbound
+spirits
+at
+all
+we
+have
+to
+bring
+them
+to
+earth
+life
+to
+a
+circle
+like
+this
+where
+they
+get
+understanding
+through
+matter
+In
+one
+sense
+you
+can
+call
+this
+reincarnation
+because
+we
+have
+to
+bring
+them
+to
+matter
+to
+find
+themselves
+I
+wish
+we
+could
+have
+more
+circles
+like
+this
+to
+waken
+these
+spirits
+and
+make
+them
+understand
+about
+the
+life
+beyond
+Some
+may
+say
+this
+is
+not
+Madam
+Blavatsky
+but
+do
+not
+doubt
+it
+is
+They
+may
+say
+She
+would
+not
+say
+so
+and
+so
+she
+would
+not
+talk
+so
+and
+so
+but
+it
+is
+Madam
+Blavatsky
+If
+you
+have
+any
+questions
+you
+would
+like
+to
+ask
+I
+will
+try
+to
+answer
+them
+Ques
+Will
+you
+tell
+us
+about
+the
+Masters
+What
+do
+you
+think
+of
+them
+by
+now
+Sp
+We
+talk
+of
+Masters
+yes
+We
+are
+all
+masters
+when
+we
+try
+to
+study
+higher
+things
+but
+a
+Master
+as
+we
+understand
+it
+in
+Theosophy
+is
+some
+big
+and
+great
+mind
+A
+master
+is
+one
+who
+can
+master
+matter
+can
+overcome
+matter
+one
+who
+can
+live
+a
+pure
+and
+good
+life
+and
+master
+the
+conditions
+of
+life
+Learn
+the
+lessons
+of
+Nature
+learn
+how
+to
+progress
+I
+am
+sorry
+to
+say
+that
+most
+of
+those
+who
+want
+to
+be
+Masters
+on
+earth
+fall
+It
+is
+not
+they
+themselves
+who
+fall
+but
+they
+become
+so
+sensitive
+so
+psychic
+that
+although
+they
+do
+not
+know
+they
+are
+on
+the
+borderland
+earthbound
+spirits
+step
+in
+control
+them
+and
+they
+fall
+We
+should
+master
+matter
+first
+before
+we
+try
+to
+master
+new
+ideas
+Take
+myself
+what
+did
+I
+really
+do
+that
+was
+good
+for
+humanity
+Ans
+You
+led
+many
+out
+of
+orthodoxy
+Sp
+Yes
+but
+I
+only
+gave
+them
+more
+theory
+I
+could
+have
+done
+oh
+so
+much
+more
+if
+I
+had
+stayed
+with
+my
+mediumship
+and
+worked
+to
+bring
+this
+world
+and
+the
+other
+together
+I
+was
+a
+medium
+and
+I
+could
+have
+done
+a
+great
+work
+but
+I
+became
+obsessed
+I
+am
+sorry
+to
+say
+that
+Theosophists
+are
+breaking
+up
+You
+live
+now
+in
+a
+time
+when
+things
+are
+breaking
+up
+there
+is
+a
+general
+restlessness
+All
+theories
+will
+go
+down
+and
+philosophy
+will
+rise
+Dr
+There
+should
+be
+more
+simplicity
+in
+life
+Sp
+That
+is
+a
+very
+good
+word
+to
+apply
+You
+have
+found
+the
+truth
+You
+have
+good
+workers
+on
+the
+other
+side
+connected
+with
+this
+medium
+You
+have
+no
+theories
+no
+mysterious
+things
+as
+Theosophists
+have
+They
+think
+the
+more
+mysterious
+they
+are
+the
+greater
+Masters
+they
+are
+Where
+are
+they
+Where
+are
+they
+I
+am
+sorry
+to
+say
+that
+they
+are
+so
+self
+hypnotized
+that
+their
+imagination
+runs
+away
+with
+them
+One
+may
+look
+back
+and
+say
+I
+was
+Julius
+Caesar
+He
+has
+probably
+read
+some
+book
+about
+Julius
+Caesar
+and
+become
+so
+wrapped
+up
+in
+it
+that
+he
+feels
+he
+has
+lived
+in
+that
+time
+Then
+he
+receives
+spirit
+impressions
+and
+is
+sure
+that
+this
+was
+his
+former
+life
+You
+can
+make
+people
+believe
+almost
+anything
+They
+do
+not
+build
+their
+houses
+on
+the
+rock
+of
+reason
+for
+a
+storm
+will
+blow
+them
+down
+All
+denominations
+have
+some
+truth
+You
+have
+heard
+the
+story
+of
+the
+elephant
+Of
+the
+blind
+men
+who
+examined
+an
+elephant
+and
+each
+declared
+that
+an
+elephant
+was
+like
+that
+part
+which
+he
+had
+touched
+like
+the
+trunk
+the
+leg
+or
+the
+tail
+Every
+one
+had
+the
+truth
+but
+none
+the
+whole
+truth
+We
+do
+not
+seek
+for
+the
+whole
+truth
+so
+one
+hangs
+on
+to
+the
+tail
+another
+to
+the
+trunk
+and
+so
+on
+Let
+us
+all
+join
+together
+then
+we
+will
+find
+the
+whole
+elephant
+and
+we
+will
+all
+be
+together
+in
+one
+great
+truth
+Ques
+Will
+there
+be
+psychics
+to
+carry
+on
+further
+investigations
+Sp
+When
+the
+time
+comes
+and
+the
+people
+are
+ready
+the
+psychics
+will
+be
+ready
+also
+We
+can
+all
+join
+together
+then
+and
+there
+will
+be
+psychic
+circles
+in
+every
+church
+Ques
+Why
+are
+there
+not
+more
+inspirational
+speakers
+to
+teach
+the
+truth
+Sp
+The
+public
+lecture
+work
+will
+be
+inspirational
+Lecturers
+and
+politicians
+often
+think
+they
+are
+going
+to
+say
+what
+they
+have
+written
+down
+but
+before
+they
+know
+it
+they
+speak
+of
+something
+altogether
+different
+They
+are
+speaking
+inspirationally
+for
+there
+are
+always
+those
+on
+the
+spirit
+side
+of
+life
+who
+are
+interested
+in
+this
+life
+and
+are
+ready
+to
+inspire
+a
+speaker
+Ques
+Will
+a
+psychic
+be
+protected
+Sp
+One
+should
+always
+be
+positive
+in
+ordinary
+life
+cure
+disappointment
+never
+let
+anything
+disturb
+one
+No
+anger
+or
+sorrow
+may
+creep
+in
+because
+anger
+comes
+from
+the
+other
+side
+the
+lower
+sphere
+Everyone
+must
+be
+positive
+When
+we
+open
+the
+door
+to
+the
+spirit
+side
+of
+life
+there
+are
+crowds
+of
+earthbound
+spirits
+who
+want
+to
+see
+the
+light
+which
+they
+can
+see
+through
+a
+mortal
+body
+Having
+lost
+their
+physical
+sight
+they
+are
+blind
+for
+there
+is
+no
+material
+light
+in
+the
+earth
+sphere
+and
+without
+an
+understanding
+they
+have
+no
+spiritual
+light
+Ques
+Should
+not
+a
+psychic
+be
+well
+informed
+on
+all
+subjects
+Sp
+Suppose
+a
+great
+musician
+had
+to
+play
+on
+a
+poor
+piano
+He
+could
+not
+bring
+out
+the
+shading
+of
+the
+music
+in
+any
+way
+He
+must
+have
+a
+fine
+instrument
+So
+it
+is
+with
+a
+psychic
+A
+psychic
+should
+be
+informed
+on
+all
+topics
+regarding
+the
+world
+An
+uncultured
+psychic
+cannot
+be
+used
+to
+speak
+properly
+on
+scientific
+subjects
+Ques
+What
+becomes
+of
+the
+spirit
+of
+a
+psychic
+while
+another
+spirit
+is
+controlling
+Sp
+You
+understand
+that
+in
+spirit
+we
+can
+be
+large
+or
+small
+as
+we
+think
+The
+spirit
+of
+Mrs
+Wickland
+at
+the
+present
+time
+is
+in
+her
+magnetic
+aura
+There
+can
+be
+a
+number
+of
+spirits
+in
+one
+aura
+Some
+come
+and
+some
+go
+but
+only
+one
+can
+control
+at
+a
+time
+Mrs
+Wickland
+just
+now
+is
+in
+a
+coma
+state
+She
+does
+not
+function
+on
+the
+mental
+plane
+She
+is
+the
+live
+wire
+she
+is
+the
+battery
+She
+is
+the
+motor
+and
+we
+have
+many
+lines
+from
+that
+motor
+If
+she
+left
+we
+would
+not
+have
+the
+electrical
+force
+to
+control
+In
+this
+case
+the
+psychic
+is
+the
+battery
+through
+which
+we
+work
+Ques
+Theosophy
+teaches
+that
+during
+sleep
+one
+develops
+mentally
+and
+spiritually
+that
+the
+body
+will
+stay
+at
+rest
+but
+the
+soul
+will
+leave
+the
+body
+connected
+only
+by
+a
+slender
+thread
+And
+gain
+experience
+on
+the
+mental
+or
+astral
+plane
+Is
+that
+true
+Sp
+Yes
+it
+is
+When
+you
+sleep
+you
+often
+dream
+Some
+dreams
+are
+meaningless
+others
+are
+real
+experiences
+When
+you
+study
+Yoga
+you
+learn
+to
+leave
+the
+body
+Hindus
+study
+Yoga
+and
+leave
+the
+body
+at
+will
+Most
+persons
+do
+not
+know
+that
+they
+leave
+the
+body
+and
+travel
+in
+the
+spirit
+world
+Ques
+Would
+it
+be
+desirable
+to
+have
+continuous
+consciousness
+Sp
+If
+humanity
+had
+continuous
+consciousness
+it
+would
+be
+a
+big
+factor
+in
+the
+welfare
+of
+this
+world
+God
+is
+All
+in
+All
+even
+to
+the
+little
+microscopic
+things
+He
+is
+all
+Life
+If
+all
+were
+taught
+this
+simple
+truth
+earth
+life
+would
+become
+ideal
+There
+is
+no
+death
+only
+progression
+All
+should
+be
+taught
+that
+Selfishness
+ignorance
+and
+jealousy
+would
+be
+gone
+then
+doubt
+would
+be
+buried
+Love
+and
+charity
+would
+rule
+Suppose
+you
+go
+out
+of
+your
+body
+You
+pass
+through
+the
+first
+strata
+what
+do
+you
+find
+Selfishness
+You
+have
+to
+pass
+through
+this
+first
+strata
+before
+you
+can
+reach
+the
+higher
+Ignorance
+selfishness
+and
+jealousy
+must
+be
+passed
+through
+before
+you
+can
+reach
+the
+better
+life
+It
+is
+a
+case
+of
+development
+The
+Hindus
+have
+peace
+and
+harmony
+They
+live
+for
+higher
+things
+although
+I
+do
+not
+mean
+every
+one
+in
+India
+does
+this
+But
+when
+the
+more
+advanced
+leave
+their
+bodies
+no
+one
+can
+get
+in
+and
+disturb
+them
+What
+I
+want
+to
+say
+tonight
+is
+that
+we
+should
+study
+life
+as
+it
+it
+Let
+the
+dreamers
+and
+thinkers
+of
+the
+past
+take
+care
+of
+themselves
+I
+see
+now
+that
+I
+had
+many
+earthbound
+spirits
+around
+me
+I
+never
+saw
+so
+many
+religions
+in
+one
+city
+as
+in
+Los
+Angeles
+People
+go
+from
+one
+church
+to
+another
+and
+they
+do
+not
+know
+where
+they
+are
+at
+Cranks
+and
+others
+sing
+and
+pray
+and
+everybody
+loves
+Jesus
+Jesus
+is
+the
+Truth
+Read
+Anna
+Kingsford
+s
+works
+and
+you
+will
+find
+many
+interesting
+things
+there
+She
+was
+not
+a
+crank
+We
+read
+many
+books
+together
+She
+was
+a
+wonderful
+woman
+Dr
+Wasn
+t
+she
+opposed
+to
+mediumship
+Sp
+She
+was
+a
+medium
+herself
+Her
+writings
+were
+not
+her
+own
+Writers
+have
+a
+hard
+time
+When
+they
+think
+they
+are
+getting
+along
+very
+nicely
+their
+thoughts
+suddenly
+change
+They
+are
+influenced
+by
+some
+spirit
+writer
+All
+Anna
+Kingsford
+s
+writings
+were
+inspirational
+Ques
+What
+about
+Olcott
+Sp
+Olcott
+has
+found
+the
+truth
+Let
+us
+be
+sensible
+and
+learn
+not
+to
+be
+foolish
+Let
+us
+find
+the
+simple
+truth
+I
+have
+greatly
+enjoyed
+this
+talk
+with
+all
+of
+you
+and
+I
+will
+certainly
+come
+again
+Do
+all
+you
+can
+to
+further
+this
+noble
+work
+This
+room
+is
+full
+of
+spirits
+who
+have
+listened
+to
+what
+was
+said
+tonight
+Many
+have
+been
+helped
+and
+will
+go
+with
+us
+to
+the
+spirit
+side
+of
+life
+May
+strength
+and
+power
+be
+with
+you
+all
+Let
+God
+s
+light
+shine
+in
+your
+soul
+and
+go
+on
+with
+this
+good
+work
+Good
+Night
+CHAPTER
+XVI
+Philosophy
+THE
+philosophy
+of
+life
+and
+descriptions
+of
+conditions
+in
+the
+higher
+realms
+have
+been
+given
+by
+spirits
+who
+have
+attained
+enlightenment
+and
+are
+desirous
+of
+helping
+humanity
+to
+an
+understanding
+of
+the
+spiritual
+laws
+A
+friend
+of
+many
+years
+standing
+formerly
+a
+Methodist
+minister
+had
+followed
+our
+work
+with
+great
+interest
+and
+had
+been
+a
+constant
+attendant
+at
+our
+circles
+in
+which
+his
+daughter
+took
+an
+active
+part
+Five
+days
+after
+he
+passed
+away
+he
+controlled
+Mrs
+Wickland
+and
+several
+months
+later
+spoke
+to
+us
+again
+telling
+of
+his
+experiences
+in
+spirit
+life
+EXPERIENCE
+OCTOBER
+Spirit
+WM
+Y
+SR
+PSYCHIC
+MRS
+WICKLAND
+Well
+I
+am
+here
+again
+I
+have
+been
+here
+before
+many
+times
+Do
+you
+know
+who
+I
+am
+I
+am
+Doctor
+Y
+I
+am
+glad
+that
+I
+can
+be
+with
+you
+here
+tonight
+and
+I
+am
+pleased
+this
+circle
+is
+continuing
+We
+are
+here
+every
+time
+you
+have
+a
+meeting
+and
+I
+wish
+you
+could
+see
+the
+spirits
+who
+are
+waiting
+to
+come
+in
+for
+an
+understanding
+of
+life
+Life
+is
+a
+great
+problem
+to
+the
+world
+I
+wish
+people
+would
+study
+life
+and
+its
+existence
+in
+matter
+It
+is
+a
+shame
+to
+send
+so
+many
+spirits
+out
+of
+their
+bodies
+into
+the
+darkness
+of
+ignorance
+They
+only
+believe
+they
+sing
+and
+praise
+God
+and
+we
+cannot
+reach
+them
+They
+are
+so
+self
+hypnotized
+by
+their
+religion
+in
+the
+first
+place
+that
+they
+do
+not
+know
+they
+are
+dead
+and
+in
+the
+second
+place
+by
+their
+praising
+of
+God
+and
+singing
+that
+we
+cannot
+reach
+them
+with
+the
+understanding
+that
+they
+must
+praise
+God
+in
+a
+different
+way
+We
+must
+act
+we
+must
+work
+for
+humanity
+We
+must
+learn
+the
+first
+lesson
+that
+Christ
+taught
+to
+serve
+others
+and
+to
+love
+God
+above
+all
+things
+and
+our
+neighbor
+as
+ourselves
+How
+many
+do
+really
+love
+God
+They
+pray
+and
+sing
+but
+they
+do
+not
+do
+what
+the
+Bible
+teaches
+I
+understood
+a
+great
+deal
+about
+the
+other
+world
+and
+still
+I
+was
+like
+a
+child
+regarding
+that
+understanding
+because
+I
+had
+not
+learned
+to
+control
+matter
+and
+the
+conditions
+that
+surround
+us
+When
+we
+pass
+through
+the
+material
+sphere
+of
+ether
+the
+sphere
+around
+this
+world
+we
+pass
+through
+the
+sphere
+in
+which
+are
+most
+of
+the
+spirits
+of
+darkness
+which
+we
+call
+earthbound
+spirits
+There
+all
+is
+selfishness
+and
+ignorance
+These
+spirits
+must
+serve
+to
+help
+themselves
+to
+a
+higher
+understanding
+for
+they
+have
+not
+served
+but
+have
+been
+served
+in
+their
+earth
+lives
+They
+do
+not
+know
+what
+it
+is
+to
+live
+and
+do
+for
+others
+they
+have
+lived
+only
+for
+self
+They
+are
+waiting
+to
+be
+served
+Their
+minds
+have
+not
+been
+developed
+to
+do
+for
+others
+I
+wish
+I
+could
+take
+you
+to
+the
+sphere
+of
+suicides
+the
+sphere
+of
+the
+churches
+the
+sphere
+of
+the
+slums
+the
+sphere
+of
+the
+misers
+and
+so
+on
+Here
+they
+are
+in
+darkness
+crying
+for
+help
+Many
+of
+them
+do
+not
+know
+what
+to
+do
+They
+go
+to
+mortals
+and
+try
+to
+control
+them
+upsetting
+their
+lives
+and
+they
+are
+ignorant
+of
+what
+they
+are
+doing
+Frank
+and
+Charles
+relatives
+in
+the
+spirit
+world
+have
+taken
+me
+to
+all
+those
+places
+and
+shown
+me
+many
+things
+If
+you
+could
+actually
+realize
+what
+that
+means
+I
+wish
+I
+could
+make
+a
+picture
+for
+you
+of
+all
+those
+conditions
+and
+the
+agony
+of
+despair
+the
+spirits
+are
+in
+They
+will
+have
+to
+find
+themselves
+and
+waken
+to
+a
+realization
+that
+they
+must
+not
+look
+for
+God
+outside
+but
+within
+themselves
+When
+you
+find
+this
+wonderful
+understanding
+of
+life
+and
+realize
+what
+the
+object
+of
+life
+is
+that
+is
+glory
+No
+one
+can
+do
+this
+for
+you
+others
+can
+only
+teach
+you
+but
+you
+have
+to
+work
+for
+yourself
+There
+is
+no
+time
+in
+the
+spirit
+world
+you
+have
+all
+the
+time
+in
+eternity
+to
+find
+yourself
+and
+as
+soon
+as
+you
+understand
+God
+in
+His
+glory
+you
+will
+have
+happiness
+Then
+your
+spiritual
+eyes
+will
+be
+opened
+and
+you
+will
+awaken
+to
+a
+world
+of
+grandeur
+You
+will
+awaken
+and
+realize
+harmony
+and
+glory
+But
+this
+is
+not
+Heaven
+Heaven
+must
+be
+found
+within
+you
+There
+is
+a
+world
+of
+spirits
+and
+there
+is
+a
+future
+life
+everlasting
+There
+you
+have
+your
+homes
+as
+you
+have
+made
+them
+while
+here
+Nearest
+to
+the
+earth
+is
+the
+City
+of
+Ignorance
+and
+the
+conditions
+in
+which
+many
+awaken
+No
+matter
+how
+good
+you
+have
+been
+nor
+how
+well
+you
+have
+lived
+your
+life
+that
+alone
+is
+not
+sufficient
+If
+you
+are
+ignorant
+of
+the
+life
+and
+system
+of
+the
+other
+side
+you
+are
+in
+darkness
+for
+the
+time
+being
+until
+you
+awaken
+and
+realize
+that
+there
+is
+a
+life
+after
+this
+Each
+has
+a
+home
+in
+the
+spirit
+world
+made
+by
+service
+to
+others
+during
+earth
+life
+As
+you
+have
+made
+it
+here
+so
+you
+will
+have
+it
+there
+If
+you
+have
+done
+good
+acts
+and
+lived
+a
+pure
+upright
+life
+doing
+the
+best
+you
+know
+how
+your
+home
+is
+beautiful
+But
+you
+will
+not
+know
+how
+to
+reach
+that
+home
+if
+you
+are
+ignorant
+of
+the
+laws
+governing
+the
+spirit
+world
+If
+you
+have
+lived
+a
+life
+of
+selfishness
+and
+lived
+only
+and
+entirely
+for
+self
+your
+home
+is
+a
+little
+place
+that
+you
+can
+hardly
+creep
+into
+and
+you
+see
+nothing
+but
+self
+You
+have
+no
+company
+but
+your
+own
+self
+You
+have
+your
+thoughts
+of
+self
+you
+have
+lived
+for
+self
+and
+you
+have
+to
+live
+in
+that
+state
+of
+mind
+until
+you
+ask
+God
+for
+help
+and
+say
+Not
+my
+will
+any
+longer
+but
+Thy
+will
+Give
+me
+help
+Then
+your
+spirit
+comprehends
+the
+results
+of
+your
+actions
+during
+earth
+life
+You
+go
+back
+to
+the
+earth
+plane
+again
+and
+there
+you
+have
+to
+serve
+those
+whom
+you
+have
+harmed
+through
+your
+selfishness
+If
+they
+are
+still
+in
+earth
+life
+you
+have
+to
+watch
+and
+help
+them
+all
+you
+can
+and
+you
+will
+have
+to
+serve
+them
+until
+you
+have
+atoned
+for
+the
+harm
+you
+have
+done
+them
+while
+you
+were
+on
+earth
+If
+they
+have
+passed
+out
+and
+are
+in
+the
+dark
+you
+will
+have
+to
+find
+them
+and
+help
+bring
+them
+to
+an
+understanding
+of
+life
+and
+you
+will
+have
+to
+serve
+them
+until
+you
+have
+paid
+your
+debt
+After
+you
+have
+done
+that
+you
+step
+out
+of
+that
+sphere
+into
+a
+higher
+sphere
+where
+your
+home
+is
+Your
+home
+is
+given
+to
+you
+after
+you
+have
+earned
+it
+Then
+your
+friends
+come
+to
+you
+and
+help
+you
+and
+there
+is
+a
+reunion
+like
+which
+there
+is
+nothing
+on
+earth
+because
+that
+reunion
+with
+your
+relatives
+and
+friends
+is
+a
+reunion
+in
+reality
+All
+are
+like
+one
+all
+are
+in
+tune
+all
+are
+in
+harmony
+with
+each
+other
+Just
+to
+be
+able
+to
+say
+I
+live
+in
+the
+hearts
+of
+my
+friends
+is
+great
+happiness
+The
+reunion
+that
+they
+had
+for
+me
+at
+the
+time
+I
+passed
+out
+and
+came
+to
+an
+understanding
+of
+life
+can
+never
+be
+described
+Many
+of
+my
+friends
+I
+met
+later
+and
+I
+have
+been
+helping
+to
+waken
+them
+to
+the
+glory
+of
+understanding
+Let
+us
+not
+believe
+but
+let
+us
+act
+Let
+us
+all
+do
+our
+duty
+while
+we
+are
+here
+and
+let
+us
+understand
+the
+wonders
+of
+Nature
+and
+the
+wonders
+of
+God
+We
+could
+not
+worship
+more
+than
+God
+for
+God
+is
+everything
+You
+are
+one
+part
+of
+His
+grand
+work
+the
+flowers
+are
+another
+part
+of
+His
+grand
+work
+the
+animals
+another
+part
+so
+how
+could
+you
+be
+outside
+God
+Why
+should
+you
+not
+worship
+His
+manifestations
+in
+every
+way
+You
+are
+in
+the
+very
+midst
+of
+Him
+When
+you
+are
+one
+with
+God
+you
+have
+great
+glory
+I
+want
+to
+say
+Hallelujah
+A
+favorite
+expression
+in
+earth
+life
+That
+is
+grand
+that
+is
+beautiful
+This
+is
+a
+step
+every
+one
+has
+to
+take
+every
+one
+has
+to
+pass
+through
+this
+I
+learned
+my
+first
+step
+in
+a
+few
+months
+When
+I
+woke
+up
+from
+the
+sleep
+of
+death
+we
+call
+it
+a
+sleep
+of
+transition
+I
+was
+really
+awake
+I
+had
+understanding
+I
+was
+told
+about
+the
+grand
+things
+in
+spirit
+but
+I
+never
+could
+have
+imagined
+it
+as
+grand
+as
+I
+found
+it
+Let
+us
+visit
+the
+churches
+of
+the
+earth
+sphere
+the
+place
+of
+the
+spirits
+who
+pass
+out
+with
+religious
+belief
+and
+dogma
+These
+gather
+in
+a
+group
+and
+do
+not
+try
+to
+waken
+to
+the
+realization
+that
+they
+are
+still
+sleeping
+spiritually
+because
+they
+have
+never
+asked
+Who
+am
+I
+Where
+did
+I
+come
+from
+Where
+do
+I
+go
+Where
+is
+the
+real
+life
+They
+are
+self
+hypnotized
+by
+their
+belief
+in
+Jesus
+Christ
+and
+in
+God
+sitting
+on
+a
+throne
+with
+Christ
+at
+His
+right
+side
+judging
+the
+people
+good
+and
+bad
+Some
+they
+think
+have
+to
+go
+to
+a
+burning
+hell
+and
+some
+will
+go
+in
+glory
+to
+God
+in
+Heaven
+That
+is
+the
+belief
+they
+have
+and
+although
+dead
+the
+majority
+of
+those
+who
+only
+believe
+are
+still
+on
+earth
+going
+to
+church
+They
+want
+to
+be
+on
+earth
+singing
+the
+same
+songs
+and
+praying
+the
+same
+prayers
+They
+think
+that
+all
+they
+have
+to
+do
+is
+to
+sing
+and
+pray
+Many
+do
+not
+know
+they
+have
+passed
+out
+They
+do
+not
+even
+stop
+to
+think
+that
+their
+relatives
+and
+friends
+do
+not
+talk
+to
+them
+as
+they
+did
+formerly
+We
+have
+a
+very
+hard
+time
+to
+reach
+them
+Some
+sing
+and
+pray
+others
+walk
+alone
+trying
+to
+find
+out
+what
+is
+the
+matter
+at
+other
+times
+they
+become
+attached
+to
+mortals
+and
+hypnotize
+them
+so
+by
+their
+belief
+that
+the
+mortals
+become
+obsessed
+and
+are
+sent
+to
+the
+asylum
+for
+religious
+mania
+It
+is
+a
+great
+pity
+that
+men
+cannot
+understand
+God
+When
+they
+have
+that
+understanding
+they
+cannot
+live
+for
+themselves
+they
+will
+want
+to
+work
+for
+others
+and
+give
+every
+one
+of
+their
+happiness
+I
+have
+still
+to
+see
+the
+depth
+of
+misery
+to
+which
+the
+wretched
+ones
+go
+because
+of
+hate
+and
+selfishness
+These
+hate
+all
+humanity
+That
+is
+the
+worst
+condition
+They
+are
+so
+crippled
+that
+you
+can
+hardly
+believe
+they
+are
+persons
+They
+have
+to
+be
+taught
+to
+realize
+but
+how
+can
+they
+be
+reached
+They
+are
+afraid
+of
+themselves
+and
+they
+have
+to
+remain
+in
+that
+condition
+until
+they
+pray
+in
+all
+earnestness
+to
+be
+freed
+I
+have
+learned
+this
+in
+the
+few
+months
+I
+have
+been
+on
+the
+spirit
+side
+of
+life
+I
+have
+a
+very
+nice
+home
+in
+the
+spirit
+world
+I
+have
+my
+relatives
+and
+friends
+but
+everything
+is
+very
+different
+here
+from
+there
+I
+have
+to
+help
+many
+of
+my
+friends
+because
+even
+though
+some
+passed
+out
+long
+before
+I
+they
+are
+still
+in
+darkness
+regarding
+an
+understanding
+of
+the
+real
+life
+The
+teaching
+of
+children
+should
+be
+very
+different
+from
+what
+it
+is
+Children
+should
+be
+taught
+about
+God
+in
+Nature
+taught
+that
+God
+is
+Love
+If
+they
+were
+properly
+taught
+you
+would
+not
+have
+any
+crime
+They
+would
+love
+Nature
+they
+would
+love
+animals
+they
+would
+love
+humanity
+at
+large
+But
+they
+are
+taught
+not
+to
+worship
+Nature
+How
+could
+you
+worship
+God
+more
+beautifully
+than
+to
+worship
+Him
+through
+His
+manifestation
+I
+am
+glad
+to
+be
+with
+you
+tonight
+and
+I
+want
+you
+all
+to
+go
+on
+with
+your
+work
+If
+you
+could
+only
+see
+every
+evening
+when
+you
+have
+your
+meeting
+how
+many
+crippled
+and
+unfortunate
+spirits
+listen
+and
+try
+to
+get
+help
+so
+they
+can
+pass
+into
+the
+life
+beyond
+Humanity
+should
+rouse
+itself
+and
+not
+send
+so
+many
+ignorant
+spirits
+to
+the
+other
+side
+because
+these
+only
+stay
+near
+the
+earth
+and
+do
+harm
+to
+those
+who
+are
+here
+on
+earth
+Humanity
+will
+have
+a
+difficult
+time
+for
+a
+little
+while
+because
+of
+crime
+and
+selfishness
+All
+that
+people
+live
+for
+now
+is
+money
+and
+self
+They
+will
+have
+to
+change
+their
+viewpoint
+some
+time
+Then
+peace
+will
+go
+over
+the
+earth
+Now
+it
+is
+war
+war
+with
+everybody
+but
+when
+peace
+and
+harmony
+prevail
+you
+will
+find
+a
+glorious
+condition
+I
+say
+Hallelujah
+Let
+that
+time
+come
+as
+quickly
+as
+possible
+Just
+now
+it
+is
+fighting
+and
+laws
+Unless
+this
+is
+changed
+people
+will
+rise
+because
+they
+want
+freedom
+but
+God
+speed
+the
+day
+when
+the
+peace
+spirit
+will
+come
+over
+all
+Frank
+is
+a
+good
+fellow
+to
+be
+with
+and
+he
+is
+not
+afraid
+to
+make
+inquiries
+At
+times
+I
+feel
+like
+saying
+No
+I
+can
+t
+do
+that
+but
+he
+says
+there
+is
+nothing
+which
+can
+harm
+you
+if
+you
+are
+not
+afraid
+Fear
+is
+what
+we
+must
+avoid
+we
+must
+develop
+power
+When
+you
+develop
+fear
+you
+create
+conditions
+of
+fear
+around
+you
+You
+should
+develop
+within
+yourself
+the
+power
+of
+God
+the
+power
+to
+conquer
+the
+power
+of
+Love
+Then
+you
+will
+conquer
+no
+matter
+what
+comes
+I
+wish
+you
+could
+all
+understand
+God
+not
+as
+a
+person
+but
+as
+the
+Life
+of
+the
+whole
+Universe
+and
+realize
+that
+there
+is
+no
+life
+without
+God
+He
+is
+the
+Divine
+in
+everything
+but
+we
+are
+clothed
+with
+selfishness
+jealousy
+and
+ignorance
+If
+you
+are
+troubled
+by
+obsession
+say
+to
+yourself
+I
+am
+master
+over
+my
+own
+body
+and
+I
+shall
+be
+Repeat
+it
+over
+and
+over
+again
+and
+you
+will
+find
+that
+you
+have
+power
+Do
+not
+send
+out
+thoughts
+of
+evil
+because
+they
+only
+hinder
+your
+own
+self
+They
+create
+more
+thoughts
+of
+anger
+and
+you
+will
+not
+have
+gained
+anything
+Develop
+within
+yourself
+power
+and
+strength
+to
+conquer
+Say
+to
+yourself
+over
+and
+over
+again
+I
+am
+master
+and
+nobody
+else
+can
+interfere
+When
+you
+do
+that
+you
+will
+be
+free
+Do
+not
+think
+of
+the
+other
+one
+obsessing
+spirit
+who
+is
+trying
+to
+bother
+you
+Send
+out
+a
+kind
+thought
+to
+him
+Doctor
+I
+want
+to
+thank
+you
+and
+your
+wife
+for
+that
+nice
+little
+party
+funeral
+I
+had
+that
+is
+what
+I
+call
+it
+It
+was
+a
+nice
+little
+party
+at
+the
+time
+I
+passed
+to
+the
+spirit
+world
+I
+do
+not
+think
+there
+was
+one
+in
+that
+little
+church
+who
+thought
+it
+was
+a
+funeral
+It
+was
+a
+party
+I
+was
+with
+them
+during
+the
+service
+I
+do
+not
+think
+any
+one
+thought
+of
+the
+coffin
+I
+thank
+you
+all
+for
+letting
+the
+service
+be
+held
+in
+that
+fine
+little
+church
+and
+also
+for
+suggesting
+that
+they
+all
+wear
+white
+That
+was
+glory
+and
+I
+felt
+like
+shouting
+Hallelujah
+I
+wish
+all
+funerals
+could
+be
+like
+that
+Sadness
+and
+sorrow
+bring
+to
+the
+spirits
+sadness
+and
+sorrow
+and
+gloom
+They
+cannot
+get
+out
+of
+that
+gloom
+for
+years
+Now
+I
+must
+go
+Another
+old
+friend
+a
+physician
+and
+metaphysician
+who
+had
+been
+a
+lecturer
+among
+the
+Spiritualists
+during
+his
+earth
+life
+visits
+with
+us
+occasionally
+EXPERIENCE
+OCTOBER
+Spirit
+DR
+ADAMS
+Psychic
+MRS
+WICKLAND
+I
+am
+heart
+and
+soul
+in
+this
+work
+I
+was
+in
+this
+work
+when
+in
+life
+not
+so
+much
+doing
+the
+obsession
+work
+as
+does
+Doctor
+but
+I
+was
+in
+the
+work
+of
+spreading
+the
+truth
+that
+there
+is
+a
+life
+after
+this
+It
+is
+a
+real
+life
+not
+an
+imaginary
+one
+it
+is
+a
+life
+of
+understanding
+not
+a
+life
+of
+belief
+If
+you
+only
+believe
+you
+will
+be
+in
+darkness
+with
+a
+closed
+door
+because
+you
+have
+only
+belief
+not
+knowledge
+of
+the
+other
+world
+The
+Bible
+teaches
+so
+much
+and
+if
+people
+would
+only
+understand
+it
+as
+it
+was
+really
+meant
+not
+take
+it
+literally
+or
+historically
+it
+would
+be
+so
+much
+better
+You
+must
+understand
+that
+at
+the
+time
+the
+Bible
+was
+written
+the
+people
+were
+not
+as
+enlightened
+as
+they
+are
+today
+and
+there
+was
+so
+much
+selfishness
+When
+the
+first
+church
+was
+formed
+it
+was
+the
+church
+of
+the
+understanding
+of
+life
+and
+the
+teaching
+was
+to
+live
+for
+high
+thoughts
+and
+to
+sacrifice
+self
+for
+others
+When
+you
+study
+and
+study
+deeply
+earth
+conditions
+have
+no
+existence
+for
+you
+Religion
+is
+often
+used
+as
+a
+whip
+for
+ignorant
+people
+The
+leaders
+say
+We
+want
+these
+people
+to
+obey
+us
+we
+want
+them
+to
+do
+as
+we
+tell
+them
+to
+do
+we
+want
+them
+to
+be
+slaves
+Look
+back
+in
+history
+and
+you
+will
+find
+that
+people
+were
+easygoing
+very
+lazy
+did
+not
+care
+they
+did
+not
+care
+to
+do
+anything
+The
+women
+were
+the
+ones
+who
+did
+the
+work
+they
+did
+the
+farming
+for
+the
+men
+were
+too
+lazy
+The
+women
+had
+to
+do
+the
+work
+and
+be
+the
+slaves
+Then
+along
+came
+a
+shrewd
+man
+who
+thought
+We
+will
+make
+these
+men
+work
+and
+the
+leaders
+got
+up
+a
+scheme
+to
+scare
+people
+They
+told
+them
+that
+if
+they
+did
+not
+do
+so
+and
+so
+the
+devil
+would
+get
+hold
+of
+them
+when
+they
+die
+and
+they
+would
+go
+to
+hell
+and
+damnation
+Then
+they
+painted
+hell
+in
+the
+worst
+condition
+they
+could
+They
+painted
+it
+as
+a
+big
+oven
+burning
+There
+were
+skeletons
+here
+and
+there
+and
+hot
+fire
+and
+the
+one
+that
+put
+people
+in
+the
+fire
+was
+the
+devil
+and
+he
+put
+them
+in
+with
+his
+pitchfork
+That
+made
+the
+men
+wake
+up
+That
+picture
+gave
+them
+energy
+strength
+and
+power
+They
+were
+afraid
+afraid
+they
+would
+get
+into
+that
+hell
+when
+they
+died
+Humanity
+tried
+to
+do
+everything
+possible
+to
+escape
+that
+hell
+and
+the
+leaders
+were
+able
+to
+make
+the
+people
+do
+whatever
+they
+told
+them
+One
+conceived
+the
+idea
+that
+he
+wanted
+to
+be
+leader
+then
+another
+wanted
+to
+be
+the
+leader
+but
+how
+could
+both
+be
+leaders
+in
+one
+circle
+Then
+another
+conceived
+the
+idea
+that
+religion
+would
+be
+better
+if
+he
+had
+a
+little
+clique
+of
+his
+own
+so
+he
+preached
+in
+his
+way
+and
+called
+it
+whatever
+he
+pleased
+Along
+came
+another
+and
+he
+had
+his
+idea
+because
+he
+wanted
+to
+be
+leader
+so
+he
+gathered
+some
+people
+into
+his
+corner
+and
+preached
+in
+his
+way
+So
+we
+had
+one
+group
+here
+and
+another
+there
+One
+wanted
+to
+rule
+the
+world
+but
+along
+came
+another
+sect
+and
+they
+called
+themselves
+by
+a
+new
+name
+and
+felt
+they
+wanted
+to
+rule
+They
+fought
+and
+had
+wars
+Then
+followed
+other
+religions
+and
+all
+had
+adherents
+Each
+tried
+to
+be
+a
+greater
+leader
+than
+the
+other
+Some
+were
+more
+crabbed
+but
+all
+tried
+to
+get
+the
+people
+together
+and
+hold
+them
+some
+by
+the
+picture
+I
+spoke
+of
+regarding
+hell
+They
+could
+not
+get
+them
+together
+much
+in
+the
+beginning
+unless
+they
+held
+them
+in
+bondage
+That
+has
+gone
+on
+for
+years
+and
+years
+but
+now
+there
+has
+come
+a
+new
+era
+and
+all
+will
+be
+at
+least
+partially
+broken
+up
+There
+will
+be
+a
+different
+condition
+Nowadays
+some
+of
+the
+people
+believe
+and
+some
+do
+not
+and
+some
+think
+they
+do
+not
+want
+to
+have
+anything
+to
+do
+with
+religion
+and
+so
+we
+have
+a
+state
+of
+turmoil
+They
+are
+all
+fighting
+and
+fighting
+Each
+one
+fights
+to
+see
+if
+he
+cannot
+get
+the
+best
+of
+others
+The
+idea
+is
+to
+get
+all
+the
+money
+you
+can
+all
+the
+power
+you
+can
+and
+then
+be
+the
+leader
+People
+want
+to
+get
+all
+they
+can
+now
+as
+this
+is
+the
+time
+to
+make
+money
+and
+they
+say
+they
+will
+make
+it
+regardless
+of
+the
+method
+They
+have
+become
+so
+selfish
+in
+their
+money
+making
+that
+their
+true
+citizenship
+is
+lost
+Things
+are
+very
+different
+now
+from
+what
+they
+were
+when
+I
+was
+a
+boy
+It
+will
+be
+very
+hard
+for
+some
+time
+because
+capital
+wants
+to
+rule
+and
+labor
+wants
+to
+rule
+so
+we
+have
+friction
+and
+trouble
+The
+churches
+are
+trying
+to
+make
+people
+go
+to
+church
+but
+if
+they
+continue
+to
+keep
+people
+down
+there
+will
+in
+time
+be
+a
+war
+that
+will
+be
+terrible
+because
+holding
+people
+down
+kills
+the
+better
+nature
+in
+them
+People
+get
+all
+they
+can
+from
+each
+other
+The
+spirit
+of
+the
+day
+is
+to
+get
+all
+you
+can
+no
+matter
+how
+you
+get
+it
+When
+I
+lived
+on
+this
+earth
+plane
+it
+was
+an
+honor
+to
+do
+your
+work
+well
+and
+to
+be
+faithful
+to
+your
+employer
+Now
+if
+the
+employer
+does
+not
+like
+your
+work
+he
+can
+easily
+get
+another
+man
+to
+take
+your
+place
+How
+can
+you
+expect
+such
+people
+to
+feel
+right
+when
+they
+pass
+out
+of
+their
+bodies
+They
+leave
+their
+bodies
+and
+take
+possession
+of
+any
+one
+they
+can
+reach
+on
+the
+earth
+plane
+and
+therefore
+we
+have
+insanity
+and
+all
+kinds
+of
+suicides
+They
+had
+war
+for
+four
+years
+and
+killed
+thousands
+and
+thousands
+of
+people
+These
+left
+the
+world
+they
+loved
+filled
+with
+hatred
+and
+they
+come
+back
+and
+try
+to
+crush
+this
+world
+The
+time
+will
+come
+when
+conditions
+will
+be
+very
+serious
+but
+after
+that
+things
+will
+be
+better
+People
+will
+reach
+a
+better
+understanding
+and
+will
+learn
+through
+sorrows
+and
+try
+to
+comprehend
+the
+mystery
+of
+life
+There
+will
+be
+great
+inventions
+which
+will
+be
+remarkable
+At
+this
+time
+people
+are
+being
+crushed
+but
+after
+a
+while
+there
+will
+be
+an
+awakening
+It
+is
+said
+The
+mills
+of
+the
+gods
+grind
+slowly
+but
+they
+grind
+exceeding
+fine
+and
+that
+is
+what
+the
+world
+is
+going
+through
+now
+The
+time
+will
+come
+when
+people
+will
+know
+that
+we
+are
+not
+dead
+when
+we
+pass
+to
+the
+spirit
+side
+of
+life
+but
+that
+we
+live
+We
+are
+trying
+to
+help
+and
+guide
+you
+all
+and
+we
+hope
+to
+have
+more
+sincerity
+among
+the
+people
+Death
+will
+only
+be
+like
+a
+journey
+which
+they
+take
+to
+another
+country
+where
+they
+will
+be
+with
+their
+loved
+ones
+if
+they
+have
+understanding
+You
+have
+flying
+machines
+now
+but
+after
+a
+few
+years
+you
+will
+have
+air
+inventions
+that
+are
+not
+dreamed
+of
+at
+this
+time
+This
+is
+only
+the
+beginning
+You
+will
+use
+more
+electricity
+and
+atmospheric
+conditions
+will
+be
+used
+as
+power
+You
+will
+get
+power
+from
+the
+sun
+which
+will
+be
+of
+great
+benefit
+to
+humanity
+then
+the
+capitalists
+cannot
+buy
+things
+as
+they
+do
+now
+They
+crush
+the
+poor
+people
+now
+because
+they
+can
+buy
+everything
+and
+the
+others
+cannot
+have
+it
+They
+say
+God
+did
+not
+give
+it
+to
+you
+He
+gave
+it
+to
+me
+Machinery
+will
+run
+by
+that
+power
+Any
+one
+with
+a
+little
+instruction
+will
+be
+able
+to
+use
+it
+and
+can
+take
+all
+the
+power
+he
+wants
+from
+the
+atmosphere
+Selfishness
+will
+then
+be
+done
+away
+with
+and
+people
+will
+learn
+to
+live
+and
+love
+as
+Christ
+taught
+them
+They
+will
+not
+live
+a
+life
+of
+belief
+as
+they
+have
+during
+the
+past
+centuries
+In
+the
+future
+people
+will
+know
+that
+if
+they
+do
+not
+do
+right
+they
+will
+suffer
+for
+it
+They
+have
+already
+taken
+away
+most
+of
+the
+pictures
+of
+burning
+hell
+and
+therefore
+the
+churches
+no
+longer
+have
+the
+control
+of
+the
+people
+they
+had
+in
+the
+past
+When
+ministers
+teach
+the
+truth
+regarding
+the
+life
+after
+this
+they
+will
+have
+their
+churches
+full
+People
+will
+then
+go
+to
+church
+to
+worship
+and
+will
+not
+only
+believe
+We
+all
+make
+mistakes
+and
+we
+should
+learn
+through
+those
+mistakes
+God
+wants
+us
+to
+be
+wise
+and
+understand
+Him
+It
+is
+not
+that
+God
+made
+a
+mistake
+and
+did
+not
+know
+what
+He
+was
+doing
+He
+has
+given
+you
+power
+you
+are
+a
+part
+of
+Him
+and
+after
+you
+learn
+to
+understand
+God
+in
+all
+His
+wonders
+you
+will
+be
+in
+the
+happy
+state
+that
+we
+call
+Bliss
+and
+that
+is
+Heaven
+You
+have
+to
+search
+for
+that
+understanding
+People
+should
+gather
+together
+and
+unite
+and
+be
+in
+harmony
+Always
+selfishness
+and
+jealousy
+creep
+in
+Let
+us
+try
+to
+conquer
+them
+and
+put
+them
+away
+and
+have
+love
+in
+our
+hearts
+If
+only
+people
+would
+understand
+what
+love
+means
+They
+talk
+it
+with
+their
+lips
+but
+they
+never
+practice
+it
+I
+had
+a
+very
+hard
+time
+of
+it
+when
+I
+was
+on
+earth
+because
+I
+believed
+in
+a
+life
+after
+this
+and
+preached
+it
+They
+called
+me
+crazy
+they
+said
+I
+would
+go
+to
+hell
+They
+said
+there
+is
+no
+such
+thing
+as
+the
+spirit
+world
+when
+we
+die
+we
+go
+to
+the
+grave
+and
+stay
+there
+until
+the
+last
+day
+Then
+we
+shall
+be
+awakened
+and
+God
+will
+sit
+on
+His
+throne
+and
+call
+the
+sinners
+on
+one
+side
+and
+the
+good
+on
+another
+One
+lot
+will
+go
+to
+hell
+and
+damnation
+and
+the
+others
+will
+be
+in
+Heaven
+and
+glory
+Isn
+t
+that
+terrible
+They
+say
+God
+made
+them
+all
+some
+to
+be
+condemned
+and
+others
+to
+go
+to
+glory
+Imagine
+some
+going
+to
+Heaven
+and
+seeing
+the
+others
+lie
+in
+hell
+and
+burn
+I
+had
+many
+struggles
+and
+troubles
+in
+life
+Of
+course
+I
+was
+a
+physician
+but
+I
+also
+practiced
+magnetism
+and
+I
+taught
+the
+truth
+of
+the
+life
+hereafter
+because
+I
+felt
+it
+was
+my
+duty
+I
+did
+all
+I
+could
+to
+build
+up
+the
+church
+of
+Spiritualism
+and
+I
+worked
+very
+hard
+I
+wanted
+to
+preach
+the
+philosophy
+of
+spirit
+return
+not
+phenomena
+Do
+all
+you
+can
+to
+open
+the
+door
+to
+the
+unseen
+but
+always
+with
+understanding
+of
+the
+governing
+laws
+The
+average
+Spiritualists
+of
+today
+have
+not
+even
+studied
+the
+philosophy
+of
+life
+and
+do
+not
+know
+the
+laws
+that
+govern
+between
+this
+world
+and
+the
+next
+Spiritualism
+is
+the
+Science
+of
+the
+Bible
+The
+Bible
+says
+The
+letter
+killeth
+but
+the
+spirit
+giveth
+life
+If
+you
+understand
+the
+Bible
+it
+becomes
+a
+grand
+book
+Many
+go
+blindly
+to
+church
+only
+believing
+and
+have
+no
+knowledge
+or
+understanding
+I
+shall
+be
+glad
+when
+all
+phenomena
+will
+be
+buried
+and
+philosophy
+will
+take
+its
+place
+and
+preachers
+will
+preach
+the
+true
+gospel
+of
+God
+not
+of
+the
+Savior
+but
+God
+the
+Divine
+the
+Life
+in
+each
+of
+us
+We
+must
+understand
+God
+better
+and
+learn
+to
+know
+Him
+as
+we
+have
+the
+power
+to
+do
+Do
+not
+let
+us
+condemn
+anything
+through
+ignorance
+selfishness
+and
+jealousy
+These
+we
+should
+crush
+under
+our
+feet
+and
+we
+should
+live
+up
+to
+the
+best
+of
+our
+Love
+Wisdom
+and
+Understanding
+of
+our
+Maker
+Good
+Night
+Many
+years
+ago
+Mrs
+Wickland
+had
+an
+intimate
+friend
+Mrs
+Lackmund
+whose
+little
+girl
+at
+the
+age
+of
+two
+and
+a
+half
+became
+an
+imbecile
+after
+one
+sudden
+convulsion
+The
+mother
+was
+convinced
+that
+this
+condition
+was
+caused
+by
+spirit
+obsession
+and
+together
+with
+Mrs
+Wickland
+began
+to
+investigate
+the
+subject
+Mrs
+Lackmund
+and
+Mrs
+Wickland
+had
+made
+an
+agreement
+that
+whichever
+one
+of
+them
+should
+first
+pass
+to
+the
+spirit
+side
+of
+life
+would
+try
+to
+return
+and
+communicate
+with
+the
+other
+saying
+as
+a
+test
+Spirit
+return
+is
+true
+A
+year
+after
+this
+Mrs
+Lackmund
+died
+and
+two
+weeks
+later
+during
+the
+night
+appeared
+to
+Mrs
+Wickland
+so
+life
+like
+that
+the
+latter
+did
+not
+realize
+she
+was
+a
+spirit
+Mrs
+Lackmund
+touched
+her
+friend
+lightly
+on
+the
+cheek
+and
+Mrs
+Wickland
+sat
+up
+exclaiming
+Mrs
+Lackmund
+Then
+Mrs
+Lackmund
+spoke
+Anna
+spirit
+return
+is
+true
+I
+will
+develop
+you
+Go
+on
+with
+the
+work
+of
+obsession
+Shortly
+after
+this
+she
+appeared
+to
+Mrs
+Wickland
+again
+at
+a
+materialization
+seance
+giving
+unmistakable
+proof
+of
+her
+identity
+and
+repeated
+her
+former
+words
+Spirit
+return
+is
+true
+Go
+on
+with
+the
+work
+of
+obsession
+I
+will
+develop
+you
+Subsequently
+she
+joined
+the
+band
+of
+invisibles
+who
+guard
+Mrs
+Wickland
+and
+since
+then
+has
+very
+often
+spoken
+through
+the
+latter
+EXPERIENCE
+SEPTEMBER
+Spirit
+MRS
+LACKMUND
+Psychic
+MRS
+WICKLAND
+How
+few
+people
+understand
+life
+or
+God
+in
+the
+right
+way
+Instead
+of
+believing
+in
+God
+and
+using
+His
+name
+so
+much
+and
+calling
+on
+Him
+to
+do
+what
+they
+should
+do
+themselves
+they
+should
+realize
+that
+God
+is
+Love
+and
+the
+Light
+of
+Understanding
+How
+can
+we
+live
+and
+not
+understand
+Him
+in
+the
+right
+way
+If
+people
+would
+only
+understand
+God
+as
+it
+was
+meant
+they
+should
+understand
+Him
+they
+would
+not
+have
+so
+much
+selfishness
+worry
+or
+fighting
+because
+people
+would
+have
+more
+love
+for
+each
+other
+and
+not
+think
+so
+much
+of
+self
+They
+would
+worship
+God
+not
+money
+People
+think
+the
+more
+money
+they
+have
+the
+happier
+they
+will
+be
+They
+do
+not
+know
+what
+happiness
+means
+they
+do
+not
+know
+what
+true
+happiness
+is
+They
+think
+they
+will
+be
+happy
+when
+they
+have
+plenty
+of
+money
+to
+get
+things
+things
+to
+eat
+and
+things
+to
+drink
+and
+live
+a
+life
+of
+injury
+to
+the
+body
+These
+are
+the
+things
+most
+thought
+of
+at
+present
+In
+time
+however
+the
+world
+will
+understand
+God
+The
+churches
+will
+soon
+waken
+and
+teach
+the
+true
+gospel
+of
+God
+teach
+people
+not
+to
+believe
+but
+to
+understand
+to
+understand
+His
+wondrous
+works
+to
+understand
+Him
+and
+how
+He
+manifests
+in
+everything
+Every
+flower
+is
+a
+manifestation
+of
+God
+The
+odor
+of
+a
+beautiful
+flower
+is
+God
+and
+He
+sends
+it
+out
+to
+everyone
+that
+His
+presence
+may
+be
+felt
+You
+can
+see
+God
+s
+manifestation
+through
+the
+beautiful
+spirit
+of
+the
+odor
+that
+shines
+I
+call
+it
+so
+through
+that
+flower
+You
+do
+not
+need
+to
+touch
+it
+If
+you
+were
+blind
+you
+would
+know
+there
+must
+be
+a
+flower
+because
+of
+the
+odor
+for
+it
+permeates
+the
+atmosphere
+Shall
+you
+not
+worship
+God
+and
+see
+how
+wonderfully
+He
+manifests
+Himself
+to
+you
+in
+the
+exquisite
+odor
+of
+flowers
+that
+make
+you
+feel
+happier
+for
+having
+them
+around
+you
+See
+the
+Master
+s
+work
+in
+one
+flower
+and
+another
+Can
+you
+make
+them
+as
+they
+are
+Can
+you
+paint
+them
+with
+their
+odor
+In
+your
+garden
+you
+plant
+one
+flower
+here
+and
+another
+flower
+there
+why
+do
+they
+not
+mix
+Why
+do
+not
+green
+leaves
+grow
+among
+the
+petals
+of
+the
+red
+flower
+The
+green
+leaves
+take
+from
+the
+atmosphere
+what
+they
+need
+and
+the
+red
+flower
+takes
+what
+it
+needs
+and
+colors
+itself
+The
+flowers
+clothe
+themselves
+from
+the
+colors
+of
+the
+sun
+One
+is
+purple
+one
+red
+another
+yellow
+another
+blue
+and
+each
+has
+its
+place
+in
+the
+beautiful
+Nature
+of
+God
+All
+is
+perfect
+in
+God
+s
+Nature
+When
+you
+go
+from
+the
+kingdom
+of
+flowers
+and
+vegetables
+to
+the
+animals
+you
+will
+find
+something
+that
+you
+do
+not
+often
+find
+in
+men
+and
+women
+faithful
+love
+Men
+and
+women
+should
+be
+the
+crown
+of
+God
+s
+creation
+but
+they
+are
+bound
+by
+doubt
+and
+creed
+Many
+think
+themselves
+holy
+but
+the
+holiness
+is
+only
+superficial
+They
+make
+no
+effort
+to
+be
+honest
+in
+their
+every
+day
+life
+They
+go
+to
+church
+on
+Sunday
+pray
+to
+God
+and
+tell
+Him
+how
+good
+they
+are
+then
+condemn
+another
+man
+who
+does
+not
+go
+to
+church
+at
+all
+but
+who
+tries
+sincerely
+to
+live
+the
+right
+kind
+of
+life
+as
+best
+he
+knows
+how
+Probably
+the
+latter
+is
+nearer
+God
+in
+his
+way
+than
+the
+one
+who
+worships
+outwardly
+and
+does
+not
+live
+a
+sincere
+life
+Earthbound
+spirits
+who
+torment
+mortals
+by
+obsessing
+them
+are
+man
+made
+devils
+Selfishness
+has
+made
+them
+what
+they
+are
+They
+go
+out
+of
+the
+physical
+in
+ignorance
+of
+the
+real
+life
+full
+of
+hatred
+because
+they
+were
+crushed
+in
+one
+way
+or
+another
+They
+have
+hatred
+for
+all
+mankind
+and
+the
+first
+persons
+they
+can
+attach
+themselves
+to
+they
+try
+to
+harm
+and
+there
+you
+have
+obsession
+You
+must
+all
+be
+on
+your
+guard
+you
+must
+every
+one
+of
+you
+try
+to
+fight
+obsession
+Humanity
+is
+fighting
+sickness
+but
+does
+not
+fight
+the
+actual
+cause
+of
+insanity
+Insanity
+is
+nothing
+but
+obsession
+by
+spirits
+who
+are
+sent
+to
+the
+spirit
+side
+of
+life
+without
+understanding
+the
+truth
+of
+God
+Christ
+taught
+us
+to
+love
+God
+above
+all
+things
+and
+our
+neighbor
+as
+ourselves
+People
+do
+not
+love
+their
+neighbors
+as
+they
+should
+Teach
+children
+the
+right
+way
+of
+living
+teach
+them
+the
+right
+understanding
+of
+God
+and
+of
+the
+teachings
+of
+Christ
+Teach
+them
+to
+live
+according
+to
+high
+principles
+not
+to
+worship
+Christ
+as
+a
+person
+but
+as
+the
+True
+Understanding
+and
+the
+Light
+of
+Life
+Then
+you
+will
+not
+send
+earthbound
+spirits
+to
+the
+spirit
+side
+of
+life
+to
+obsess
+sensitives
+who
+have
+to
+be
+sent
+to
+the
+asylums
+People
+do
+not
+know
+what
+to
+do
+with
+the
+insane
+They
+are
+sent
+to
+the
+asylum
+but
+that
+is
+all
+They
+are
+given
+morphine
+closed
+up
+in
+a
+room
+and
+left
+there
+This
+is
+done
+only
+to
+protect
+humanity
+so
+that
+the
+insane
+will
+not
+harm
+themselves
+or
+others
+Instead
+of
+that
+they
+should
+be
+taught
+the
+Golden
+Rule
+and
+be
+given
+an
+opportunity
+to
+develop
+higher
+ideals
+This
+is
+Mrs
+Lackmund
+Good
+Night
+In
+the
+first
+years
+of
+Mrs
+Wickland
+s
+psychic
+work
+a
+friend
+Mrs
+Case
+was
+deeply
+interested
+in
+the
+furtherance
+of
+the
+same
+Recently
+this
+friend
+came
+as
+a
+spirit
+to
+review
+those
+early
+days
+EXPERIENCE
+MARCH
+Spirit
+MRS
+CASE
+Psychic
+MRS
+WICKLAND
+You
+do
+not
+know
+me
+personally
+but
+I
+feel
+that
+I
+am
+one
+of
+you
+I
+knew
+Mrs
+Wickland
+before
+she
+was
+married
+and
+as
+Miss
+Anna
+Anderson
+she
+first
+convinced
+me
+of
+the
+truth
+of
+spirit
+return
+I
+had
+investigated
+the
+subject
+slightly
+and
+had
+read
+one
+of
+Dr
+Hartmann
+s
+books
+as
+well
+as
+some
+theosophical
+writings
+I
+was
+interested
+in
+various
+studies
+but
+not
+set
+in
+any
+One
+evening
+in
+during
+a
+circle
+which
+I
+attended
+in
+Minneapolis
+Miss
+Anderson
+became
+entranced
+by
+the
+spirit
+of
+my
+daughter
+Alice
+My
+daughter
+Alice
+and
+son
+Willie
+and
+my
+husband
+had
+all
+died
+in
+one
+month
+Alice
+came
+over
+to
+me
+and
+throwing
+herself
+in
+my
+arms
+said
+Oh
+Mamma
+Oh
+Mamma
+I
+am
+so
+glad
+that
+I
+can
+come
+to
+you
+This
+is
+Alice
+I
+was
+greatly
+astonished
+but
+very
+delighted
+and
+after
+we
+had
+talked
+with
+each
+other
+for
+a
+little
+while
+Alice
+said
+Mamma
+Willie
+is
+also
+here
+and
+he
+wants
+to
+say
+a
+few
+words
+to
+you
+Then
+my
+son
+spoke
+to
+me
+This
+surprising
+experience
+converted
+me
+and
+from
+that
+time
+I
+was
+eager
+to
+know
+more
+regarding
+the
+truth
+My
+daughter
+Mrs
+Z
+and
+I
+often
+had
+little
+seances
+in
+my
+home
+with
+Miss
+Anderson
+and
+had
+many
+delightful
+visits
+with
+our
+spirit
+friends
+my
+mother
+an
+aunt
+and
+several
+others
+I
+was
+anxious
+that
+Miss
+Anderson
+should
+bring
+her
+work
+out
+to
+the
+world
+but
+she
+was
+very
+modest
+regarding
+her
+mediumship
+I
+wanted
+people
+to
+know
+this
+great
+truth
+so
+I
+went
+to
+Stillwater
+Minnesota
+and
+rented
+an
+opera
+house
+intending
+to
+lecture
+on
+the
+subject
+of
+spirit
+return
+and
+then
+have
+Miss
+Anderson
+give
+demonstrations
+We
+advertised
+widely
+and
+many
+people
+were
+present
+at
+the
+meeting
+I
+had
+my
+lecture
+prepared
+but
+at
+the
+last
+moment
+lost
+my
+courage
+and
+could
+not
+face
+the
+audience
+We
+could
+not
+have
+the
+meeting
+a
+failure
+so
+I
+insisted
+that
+Miss
+Anderson
+go
+into
+a
+trance
+and
+let
+the
+Russians
+spirits
+give
+their
+drama
+She
+consented
+and
+the
+play
+was
+well
+given
+Then
+Pretty
+Girl
+guide
+came
+and
+the
+evening
+was
+quite
+a
+success
+This
+was
+how
+Miss
+Anderson
+now
+Mrs
+Wickland
+was
+first
+brought
+before
+the
+public
+When
+I
+became
+very
+sick
+Miss
+Anderson
+was
+with
+me
+a
+great
+deal
+Through
+her
+I
+spoke
+often
+to
+my
+spirit
+friends
+and
+asked
+them
+when
+I
+would
+go
+to
+my
+home
+in
+the
+spirit
+world
+See
+Chap
+Page
+I
+was
+told
+that
+I
+could
+not
+live
+much
+longer
+but
+that
+it
+would
+be
+some
+time
+before
+I
+passed
+to
+the
+other
+side
+I
+was
+taken
+sick
+before
+Thanksgiving
+and
+on
+the
+of
+February
+I
+left
+my
+earthly
+body
+for
+my
+spirit
+body
+I
+went
+to
+sleep
+about
+o
+clock
+Saturday
+night
+and
+passed
+out
+Monday
+at
+o
+clock
+in
+the
+afternoon
+At
+the
+time
+my
+daughter
+sat
+watching
+me
+and
+the
+sun
+was
+shining
+brightly
+in
+the
+room
+I
+felt
+and
+knew
+I
+was
+going
+and
+my
+daughter
+Carrie
+saw
+my
+soul
+leaving
+my
+body
+My
+spirit
+children
+Alice
+and
+Willie
+came
+to
+my
+bedside
+and
+my
+daughter
+saw
+them
+take
+me
+away
+When
+there
+is
+understanding
+there
+is
+no
+death
+You
+only
+go
+to
+sleep
+in
+your
+earthly
+body
+and
+wake
+up
+in
+your
+spirit
+body
+with
+your
+friends
+about
+you
+It
+is
+a
+very
+pleasant
+sensation
+I
+was
+very
+happy
+to
+think
+I
+had
+had
+such
+a
+peaceful
+transition
+I
+merely
+went
+to
+sleep
+and
+woke
+up
+in
+the
+spirit
+world
+with
+my
+relatives
+and
+friends
+around
+me
+But
+my
+husband
+was
+not
+there
+When
+I
+asked
+Why
+is
+my
+husband
+not
+here
+with
+the
+rest
+I
+was
+told
+that
+he
+had
+been
+drawn
+back
+to
+earth
+life
+where
+the
+children
+and
+I
+were
+His
+home
+was
+his
+attraction
+We
+had
+not
+been
+able
+to
+see
+him
+there
+and
+he
+did
+not
+know
+how
+to
+speak
+through
+a
+medium
+so
+he
+had
+remained
+in
+a
+stupor
+I
+went
+with
+my
+spirit
+relatives
+to
+find
+my
+husband
+and
+when
+we
+woke
+him
+we
+were
+both
+very
+happy
+We
+went
+back
+to
+my
+daughter
+Carrie
+to
+tell
+her
+that
+we
+were
+reunited
+and
+she
+saw
+us
+clairvoyantly
+and
+was
+very
+pleased
+After
+that
+I
+often
+came
+back
+and
+talked
+to
+my
+children
+through
+Miss
+Anderson
+until
+she
+married
+and
+left
+Minneapolis
+for
+Chicago
+but
+I
+have
+retained
+my
+interest
+in
+Mrs
+Wickland
+and
+am
+one
+of
+the
+Mercy
+Band
+Mrs
+Wickland
+s
+work
+has
+grown
+very
+much
+she
+has
+developed
+and
+has
+had
+a
+great
+many
+experiences
+She
+is
+doing
+a
+noble
+work
+for
+humanity
+This
+work
+has
+helped
+many
+in
+earth
+life
+but
+many
+many
+more
+on
+the
+other
+side
+Every
+one
+who
+has
+been
+converted
+goes
+into
+the
+Mercy
+Band
+as
+a
+helper
+and
+helps
+here
+as
+well
+as
+on
+the
+other
+side
+If
+only
+there
+were
+more
+on
+earth
+who
+would
+carry
+on
+the
+work
+of
+obsession
+Humanity
+wants
+to
+have
+more
+knowledge
+and
+is
+looking
+for
+the
+truth
+Later
+on
+instruments
+will
+be
+invented
+through
+which
+spirits
+can
+speak
+Spirit
+philosophy
+will
+come
+to
+the
+front
+for
+the
+spirit
+world
+is
+helping
+to
+bring
+the
+truth
+before
+humanity
+Those
+who
+have
+passed
+out
+as
+children
+continue
+their
+development
+in
+the
+spirit
+world
+and
+often
+acquire
+earth
+experience
+by
+contacting
+mortals
+as
+their
+protectors
+One
+of
+Mrs
+Wickland
+s
+guides
+Pretty
+Girl
+came
+to
+her
+as
+a
+gay
+playful
+child
+spirit
+and
+has
+since
+become
+a
+discerning
+philosopher
+with
+a
+practical
+knowledge
+of
+the
+principles
+that
+govern
+life
+EXPERIENCE
+MARCH
+Spirit
+PRETTY
+GIRL
+Psychic
+MRS
+WICKLAND
+I
+was
+five
+years
+old
+when
+I
+passed
+out
+of
+earth
+life
+and
+had
+been
+eight
+years
+in
+the
+spirit
+world
+when
+I
+was
+appointed
+as
+a
+controlling
+spirit
+to
+protect
+Mrs
+Wickland
+through
+life
+against
+mischievous
+spirits
+A
+guide
+is
+a
+teacher
+and
+I
+am
+a
+guide
+now
+but
+then
+I
+was
+only
+a
+control
+At
+that
+time
+Mrs
+Wickland
+was
+often
+asked
+to
+give
+help
+and
+advice
+to
+persons
+who
+came
+to
+her
+in
+trouble
+and
+she
+saved
+many
+from
+suicide
+by
+urging
+them
+to
+be
+more
+cheerful
+and
+to
+search
+for
+the
+bright
+side
+of
+life
+instead
+of
+the
+gloomy
+one
+I
+was
+sent
+as
+control
+and
+adviser
+because
+I
+myself
+had
+seen
+the
+dark
+side
+of
+earth
+life
+and
+could
+sympathize
+more
+fully
+with
+persons
+who
+were
+in
+trouble
+than
+could
+one
+who
+had
+never
+known
+sorrow
+I
+was
+born
+in
+London
+in
+the
+Whitechapel
+district
+on
+the
+of
+August
+My
+parents
+were
+drunkards
+and
+many
+times
+when
+they
+came
+home
+I
+had
+to
+hide
+otherwise
+I
+would
+have
+had
+a
+whipping
+My
+father
+and
+mother
+swore
+at
+me
+and
+called
+me
+all
+kinds
+of
+names
+and
+most
+of
+the
+time
+I
+was
+playing
+on
+the
+streets
+I
+had
+light
+curly
+hair
+and
+blue
+eyes
+and
+passers
+by
+used
+to
+pat
+me
+on
+the
+head
+and
+say
+Pretty
+little
+girl
+pretty
+girl
+Those
+are
+the
+only
+kind
+words
+I
+remember
+from
+my
+earth
+life
+and
+I
+heard
+Pretty
+Girl
+so
+often
+I
+thought
+that
+was
+my
+name
+A
+neighbor
+lady
+was
+the
+only
+person
+who
+ever
+helped
+me
+she
+was
+very
+kind
+and
+took
+care
+of
+me
+When
+I
+was
+five
+years
+old
+I
+died
+Eight
+years
+later
+in
+I
+came
+to
+be
+Mrs
+Wickland
+s
+control
+because
+I
+needed
+further
+earth
+experience
+and
+because
+a
+youthful
+spirit
+brings
+to
+a
+psychic
+a
+feeling
+of
+youth
+and
+strength
+It
+is
+often
+asked
+why
+mediums
+usually
+have
+children
+or
+young
+people
+as
+guides
+When
+a
+spirit
+who
+has
+lived
+to
+an
+old
+age
+on
+earth
+acts
+as
+guide
+through
+his
+contact
+with
+matter
+he
+is
+apt
+to
+sense
+his
+last
+physical
+condition
+and
+this
+often
+leaves
+an
+old
+and
+tired
+feeling
+with
+the
+medium
+while
+children
+bring
+a
+youthful
+magnetism
+For
+this
+reason
+many
+mediums
+have
+children
+as
+guides
+Then
+also
+the
+children
+learn
+earthly
+conditions
+and
+through
+this
+experience
+progress
+in
+the
+spirit
+world
+They
+do
+not
+need
+to
+reincarnate
+because
+they
+gain
+earth
+experience
+through
+contact
+with
+mortals
+Advanced
+spirits
+say
+such
+as
+Abraham
+Lincoln
+do
+not
+need
+to
+come
+to
+earth
+for
+further
+experience
+They
+do
+their
+duty
+in
+the
+spirit
+world
+often
+helping
+earthbound
+spirits
+and
+giving
+lectures
+on
+the
+spirit
+side
+of
+life
+If
+a
+medium
+in
+earth
+life
+should
+happen
+to
+be
+properly
+tuned
+in
+as
+a
+radio
+such
+a
+lecture
+may
+be
+received
+and
+delivered
+In
+such
+instances
+the
+medium
+often
+thinks
+the
+advanced
+spirit
+is
+his
+guide
+But
+a
+spirit
+like
+Lincoln
+is
+a
+guide
+to
+no
+one
+he
+does
+not
+need
+to
+return
+to
+control
+a
+medium
+in
+order
+to
+progress
+If
+mediums
+are
+in
+tune
+they
+may
+receive
+and
+repeat
+lectures
+given
+in
+the
+spirit
+world
+but
+they
+are
+only
+receiving
+instruments
+and
+are
+speaking
+inspirationally
+The
+first
+time
+I
+controlled
+Mrs
+Wickland
+I
+thought
+I
+had
+come
+to
+life
+again
+I
+acted
+as
+a
+girl
+of
+the
+street
+with
+no
+knowledge
+of
+anything
+I
+was
+very
+jolly
+and
+boisterous
+and
+the
+people
+in
+the
+circle
+told
+me
+if
+I
+did
+not
+behave
+myself
+I
+could
+not
+come
+again
+So
+I
+tried
+to
+behave
+and
+do
+my
+very
+best
+I
+wanted
+to
+learn
+so
+that
+after
+a
+while
+I
+could
+be
+a
+teacher
+helper
+and
+adviser
+I
+went
+to
+school
+on
+the
+spirit
+side
+of
+life
+to
+learn
+the
+lessons
+of
+earth
+and
+these
+lessons
+I
+gave
+many
+times
+to
+persons
+in
+earth
+life
+When
+Mrs
+Wickland
+first
+developed
+her
+mediumship
+she
+also
+studied
+Theosophy
+Christian
+Science
+and
+Psychology
+She
+questioned
+whether
+during
+her
+trance
+condition
+a
+spirit
+was
+actually
+speaking
+or
+whether
+it
+was
+her
+own
+subconscious
+mind
+Wishing
+to
+learn
+the
+facts
+she
+took
+up
+the
+study
+of
+Astrology
+and
+had
+Dr
+Wickland
+ask
+me
+what
+my
+birth
+date
+birth
+place
+general
+appearance
+last
+sickness
+and
+date
+of
+death
+were
+Then
+Mrs
+Wickland
+cast
+my
+horoscope
+which
+indicated
+that
+a
+person
+born
+on
+the
+date
+given
+would
+have
+light
+curly
+hair
+blue
+eyes
+and
+a
+happy
+sunny
+disposition
+which
+I
+had
+She
+also
+found
+that
+five
+years
+after
+birth
+this
+person
+had
+Saturn
+Uranus
+and
+Mars
+in
+Taurus
+the
+sign
+that
+rules
+the
+throat
+which
+indicated
+death
+at
+that
+time
+from
+throat
+disease
+I
+had
+died
+from
+diphtheria
+This
+proved
+to
+Mrs
+Wickland
+that
+it
+was
+not
+her
+subconscious
+mind
+speaking
+for
+she
+was
+much
+older
+than
+I
+and
+she
+also
+learned
+that
+what
+I
+had
+said
+previously
+was
+true
+Everyone
+in
+earth
+life
+is
+guided
+by
+a
+spirit
+But
+sometimes
+an
+earthbound
+spirit
+steps
+in
+and
+takes
+control
+and
+then
+there
+is
+obsession
+or
+possession
+Mortals
+live
+in
+the
+slum
+of
+earthbound
+spirits
+Few
+realize
+what
+is
+on
+the
+other
+side
+How
+many
+try
+to
+learn
+where
+they
+will
+go
+after
+they
+pass
+out
+The
+majority
+after
+leaving
+the
+body
+remain
+for
+some
+time
+just
+where
+they
+have
+been
+during
+earth
+life
+It
+makes
+no
+difference
+whether
+they
+are
+intelligent
+or
+ignorant
+if
+they
+have
+no
+knowledge
+of
+the
+other
+side
+they
+stay
+just
+where
+they
+have
+passed
+out
+Many
+are
+in
+a
+heavy
+sleep
+or
+in
+a
+coma
+state
+following
+the
+use
+of
+narcotics
+and
+will
+remain
+so
+for
+some
+time
+unless
+some
+relative
+or
+friend
+in
+the
+spirit
+world
+finds
+them
+and
+wakens
+them
+or
+someone
+from
+either
+side
+sends
+a
+messenger
+by
+thought
+waves
+to
+rouse
+them
+Some
+have
+hypnotized
+themselves
+into
+a
+coma
+condition
+by
+a
+religious
+belief
+that
+they
+will
+stay
+in
+the
+grave
+until
+the
+Last
+Day
+or
+by
+thinking
+that
+death
+is
+the
+end
+There
+are
+many
+with
+various
+religious
+beliefs
+who
+do
+not
+know
+they
+are
+dead
+they
+go
+about
+preaching
+and
+singing
+because
+they
+have
+not
+found
+Jesus
+and
+they
+gather
+around
+the
+churches
+on
+earth
+and
+continue
+to
+sing
+and
+pray
+There
+may
+be
+persons
+in
+the
+churches
+who
+are
+sensitives
+or
+of
+nervous
+temperament
+some
+of
+the
+spirits
+take
+control
+of
+them
+and
+pray
+and
+sing
+until
+those
+persons
+are
+called
+insane
+and
+sent
+to
+asylums
+Other
+spirits
+exert
+a
+bad
+influence
+on
+humanity
+They
+may
+want
+revenge
+and
+they
+hypnotize
+or
+obsess
+sensitive
+persons
+and
+influence
+them
+to
+commit
+murder
+or
+suicide
+Often
+a
+murderer
+knows
+nothing
+about
+the
+crime
+of
+which
+he
+is
+accused
+for
+the
+deed
+was
+done
+by
+a
+revengeful
+spirit
+What
+right
+have
+the
+wise
+men
+of
+earth
+such
+as
+the
+judges
+and
+lawyers
+to
+condemn
+that
+person
+and
+take
+his
+life
+The
+person
+who
+is
+executed
+goes
+out
+of
+earth
+life
+filled
+with
+hatred
+and
+comes
+back
+for
+revenge
+impressing
+others
+to
+kill
+or
+commit
+suicide
+The
+judges
+and
+lawyers
+should
+ascertain
+whether
+the
+accused
+person
+is
+actually
+guilty
+or
+influenced
+by
+some
+revengeful
+spirit
+who
+has
+acted
+through
+him
+Jesus
+said
+He
+that
+is
+without
+sin
+among
+you
+let
+him
+first
+cast
+a
+stone
+Instead
+of
+condemning
+criminals
+the
+judges
+the
+lawyers
+and
+the
+ministers
+should
+teach
+them
+teach
+them
+higher
+truths
+and
+bring
+out
+their
+better
+nature
+If
+those
+in
+prison
+knew
+that
+when
+they
+are
+released
+people
+would
+help
+them
+and
+give
+them
+a
+chance
+they
+would
+be
+greatly
+encouraged
+to
+do
+better
+Many
+call
+themselves
+Christians
+but
+will
+not
+help
+those
+in
+need
+as
+Christ
+would
+have
+done
+When
+an
+employer
+learns
+that
+a
+man
+has
+been
+in
+prison
+he
+will
+not
+have
+anything
+to
+do
+with
+him
+The
+man
+cannot
+get
+work
+Where
+can
+he
+go
+Nowhere
+but
+back
+to
+crime
+When
+we
+go
+to
+the
+lowest
+sphere
+to
+help
+we
+try
+to
+reach
+the
+better
+nature
+of
+men
+and
+women
+We
+give
+them
+object
+lessons
+and
+when
+their
+love
+and
+sympathy
+are
+won
+they
+become
+true
+friends
+no
+matter
+how
+low
+they
+have
+been
+When
+those
+who
+have
+lived
+only
+for
+self
+and
+for
+enjoyment
+reach
+the
+spirit
+side
+of
+life
+they
+have
+to
+serve
+others
+Serving
+is
+progression
+in
+the
+spirit
+world
+Because
+of
+their
+simplicity
+of
+life
+and
+religion
+and
+their
+knowledge
+of
+the
+laws
+of
+Nature
+the
+American
+Indians
+are
+seldom
+bound
+in
+spirit
+after
+leaving
+the
+earth
+plane
+and
+are
+often
+sent
+as
+was
+Silver
+Star
+Mrs
+Wickland
+s
+Indian
+guide
+to
+guard
+sensitive
+mortals
+EXPERIENCE
+MARCH
+Spirit
+SILVER
+STAR
+Psychic
+MRS
+WICKLAND
+Mediums
+so
+often
+have
+Indians
+as
+controls
+guides
+and
+helpers
+because
+Indians
+have
+no
+beliefs
+or
+dogmas
+to
+overcome
+when
+they
+pass
+to
+the
+spirit
+world
+From
+early
+infancy
+they
+are
+taught
+regarding
+The
+Great
+Spirit
+and
+The
+Happy
+Hunting
+Ground
+They
+believe
+in
+The
+Great
+Spirit
+of
+all
+Things
+and
+the
+Medicine
+Man
+has
+taught
+them
+how
+to
+control
+Nature
+We
+Indians
+are
+sent
+to
+earth
+to
+guard
+mortals
+because
+we
+know
+the
+law
+of
+protection
+and
+so
+we
+are
+often
+the
+doorkeepers
+to
+protect
+mediums
+from
+earthbound
+spirits
+The
+pale
+faces
+die
+from
+all
+kinds
+of
+diseases
+but
+the
+Indians
+do
+not
+There
+is
+little
+sickness
+among
+the
+Indians
+they
+live
+in
+Nature
+and
+they
+die
+a
+natural
+death
+So
+when
+they
+come
+back
+to
+control
+they
+bring
+an
+influence
+of
+strength
+and
+health
+Indian
+spirits
+seldom
+obsess
+people
+they
+do
+not
+make
+people
+crazy
+because
+they
+know
+the
+laws
+governing
+the
+control
+of
+a
+mortal
+I
+am
+a
+Chippewa
+Indian
+and
+was
+born
+near
+Shell
+Lake
+in
+on
+an
+Indian
+Reservation
+in
+Northern
+Wisconsin
+I
+was
+four
+and
+a
+half
+years
+old
+when
+I
+was
+hurt
+on
+the
+head
+by
+a
+fall
+and
+passed
+to
+the
+spirit
+side
+of
+life
+and
+when
+Mrs
+Wickland
+cast
+a
+horoscope
+for
+me
+she
+found
+that
+death
+resulting
+from
+an
+injury
+was
+shown
+I
+came
+to
+Mrs
+Wickland
+in
+at
+Eau
+Claire
+Wisconsin
+I
+am
+the
+Doorkeeper
+When
+I
+first
+controlled
+Mrs
+Wickland
+I
+could
+only
+talk
+the
+Chippewa
+language
+and
+what
+English
+I
+know
+I
+have
+learned
+while
+being
+in
+control
+of
+Mrs
+Wickland
+Different
+persons
+in
+the
+circles
+have
+taught
+me
+English
+Some
+people
+think
+Indians
+do
+not
+know
+anything
+because
+they
+have
+not
+had
+much
+schooling
+but
+they
+have
+true
+love
+for
+The
+Great
+Spirit
+and
+a
+true
+love
+for
+helping
+others
+Of
+course
+there
+are
+evil
+Indians
+as
+well
+as
+good
+Indians
+but
+the
+bad
+ones
+are
+only
+those
+who
+have
+no
+understanding
+of
+The
+Great
+Spirit
+and
+most
+of
+their
+bad
+habits
+are
+acquired
+from
+the
+pale
+faces
+Before
+the
+pale
+faces
+came
+to
+America
+there
+was
+no
+fear
+among
+the
+Indians
+The
+Indians
+of
+different
+tribes
+fought
+with
+each
+other
+but
+were
+fearless
+Then
+the
+pale
+faces
+came
+and
+hunted
+them
+down
+like
+animals
+Fear
+and
+anger
+crept
+into
+the
+hearts
+of
+the
+Indians
+and
+then
+came
+trouble
+and
+war
+Many
+pale
+faces
+wanted
+Indian
+land
+and
+some
+stole
+the
+land
+from
+the
+Indians
+and
+then
+the
+Indians
+got
+angry
+and
+fought
+They
+thought
+all
+the
+pale
+faces
+were
+the
+same
+and
+then
+came
+trouble
+If
+the
+pale
+faces
+had
+treated
+the
+Indians
+kindly
+in
+the
+beginning
+they
+would
+never
+have
+had
+wars
+with
+them
+Treat
+an
+Indian
+with
+kindness
+and
+he
+will
+do
+much
+for
+you
+The
+Medicine
+Men
+are
+those
+who
+study
+Nature
+s
+forces
+and
+have
+power
+over
+them
+and
+the
+Indians
+are
+often
+able
+to
+make
+rain
+When
+they
+pray
+they
+use
+the
+higher
+forces
+of
+life
+They
+do
+not
+do
+what
+the
+pale
+faces
+often
+do
+pray
+with
+the
+mouth
+and
+only
+talk
+They
+say
+little
+but
+dance
+around
+in
+a
+big
+circle
+and
+concentrate
+Sometimes
+they
+have
+a
+Snake
+Dance
+They
+have
+learned
+to
+charm
+snakes
+so
+they
+will
+not
+bite
+because
+the
+Indians
+have
+no
+fear
+If
+the
+pale
+faces
+would
+overcome
+fear
+they
+could
+do
+wonderful
+things
+In
+olden
+times
+the
+pale
+faces
+had
+no
+fear
+but
+they
+were
+scared
+by
+the
+stories
+of
+hell
+and
+the
+devil
+and
+this
+fear
+grew
+so
+that
+the
+people
+lost
+control
+of
+Nature
+s
+finer
+forces
+There
+are
+no
+religions
+in
+the
+spirit
+world
+all
+are
+brothers
+and
+sisters
+in
+Truth
+All
+are
+alike
+in
+the
+Higher
+Life
+after
+they
+have
+an
+understanding
+of
+The
+Great
+Spirit
+Another
+one
+of
+Mrs
+Wickland
+s
+guiding
+spirits
+is
+Movilia
+an
+Esquimo
+who
+brings
+strength
+and
+power
+to
+the
+circle
+He
+lived
+in
+Greenland
+and
+was
+a
+traveling
+lecturer
+doctor
+and
+entertainer
+a
+Medicine
+Man
+of
+high
+order
+with
+a
+profound
+knowledge
+of
+Nature
+He
+journeyed
+among
+his
+people
+as
+an
+organizer
+and
+a
+philosopher
+accompanied
+by
+his
+wife
+a
+poetess
+and
+singer
+and
+his
+children
+who
+danced
+symbolical
+dances
+Some
+of
+the
+Esquimo
+songs
+when
+given
+through
+Mrs
+Wickland
+by
+Movilia
+and
+his
+wife
+have
+been
+recognized
+by
+an
+Alaskan
+traveler
+as
+being
+a
+part
+of
+certain
+Esquimo
+ceremonies
+These
+Esquimos
+do
+not
+speak
+English
+but
+one
+evening
+Movilia
+brought
+another
+Esquimo
+who
+acted
+as
+interpreter
+for
+him
+and
+told
+us
+something
+of
+the
+Esquimo
+religion
+EXPERIENCE
+MAY
+Spirit
+ESOVILIA
+CHEVILIA
+speaking
+for
+MOVILIA
+AND
+WIFE
+Psychic
+MRS
+WICKLAND
+My
+name
+is
+Esovilia
+Chevilia
+Esquimo
+and
+the
+ones
+for
+whom
+I
+talk
+are
+Movilia
+and
+his
+wife
+We
+believe
+in
+the
+Great
+Spirit
+of
+Love
+Wisdom
+and
+Knowledge
+and
+that
+we
+are
+a
+part
+of
+that
+Great
+Spirit
+and
+that
+when
+we
+pray
+from
+our
+hearts
+we
+shall
+receive
+what
+we
+ask
+for
+The
+Medicine
+Man
+is
+the
+one
+who
+knows
+the
+Secret
+of
+the
+Universe
+the
+Secret
+of
+Love
+the
+Secret
+of
+Knowledge
+and
+the
+Secret
+of
+Wisdom
+and
+Truth
+It
+is
+in
+that
+Spirit
+we
+live
+and
+each
+tries
+to
+do
+the
+best
+he
+knows
+how
+Sometimes
+there
+comes
+a
+missionary
+who
+thinks
+we
+are
+not
+Christians
+and
+that
+we
+do
+not
+live
+right
+and
+does
+not
+think
+we
+love
+God
+as
+they
+call
+The
+Great
+Spirit
+We
+love
+the
+Great
+Spirit
+of
+Love
+the
+Great
+Spirit
+of
+Truth
+The
+Great
+Spirit
+and
+we
+worship
+Him
+We
+do
+not
+believe
+we
+know
+We
+know
+the
+truth
+and
+we
+know
+that
+we
+are
+a
+part
+of
+that
+Divine
+Spirit
+that
+is
+within
+us
+and
+when
+we
+are
+in
+contact
+with
+that
+Great
+Spirit
+of
+Truth
+we
+have
+much
+in
+our
+hearts
+We
+can
+understand
+His
+meaning
+of
+Life
+His
+meaning
+of
+Love
+for
+His
+children
+here
+on
+earth
+Some
+of
+the
+missionaries
+who
+come
+to
+us
+say
+that
+Christ
+died
+for
+our
+sins
+Dear
+friends
+we
+do
+not
+have
+sins
+for
+Christ
+to
+die
+for
+for
+God
+is
+Love
+and
+Power
+He
+is
+Wisdom
+Knowledge
+and
+Truth
+We
+are
+a
+part
+of
+that
+wonderful
+Being
+When
+we
+are
+a
+part
+of
+that
+wonderful
+spirit
+how
+could
+we
+be
+full
+of
+sin
+We
+could
+not
+fall
+away
+from
+Him
+because
+we
+are
+a
+part
+of
+Him
+we
+live
+in
+Him
+and
+are
+a
+part
+of
+Him
+We
+could
+not
+get
+away
+from
+Him
+because
+He
+is
+every
+where
+He
+is
+the
+whole
+Universe
+the
+whole
+Love
+the
+whole
+Life
+of
+everything
+How
+can
+anyone
+think
+we
+could
+believe
+in
+such
+a
+doctrine
+that
+He
+the
+Great
+Spirit
+that
+knows
+everything
+is
+everywhere
+and
+knows
+the
+past
+present
+and
+future
+could
+in
+all
+His
+power
+and
+greatness
+let
+us
+go
+down
+and
+down
+and
+fall
+in
+sin
+How
+could
+He
+The
+missionary
+says
+we
+must
+be
+born
+in
+His
+image
+and
+must
+believe
+in
+Him
+that
+He
+died
+for
+our
+sins
+and
+if
+we
+believe
+that
+we
+will
+go
+to
+Heaven
+when
+we
+die
+We
+pray
+to
+the
+wonderful
+Spirit
+that
+you
+call
+God
+You
+have
+dogmas
+and
+dogmas
+and
+creeds
+and
+beliefs
+We
+put
+ourselves
+in
+rapport
+with
+that
+Great
+Spirit
+and
+we
+believe
+in
+His
+power
+We
+try
+to
+get
+the
+power
+from
+the
+Great
+Spirit
+for
+healing
+and
+for
+other
+purposes
+We
+have
+Hope
+in
+that
+power
+we
+have
+Wisdom
+in
+that
+power
+The
+Christians
+believe
+and
+believe
+that
+they
+fall
+in
+sin
+and
+that
+somebody
+must
+raise
+them
+up
+If
+you
+step
+outside
+of
+the
+Law
+you
+know
+what
+will
+happen
+If
+you
+put
+your
+hand
+in
+the
+fire
+you
+know
+you
+have
+broken
+the
+Law
+and
+must
+suffer
+If
+you
+have
+the
+belief
+that
+you
+have
+fallen
+in
+sin
+you
+have
+transgressed
+the
+Law
+and
+you
+will
+suffer
+We
+must
+find
+the
+Great
+Spirit
+within
+not
+look
+outside
+Find
+ourselves
+and
+we
+will
+find
+Him
+for
+we
+are
+a
+part
+of
+that
+wonderful
+Mind
+that
+wonderful
+Power
+Let
+us
+all
+try
+to
+get
+in
+rapport
+with
+Him
+in
+His
+wonderful
+wonderful
+glory
+When
+you
+are
+in
+rapport
+with
+the
+Great
+Spirit
+you
+will
+feel
+happy
+You
+have
+then
+learned
+your
+lesson
+and
+will
+go
+on
+your
+way
+and
+not
+overstep
+the
+Law
+You
+will
+get
+out
+of
+your
+ignorance
+You
+travel
+on
+the
+pathway
+of
+Life
+if
+you
+walk
+out
+of
+the
+pathway
+you
+may
+remain
+as
+long
+as
+you
+wish
+but
+you
+must
+finally
+get
+back
+on
+the
+road
+again
+What
+made
+you
+go
+from
+the
+pathway
+You
+overstepped
+the
+law
+of
+Nature
+You
+finally
+get
+so
+weary
+of
+breaking
+the
+laws
+of
+Nature
+that
+you
+will
+ask
+What
+am
+I
+here
+for
+and
+where
+am
+I
+going
+Then
+you
+will
+find
+you
+are
+a
+Truth
+Seeker
+you
+will
+knock
+and
+the
+door
+will
+be
+opened
+You
+will
+look
+within
+instead
+of
+as
+before
+without
+You
+have
+been
+living
+in
+the
+material
+with
+all
+its
+dogmas
+here
+one
+here
+another
+And
+then
+there
+is
+so
+much
+condemning
+You
+are
+all
+Christians
+and
+yet
+you
+condemn
+and
+fight
+and
+fight
+each
+other
+and
+you
+have
+so
+much
+turmoil
+This
+condition
+will
+continue
+until
+you
+ask
+yourself
+What
+is
+it
+all
+about
+Then
+you
+will
+try
+to
+find
+out
+When
+you
+seek
+for
+things
+from
+your
+heart
+you
+will
+find
+Ask
+God
+to
+reveal
+Himself
+to
+you
+Ask
+God
+to
+manifest
+Himself
+in
+your
+heart
+before
+you
+leave
+the
+broad
+road
+of
+Experience
+for
+the
+narrow
+road
+of
+Reason
+When
+you
+get
+on
+the
+narrow
+road
+you
+will
+feel
+happy
+and
+contented
+and
+you
+come
+into
+the
+Glory
+of
+the
+Infinite
+There
+all
+is
+beautiful
+There
+is
+no
+selfishness
+The
+narrow
+road
+is
+only
+for
+Love
+Kindness
+Knowledge
+and
+Wisdom
+of
+God
+The
+Christians
+look
+for
+God
+outside
+we
+look
+for
+God
+within
+ourselves
+Within
+ourselves
+we
+look
+for
+the
+Great
+Spirit
+We
+do
+not
+have
+so
+many
+creeds
+and
+dogmas
+and
+so
+many
+religious
+speculations
+We
+do
+not
+have
+to
+speculate
+for
+we
+know
+One
+gets
+the
+truth
+one
+way
+one
+another
+and
+so
+they
+go
+all
+divided
+nothing
+definite
+People
+must
+change
+for
+they
+have
+had
+enough
+of
+dogmas
+Let
+them
+get
+more
+of
+the
+Wisdom
+of
+God
+on
+the
+narrow
+road
+of
+Reason
+and
+find
+themselves
+When
+they
+have
+found
+themselves
+they
+will
+have
+no
+sorrow
+and
+no
+unhappiness
+because
+they
+will
+be
+happy
+with
+the
+Love
+of
+God
+When
+they
+love
+God
+they
+will
+love
+others
+for
+they
+cannot
+keep
+it
+to
+themselves
+You
+want
+your
+friends
+to
+love
+God
+with
+you
+You
+want
+them
+to
+see
+the
+glory
+of
+God
+We
+never
+saw
+such
+a
+thing
+as
+you
+Christians
+call
+The
+Devil
+we
+call
+it
+Selfishness
+and
+Ignorance
+Find
+yourself
+now
+If
+you
+do
+not
+you
+will
+have
+to
+stop
+here
+there
+and
+everywhere
+When
+you
+have
+that
+beautiful
+knowledge
+all
+is
+happiness
+You
+must
+experience
+this
+feeling
+within
+yourself
+before
+you
+can
+teach
+it
+to
+others
+This
+is
+the
+Religion
+of
+the
+Esquimos
+I
+was
+a
+Medicine
+Man
+on
+earth
+and
+I
+was
+also
+a
+teacher
+Esquimo
+Movilia
+was
+the
+one
+that
+came
+to
+me
+and
+wanted
+me
+to
+say
+to
+you
+what
+he
+wishes
+to
+say
+I
+have
+only
+repeated
+what
+he
+told
+me
+to
+say
+We
+have
+no
+wars
+We
+try
+to
+live
+as
+near
+Nature
+and
+the
+Great
+Spirit
+as
+we
+can
+We
+are
+not
+a
+pretty
+people
+and
+we
+do
+not
+have
+so
+much
+changing
+as
+you
+do
+in
+dress
+We
+have
+our
+beauty
+within
+us
+Prettiness
+is
+only
+skin
+deep
+so
+we
+do
+not
+care
+The
+Christian
+has
+to
+be
+awakened
+through
+suffering
+and
+trouble
+Then
+you
+begin
+to
+look
+for
+what
+is
+called
+the
+truth
+You
+think
+that
+Jesus
+died
+for
+your
+sins
+He
+could
+not
+and
+He
+did
+not
+The
+sins
+that
+are
+committed
+now
+are
+many
+more
+than
+when
+He
+was
+on
+earth
+Many
+things
+have
+been
+discovered
+that
+were
+not
+known
+then
+so
+how
+could
+he
+die
+for
+something
+that
+was
+not
+known
+I
+think
+that
+is
+very
+strange
+God
+made
+us
+and
+He
+knew
+When
+you
+find
+God
+within
+yourself
+you
+cannot
+do
+wrong
+You
+sing
+and
+are
+happy
+and
+happiness
+is
+something
+we
+all
+want
+We
+had
+one
+man
+come
+to
+us
+and
+preach
+He
+took
+away
+with
+him
+one
+of
+the
+best
+men
+we
+had
+and
+tried
+to
+bring
+him
+up
+with
+your
+Christians
+He
+returned
+to
+us
+a
+ruined
+man
+full
+of
+diseases
+We
+do
+not
+have
+such
+diseases
+because
+we
+live
+up
+to
+the
+highest
+laws
+of
+Nature
+He
+came
+back
+and
+told
+us
+how
+you
+who
+call
+yourselves
+Christians
+live
+We
+all
+felt
+so
+horrified
+to
+know
+that
+the
+Christians
+were
+so
+diseased
+in
+mind
+and
+body
+That
+is
+what
+the
+Christians
+did
+for
+our
+fellow
+Esquimo
+So
+I
+felt
+that
+I
+wanted
+to
+come
+and
+tell
+you
+of
+our
+religion
+Let
+all
+in
+this
+little
+circle
+find
+themselves
+and
+God
+because
+you
+and
+God
+are
+one
+Here
+is
+a
+big
+light
+say
+a
+candle
+which
+stands
+in
+the
+center
+Around
+it
+are
+smaller
+candles
+but
+they
+are
+all
+a
+part
+of
+the
+same
+material
+as
+the
+larger
+candle
+You
+take
+the
+smaller
+candles
+and
+light
+them
+from
+the
+big
+one
+then
+you
+have
+the
+spark
+of
+Life
+Can
+you
+then
+understand
+what
+is
+meant
+by
+being
+a
+spark
+of
+God
+When
+you
+die
+as
+the
+Christians
+call
+it
+you
+only
+blow
+out
+the
+candle
+The
+tallow
+has
+gone
+back
+to
+the
+elements
+Find
+God
+within
+you
+then
+you
+have
+Power
+Strength
+and
+Love
+and
+are
+learning
+to
+get
+Wisdom
+Then
+you
+have
+learned
+to
+get
+strength
+and
+conquer
+material
+to
+conquer
+sorrow
+and
+sickness
+You
+cannot
+be
+sick
+for
+you
+have
+the
+light
+of
+understanding
+and
+the
+more
+understanding
+you
+have
+the
+more
+strength
+you
+have
+All
+of
+you
+here
+are
+a
+part
+of
+that
+Universal
+Light
+and
+you
+must
+all
+have
+that
+light
+from
+the
+candle
+Do
+not
+worship
+the
+candle
+but
+worship
+the
+Light
+of
+Understanding
+and
+God
+Do
+not
+let
+anyone
+come
+in
+your
+way
+and
+make
+you
+think
+you
+cannot
+reach
+God
+The
+Christians
+do
+not
+truly
+understand
+God
+They
+must
+have
+somebody
+to
+talk
+for
+them
+their
+Savior
+as
+they
+call
+him
+They
+worship
+Christ
+Christ
+is
+Truth
+and
+when
+you
+find
+Truth
+that
+is
+Christ
+Worship
+God
+When
+you
+understand
+how
+to
+worship
+God
+you
+will
+have
+strength
+and
+power
+and
+success
+will
+be
+yours
+We
+say
+Find
+God
+within
+your
+heart
+and
+all
+else
+will
+come
+to
+YOU
+We
+do
+not
+believe
+we
+know
+Have
+the
+true
+knowledge
+of
+God
+in
+your
+heart
+and
+you
+will
+be
+happy
+Good
+Night
+From
+the
+time
+Mrs
+Wickland
+first
+developed
+as
+a
+psychic
+she
+has
+been
+especially
+under
+the
+protection
+of
+the
+spirit
+Dr
+Root
+who
+has
+fostered
+this
+obsession
+work
+and
+urged
+us
+to
+bring
+it
+before
+the
+public
+He
+has
+come
+often
+to
+speak
+with
+encouragement
+and
+to
+lecture
+to
+invisible
+as
+well
+as
+visible
+audiences
+on
+the
+higher
+philosophy
+of
+life
+EXPERIENCE
+DECEMBER
+spirit
+DR
+Root
+PSYCHIC
+MRS
+WICKLAND
+As
+we
+are
+gathered
+together
+in
+this
+little
+hall
+I
+wish
+you
+could
+open
+your
+psychic
+eyes
+to
+see
+the
+many
+spirits
+who
+have
+come
+here
+for
+an
+understanding
+of
+the
+life
+hereafter
+There
+has
+never
+been
+real
+happiness
+on
+earth
+and
+there
+will
+not
+be
+so
+long
+as
+people
+are
+kept
+in
+ignorance
+of
+the
+truth
+of
+religion
+In
+all
+times
+there
+have
+been
+many
+different
+kinds
+of
+religion
+and
+always
+there
+has
+been
+selfishness
+You
+now
+live
+in
+the
+Twentieth
+Century
+and
+since
+this
+is
+an
+enlightened
+age
+why
+should
+not
+people
+be
+more
+intelligent
+and
+know
+more
+about
+the
+world
+here
+and
+the
+world
+beyond
+People
+worship
+the
+Golden
+Calf
+more
+than
+they
+worship
+God
+The
+churches
+are
+falling
+to
+pieces
+because
+they
+cannot
+make
+people
+believe
+as
+they
+used
+to
+in
+olden
+times
+People
+now
+want
+knowledge
+not
+belief
+and
+if
+the
+churches
+would
+teach
+true
+religion
+people
+would
+be
+better
+Many
+ministers
+know
+in
+their
+hearts
+that
+people
+do
+not
+believe
+the
+old
+stories
+It
+is
+the
+Golden
+Calf
+again
+they
+worship
+money
+and
+they
+stand
+in
+the
+pulpit
+and
+talk
+against
+their
+better
+nature
+Some
+day
+this
+world
+will
+conquer
+selfishness
+but
+I
+am
+sorry
+to
+say
+that
+at
+present
+most
+of
+the
+people
+are
+insane
+regarding
+money
+making
+They
+seem
+not
+to
+be
+able
+to
+get
+money
+enough
+There
+is
+little
+honor
+only
+money
+money
+There
+is
+little
+sympathy
+all
+want
+only
+what
+they
+can
+get
+from
+others
+through
+money
+making
+schemes
+In
+time
+this
+money
+scheme
+will
+fall
+to
+pieces
+We
+should
+study
+the
+other
+side
+of
+life
+as
+well
+as
+this
+when
+we
+are
+on
+earth
+If
+you
+want
+to
+become
+a
+minister
+doctor
+lawyer
+or
+lecturer
+you
+have
+to
+study
+to
+acquire
+knowledge
+Why
+should
+we
+not
+study
+ourselves
+It
+is
+very
+important
+that
+All
+on
+earth
+should
+know
+where
+they
+are
+going
+after
+passing
+out
+of
+the
+physical
+for
+they
+will
+then
+go
+to
+the
+right
+place
+and
+will
+not
+stay
+in
+the
+homes
+they
+have
+left
+Without
+this
+knowledge
+many
+do
+not
+realize
+they
+are
+dead
+and
+they
+remain
+in
+their
+earthly
+homes
+Some
+one
+of
+the
+family
+may
+be
+sensitive
+and
+may
+become
+obsessed
+Then
+the
+doctors
+will
+declare
+that
+person
+insane
+and
+send
+him
+to
+the
+asylum
+for
+there
+is
+no
+pity
+for
+one
+who
+is
+controlled
+by
+earthbound
+spirits
+People
+should
+be
+taught
+the
+truth
+then
+when
+they
+pass
+out
+they
+will
+look
+for
+the
+spirit
+world
+and
+a
+happy
+place
+beyond
+instead
+of
+a
+fictitious
+Heaven
+Heaven
+or
+hell
+is
+only
+a
+condition
+within
+yourself
+and
+Heaven
+must
+be
+found
+within
+before
+you
+can
+be
+happy
+in
+the
+spirit
+world
+Some
+say
+What
+is
+the
+spirit
+world
+The
+spirit
+world
+is
+a
+counterpart
+of
+this
+with
+only
+one
+exception
+here
+you
+are
+thrown
+together
+with
+every
+sort
+of
+person
+while
+there
+you
+cannot
+go
+anywhere
+unless
+you
+have
+understanding
+of
+where
+you
+are
+going
+The
+spirit
+side
+of
+life
+is
+like
+a
+school
+you
+progress
+by
+degrees
+There
+is
+no
+belief
+You
+learn
+where
+you
+belong
+and
+where
+you
+are
+going
+It
+takes
+time
+to
+understand
+but
+there
+is
+plenty
+of
+time
+in
+eternity
+to
+study
+and
+learn
+The
+time
+is
+not
+far
+distant
+when
+people
+will
+open
+their
+eyes
+and
+see
+and
+the
+churches
+will
+have
+circles
+and
+try
+to
+understand
+life
+This
+is
+Dr
+Root
+I
+wish
+you
+all
+happiness
+and
+success
+in
+your
+work
+Good
+Night
+EXPERIENCE
+MARCH
+Spirit
+DR
+ROOT
+Psychic
+MRS
+WICKLAND
+I
+am
+glad
+I
+can
+be
+with
+you
+tonight
+to
+tell
+you
+of
+the
+beautiful
+conditions
+we
+have
+on
+the
+spirit
+side
+The
+greater
+number
+think
+that
+when
+death
+comes
+they
+will
+go
+to
+a
+certain
+place
+and
+stay
+there
+until
+the
+last
+of
+this
+earth
+The
+Last
+Day
+is
+every
+day
+that
+you
+throw
+away
+selfishness
+and
+ignorance
+That
+is
+Death
+Life
+is
+Love
+and
+Wisdom
+Let
+us
+die
+daily
+to
+our
+ignorance
+and
+selfishness
+Let
+us
+awaken
+to
+the
+truth
+and
+an
+understanding
+of
+God
+who
+has
+given
+us
+that
+truth
+and
+who
+has
+sent
+forth
+His
+messengers
+to
+tell
+us
+what
+life
+is
+on
+the
+other
+side
+It
+is
+a
+life
+which
+is
+more
+spiritual
+more
+congenial
+and
+more
+beautiful
+in
+every
+respect
+than
+the
+one
+on
+earth
+When
+you
+have
+Truth
+in
+your
+heart
+you
+are
+happy
+When
+you
+have
+selfishness
+and
+ignorance
+in
+your
+heart
+you
+are
+sorrowful
+Sorrow
+will
+follow
+you
+until
+you
+say
+Not
+my
+will
+but
+Thine
+When
+others
+come
+in
+your
+way
+and
+try
+to
+keep
+you
+down
+rise
+and
+say
+No
+I
+will
+be
+firm
+and
+I
+will
+conquer
+and
+then
+you
+can
+create
+happiness
+and
+contentment
+in
+your
+soul
+and
+you
+will
+have
+happiness
+around
+you
+When
+you
+think
+only
+of
+selfishness
+and
+creeds
+you
+have
+sadness
+and
+sorrow
+and
+you
+will
+have
+to
+burn
+these
+out
+by
+suffering
+and
+say
+Not
+my
+will
+any
+longer
+but
+Thy
+will
+Let
+us
+pray
+to
+God
+because
+He
+is
+All
+in
+All
+He
+is
+with
+you
+all
+We
+could
+not
+live
+one
+minute
+without
+that
+wonderful
+power
+Do
+not
+let
+us
+pray
+to
+anyone
+else
+because
+God
+is
+within
+ourselves
+You
+do
+not
+need
+to
+go
+anywhere
+except
+your
+own
+heart
+to
+pray
+to
+Him
+Have
+communion
+with
+God
+in
+your
+heart
+and
+you
+do
+not
+need
+to
+take
+communion
+outside
+When
+you
+have
+learned
+the
+truth
+then
+communion
+is
+within
+you
+You
+do
+not
+need
+to
+be
+reminded
+to
+take
+communion
+with
+God
+because
+you
+know
+He
+is
+there
+to
+help
+you
+You
+have
+opened
+your
+heart
+to
+God
+and
+He
+has
+heard
+you
+and
+you
+can
+then
+commune
+with
+Him
+Communion
+is
+not
+understood
+as
+it
+should
+be
+You
+take
+communion
+It
+is
+only
+a
+reminder
+that
+you
+should
+be
+united
+with
+God
+When
+you
+have
+learned
+and
+have
+progressed
+higher
+and
+higher
+you
+do
+not
+need
+a
+physical
+reminder
+because
+you
+understand
+When
+you
+have
+communion
+with
+God
+you
+do
+not
+need
+bread
+and
+wine
+You
+cannot
+go
+anywhere
+without
+God
+God
+is
+in
+the
+air
+He
+is
+everywhere
+You
+cannot
+walk
+on
+the
+earth
+without
+stepping
+on
+His
+creation
+and
+you
+should
+try
+to
+understand
+His
+work
+There
+has
+been
+so
+much
+theorizing
+One
+has
+one
+theory
+someone
+else
+another
+One
+goes
+into
+this
+corner
+another
+into
+that
+corner
+and
+one
+says
+this
+is
+the
+proper
+way
+and
+the
+other
+says
+that
+is
+the
+proper
+way
+one
+has
+one
+creed
+and
+one
+has
+another
+They
+go
+around
+in
+a
+little
+circle
+and
+forget
+they
+are
+in
+the
+midst
+of
+life
+of
+God
+Himself
+When
+you
+do
+a
+kind
+act
+to
+another
+you
+do
+it
+unto
+God
+because
+he
+is
+one
+part
+of
+God
+and
+you
+another
+We
+only
+serve
+God
+when
+we
+serve
+others
+Live
+to
+serve
+and
+do
+all
+you
+can
+for
+others
+then
+you
+will
+progress
+in
+understanding
+To
+go
+to
+church
+to
+serve
+God
+is
+only
+to
+remind
+you
+of
+what
+you
+should
+actually
+do
+Act
+and
+do
+good
+to
+those
+who
+are
+in
+trouble
+Why
+should
+you
+go
+to
+any
+place
+to
+worship
+Enter
+into
+thy
+closet
+and
+pray
+to
+thy
+Father
+which
+is
+in
+secret
+Pray
+earnestly
+and
+your
+prayers
+will
+be
+heard
+Do
+not
+pray
+idly
+but
+pray
+earnestly
+Live
+so
+that
+people
+will
+know
+you
+have
+done
+your
+duty
+in
+life
+On
+the
+spirit
+side
+we
+find
+it
+is
+difficult
+to
+open
+the
+spiritual
+eyes
+of
+many
+They
+are
+all
+so
+blinded
+by
+creeds
+and
+dogmas
+that
+we
+have
+to
+do
+all
+within
+our
+power
+to
+help
+them
+understand
+that
+God
+did
+not
+make
+dogmas
+and
+creeds
+but
+that
+God
+made
+the
+Universe
+and
+the
+people
+in
+it
+should
+worship
+Him
+alone
+without
+any
+creed
+or
+dogma
+When
+we
+understand
+and
+realize
+love
+not
+what
+people
+call
+love
+here
+but
+the
+love
+which
+springs
+out
+everywhere
+then
+love
+is
+like
+the
+sun
+When
+there
+is
+love
+in
+your
+heart
+you
+are
+like
+a
+sun
+to
+others
+You
+have
+found
+God
+in
+your
+heart
+and
+this
+shines
+forth
+just
+as
+the
+sun
+shines
+on
+all
+Those
+who
+have
+only
+creed
+dogma
+and
+selfishness
+and
+are
+ignorant
+feel
+gloomy
+they
+have
+a
+fear
+of
+God
+a
+fear
+of
+everything
+around
+them
+They
+have
+not
+opened
+their
+souls
+eyes
+to
+ask
+for
+the
+light
+for
+understanding
+of
+God
+These
+come
+to
+the
+spirit
+side
+of
+life
+in
+darkness
+and
+gather
+together
+one
+group
+here
+another
+there
+all
+in
+deep
+gloom
+They
+pray
+and
+sing
+and
+moan
+from
+morning
+until
+night
+year
+after
+year
+It
+is
+very
+difficult
+to
+make
+them
+understand
+that
+they
+have
+passed
+to
+the
+spirit
+side
+of
+life
+very
+hard
+for
+them
+to
+wake
+up
+and
+see
+the
+mistake
+they
+made
+in
+accepting
+dogmas
+and
+creeds
+They
+have
+clothed
+themselves
+with
+gloom
+and
+have
+shut
+out
+the
+light
+that
+should
+have
+been
+shining
+throughout
+their
+lives
+If
+you
+love
+God
+in
+the
+sense
+I
+have
+spoken
+of
+then
+you
+will
+be
+happy
+This
+is
+Dr
+Root
+Good
+Night
+Another
+extract
+is
+taken
+from
+a
+lecture
+recently
+given
+by
+Dr
+Root
+to
+a
+gathering
+of
+earthbound
+spirits
+as
+well
+as
+to
+our
+circle
+EXPERIENCE
+JANUARY
+Spirit
+DR
+ROOT
+Psychic
+MRS
+WICKLAND
+Let
+us
+concentrate
+for
+happiness
+and
+contentment
+for
+the
+betterment
+of
+the
+world
+Let
+us
+never
+look
+backward
+but
+forward
+Let
+us
+all
+try
+to
+do
+the
+best
+we
+can
+and
+help
+others
+If
+little
+groups
+such
+as
+this
+one
+would
+concentrate
+in
+an
+effort
+to
+cheer
+the
+world
+the
+world
+would
+be
+better
+This
+little
+light
+of
+concentration
+does
+not
+seem
+much
+but
+it
+will
+do
+much
+good
+for
+the
+ones
+in
+darkness
+and
+those
+in
+trouble
+If
+all
+the
+churches
+would
+have
+concentration
+circles
+to
+help
+the
+people
+and
+would
+give
+them
+cheer
+and
+courage
+and
+try
+to
+help
+them
+into
+a
+brighter
+condition
+instead
+of
+condemning
+them
+and
+telling
+them
+they
+are
+lost
+forever
+if
+they
+do
+not
+believe
+a
+certain
+doctrine
+the
+world
+would
+be
+much
+happier
+and
+better
+You
+must
+find
+yourselves
+within
+before
+you
+can
+find
+yourselves
+without
+You
+must
+be
+born
+again
+not
+in
+Jesus
+Christ
+no
+you
+must
+realize
+your
+own
+self
+and
+that
+you
+are
+a
+part
+of
+God
+God
+gave
+you
+light
+and
+understanding
+Go
+out
+and
+help
+the
+people
+in
+trouble
+and
+those
+who
+have
+not
+awakened
+to
+an
+understanding
+of
+God
+Do
+not
+merely
+believe
+in
+God
+but
+find
+Him
+within
+yourselves
+then
+you
+will
+not
+need
+belief
+Belief
+and
+faith
+are
+only
+the
+key
+If
+you
+have
+the
+key
+in
+your
+hand
+and
+do
+not
+know
+where
+it
+belongs
+do
+not
+know
+which
+door
+it
+opens
+if
+you
+have
+only
+faith
+and
+belief
+and
+nothing
+more
+you
+only
+hold
+the
+key
+but
+do
+not
+use
+it
+Seek
+for
+knowledge
+until
+you
+can
+open
+the
+door
+of
+Wisdom
+and
+Understanding
+Most
+people
+have
+the
+key
+but
+they
+only
+hold
+it
+in
+their
+hands
+and
+do
+not
+use
+it
+They
+say
+If
+I
+believe
+in
+God
+and
+Jesus
+Christ
+I
+will
+be
+saved
+When
+the
+time
+comes
+for
+them
+to
+pass
+to
+the
+spirit
+side
+of
+life
+they
+merely
+hold
+that
+key
+they
+have
+only
+belief
+and
+they
+find
+themselves
+in
+darkness
+because
+they
+have
+not
+used
+the
+key
+of
+understanding
+that
+God
+gave
+them
+with
+which
+to
+investigate
+and
+find
+God
+within
+themselves
+You
+do
+not
+need
+to
+go
+anywhere
+you
+must
+open
+the
+door
+of
+your
+own
+heart
+Find
+God
+and
+find
+that
+you
+are
+a
+part
+of
+that
+wonderful
+power
+When
+you
+open
+the
+door
+you
+have
+power
+and
+strength
+and
+health
+you
+have
+everything
+and
+the
+strength
+of
+God
+s
+power
+will
+flow
+in
+and
+you
+will
+do
+wonderful
+things
+Christ
+was
+a
+great
+teacher
+but
+do
+people
+carry
+out
+His
+teachings
+They
+believe
+but
+they
+do
+not
+do
+what
+he
+told
+them
+Each
+one
+is
+a
+part
+of
+God
+and
+when
+you
+do
+what
+you
+can
+for
+others
+you
+love
+God
+and
+worship
+Him
+by
+so
+doing
+The
+people
+and
+the
+churches
+should
+unite
+as
+one
+power
+and
+help
+each
+other
+and
+try
+to
+conquer
+selfishness
+Spread
+the
+truth
+find
+God
+within
+yourself
+and
+open
+your
+heart
+to
+Him
+through
+understanding
+You
+have
+power
+so
+far
+as
+your
+mind
+has
+developed
+If
+you
+try
+to
+develop
+for
+more
+power
+you
+will
+have
+it
+Widen
+out
+and
+try
+to
+know
+God
+s
+wonderful
+mystery
+in
+the
+world
+Let
+us
+find
+God
+in
+Nature
+everywhere
+Look
+at
+a
+snowflake
+it
+is
+wonderful
+It
+has
+many
+beautiful
+designs
+Who
+made
+it
+It
+is
+so
+natural
+that
+people
+do
+not
+realize
+its
+beauty
+They
+say
+It
+is
+just
+snow
+When
+individuals
+step
+out
+of
+the
+physical
+the
+worst
+hindrance
+they
+have
+is
+desire
+which
+must
+be
+overcome
+Creeds
+and
+dogmas
+hold
+them
+down
+they
+are
+not
+free
+They
+are
+as
+Jesus
+said
+bond
+servants
+and
+will
+be
+held
+down
+They
+think
+when
+they
+pass
+to
+the
+spirit
+side
+of
+life
+they
+will
+go
+to
+Heaven
+Stop
+to
+think
+where
+is
+Heaven
+Christ
+said
+the
+kingdom
+of
+Heaven
+is
+within
+you
+if
+God
+dwells
+there
+The
+majority
+believe
+that
+what
+you
+call
+death
+is
+a
+long
+sleep
+and
+many
+who
+have
+not
+learned
+the
+lesson
+of
+life
+go
+to
+sleep
+Some
+will
+sleep
+for
+years
+because
+they
+are
+self
+hypnotized
+They
+think
+I
+am
+dying
+and
+I
+will
+go
+to
+the
+grave
+and
+stay
+there
+until
+the
+Last
+Day
+and
+then
+will
+be
+awakened
+Others
+pass
+to
+the
+spirit
+side
+of
+life
+believing
+in
+certain
+creeds
+and
+dogmas
+They
+go
+to
+certain
+places
+in
+the
+earth
+sphere
+where
+they
+sing
+and
+pray
+and
+do
+not
+progress
+any
+further
+They
+go
+over
+and
+over
+the
+same
+things
+It
+is
+only
+mouth
+prayers
+they
+offer
+Sometimes
+they
+remain
+in
+that
+sphere
+for
+years
+Sometimes
+they
+go
+about
+in
+the
+earth
+sphere
+and
+try
+to
+convert
+people
+They
+attach
+themselves
+to
+some
+mortal
+and
+that
+mortal
+will
+be
+called
+insane
+on
+religion
+What
+is
+done
+then
+The
+victims
+are
+sent
+to
+the
+insane
+asylum
+and
+left
+there
+for
+the
+rest
+of
+their
+lives
+They
+will
+not
+be
+free
+from
+the
+obsessing
+spirits
+until
+the
+body
+dies
+Then
+those
+spirits
+often
+attach
+themselves
+to
+other
+mortals
+Let
+us
+understand
+the
+truth
+Let
+us
+do
+what
+we
+can
+to
+help
+ourselves
+and
+others
+to
+an
+understanding
+of
+God
+Worship
+Him
+everywhere
+Let
+us
+look
+at
+the
+sky
+and
+see
+the
+beautiful
+planets
+and
+stars
+If
+this
+earth
+disappeared
+tomorrow
+the
+suns
+and
+stars
+in
+the
+heavens
+would
+be
+just
+the
+same
+This
+earth
+would
+not
+be
+missed
+Do
+you
+think
+God
+sits
+on
+this
+earth
+and
+controls
+nothing
+more
+No
+let
+us
+think
+and
+understand
+and
+study
+Let
+us
+all
+worship
+God
+in
+His
+whole
+Universe
+There
+is
+Life
+everywhere
+The
+grandeur
+of
+the
+heavens
+cannot
+be
+described
+the
+wonderful
+stars
+in
+the
+heavens
+the
+planets
+and
+all
+the
+Universe
+Look
+through
+the
+microscope
+and
+you
+will
+find
+you
+are
+in
+another
+world
+You
+will
+see
+germs
+one
+or
+two
+of
+which
+will
+kill
+a
+big
+body
+They
+are
+all
+under
+one
+power
+God
+Some
+say
+Why
+did
+God
+make
+all
+these
+germs
+to
+torment
+humanity
+They
+must
+be
+in
+order
+to
+have
+you
+realize
+and
+think
+and
+overcome
+When
+you
+have
+trouble
+and
+try
+to
+overcome
+you
+become
+strong
+A
+child
+that
+is
+protected
+constantly
+by
+its
+parents
+and
+sent
+into
+the
+country
+grows
+up
+in
+a
+fine
+atmosphere
+He
+is
+good
+because
+he
+has
+had
+no
+temptation
+But
+he
+has
+no
+knowledge
+that
+he
+is
+good
+A
+boy
+from
+the
+slums
+who
+has
+had
+trouble
+will
+more
+readily
+develop
+into
+a
+man
+who
+can
+conquer
+than
+the
+one
+who
+has
+been
+protected
+He
+will
+be
+strong
+and
+able
+to
+help
+others
+Let
+us
+find
+ourselves
+Let
+us
+all
+concentrate
+and
+try
+to
+help
+and
+give
+light
+to
+every
+one
+we
+find
+needing
+help
+Worship
+God
+in
+His
+true
+sense
+and
+not
+in
+a
+little
+narrow
+belief
+Let
+us
+add
+knowledge
+to
+our
+faith
+You
+are
+the
+bond
+servants
+that
+Christ
+speaks
+of
+He
+was
+a
+wonderful
+teacher
+but
+you
+believe
+in
+His
+blood
+and
+not
+in
+his
+teachings
+Who
+killed
+Christ
+The
+very
+ones
+that
+belonged
+to
+the
+church
+They
+did
+not
+believe
+in
+Him
+Christ
+is
+an
+allegory
+He
+is
+the
+Truth
+Christ
+is
+born
+within
+you
+when
+you
+have
+attained
+understanding
+Then
+you
+will
+see
+and
+know
+and
+realize
+God
+When
+you
+pass
+to
+the
+spirit
+side
+of
+life
+you
+will
+have
+knowledge
+and
+you
+will
+go
+into
+a
+world
+that
+is
+far
+more
+beautiful
+than
+this
+You
+can
+then
+reach
+the
+spirit
+world
+You
+do
+not
+need
+to
+call
+it
+spirit
+world
+some
+object
+to
+that
+name
+Every
+one
+is
+a
+spiritual
+being
+You
+may
+call
+it
+the
+Higher
+Sphere
+you
+may
+call
+it
+Heaven
+but
+Heaven
+is
+not
+a
+place
+If
+you
+think
+you
+are
+going
+to
+Heaven
+you
+will
+have
+to
+take
+it
+with
+you
+because
+it
+is
+a
+condition
+When
+you
+have
+suffering
+you
+are
+in
+hell
+and
+many
+have
+a
+hard
+struggle
+to
+get
+out
+of
+that
+hell
+When
+you
+are
+happy
+you
+are
+in
+Heaven
+the
+Heaven
+within
+yourself
+You
+have
+trouble
+and
+sickness
+but
+everything
+is
+to
+help
+you
+learn
+to
+find
+yourself
+When
+you
+have
+found
+yourself
+within
+yourself
+you
+can
+conquer
+all
+conditions
+from
+without
+You
+say
+I
+am
+very
+sick
+You
+attract
+those
+forces
+unto
+you
+and
+after
+a
+while
+your
+own
+mind
+has
+created
+your
+condition
+You
+are
+a
+part
+of
+God
+the
+wonderful
+Creator
+What
+you
+think
+you
+create
+You
+have
+power
+and
+you
+can
+use
+it
+for
+good
+or
+evil
+If
+you
+have
+trouble
+disease
+or
+suffering
+and
+have
+not
+learned
+to
+throw
+it
+off
+you
+hold
+it
+to
+yourself
+Then
+you
+become
+sensitive
+and
+after
+a
+time
+you
+draw
+influences
+around
+you
+and
+these
+in
+turn
+throw
+disease
+and
+bad
+thoughts
+on
+you
+and
+you
+are
+bound
+First
+find
+God
+within
+yourself
+then
+you
+will
+have
+power
+to
+rise
+Trouble
+sorrow
+sickness
+obsession
+everything
+can
+be
+conquered
+after
+you
+find
+the
+truth
+Christ
+is
+born
+in
+you
+and
+you
+can
+conquer
+When
+you
+have
+found
+Christ
+within
+yourself
+you
+will
+still
+have
+struggles
+Others
+will
+say
+Do
+this
+or
+this
+and
+you
+will
+be
+wise
+Some
+will
+say
+Overcome
+the
+world
+overcome
+There
+will
+be
+a
+cross
+because
+there
+is
+a
+tempter
+You
+have
+found
+yourself
+but
+the
+tempter
+speaks
+to
+you
+Do
+this
+Come
+with
+me
+and
+I
+will
+show
+you
+the
+world
+and
+happiness
+Here
+is
+the
+cross
+which
+shows
+Christ
+is
+born
+within
+you
+Jesus
+the
+Son
+of
+Man
+must
+be
+crucified
+on
+the
+cross
+of
+matter
+that
+Christ
+enlightenment
+may
+live
+When
+you
+have
+reached
+that
+stage
+you
+see
+everything
+as
+good
+You
+cannot
+see
+bad
+When
+you
+look
+back
+you
+see
+that
+what
+you
+thought
+bad
+only
+taught
+you
+to
+understand
+God
+Should
+you
+condemn
+it
+No
+If
+you
+had
+not
+had
+that
+experience
+you
+would
+not
+be
+where
+you
+are
+now
+You
+must
+teach
+others
+and
+help
+them
+to
+rise
+with
+you
+If
+every
+one
+would
+do
+that
+the
+world
+would
+be
+happier
+Let
+us
+send
+out
+thoughts
+that
+all
+may
+conquer
+and
+that
+they
+may
+understand
+You
+should
+strive
+to
+gain
+knowledge
+of
+God
+s
+finer
+forces
+Find
+yourself
+and
+you
+will
+find
+God
+Before
+I
+go
+I
+want
+to
+say
+that
+we
+have
+a
+room
+full
+of
+earthbound
+spirits
+I
+often
+talk
+to
+them
+to
+help
+them
+This
+group
+we
+have
+here
+tonight
+are
+spirits
+we
+could
+not
+waken
+because
+they
+could
+not
+see
+us
+A
+spirit
+in
+ignorance
+cannot
+see
+an
+intelligent
+spirit
+So
+we
+have
+to
+bring
+them
+here
+I
+talk
+through
+this
+body
+and
+they
+hear
+me
+but
+they
+could
+not
+hear
+me
+from
+the
+spirit
+side
+of
+life
+because
+they
+had
+no
+understanding
+Every
+time
+you
+have
+circles
+here
+we
+have
+more
+spirits
+present
+than
+we
+have
+mortals
+When
+they
+see
+an
+earthbound
+spirit
+control
+they
+learn
+their
+first
+lesson
+and
+then
+we
+can
+take
+them
+to
+the
+spirit
+side
+of
+life
+and
+help
+them
+find
+happiness
+We
+are
+never
+idle
+in
+the
+spirit
+world
+Mind
+cannot
+stand
+still
+God
+s
+wonderful
+thoughts
+go
+on
+Planets
+do
+not
+stand
+still
+All
+is
+development
+Mind
+is
+never
+inactive
+so
+long
+as
+one
+tries
+to
+develop
+This
+is
+Dr
+Root
+Good
+Night
+For
+many
+years
+upon
+various
+occasions
+a
+symbolical
+morality
+play
+has
+been
+given
+through
+Mrs
+Wickland
+by
+a
+group
+of
+spirit
+actors
+They
+are
+twelve
+in
+number
+eleven
+actors
+and
+a
+director
+all
+of
+whom
+were
+Russian
+Slavonic
+when
+in
+earth
+life
+Under
+the
+direction
+of
+the
+stage
+manager
+they
+successively
+assume
+control
+of
+Mrs
+Wickland
+with
+such
+ease
+and
+rapidity
+that
+the
+change
+is
+scarcely
+noticeable
+The
+play
+is
+given
+in
+the
+Russian
+Slavonic
+tongue
+a
+language
+which
+Mrs
+Wickland
+herself
+has
+never
+heard
+but
+which
+is
+spoken
+perfectly
+through
+her
+by
+these
+actors
+as
+has
+been
+stated
+by
+different
+persons
+witnessing
+the
+play
+who
+are
+familiar
+with
+the
+language
+The
+costumes
+worn
+by
+the
+spirit
+actors
+and
+unseen
+by
+the
+average
+mortal
+audience
+have
+been
+described
+by
+clairvoyants
+as
+being
+authentically
+Russian
+Slavonic
+and
+very
+beautiful
+These
+actors
+with
+one
+of
+Mrs
+Wickland
+s
+guides
+as
+interpreter
+have
+given
+the
+following
+account
+of
+The
+Morality
+Play
+and
+its
+purpose
+We
+are
+twelve
+actors
+controlling
+this
+psychic
+sensitive
+in
+order
+to
+prove
+spirit
+return
+and
+spirit
+control
+and
+that
+we
+can
+act
+as
+we
+acted
+while
+in
+the
+body
+We
+come
+to
+help
+people
+understand
+that
+we
+are
+still
+living
+that
+we
+are
+not
+dead
+but
+are
+just
+as
+active
+as
+we
+were
+when
+in
+earth
+life
+We
+give
+this
+play
+in
+the
+spirit
+world
+for
+the
+earthbound
+spirits
+many
+of
+whom
+do
+not
+realize
+they
+are
+dead
+to
+their
+earth
+life
+We
+find
+them
+in
+the
+sphere
+next
+to
+the
+earth
+often
+in
+a
+semi
+sleep
+Preceding
+the
+play
+we
+have
+music
+by
+excellent
+musicians
+this
+wakens
+the
+earthbound
+spirits
+one
+after
+the
+other
+They
+rise
+slowly
+not
+realizing
+where
+they
+are
+but
+the
+music
+brings
+them
+a
+little
+understanding
+of
+the
+higher
+life
+We
+then
+play
+our
+drama
+as
+a
+lesson
+to
+these
+spirits
+Each
+character
+is
+symbolical
+showing
+that
+selfish
+trivial
+and
+debasing
+attributes
+must
+be
+overcome
+before
+spirits
+can
+progress
+The
+leading
+lady
+represents
+Love
+the
+leading
+man
+her
+lover
+personifies
+Truth
+The
+ruffian
+typifies
+Selfishness
+the
+elderly
+maiden
+lady
+depicts
+Frivolity
+the
+officer
+represents
+Justice
+and
+the
+Judge
+Wisdom
+The
+witnesses
+in
+the
+court
+trial
+portray
+Knowledge
+Drunkenness
+Misery
+Sickness
+Miserliness
+and
+Robbery
+Love
+the
+young
+maiden
+cherishes
+a
+true
+deep
+affection
+for
+the
+hero
+she
+dwells
+in
+the
+same
+abode
+with
+Frivolity
+who
+entertains
+an
+unrequited
+love
+sentiment
+for
+Selfishness
+Here
+is
+shown
+the
+close
+association
+in
+life
+of
+the
+True
+and
+False
+Truth
+enters
+and
+proposes
+to
+Love
+who
+accepts
+him
+he
+then
+departs
+and
+is
+followed
+by
+Selfishness
+who
+desires
+Love
+for
+himself
+When
+his
+advances
+are
+rejected
+Frivolity
+with
+her
+most
+fascinating
+coquetries
+endeavors
+to
+charm
+the
+Ruffian
+Selfishness
+from
+Love
+to
+herself
+This
+angers
+him
+and
+he
+threatens
+her
+with
+death
+then
+leaves
+in
+a
+rage
+swearing
+to
+kill
+his
+rival
+Truth
+Love
+writes
+a
+frantic
+note
+of
+warning
+to
+her
+lover
+and
+hastily
+sends
+her
+servant
+to
+deliver
+the
+message
+but
+the
+servant
+arrives
+too
+late
+for
+Selfishness
+has
+attacked
+Truth
+by
+the
+wayside
+and
+fatally
+wounded
+him
+in
+a
+sword
+duel
+Truth
+dies
+a
+lingering
+death
+representing
+the
+murder
+of
+man
+s
+higher
+nature
+by
+selfishness
+The
+servant
+hurries
+back
+to
+his
+mistress
+with
+the
+news
+of
+the
+death
+of
+her
+lover
+She
+rushes
+to
+the
+place
+of
+the
+attack
+and
+finding
+Truth
+dead
+falls
+on
+her
+knees
+beside
+him
+With
+a
+prayer
+she
+draws
+her
+dagger
+and
+stabbing
+herself
+dies
+When
+Selfishness
+sees
+that
+Love
+as
+well
+as
+Truth
+is
+dead
+he
+becomes
+infuriated
+declares
+there
+is
+no
+God
+and
+swears
+that
+he
+will
+have
+fullest
+revenge
+An
+officer
+Justice
+arrives
+and
+handcuffing
+the
+murderer
+takes
+him
+into
+custody
+after
+which
+follows
+the
+funeral
+of
+the
+lovers
+Justice
+brings
+selfishness
+before
+the
+Judge
+Wisdom
+and
+at
+the
+trial
+the
+witnesses
+Knowledge
+Drunkenness
+Misery
+Sickness
+Miserliness
+and
+Robbery
+all
+testify
+that
+had
+it
+not
+been
+for
+Selfishness
+Love
+and
+Truth
+had
+not
+died
+Wisdom
+then
+banishes
+Selfishness
+from
+the
+land
+During
+a
+psychic
+circle
+held
+at
+our
+Institute
+in
+May
+at
+which
+Sir
+Arthur
+Conan
+Doyle
+and
+Lady
+Doyle
+were
+present
+this
+play
+was
+given
+and
+later
+in
+his
+book
+Our
+Second
+American
+Adventure
+Sir
+Arthur
+briefly
+described
+the
+play
+commenting
+further
+It
+was
+certainly
+a
+most
+extraordinary
+performance
+and
+left
+us
+all
+in
+a
+state
+of
+amazed
+admiration
+I
+have
+seen
+all
+the
+greatest
+actresses
+of
+my
+generation
+Modjeska
+Bernhardt
+Duse
+Terry
+but
+I
+do
+not
+think
+that
+any
+one
+of
+them
+could
+have
+played
+these
+eleven
+parts
+without
+a
+stage
+or
+a
+costume
+in
+so
+convincing
+a
+way
+The
+spirits
+own
+account
+is
+that
+they
+are
+a
+band
+of
+players
+on
+the
+other
+side
+who
+represent
+this
+play
+before
+the
+undeveloped
+dead
+in
+order
+to
+teach
+them
+the
+moral
+and
+that
+they
+use
+the
+wonderful
+mediumship
+of
+Mrs
+Wickland
+in
+order
+to
+demonstrate
+their
+power
+to
+us
+mortals
+It
+was
+very
+impressive
+Recently
+these
+invisible
+performers
+have
+presented
+through
+Mrs
+Wickland
+another
+drama
+The
+Soul
+s
+Passion
+Play
+symbolical
+of
+the
+development
+of
+the
+soul
+In
+The
+Morality
+Play
+Selfishness
+kills
+Truth
+and
+causes
+the
+death
+of
+Love
+while
+in
+The
+Soul
+s
+Passion
+Play
+Truth
+and
+Love
+conquer
+Selfishness
+The
+Soul
+s
+Passion
+Play
+represents
+the
+contest
+of
+the
+Soul
+with
+opposing
+principles
+and
+symbolizes
+the
+victory
+of
+Truth
+and
+Love
+over
+Selfishness
+through
+Understanding
+and
+the
+attainment
+of
+Bliss
+Dwelling
+in
+the
+Home
+of
+Happiness
+with
+Obedience
+as
+the
+servant
+are
+Kindness
+and
+Friendship
+father
+and
+mother
+of
+the
+maiden
+Love
+Truth
+a
+young
+man
+admires
+Love
+while
+Selfishness
+another
+maiden
+who
+is
+found
+in
+the
+same
+society
+with
+Love
+but
+whose
+father
+and
+mother
+are
+Hatred
+and
+Envy
+living
+in
+the
+Home
+of
+Unhappiness
+boldly
+attempts
+to
+attract
+the
+young
+man
+to
+herself
+Truth
+finally
+wins
+Love
+and
+they
+are
+united
+in
+marriage
+after
+having
+sent
+Selfishness
+away
+from
+the
+Home
+of
+Happiness
+Selfishness
+overcome
+by
+jealousy
+and
+humiliation
+goes
+to
+seek
+some
+means
+of
+revenge
+in
+the
+slums
+where
+in
+the
+Home
+of
+Misery
+lives
+the
+villain
+Revenge
+with
+his
+father
+and
+mother
+Temptation
+and
+Evil
+Together
+as
+time
+goes
+on
+they
+plot
+that
+Selfishness
+shall
+return
+to
+the
+Home
+of
+Happiness
+and
+pretending
+repentance
+wait
+for
+an
+opportunity
+to
+steal
+the
+child
+Victory
+which
+has
+been
+born
+to
+Love
+and
+Truth
+The
+child
+is
+to
+be
+given
+to
+Evil
+who
+will
+bring
+him
+up
+in
+squalor
+and
+sordidness
+forcing
+him
+to
+commit
+crimes
+and
+finally
+become
+imprisoned
+Selfishness
+will
+then
+go
+to
+Love
+and
+Truth
+tell
+them
+of
+the
+disgrace
+of
+Victory
+and
+with
+Revenge
+gloat
+over
+the
+ruin
+of
+the
+Home
+of
+Happiness
+Selfishness
+succeeds
+in
+stealing
+Victory
+who
+for
+some
+years
+is
+cruelly
+mistreated
+by
+Evil
+and
+Temptation
+but
+is
+at
+last
+discovered
+by
+his
+parents
+and
+taken
+away
+from
+the
+Home
+of
+Misery
+Enraged
+at
+her
+defeat
+Selfishness
+becomes
+insane
+through
+anger
+and
+dies
+a
+violent
+death
+Truth
+and
+Love
+bring
+Victory
+back
+into
+the
+Home
+of
+Happiness
+and
+there
+with
+Selfishness
+vanquished
+they
+dwell
+together
+in
+Bliss
+CHAPTER
+XVII
+Conclusion
+DEONSTRATIVE
+evidence
+clearly
+indicates
+that
+much
+which
+now
+seems
+mysterious
+can
+be
+brought
+to
+light
+by
+appropriate
+research
+The
+supernatural
+is
+only
+the
+natural
+not
+yet
+understood
+Psychical
+research
+should
+be
+placed
+on
+a
+scientific
+basis
+and
+made
+safe
+and
+sane
+by
+eliminating
+the
+dwellers
+on
+the
+threshold
+of
+the
+unseen
+who
+through
+deception
+and
+falsehood
+frequently
+pervert
+the
+truth
+which
+the
+enlightened
+spirit
+intelligences
+are
+constantly
+endeavoring
+to
+convey
+to
+humanity
+Advanced
+intelligences
+on
+the
+invisible
+side
+continually
+urge
+that
+broad
+minded
+investigators
+on
+the
+physical
+plane
+co
+operate
+with
+them
+in
+establishing
+research
+centers
+in
+asylums
+churches
+universities
+and
+other
+institutions
+It
+is
+imperative
+that
+psychical
+research
+should
+be
+in
+the
+hands
+of
+men
+of
+science
+men
+who
+are
+willing
+to
+set
+aside
+prejudice
+and
+with
+unbiased
+minds
+weigh
+the
+evidence
+and
+classify
+findings
+In
+the
+Chicago
+Daily
+Tribune
+March
+the
+late
+Dr
+I
+K
+Funk
+of
+New
+York
+urged
+that
+inquiry
+be
+made
+into
+cases
+of
+mental
+phenomena
+and
+after
+reviewing
+the
+work
+which
+we
+were
+carrying
+on
+in
+obsession
+concluded
+with
+an
+appeal
+to
+the
+press
+for
+further
+investigation
+Let
+us
+remember
+he
+said
+a
+single
+scientifically
+demonstrated
+fact
+of
+the
+existence
+of
+even
+an
+evil
+discarnate
+spirit
+will
+do
+more
+to
+prove
+the
+continuance
+of
+life
+after
+death
+than
+all
+the
+sermons
+on
+immortality
+that
+have
+been
+preached
+in
+the
+last
+ten
+years
+That
+single
+demonstration
+would
+be
+the
+death
+knell
+of
+materialism
+Genuine
+cases
+wherever
+occurring
+should
+be
+searched
+for
+by
+the
+press
+more
+than
+if
+they
+were
+lumps
+of
+gold
+and
+should
+be
+verified
+if
+possible
+to
+the
+minutest
+incident
+and
+given
+not
+jocosely
+but
+seriously
+to
+the
+world
+Why
+will
+not
+the
+press
+soberly
+take
+up
+this
+matter
+Rightly
+handled
+there
+is
+sensation
+in
+it
+worthy
+of
+the
+most
+royal
+purple
+journalism
+Gladstone
+was
+right
+when
+in
+his
+membership
+letter
+to
+the
+Society
+for
+Psychical
+Research
+he
+said
+that
+this
+work
+of
+investigation
+is
+the
+most
+important
+work
+which
+is
+being
+done
+in
+the
+world
+by
+far
+the
+most
+important
+Scientific
+bodies
+willing
+to
+thoroughly
+master
+and
+observe
+the
+governing
+laws
+could
+readily
+obtain
+evidence
+similar
+to
+that
+presented
+in
+this
+volume
+Especially
+could
+such
+evidence
+be
+obtained
+in
+Institutions
+for
+the
+Insane
+as
+most
+inmates
+of
+the
+same
+are
+potential
+psychics
+who
+could
+be
+developed
+into
+instruments
+for
+psychical
+research
+After
+having
+dislodged
+the
+ignorant
+obsessing
+spirits
+the
+psychic
+faculties
+of
+the
+sensitive
+could
+be
+developed
+by
+attracting
+intelligent
+spirits
+who
+are
+always
+willing
+to
+co
+operate
+from
+the
+invisible
+side
+and
+who
+will
+protect
+the
+instrument
+against
+untoward
+results
+Psychic
+research
+circles
+formed
+to
+learn
+the
+truth
+of
+life
+and
+spirit
+existence
+should
+be
+of
+inestimable
+value
+to
+churches
+for
+such
+investigation
+would
+prove
+positively
+the
+continued
+existence
+of
+the
+soul
+and
+convert
+mere
+faith
+and
+belief
+in
+a
+life
+hereafter
+into
+definite
+knowledge
+The
+practice
+of
+calling
+for
+specific
+or
+particular
+spirits
+should
+not
+be
+indulged
+in
+as
+this
+may
+lead
+to
+deception
+by
+mischievous
+spirits
+who
+may
+step
+in
+and
+attempt
+to
+impersonate
+the
+spirit
+called
+for
+It
+should
+be
+left
+to
+the
+guiding
+intelligences
+to
+bring
+whatever
+spirit
+is
+suitable
+for
+demonstration
+and
+interesting
+information
+will
+be
+given
+from
+time
+to
+time
+by
+the
+advanced
+spirits
+clearly
+showing
+the
+difference
+between
+intelligent
+and
+ignorant
+entities
+As
+a
+nucleus
+for
+more
+comprehensive
+investigation
+the
+National
+Psychological
+Institute
+was
+organized
+and
+incorporated
+in
+Los
+Angeles
+California
+for
+the
+purpose
+of
+placing
+these
+problems
+on
+a
+rational
+scientific
+basis
+This
+Institute
+a
+Spiritual
+Clearing
+House
+has
+no
+interest
+in
+cult
+or
+ism
+of
+any
+kind
+but
+is
+striving
+only
+to
+obtain
+data
+in
+the
+hope
+of
+encouraging
+other
+institutions
+to
+take
+up
+similar
+work
+as
+an
+enormous
+field
+for
+research
+has
+been
+opened
+by
+our
+experiences
+It
+is
+not
+presumed
+or
+held
+that
+this
+avenue
+of
+research
+is
+a
+panacea
+for
+or
+a
+full
+explanation
+of
+all
+mental
+aberrations
+or
+obscure
+mortal
+vagaries
+but
+indicative
+of
+the
+need
+for
+fuller
+knowledge
+of
+the
+role
+which
+the
+invisible
+world
+plays
+in
+human
+problems
+End
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_map.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_map.cc
deleted file mode 100644
index cf9c9962db08..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_map.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file basic_multimap_example.cpp
- * A basic example showing how to use maps.
- */
-
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For cout, endl.
-#include <iostream>
-// For assert.
-#include <cassert>
-
-template<class Cntnr>
-void
-some_op_sequence(Cntnr c)
-{
-  assert(c.empty());
-  assert(c.size() == 0);
-
-  c.insert(std::make_pair(1, 'a'));
-
-  c[2] = 'b';
-
-  assert(!c.empty());
-  assert(c.size() == 2);
-
-  std::cout << "Key 1 is mapped to " << c[1] << std::endl;
-  std::cout << "Key 2 is mapped to " << c[2] << std::endl;
-
-  std::cout << std::endl << "All value types in the container:" << std::endl;
-  for (typename Cntnr::const_iterator it = c.begin(); it != c.end();
-       ++it)
-    std::cout << it->first << " -> " << it->second << std::endl;
-
-  std::cout << std::endl;
-
-  c.clear();
-
-  assert(c.empty());
-  assert(c.size() == 0);
-}
-
-int
-main()
-{
-  /*
-   * Perform operations on a collision-chaining hash set.
-   */
-  some_op_sequence(pb_assoc::cc_hash_assoc_cntnr<int, char>());
-
-  /*
-   * Perform operations on a general-probing hash set.
-   */
-  some_op_sequence(pb_assoc::gp_hash_assoc_cntnr<int, char>());
-
-  /*
-   * Perform operations on a red-black tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<int, char>());
-
-  /*
-   * Perform operations on a splay tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   int,
-		   char,
-		   std::less<int>,
-		   pb_assoc::splay_tree_ds_tag>());
-
-  /*
-   * Perform operations on a splay tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   int,
-		   char,
-		   std::less<int>,
-		   pb_assoc::ov_tree_ds_tag>());
-
-  /*
-   * Perform operations on a list-update set.
-   */
-  some_op_sequence(pb_assoc::lu_assoc_cntnr<int, char>());
-}
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_multimap.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_multimap.cc
deleted file mode 100644
index 2ad028db31c3..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_multimap.cc
+++ /dev/null
@@ -1,110 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file basic_multimap_example.cpp
- * A basic example showing how to use multimaps.
- */
-
-// For cout, endl
-#include <iostream>
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For compound_data_type and null_data_type.
-#include <ext/pb_assoc/data_type.hpp>
-// For assert
-#include <cassert>
-
-template<class Cntnr>
-void
-some_op_sequence(Cntnr c)
-{
-  assert(c.empty());
-  assert(c.size() == 0);
-
-  c[1].insert('a');
-
-  c[2].insert('b');
-  c[2].insert('c');
-
-  assert(!c.empty());
-  assert(c.size() == 2);
-
-  std::cout << "Key 1 is mapped to " <<
-    static_cast<unsigned long>(c[1].size()) << " entries." << std::endl;
-
-  std::cout << "Key 2 is mapped to " <<
-    static_cast<unsigned long>(c[2].size()) << " entries." << std::endl;
-
-  std::cout << std::endl << "All values in the container:" << std::endl;
-
-  for (typename Cntnr::const_iterator it = c.begin(); it != c.end();
-       ++it)
-    {
-      std::cout << it->first << "->{ ";
-
-      for (typename Cntnr::data_type::const_iterator it_ = it->second.begin();
-	   it_  != it->second.end(); ++it_)
-	std::cout <<* it_ << " ";
-
-      std::cout << "}" << std::endl;
-    }
-
-  std::cout << std::endl;
-
-  c.clear();
-
-  assert(c.empty());
-  assert(c.size() == 0);
-}
-
-int
-main()
-{
-  /*
-   * Perform operations on a collision-chaining hash-table of of
-   *	red-black trees.
-   */
-  some_op_sequence(pb_assoc::cc_hash_assoc_cntnr<
-		   int,
-		   pb_assoc::compound_data_type<
-		   pb_assoc::tree_assoc_cntnr<
-		   char,
-		   pb_assoc::null_data_type> > >());
-}
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_set.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_set.cc
deleted file mode 100644
index 242ee7b8678c..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/basic_set.cc
+++ /dev/null
@@ -1,120 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file basic_set_example.cpp
- * A basic example showing how to use sets.
- */
-
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For null_data_type
-#include <ext/pb_assoc/data_type.hpp>
-// For cout, endl
-#include <iostream>
-// For assert
-#include <cassert>
-
-template<class Cntnr>
-void
-some_op_sequence(Cntnr c)
-{
-  assert(c.empty());
-  assert(c.size() == 0);
-
-  c.insert(1);
-  c.insert(2);
-
-  assert(!c.empty());
-  assert(c.size() == 2);
-
-  std::cout << "All value types in the container:" << std::endl;
-  for (typename Cntnr::const_iterator it = c.begin(); it != c.end();
-       ++it)
-    std::cout <<* it << " ";
-
-  std::cout << std::endl;
-
-  c.clear();
-
-  assert(c.empty());
-  assert(c.size() == 0);
-}
-
-int
-main()
-{
-  /*
-   * Perform operations on a collision-chaining hash set.
-   */
-  some_op_sequence(pb_assoc::cc_hash_assoc_cntnr<int, pb_assoc::null_data_type>());
-
-  /*
-   * Perform operations on a general-probing hash set.
-   */
-  some_op_sequence(pb_assoc::gp_hash_assoc_cntnr<int, pb_assoc::null_data_type>());
-
-  /*
-   * Perform operations on a red-black tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<int, pb_assoc::null_data_type>());
-
-  /*
-   * Perform operations on a splay tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   int,
-		   pb_assoc::null_data_type,
-		   std::less<int>,
-		   pb_assoc::splay_tree_ds_tag>());
-
-  /*
-   * Perform operations on a splay tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   int,
-		   pb_assoc::null_data_type,
-		   std::less<int>,
-		   pb_assoc::ov_tree_ds_tag>());
-
-  /*
-   * Perform operations on a list-update set.
-   */
-  some_op_sequence(pb_assoc::lu_assoc_cntnr<int, pb_assoc::null_data_type>());
-}
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/ds_traits.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/ds_traits.cc
deleted file mode 100644
index 45b4cae16b3f..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/ds_traits.cc
+++ /dev/null
@@ -1,262 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ds_traits_example.cpp
- * A basic example showing how to use ds_traits for querying container types
- *	for their behavior.
- */
-
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For ds_traits.
-#include <ext/pb_assoc/ds_trait.hpp>
-// For cout, endl.
-#include <iostream>
-
-template<class DS_Category>
-void
-print_ds_category(DS_Category);
-
-template<>
-void
-print_ds_category(pb_assoc::cc_hash_ds_tag)
-{
-  std::cout << "Collision-chaining hash based associative-container:" <<
-    std::endl;
-}
-
-template<>
-void
-print_ds_category(pb_assoc::gp_hash_ds_tag)
-{
-  std::cout << "Probing hash based associative-container:" <<
-    std::endl;
-}
-
-template<>
-void
-print_ds_category(pb_assoc::rb_tree_ds_tag)
-{
-  std::cout << "Red-black tree associative-container:" <<
-    std::endl;
-}
-
-template<>
-void
-print_ds_category(pb_assoc::splay_tree_ds_tag)
-{
-  std::cout << "Splay tree associative-container:" <<
-    std::endl;
-}
-
-template<>
-void
-print_ds_category(pb_assoc::ov_tree_ds_tag)
-{
-  std::cout << "Ordered-vector tree associative-container:" <<
-    std::endl;
-}
-
-template<>
-void
-print_ds_category(pb_assoc::lu_ds_tag)
-{
-  std::cout << "List-based associative-container:" <<
-    std::endl;
-}
-
-void
-print_erase_can_throw(bool can)
-{
-  if (can)
-    {
-      std::cout << "Erase can throw" << std::endl;
-
-      return;
-    }
-
-  std::cout << "Erase cannot throw" << std::endl;
-}
-
-void
-print_order_preserving(bool does)
-{
-  if (does)
-    {
-      std::cout << "Preserves order" << std::endl;
-
-      return;
-    }
-
-  std::cout << "Does not preserve order" << std::endl;
-}
-
-void
-print_erase_iterators(bool can)
-{
-  if (can)
-    {
-      std::cout << "Can erase iterators" << std::endl;
-
-      return;
-    }
-
-  std::cout << "Cannot erase iterators" << std::endl;
-}
-
-template<class Invalidation_Guarantee>
-void
-print_invalidation_guarantee(Invalidation_Guarantee);
-
-template<>
-void
-print_invalidation_guarantee(pb_assoc::basic_invalidation_guarantee)
-{
-  std::cout << "Guarantees only that found references, pointers, and "
-    "iterators are valid as long as the container object is not "
-    "modified" << std::endl;
-}
-
-template<>
-void
-print_invalidation_guarantee(pb_assoc::find_invalidation_guarantee)
-{
-  std::cout << "Guarantees that found references, pointers, and "
-    "find_iterators are valid even if the container object "
-    "is modified" << std::endl;
-}
-
-template<>
-void
-print_invalidation_guarantee(pb_assoc::range_invalidation_guarantee)
-{
-  std::cout << "Guarantees that iterators remain valid even if the "
-    "container object is modified" << std::endl;
-}
-
-void
-print_reverse_iteration(bool does)
-{
-  if (does)
-    {
-      std::cout << "Supports reverse iteration" << std::endl;
-
-      return;
-    }
-
-  std::cout << "Does not support reverse iteration" << std::endl;
-}
-
-void
-print_split_join(bool does)
-{
-  if (does)
-    {
-      std::cout << "Supports split and join" << std::endl;
-
-      return;
-    }
-
-  std::cout << "Does not support split and join" << std::endl;
-}
-
-template<class Cntnr>
-void
-print_container_attributes()
-{
-  // First print out the data-structure category.
-
-  print_ds_category(typename Cntnr::ds_category());
-
-  // Next is the data-structure traits class of the container.
-
-  typedef pb_assoc::ds_traits< Cntnr> traits;
-
-  // Now print the attributes of the container.
-
-  print_erase_can_throw(traits::erase_can_throw);
-
-  print_order_preserving(traits::order_preserving);
-
-  print_erase_iterators(traits::erase_iterators);
-
-  print_invalidation_guarantee(typename traits::invalidation_guarantee());
-
-  print_reverse_iteration(traits::reverse_iteration);
-
-  print_split_join(traits::split_join);
-
-  std::cout << std::endl << std::endl;
-}
-
-int
-main()
-{
-  print_container_attributes<pb_assoc::cc_hash_assoc_cntnr<int, char> >();
-
-  print_container_attributes<pb_assoc::gp_hash_assoc_cntnr<int, char> >();
-
-  print_container_attributes<pb_assoc::tree_assoc_cntnr<int, char> >();
-
-  print_container_attributes<pb_assoc::tree_assoc_cntnr<
-    int,
-    char,
-    std::less<int>,
-    pb_assoc::splay_tree_ds_tag> >();
-
-  print_container_attributes<pb_assoc::tree_assoc_cntnr<
-    int,
-    char,
-    std::less<int>,
-    pb_assoc::ov_tree_ds_tag> >();
-
-  print_container_attributes<pb_assoc::lu_assoc_cntnr<int, char> >();
-
-  typedef
-    pb_assoc::lu_assoc_cntnr<
-    int,
-    pb_assoc::compound_data_type<
-    pb_assoc::gp_hash_assoc_cntnr<
-    char,
-    pb_assoc::null_data_type> > >
-    mmap_t;
-
-  print_container_attributes<mmap_t>();
-}
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/erase_if.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/erase_if.cc
deleted file mode 100644
index 4bafbb93f9c4..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/erase_if.cc
+++ /dev/null
@@ -1,133 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file erase_if_example.cpp
- * A basic example showing how to use erase_if.
- */
-
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For cout, endl.
-#include <iostream>
-// For assert.
-#include <cassert>
-
-struct between : public std::unary_function<
-  std::pair<const int, char>,
-		 bool>
-{
-  between(int b, int e) : m_b(b),
-			  m_e(e)
-  { }
-
-  inline bool
-  operator()(std::pair<const int, char>& r_val)
-  {
-    return (r_val.first >= m_b&&  r_val.first < m_e);
-  }
-
-private:
-  const int m_b;
-  const int m_e;
-};
-
-template<class Cntnr>
-void
-some_op_sequence(Cntnr c)
-{
-  assert(c.empty());
-  assert(c.size() == 0);
-
-  for (int i = 0; i < 100; ++i)
-    c.insert(std::make_pair(i, static_cast<char>(i)));
-
-  assert(c.size() == 100);
-
-  /* Erase all values whose key is between 10 (inclusive)
-   * and 90 (non-inclusive).
-   */
-  c.erase_if(between(10 , 90));
-
-  assert(!c.empty());
-  assert(c.size() == 20);
-}
-
-int
-main()
-{
-
-  /*
-   * Perform operations on a list-update set.
-   */
-  some_op_sequence(pb_assoc::lu_assoc_cntnr<int, char>());
-
-  /*
-   * Perform operations on a collision-chaining hash set.
-   */
-  some_op_sequence(pb_assoc::cc_hash_assoc_cntnr<int, char>());
-
-  /*
-   * Perform operations on a general-probing hash set.
-   */
-  some_op_sequence(pb_assoc::gp_hash_assoc_cntnr<int, char>());
-
-  /*
-   * Perform operations on a red-black tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<int, char>());
-
-  /*
-   * Perform operations on a splay tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   int,
-		   char,
-		   std::less<int>,
-		   pb_assoc::splay_tree_ds_tag>());
-
-  /*
-   * Perform operations on a splay tree set.
-   */
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   int,
-		   char,
-		   std::less<int>,
-		   pb_assoc::ov_tree_ds_tag>());
-}
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/extract_key.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/extract_key.cc
deleted file mode 100644
index 9371a2c8905c..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/extract_key.cc
+++ /dev/null
@@ -1,132 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file extract_key_example.cpp
- * An example of extracting keys from values.
- */
-
-// For various associative containers
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For binary_function
-#include <functional>
-// For assert
-#include <cassert>
-
-using namespace std;
-
-/*
- * A functor for checking whether two tables share exactly the
- *	same keys.
- */
-template<class Cntnr0, class Cntnr1>
-struct compare_keys : public std::binary_function<
-  Cntnr0,
-  Cntnr1,
-  bool>
-{
-  bool
-  operator()(const Cntnr0& r_c0, const Cntnr1& r_c1)
-  {
-    // If the tables' sizes differ, they cannot share the same keys.
-    if (r_c0.size() != r_c1.size())
-      return (false);
-
-    // Loop and check each key.
-    for (typename Cntnr0::const_iterator it = r_c0.begin();
-	 it != r_c0.end(); ++it)
-      if (r_c1.find(r_c0.extract_key(*it)) == r_c1.end())
-	return (false);
-
-    return (true);
-  };
-};
-
-template<class Cntnr0, class Cntnr1>
-bool
-key_equiv(const Cntnr0& r_c0, const Cntnr1& r_c1)
-{
-  return (compare_keys<Cntnr0, Cntnr1>()(r_c0, r_c1));
-}
-
-int
-main()
-{
-  /*
-   * A collision-chaining hash-based associative container
-   * 	mapping integers to characters.
-   */
-  pb_assoc::cc_hash_assoc_cntnr<int, char> c0;
-
-  /*
-   * A red-black tree-based associative container
-   * 	mapping integers to doubles.
-   */
-  pb_assoc::tree_assoc_cntnr<int, double> c1;
-
-  /*
-   * A list-update associative container storing integers.
-   */
-  pb_assoc::lu_assoc_cntnr<int, pb_assoc::null_data_type> c2;
-
-  /*
-   * Since the objects are initially empty, they
-   *	should all be equivalent.
-   **/
-
-  assert(key_equiv(c0, c0));
-  assert(key_equiv(c0, c1));
-  assert(key_equiv(c0, c2));
-
-  // Insert some entries.
-
-  c0.insert(std::make_pair(1, 'a'));
-
-  c1.insert(std::make_pair(1, 'a'));
-  c1.insert(std::make_pair(2, 'b'));
-
-  c2.insert(1);
-
-  // Only c0 and c2 contain a single key with value 1.
-
-  assert(key_equiv(c0, c0));
-  assert(key_equiv(c0, c1) == false);
-  assert(key_equiv(c0, c2));
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_find_neg.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_find_neg.cc
deleted file mode 100644
index 596c96960a0d..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_find_neg.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// { dg-do compile }
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file bad_find_example.cpp
- * A basic example showing how *not* to use unordered containers.
- */
-
-// For cc_hash_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For pair.
-#include <utility>
-
-int
-main()
-{
-  /*
-   * A collision-chaining hash table mapping ints to chars.
-   */
-  typedef pb_assoc::cc_hash_assoc_cntnr< int, char> map_t;
-
-  // An map_t object.
-  map_t h;
-
-  // Insert a value mapping the int 1 to the char 'a'.
-  h.insert(std::make_pair(1, 'a'));
-
-  /*
-   * Find the entry of the key '1' the* wrong* way.
-   * The following line will not compile, since map_t::find
-   *	returns a find_iterator, which, by design, is not convertible
-   *	to map_t::iterator.
-   */
-  map_t::iterator it = h.find(1); // { dg-error "conversion from" }
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_illegal_resize.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_illegal_resize.cc
deleted file mode 100644
index 404c9f983f4f..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_illegal_resize.cc
+++ /dev/null
@@ -1,148 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_illegal_resize_example.cpp
- * An example of externally resizing a hash-based container object.
- */
-
-// For gp_hash_assoc_cntnr
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For hash-related policies.
-#include <ext/pb_assoc/hash_policy.hpp>
-// For cannot_resize
-#include <ext/pb_assoc/exception.hpp>
-// For assert
-#include <cassert>
-
-/*
- * A simple hash functor.
- *	std::hash could serve instead of this functor,
- *	but it is not yet standard everywhere.
- */
-struct int_hash : public std::unary_function<
-  int,
-	     size_t>
-{
-  inline size_t
-  operator()(const int& r_i) const
-  {
-    return (r_i);
-  }
-};
-
-int
-main()
-{
-  /*
-   * A probing hash table mapping ints to chars.
-   */
-  typedef
-    pb_assoc::gp_hash_assoc_cntnr<
-    int,
-    int,
-    int_hash,
-    std::equal_to<
-    int>,
-    // Combining function.
-    pb_assoc::direct_mod_range_hashing<>,
-    // Probe function.
-    pb_assoc::quadratic_probe_fn<
-    const int& >,
-    // Resize policy.
-    pb_assoc::hash_standard_resize_policy<
-    pb_assoc::hash_prime_size_policy,
-    pb_assoc::hash_load_check_resize_trigger<>,
-    /* Allow external access to size.
-     *	Without setting this to true, external resizing
-     *	is not possible.
-     */
-    true> >
-    map_t;
-
-  map_t g;
-
-  /*
-   * Check the actual size of the container object.
-   *	This should be at least
-   *	the initial size given by the size policy object.
-   **/
-  assert(g.get_actual_size() > 8);
-
-  // Insert some elements.
-
-  int i;
-
-  for (i = 0; i < 1000; ++i)
-    g[i] = 2*  i;
-
-  // Check all ok.
-
-  assert(g.size() == 1000);
-
-  for (i = 0; i < 1000; ++i)
-    assert(g.find(i) != g.end()&&  g.find(i)->second == 2*  i);
-
-  // Now attempt to resize the table to 200 (impossible).
-
-  bool ex_thrown = false;
-
-  try
-    {
-      g.resize(200);
-    }
-  catch(pb_assoc::cannot_resize& )
-    {
-      ex_thrown = true;
-    }
-
-  /*
-   * Assert an exception was thrown. A probing table cannot contain
-   *	1000 entries in less than 1000 places.
-   */
-  assert(ex_thrown);
-
-  // Check all ok.
-
-  assert(g.size() == 1000);
-
-  for (i = 0; i < 1000; ++i)
-    assert(g.find(i) != g.end()&&  g.find(i)->second == 2*  i);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_initial_size.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_initial_size.cc
deleted file mode 100644
index fcd05795e295..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_initial_size.cc
+++ /dev/null
@@ -1,122 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file gp_ht_map_resize_example.cpp
- * An example of setting an initial size for a container object.
- */
-
-// For gp_hash_assoc_cntnr
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For hash-related policies.
-#include <ext/pb_assoc/hash_policy.hpp>
-// For assert
-#include <cassert>
-
-/*
- * A simple hash functor.
- *	std::hash could serve instead of this functor,
- *	but it is not yet standard everywhere.
- */
-struct int_hash : public std::unary_function<
-  int,
-	     size_t>
-{
-  inline size_t
-  operator()(const int& r_i) const
-  {
-    return (r_i);
-  }
-};
-
-int
-main()
-{
-  // Resize policy type.
-  typedef
-    pb_assoc::hash_standard_resize_policy<
-    // Size-policy type.
-    pb_assoc::hash_exponential_size_policy<>,
-    // Trigger-policy type.
-    pb_assoc::hash_load_check_resize_trigger<>,
-    /* Allow external access to size.
-     *	This is just used in this example for using the
-     *	get_actual_size method (which won't be accessible without
-     *	this flag.
-     */
-    true>
-    resize_policy_t;
-
-  /*
-   * A collision-probing hash table mapping ints to chars.
-   */
-  typedef
-    pb_assoc::gp_hash_assoc_cntnr<
-    int,
-    char,
-    int_hash,
-    std::equal_to<
-    int>,
-    // Combining function.
-    pb_assoc::direct_mask_range_hashing<>,
-    // Probe function.
-    pb_assoc::linear_probe_fn<
-    const int& >,
-    // Resize policy.
-    resize_policy_t>
-    map_t;
-
-  // A resize-policy object with suggested initial size 256.
-  resize_policy_t res(pb_assoc::hash_exponential_size_policy<>(256));
-
-  map_t g(int_hash(),
-	  std::equal_to<int>(),
-	  pb_assoc::direct_mask_range_hashing<>(),
-	  pb_assoc::linear_probe_fn<const int& >(),
-	  res);
-
-  /*
-   * Check the actual size of the container object. In this case,
-   *	this should be the initial size given by the size policy object.
-   **/
-  assert(g.get_actual_size() >= 256);
-
-  assert(g.size() == 0);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_load_set_change.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_load_set_change.cc
deleted file mode 100644
index 7c55c7a2e7d1..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_load_set_change.cc
+++ /dev/null
@@ -1,152 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_load_set_change_example.cpp
- * An example of setting and changing the load factor of a hash-based
- *	container object.
- */
-
-// For cc_hash_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-/*
- * For hash_standard_resize_policy, hash_exponential_size_policy,
- *	and direct_mask_range_hashing.
- */
-#include <ext/pb_assoc/hash_policy.hpp>
-// For unary_function.
-#include <functional>
-// For assert
-#include <cassert>
-
-/*
- * A simple hash functor.
- *	std::hash could serve instead of this functor,
- *	but it is not yet standard everywhere.
- */
-struct int_hash : public std::unary_function<
-  int,
-	     size_t>
-{
-  inline size_t
-  operator()(int i) const
-  {
-    return (i);
-  }
-};
-
-int
-main()
-{
-  // A trigger policy type.
-  typedef pb_assoc::hash_load_check_resize_trigger< true> trigger_t;
-
-  // A resize policy type.
-  typedef
-    pb_assoc::hash_standard_resize_policy<
-    pb_assoc::hash_exponential_size_policy<>,
-    // Trigger type.
-    trigger_t,
-    /* Allow external access to size.
-     *	This is not necessary for setting the load factor,
-     *	but it allows to call get_actual_size.
-     */
-    true>
-    resize_t;
-
-  /*
-   * A collision-chaining hash table mapping ints to chars.
-   */
-  typedef
-    pb_assoc::cc_hash_assoc_cntnr<
-    int,
-    char,
-    int_hash,
-    std::equal_to<int>,
-    // Combining function.
-    pb_assoc::direct_mask_range_hashing<>,
-    // Resize policy.
-    resize_t>
-    map_t;
-
-  // A trigger policy object with load between 0.3 and 0.8.
-  trigger_t trigger(static_cast<float>(0.3), static_cast<float>(0.8));
-
-  // A resize policy object with the above trigger.
-  resize_t resize(pb_assoc::hash_exponential_size_policy<>(),
-		  trigger);
-
-  map_t c(int_hash(),
-	  std::equal_to<int>(),
-	  pb_assoc::direct_mask_range_hashing<>(),
-	  resize);
-
-  c[1] = 'a';
-
-  // Check the loads and sizes.
-
-  assert(c.get_loads().first == static_cast<float>(0.3));
-  assert(c.get_loads().second == static_cast<float>(0.8));
-
-  assert(c.get_actual_size() == 8);
-
-  assert(c.size() == 1);
-
-  /*
-   * Note that there is a discrepancy between the loads of the policy
-   *	object and the actual size of the container object. This is
-   *	because the container's construction performs an implicit external
-   *	resize.
-   */
-
-  c[2] = 'b';
-  c[3] = 'c';
-  c[4] = 'd';
-
-  assert(c.get_actual_size() == 8);
-
-  // Change the loads. This causes (potentially) a resize.
-  c.set_loads(std::make_pair(
-			     static_cast<float>(0.01),
-			     static_cast<float>(0.05)));
-
-  // The loads actually changed.
-  assert(c.get_actual_size() > 8);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_mod.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_mod.cc
deleted file mode 100644
index 70f7af2c9978..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_mod.cc
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_mod_example.cpp
- * An example showing how to use a mod range-hasing function
- */
-
-// For cc_hash_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For direct_mask_range_hashing and hash_standard_resize_policy.
-#include <ext/pb_assoc/hash_policy.hpp>
-// For unary_function, binary_function.
-#include <functional>
-/*
- * A simple hash functor.
- *	std::hash could serve instead of this functor,
- *	but it is not yet standard everywhere.
- */
-struct int_hash : public std::unary_function<
-  int,
-	     size_t>
-{
-  inline size_t
-  operator()(int i) const
-  {
-    return (i);
-  }
-};
-
-int
-main()
-{
-  /*
-   * A collision-chaining hash table mapping ints to chars.
-   */
-  typedef
-    pb_assoc::cc_hash_assoc_cntnr<
-    int,
-    char,
-    int_hash,
-    std::equal_to<int>,
-    // Combining function.
-    pb_assoc::direct_mod_range_hashing<> >
-    map_t;
-
-  map_t c;
-
-  c[32] = 'b';
-  c[1024] = 'c';
-  c[4096] = 'd';
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize.cc
deleted file mode 100644
index b5db5948bd9a..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize.cc
+++ /dev/null
@@ -1,146 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_resize_example.cpp
- * An example of externally resizing a map.
- */
-
-// For gp_hash_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For hash-related policies.
-#include <ext/pb_assoc/hash_policy.hpp>
-// For unary_function.
-#include <functional>
-// For assert
-#include <cassert>
-
-/*
- * A simple hash functor.
- *	std::hash could serve instead of this functor,
- *	but it is not yet standard everywhere.
- */
-struct int_hash : public std::unary_function<
-  int,
-	     size_t>
-{
-  inline size_t
-  operator()(const int& r_i) const
-  {
-    return (r_i);
-  }
-};
-
-int
-main()
-{
-  /*
-   * A probing hash table mapping ints to chars.
-   */
-  typedef
-    pb_assoc::gp_hash_assoc_cntnr<
-    int,
-    char,
-    int_hash,
-    std::equal_to<
-    int>,
-    // Combining function.
-    pb_assoc::direct_mask_range_hashing<>,
-    // Probe function.
-    pb_assoc::linear_probe_fn<
-    int>,
-    // Resize policy.
-    pb_assoc::hash_standard_resize_policy<
-    pb_assoc::hash_exponential_size_policy<>,
-    pb_assoc::hash_load_check_resize_trigger<>,
-    /* Allow external access to size.
-     *	Without setting this to true, external resizing
-     *	is not possible.
-     */
-    true> >
-    map_t;
-
-  map_t g;
-
-  /*
-   * Check the actual size of the container object. In this case,
-   *	this should be the initial size given by the size policy object.
-   **/
-  assert(g.get_actual_size() == 8);
-
-  // Insert some elements.
-
-  g[1] = 'a';
-  g[2] = 'b';
-  g[3] = 'c';
-
-  // Now resize the table upward.
-
-  g.resize(200);
-
-  /*
-   * Check the actual size of the container object.
-   *	For the policy used in this example, the
-   *	nearest larger size than 200 is 256.
-   **/
-  assert(g.get_actual_size() == 256);
-
-  g[67] = 'g';
-  g[22] = 'f';
-
-  // Regardless of the internal size, the logical size should be 5.
-  assert(g.size() == 5);
-
-  // Now resize the table downward.
-
-  g.resize(106);
-
-  /*
-   * Check the actual size of the container object.
-   *	For the policy used in this example, the
-   *	nearest larger size than 106 is 128.
-   **/
-  assert(g.get_actual_size() == 128);
-
-  g[37] = 'f';
-
-  // Regardless of the internal size, the logical size should be 5.
-  assert(g.size() == 6);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize_neg.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize_neg.cc
deleted file mode 100644
index fae6298a682e..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_resize_neg.cc
+++ /dev/null
@@ -1,73 +0,0 @@
-// { dg-do compile }
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_bad_resize_example.cpp
- * An example showing how *not* to resize a hash-based container.
- */
-
-// For cc_hash_assoc_cntnr
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For assert
-#include <cassert>
-
-int
-main()
-{
-  /*
-   * A collision-chaining hash table mapping ints to chars.
-   */
-  typedef pb_assoc::cc_hash_assoc_cntnr< int, char> map_t;
-
-  // An map_t object.
-  map_t h;
-
-  /*
-   * Following line won't compile. The resize policy needs to be configured
-   *to allow external resize (by default, this is not available).
-   */
-  h.resize(20); 
-}
-
-// { dg-error "instantiated" "" { target *-*-* } 66 }
-// { dg-error "no matching function" "" { target *-*-* } 263 }
-// { dg-error "candidates are" "" { target *-*-* } 261 }
-// { dg-error "void" "" { target *-*-* } 269 }
-// { dg-excess-errors "" { target *-*-* } }
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_shift_mask.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_shift_mask.cc
deleted file mode 100644
index 4d829e7f9cf6..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/hash_shift_mask.cc
+++ /dev/null
@@ -1,130 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_shift_mask_example.cpp
- * An example showing how to write a range-hasing functor.
- */
-
-// For cc_hash_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For hash-related policies.
-#include <ext/pb_assoc/hash_policy.hpp>
-// For unary_function and binary_function
-#include <functional>
-
-/*
- * A simple hash functor.
- *	std::hash could serve instead of this functor,
- *	but it is not yet standard everywhere.
- */
-struct simple_int_hash : public std::unary_function<
-  int,
-	     size_t>
-{
-  inline size_t
-  operator()(int i) const
-  {
-    return (i);
-  }
-};
-
-// A range-hashing function which shifts 2 bits right and then masks.
-class shift_two_mask_range_hashing : private pb_assoc::direct_mask_range_hashing<>
-{
-public:
-  typedef size_t size_type;
-
-public:
-  /*
-   * Swaps with a different instant.
-   */
-  void
-  swap(shift_two_mask_range_hashing& r_other)
-  {
-    pb_assoc::direct_mask_range_hashing<>::swap(r_other);
-  }
-
-  /*
-   * Called by the container when internally resized.
-   */
-  void
-  notify_resized(size_type size)
-  {
-    pb_assoc::direct_mask_range_hashing<>::notify_resized(size);
-  }
-
-  /*
-   * Given a hash value, returns a number in the range of the
-   *	internal size of the container.
-   */
-  inline size_type
-  operator()(size_type hash) const
-  {
-    return (pb_assoc::direct_mask_range_hashing<>::operator()(
-							      hash >> 2));
-  }
-};
-
-int
-main()
-{
-  /*
-   * A collision-chaining hash table mapping ints to chars.
-   */
-  typedef
-    pb_assoc::cc_hash_assoc_cntnr<
-    int,
-    char,
-    // Hash function.
-    simple_int_hash,
-    std::equal_to<int>,
-    // Range hashing function.
-    shift_two_mask_range_hashing>
-    map_t;
-
-  map_t h;
-
-  // Use normally.
-
-  h[16] = 'a';
-  h[256] = 'e';
-  h[4] = 'z';
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level.cc
deleted file mode 100644
index 9e0689a3ae48..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level.cc
+++ /dev/null
@@ -1,150 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file mapping_level_example.cpp
- * A basic example showing how to use different mapping levels.
- */
-
-// For cout, endl.
-#include <iostream>
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For compound_data_type.
-#include <ext/pb_assoc/data_type.hpp>
-// For sting.
-#include <string>
-// For assert.
-#include <cassert>
-// For unary_function.
-#include <functional>
-
-typedef std::string user_name;
-
-typedef unsigned long machine_id;
-
-typedef std::string process_name;
-
-typedef float running_time;
-
-typedef
-pb_assoc::lu_assoc_cntnr<
-  process_name,
-  running_time>
-pr_name_rn_time_map;
-
-typedef
-pb_assoc::lu_assoc_cntnr<
-  machine_id,
-  pb_assoc::compound_data_type<
-  pr_name_rn_time_map> >
-machine_pr_map;
-
-typedef
-pb_assoc::lu_assoc_cntnr<
-  user_name,
-  pb_assoc::compound_data_type<
-  machine_pr_map> >
-user_machine_pr_map;
-
-typedef user_machine_pr_map::rebind<2>::other l2_t;
-
-typedef user_machine_pr_map::rebind<1>::other l1_t;
-
-struct is_same_proc : public std::unary_function<
-  l1_t::iterator::const_reference,
-		      bool>
-{
-  is_same_proc(const process_name& r_proc) : m_proc(r_proc)
-  {
-
-  };
-
-  bool
-  operator()(l1_t::iterator::const_reference r_val)
-  {
-    return (r_val.first.second == m_proc);
-  }
-
-private:
-  process_name m_proc;
-};
-
-int main()
-{
-  user_machine_pr_map m;
-
-  /**
-   * Following shows different ways to insert into a user_machine_pr_map object.
-   **/
-
-  // Josh launches on machine 1 firefox at time 1000.
-
-  m["Josh"][1]["firefox"] = 1000;
-
-  // Ben launches on machine 1 python at time 1003.
-  ((l1_t& )m)[std::make_pair(
-			     std::make_pair("Ben", 1),
-			     "python")] = 1003;
-
-  // Josh launches on machine 2 buggy at time 1004.
-
-  m.find("Josh")->second[2]["buggy"] = 1004;
-
-  // Sarah launches on machine 3 kdevelop at time 1010.
-
-  m["Sarah"][2].insert(std::make_pair("kdevelop", 1010));
-
-  // Iterate over all users running applications.
-
-  {
-    std::cout << "All users running applications:" << std::endl;
-
-    user_machine_pr_map::const_iterator it = m.begin();
-
-    while (it != m.end())
-      std::cout << (it++)->first << std::endl;
-  }
-
-  // Sarah has terminated kdevelop
-  ((l1_t& )m).erase(std::make_pair(
-				   std::make_pair("Sarah", 2),
-				   "kdevelop"));
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level_neg.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level_neg.cc
deleted file mode 100644
index c8fa40c3201e..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/mapping_level_neg.cc
+++ /dev/null
@@ -1,83 +0,0 @@
-// { dg-do compile }
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file bad_mapping_level_example.cpp
- * An example how not to use mapping levels.
- */
-
-// For cout, endl.
-#include <iostream>
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For compound_data_type.
-#include <ext/pb_assoc/data_type.hpp>
-
-int
-main()
-{
-  typedef
-    pb_assoc::tree_assoc_cntnr<
-    int,
-    pb_assoc::compound_data_type<
-    pb_assoc::tree_assoc_cntnr<
-    char,
-    pb_assoc::null_data_type> > >
-    t_0;
-
-  typedef t_0::rebind<1>::other t_0_rebound;
-
-  typedef
-    pb_assoc::tree_assoc_cntnr<
-    int,
-    pb_assoc::tree_assoc_cntnr<
-    char,
-    pb_assoc::null_data_type> >
-    t_1;
-
-  /*
-   * Following line will not compile.
-   * t1 is a "map" type, and cannot be rebound.
-   **/
-
-  typedef t_1::rebind<1>::other t_1_rebound; // { dg-error "expected" }
-}
-
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/ms_traits.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/ms_traits.cc
deleted file mode 100644
index 8db49e7687d2..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/ms_traits.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ms_traits_example.cpp
- * A basic example showing how to use ms_traits for querying container types
- *	for their behavior.
- */
-
-// For various associative containers.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For ms_traits.
-#include <ext/pb_assoc/ms_trait.hpp>
-// For cout, endl.
-#include <iostream>
-
-void
-print_has_data_compound_data(bool has_data, bool has_compound_data)
-{
-  if (!has_data)
-    {
-      std::cout << "Does not have data." << std::endl;
-
-      return;
-    }
-
-  if (!has_compound_data)
-    {
-      std::cout << "Has data." << std::endl;
-
-      return;
-    }
-
-  std::cout << "Has compound data." << std::endl;
-}
-
-void
-print_mapping_level(unsigned int mapping_level)
-{
-  std::cout << "Mapping level = " << mapping_level << std::endl;
-}
-
-template<class Cntnr>
-void
-print_mapping_attributes()
-{
-  typedef pb_assoc::ms_traits< Cntnr> traits;
-
-  print_has_data_compound_data(traits::has_data, traits::has_compound_data);
-
-  print_mapping_level(traits::mapping_level);
-
-  std::cout << std::endl << std::endl;
-}
-
-int
-main()
-{
-  std::cout << "\"Set\"-type container:" << std::endl;
-
-  print_mapping_attributes<
-    pb_assoc::cc_hash_assoc_cntnr<int, pb_assoc::null_data_type> >();
-
-  std::cout << "\"Map\"-type container:" << std::endl;
-
-  print_mapping_attributes<
-    pb_assoc::cc_hash_assoc_cntnr<int, char> >();
-
-  typedef
-    pb_assoc::cc_hash_assoc_cntnr<
-    int,
-    pb_assoc::compound_data_type<
-    pb_assoc::tree_assoc_cntnr<
-    char,
-    pb_assoc::null_data_type> > >
-    mmap_t;
-
-  std::cout << "\"Multimap\"-type container:" << std::endl;
-
-  print_mapping_attributes<mmap_t>();
-
-  std::cout << "Rebound \"Multimap\"-type container:" << std::endl;
-
-  print_mapping_attributes<mmap_t::rebind<1>::other>();
-}
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/ranged_hash.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/ranged_hash.cc
deleted file mode 100644
index 365c6f06f7aa..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/ranged_hash.cc
+++ /dev/null
@@ -1,193 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file ranged_hash_example.cpp
- * A basic example showing how to write a ranged-hash functor.
- */
-
-// For cc_hash_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For hash-related policies.
-#include <ext/pb_assoc/hash_policy.hpp>
-// For unary_function and binary_function.
-#include <functional>
-// For assert.
-#include <cassert>
-// For string.
-#include <string>
-
-/**
- * A (somewhat simplistic) ranged-hash function for strings.
- *	It uses the size of the container object to determine
- *	the hashing method. For smaller sizes it uses a simple hash function;
- *	for larger sizes it uses a more complicated hash function.
- */
-class simple_string_ranged_hash_fn : public std::unary_function<
-  std::string,
-				     size_t>
-{
-public:
-  typedef size_t size_type;
-
-  // Default constructor.
-  simple_string_ranged_hash_fn();
-
-  // Called to notify that the size has changed.
-  void
-  notify_resized(size_t size);
-
-  /*
-   * Called for hashing a string into a size_t in a
-   *	given range.
-   */
-  size_t
-  operator()(const std::string& r_string);
-
-  // Swaps content.
-  void
-  swap(simple_string_ranged_hash_fn& r_other);
-
-private:
-  // Records the size of the container object.
-  size_t m_container_size;
-};
-
-simple_string_ranged_hash_fn::
-simple_string_ranged_hash_fn() :
-  m_container_size(0)
-{
-
-}
-
-void
-simple_string_ranged_hash_fn::
-notify_resized(size_t size)
-{
-  m_container_size = size;
-}
-
-size_t
-simple_string_ranged_hash_fn::
-operator()(const std::string& r_string)
-{
-  /*
-   * This (simplified) hash algorithm decides that if there are
-   *	fewer than 100 strings in the container it will hash
-   *	a string by summing its characters; otherwise, it will
-   *	perform a more complicated operation in order to produce
-   *	hash values with fewer collisions.
-   */
-
-  std::string::const_iterator it = r_string.begin();
-
-  size_t hash = 0;
-
-  if (m_container_size < 100)
-    {
-      // For this size, perform an std::accumulate type of operation.
-
-      while (it != r_string.end())
-	hash += static_cast<size_t>(*it++);
-    }
-  else
-    {
-      // For this size, perform a different operation.
-
-      while (it != r_string.end())
-	{
-	  hash += static_cast<size_t>(*it++);
-
-	  hash *= 5;
-	}
-    }
-
-  /*
-   * The function must, by whatever means, return
-   *	a size in the range 0 to m_container_size.
-   */
-  return (hash % m_container_size);
-}
-
-void
-simple_string_ranged_hash_fn::
-swap(simple_string_ranged_hash_fn& r_other)
-{
-  std::swap(m_container_size, r_other.m_container_size);
-}
-
-int
-main()
-{
-  /*
-   * A collision-chaining hash table storing strings.
-   */
-  typedef
-    pb_assoc::cc_hash_assoc_cntnr<
-    std::string,
-    pb_assoc::null_data_type,
-    // Null hash function
-    pb_assoc::null_hash_fn,
-    // Equivalence function.
-    std::equal_to<
-    std::string>,
-    // Range hashing function.
-    simple_string_ranged_hash_fn >
-    set_t;
-
-  /*
-   * Note that in the above, the library determines a resize policy
-   *	appropriate for direct_mod_range_hashing.
-   */
-
-  set_t h;
-
-  // Use the table normally.
-
-  h.insert("Hello, ");
-  h.insert("world");
-
-  assert(h.size() == 2);
-
-  assert(h.find("Hello, ") != h.end());
-  assert(h.find("world") != h.end());
-
-  assert(h.find("Goodbye, oh cruel world!") == h.end());
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/store_hash.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/store_hash.cc
deleted file mode 100644
index bad050049a17..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/store_hash.cc
+++ /dev/null
@@ -1,111 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file hash_mod_example.cpp
- * An example showing how to use cc_ht_map with alternative policies.
- */
-
-// For cc_hash_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For direct_mask_range_hashing and hash_standard_resize_policy.
-#include <ext/pb_assoc/hash_policy.hpp>
-// For unary_function, binary_function.
-#include <functional>
-// For string.
-#include <string>
-
-/*
- * A string hash functor
- */
-struct string_hash : public std::unary_function<
-  std::string,
-		     size_t>
-{
-  inline size_t
-  operator()(std::string str) const
-  {
-    std::string::const_iterator b = str.begin();
-
-    std::string::const_iterator e = str.end();
-
-    size_t hash = 0;
-
-    while (b != e)
-      {
-	hash *= 5;
-
-	hash += static_cast<size_t>(*b);
-
-	++b;
-      }
-
-    return (hash);
-  }
-};
-
-int
-main()
-{
-  /*
-   * A collision-chaining hash table mapping strings to ints.
-   */
-  typedef
-    pb_assoc::cc_hash_assoc_cntnr<
-    std::string,
-    int,
-    // Hash function.
-    string_hash,
-    // Equivalence function.
-    std::equal_to<
-    std::string>,
-    // Range hashing function.
-    pb_assoc::direct_mask_range_hashing<>,
-    // Resize policy.
-    pb_assoc::hash_standard_resize_policy<>,
-    // Store the hash value with each entry.
-    true>
-    map_t;
-
-  map_t h;
-
-  h["Hello, "] = 0;
-  h["world"] = 1;
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_intervals.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_intervals.cc
deleted file mode 100644
index dbc9430a64ec..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_intervals.cc
+++ /dev/null
@@ -1,260 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file tree_set_intervals_example.cpp
- * An example showing how to augment a trees to support operations involving
- *	line intervals.
- */
-
-// For ov_tree_set
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For assert
-#include <cassert>
-// For NULL
-#include <cstdlib>
-
-/*
- * Following are definitions of line intervals and functors operating on them.
- *	As the purpose of this example is node invariants, and not
- *	computational-geometry algorithms per-se, some simplifications are made
- *(e.g., intervals are defined by unsigned integers, and not by*a parameterized type, data members are public, etc.).
- */
-
-/*
- * An interval of unsigned integers.
- **/
-struct interval
-{
-  /*
-   * Constructor.
-   * @param start [i] - Start point.
-   * @param end [i] - End point.
-   */
-  interval(unsigned int start, unsigned int end) : m_start(start),
-						   m_end(end)
-  {
-    assert(start <= end);
-  }
-
-  /*
-   * Comparison predicate.
-   * @param r_rhs [i] - Right-hand object with which to compare.
-   **/
-  bool
-  operator<(const interval& r_rhs) const
-  {
-    if (m_start != r_rhs.m_start)
-      return (m_start < r_rhs.m_start);
-
-    return (m_end < r_rhs.m_end);
-  }
-
-  /*
-   * Start point.
-   */
-  unsigned int m_start;
-
-  /*
-   * End point.
-   **/
-  unsigned int m_end;
-};
-
-struct intervals_node_updator;
-
-template<class Cntnr>
-bool
-overlaps(const Cntnr& r_c, const interval& r_interval);
-
-/*
- * The entry of the set. It includes an interval and the
- *	maximal endpoint of the intervals in its subtree.
- */
-struct entry
-{
-  // Constructor. The maximal endpoint is set to the endpoint
-  explicit entry(unsigned int start, unsigned int end) : m_interval(start, end),
-							 m_max_endpoint(end)
-  { }
-
-  // Compares two entries by their intervals.
-  inline bool
-  operator<(const entry& r_rhs) const
-  {
-    return (m_interval < r_rhs.m_interval);
-  }
-
-  // An interval
-  interval m_interval;
-
-private:
-  // The maximal endpoint of the intervals in its subtree.
-  mutable unsigned int m_max_endpoint;
-
-  friend struct intervals_node_updator;
-
-  template<class Cntnr>
-  friend bool
-  overlaps(const Cntnr& r_c, const interval& r_interval);
-
-};
-
-/*
- * Functor updating maximal endpoints of entries.
- *	Algorithm taken from "Introduction to Algorithms" by Cormen, Leiserson,
- *	and Rivest.
- */
-struct intervals_node_updator
-{
-  inline void
-  operator()(const entry* p_entry, const entry* p_l_child_entry, const entry* p_r_child_entry)
-  {
-    /* The left maximal endpoint is 0 if there is no left child.
-     */
-    const unsigned int l_max_endpoint =(p_l_child_entry == NULL)? 0 : p_l_child_entry->m_max_endpoint;
-
-    /* The right maximal endpoint is 0 if there is no right child.
-     */
-    const unsigned int r_max_endpoint =(p_r_child_entry == NULL)? 0 : p_r_child_entry->m_max_endpoint;
-
-    p_entry->m_max_endpoint = std::max(p_entry->m_interval.m_end,
-				       std::max<unsigned int>(l_max_endpoint, r_max_endpoint));
-  }
-};
-
-/*
- * Checks whether a set of intervals contains at least one interval
- *	overlapping some interval.
- *	Algorithm taken from "Introduction to Algorithms" by Cormen, Leiserson,
- *	and Rivest.
- **/
-template<class Cntnr>
-bool
-overlaps(const Cntnr& r_c, const interval& r_interval)
-{
-  typedef typename Cntnr::const_iterator intr_set_const_it;
-
-  typedef typename Cntnr::const_node_iterator intr_set_const_node_it;
-
-  intr_set_const_node_it node_it = r_c.node_begin();
-
-  while (node_it != r_c.node_end())
-    {
-      // Check whether r_interval overlaps the current interval.
-
-      intr_set_const_it it =* node_it;
-
-      if (r_interval.m_end >= it->m_interval.m_start&& 
-	  r_interval.m_start <= it->m_interval.m_end)
-	return (true);
-
-      intr_set_const_node_it l_node_it = node_it.l_child();
-
-      const unsigned int l_max_endpoint =(l_node_it == r_c.node_end())?
-	0 : (*l_node_it)->m_max_endpoint;
-
-      if (l_max_endpoint >= r_interval.m_start)
-	node_it = l_node_it;
-      else
-	node_it = node_it.r_child();
-    }
-
-  return (false);
-}
-
-template<class Cntnr>
-void
-some_op_sequence(Cntnr c)
-{
-  // Insert some entries.
-
-  c.insert(entry(0, 100));
-  c.insert(entry(150, 160));
-  c.insert(entry(300, 1000));
-  c.insert(entry(10000, 100000));
-  c.insert(entry(200, 100200));
-
-  // Test overlaps.
-
-  // Overlaps 150 - 160
-  assert(overlaps(c, interval(145, 165)) == true);
-  // Overlaps 150 - 160
-  assert(overlaps(c, interval(145, 155)) == true);
-  assert(overlaps(c, interval(165, 175)) == false);
-  assert(overlaps(c, interval(100201, 100203)) == false);
-
-  // Erase an entry.
-
-  entry e(150, 160);
-
-  c.erase(e);
-
-  // Test overlaps again.
-
-  assert(overlaps(c, interval(145, 165)) == false);
-  assert(overlaps(c, interval(165, 175)) == false);
-  assert(overlaps(c, interval(0, 300000)) == true);
-}
-
-int
-main()
-{
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   entry,
-		   pb_assoc::null_data_type,
-		   std::less<entry>,
-		   pb_assoc::ov_tree_ds_tag,
-		   intervals_node_updator>());
-
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   entry,
-		   pb_assoc::null_data_type,
-		   std::less<entry>,
-		   pb_assoc::rb_tree_ds_tag,
-		   intervals_node_updator>());
-
-  some_op_sequence(pb_assoc::tree_assoc_cntnr<
-		   entry,
-		   pb_assoc::null_data_type,
-		   std::less<entry>,
-		   pb_assoc::splay_tree_ds_tag,
-		   intervals_node_updator>());
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_join.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_join.cc
deleted file mode 100644
index 1c7c76581ddf..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_join.cc
+++ /dev/null
@@ -1,127 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file tree_join_example.cpp.cpp
- * An example showing how to join splay_tree_map objects.
- *	The code in the example is relevant to red-black trees as well.
- */
-
-// For tree_assoc_cntnr
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For cannot_join exception.
-#include <ext/pb_assoc/exception.hpp>
-// For assert
-#include <cassert>
-
-int
-main()
-{
-  /*
-   * A splay tree table mapping ints to chars.
-   */
-  typedef
-    pb_assoc::tree_assoc_cntnr<
-    int,
-    char,
-    std::less<
-    int>,
-    pb_assoc::splay_tree_ds_tag>
-    map_t;
-
-  // Two map_t object.
-  map_t h0, h1;
-
-  // Insert some values into the first table.
-  for (int i0 = 0; i0 < 100; ++i0)
-    h0.insert(std::make_pair(i0, 'a'));
-
-  // Insert some values into the second table.
-  for (int i1 = 0; i1 < 100; ++i1)
-    h1.insert(std::make_pair(1000 + i1, 'b'));
-
-  /*
-   * Since all the elements in h0 are smaller than those in h1,
-   *	it is possible to join the two tables. This is exception free.
-   */
-
-  h0.join(h1);
-
-  // h0 should now contain all entries, and h1 should be empty.
-
-  assert(h0.size() == 200);
-  assert(h1.empty());
-
-  // Now perform an illegal join.
-
-  // Two other map_t objects.
-  map_t h2, h3;
-
-  h2[1] = 'a';
-  h2[3] = 'c';
-
-  h3[2] = 'b';
-
-  /*
-   * It is not true that all elements in h2 are smaller than those
-   *	in h3, nor is it true that they are all larger. Hence, attempting
-   *	to join h2, and h3 should result in an exception.
-   */
-
-  bool exception_thrown = false;
-
-  try
-    {
-      h2.join(h3);
-    }
-  catch(pb_assoc::cannot_join& )
-    {
-      exception_thrown = true;
-    }
-
-  assert(exception_thrown);
-
-  // Since the operation was not performed, the tables should be unaltered.
-
-  assert(h2.size() == 2);
-  assert(h3[2] == 'b');
-
-  return (0);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics.cc
deleted file mode 100644
index b461429ea694..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics.cc
+++ /dev/null
@@ -1,133 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/*
- * @file tree_order_statistics_example.cpp
- * An example showing how to use functors for order-statistics
- *	in tree-based containers.
- */
-
-// For tree_assoc_cntnr
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For order-statistics related policies
-#include <ext/pb_assoc/tree_policy.hpp>
-// For assert
-#include <cassert>
-
-/*
- * A red-black tree table storing ints and their order statistics.
- */
-typedef
-pb_assoc::tree_assoc_cntnr<
-  pb_assoc::order_statistics_key<int>,
-  pb_assoc::null_data_type,
-  pb_assoc::order_statistics_key_cmp<std::less<int> >,
-  pb_assoc::rb_tree_ds_tag,
-  pb_assoc::order_statistics_node_updator<int> >
-set_t;
-
-int
-main()
-{
-  set_t s;
-
-  typedef pb_assoc::order_statistics_key< int> int_order_statistics_key;
-
-  // Insert some entries into s.
-
-  s.insert(int_order_statistics_key(12));
-  s.insert(int_order_statistics_key(505));
-  s.insert(int_order_statistics_key(30));
-  s.insert(int_order_statistics_key(1000));
-  s.insert(int_order_statistics_key(10000));
-  s.insert(int_order_statistics_key(100));
-
-  // The order of the keys should be: 12, 30, 100, 505, 1000, 10000.
-
-  pb_assoc::find_by_order<set_t> by_order;
-
-  assert(*by_order(s, 0) == 12);
-  assert(*by_order(s, 1) == 30);
-  assert(*by_order(s, 2) == 100);
-  assert(*by_order(s, 3) == 505);
-  assert(*by_order(s, 4) == 1000);
-  assert(*by_order(s, 5) == 10000);
-  assert(by_order(s, 6) == s.end());
-
-  // The order of the keys should be: 12, 30, 100, 505, 1000, 10000.
-
-  pb_assoc::order_by_key<set_t> by_key;
-
-  assert(by_key(s, 10) == 0);
-  assert(by_key(s, 12) == 0);
-  assert(by_key(s, 15) == 1);
-  assert(by_key(s, 30) == 1);
-  assert(by_key(s, 99) == 2);
-  assert(by_key(s, 100) == 2);
-  assert(by_key(s, 505) == 3);
-  assert(by_key(s, 1000) == 4);
-  assert(by_key(s, 10000) == 5);
-  assert(by_key(s, 9999999) == 6);
-
-  // Erase an entry.
-  s.erase(int_order_statistics_key(30));
-
-  // The order of the keys should be: 12, 100, 505, 1000, 10000.
-
-  assert(*by_order(s, 0) == 12);
-  assert(*by_order(s, 1) == 100);
-  assert(*by_order(s, 2) == 505);
-  assert(*by_order(s, 3) == 1000);
-  assert(*by_order(s, 4) == 10000);
-  assert(by_order(s, 5) == s.end());
-
-  // The order of the keys should be: 12, 100, 505, 1000, 10000.
-
-  assert(by_key(s, 10) == 0);
-  assert(by_key(s, 12) == 0);
-  assert(by_key(s, 100) == 1);
-  assert(by_key(s, 505) == 2);
-  assert(by_key(s, 707) == 3);
-  assert(by_key(s, 1000) == 3);
-  assert(by_key(s, 1001) == 4);
-  assert(by_key(s, 10000) == 4);
-  assert(by_key(s, 100000) == 5);
-  assert(by_key(s, 9999999) == 5);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics_join.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics_join.cc
deleted file mode 100644
index 2287f49de1fa..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_order_statistics_join.cc
+++ /dev/null
@@ -1,106 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file splay_tree_map_order_statistics_example.cpp
- * An example showing how to augment a splay tree to support order statistics.
- */
-
-// For trees.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For order_statistics_key
-#include <ext/pb_assoc/tree_policy.hpp>
-// For assert
-#include <cassert>
-
-/**
- * A splay tree table mapping ints to chars and storing the ints order statistics.
- */
-typedef
-pb_assoc::tree_assoc_cntnr<
-  pb_assoc::order_statistics_key<int>,
-  char,
-  pb_assoc::order_statistics_key_cmp<std::less<int> >,
-  pb_assoc::splay_tree_ds_tag,
-  pb_assoc::order_statistics_node_updator<int> >
-map_type;
-
-int
-main()
-{
-  typedef pb_assoc::order_statistics_key< int> int_order_statistics_key;
-
-  map_type s0;
-
-  // Insert some entries into s0.
-
-  s0.insert(make_pair(int_order_statistics_key(12), 'a'));
-  s0.insert(make_pair(int_order_statistics_key(505), 'b'));
-  s0.insert(make_pair(int_order_statistics_key(30), 'c'));
-
-  // The order of the keys should be: 12, 30, 505.
-
-  pb_assoc::find_by_order<map_type> by_order;
-
-  assert(by_order(s0, 0)->first == 12);
-  assert(by_order(s0, 1)->first == 30);
-  assert(by_order(s0, 2)->first == 505);
-
-  map_type s1;
-
-  // Insert some entries into s1.
-
-  s1.insert(make_pair(int_order_statistics_key(506), 'a'));
-  s1.insert(make_pair(int_order_statistics_key(1222), 'b'));
-  s1.insert(make_pair(int_order_statistics_key(3004), 'c'));
-
-  // Now join s0 and s1.
-
-  s0.join(s1);
-
-  // The order of the keys should be: 12, 30, 505.
-
-  assert(by_order(s0, 0)->first == 12);
-  assert(by_order(s0, 1)->first == 30);
-  assert(by_order(s0, 2)->first == 505);
-  assert(by_order(s0, 3)->first == 506);
-  assert(by_order(s0, 4)->first == 1222);
-  assert(by_order(s0, 5)->first == 3004);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_split.cc b/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_split.cc
deleted file mode 100644
index eb4e8a5cb200..000000000000
--- a/libstdc++-v3/testsuite/ext/pb_assoc/example/tree_split.cc
+++ /dev/null
@@ -1,90 +0,0 @@
-// -*- C++ -*-
-
-// Copyright (C) 2005 Free Software Foundation, Inc.
-//
-// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to the Free
-// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-// USA.
-
-// As a special exception, you may use this file as part of a free software
-// library without restriction.  Specifically, if other files instantiate
-// templates or use macros or inline functions from this file, or you compile
-// this file and link it with other files to produce an executable, this
-// file does not by itself cause the resulting executable to be covered by
-// the GNU General Public License.  This exception does not however
-// invalidate any other reasons why the executable file might be covered by
-// the GNU General Public License.
-
-// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
-
-// Permission to use, copy, modify, sell, and distribute this software
-// is hereby granted without fee, provided that the above copyright
-// notice appears in all copies, and that both that copyright notice and
-// this permission notice appear in supporting documentation. None of
-// the above authors, nor IBM Haifa Research Laboratories, make any
-// representation about the suitability of this software for any
-// purpose. It is provided "as is" without express or implied warranty.
-
-/**
- * @file tree_split_example.cpp
- * A basic example showing how to split tree-based container objects.
- */
-
-// For rb_tree_assoc_cntnr.
-#include <ext/pb_assoc/assoc_cntnr.hpp>
-// For assert
-#include <cassert>
-
-int
-main()
-{
-  /*
-   * A red-black tree table mapping ints to chars.
-   */
-  typedef pb_assoc::tree_assoc_cntnr< int, char> map_t;
-
-  // A map_t object.
-  map_t r;
-
-  // Inserts some entries into r.
-
-  for (int i = 0; i < 100; ++ i)
-    r.insert(std::make_pair(i, 'a'));
-
-  // Now split r into a different map_t object.
-
-  // larger_r will hold the larger values following the split.
-  map_t larger_r;
-
-  // Split all elements larger than 1000 into larger_r. This is exception free.
-  r.split(1000, larger_r);
-
-  /*
-   * Since there were no elements larger than 1000, r
-   *	should be unchanged.
-   **/
-
-  assert(r.size() == 100);
-  assert(r.begin()->first == 0);
-
-  // Now perform a split which actually changes the content of r.
-
-  // Split all elements larger than 3 into larger_r.
-  r.split(3, larger_r);
-
-  assert(r.size() == 4);
-  assert(larger_r.begin()->first == 4);
-}
-
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
new file mode 100644
index 000000000000..4946155a66e5
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/assoc_container_traits.cc
@@ -0,0 +1,241 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file assoc_container_traits_example.cpp
+ * A basic example showing how to use container_traits for querying container types
+ *    for their behavior.
+ */
+
+/**
+ * The following example shows how to use container_traits in order to print
+ * out information on an associative container's behavior, e.g., its underlying
+ * data structure, or whether its objects guarantee storing entries sorted
+ * by key order.
+ */
+
+#include <iostream>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+template<class DS_Category>
+void
+print_container_category(DS_Category);
+
+template<>
+void
+print_container_category(cc_hash_tag)
+{
+  cout << "Collision-chaining hash based associative-container:" << endl;
+}
+
+template<>
+void
+print_container_category(gp_hash_tag)
+{
+  cout << "Probing hash based associative-container:" << endl;
+}
+
+template<>
+void
+print_container_category(rb_tree_tag)
+{
+  cout << "Red-black tree associative-container:" << endl;
+}
+
+template<>
+void
+print_container_category(splay_tree_tag)
+{
+  cout << "Splay tree associative-container:" << endl;
+}
+
+template<>
+void
+print_container_category(ov_tree_tag)
+{
+  cout << "Ordered-vector tree associative-container:" << endl;
+}
+
+template<>
+void
+print_container_category(list_update_tag)
+{
+  cout << "List-based associative-container:" << endl;
+}
+
+void
+print_erase_can_throw(bool can)
+{
+  if (can)
+    {
+      cout << "Erase can throw" << endl;
+      return;
+    }
+  cout << "Erase cannot throw" << endl;
+}
+
+void
+print_order_preserving(bool does)
+{
+  if (does)
+    {
+      cout << "Preserves order" << endl;
+      return;
+    }
+  cout << "Does not preserve order" << endl;
+}
+
+template<class Invalidation_Guarantee>
+void
+print_invalidation_guarantee(Invalidation_Guarantee);
+
+template<>
+void
+print_invalidation_guarantee(basic_invalidation_guarantee)
+{
+  cout << "Guarantees only that found references, pointers, and "
+    "iterators are valid as long as the container object is not "
+    "modified" << endl;
+}
+
+template<>
+void
+print_invalidation_guarantee(point_invalidation_guarantee)
+{
+  cout << "Guarantees that found references, pointers, and "
+    "point_iterators are valid even if the container object "
+    "is modified" << endl;
+}
+
+template<>
+void
+print_invalidation_guarantee(range_invalidation_guarantee)
+{
+  cout << "Guarantees that iterators remain valid even if the "
+    "container object is modified" << endl;
+}
+
+void
+print_reverse_iteration(bool does)
+{
+  if (does)
+    {
+      cout << "Supports reverse iteration" << endl;
+      return;
+    }
+  cout << "Does not support reverse iteration" << endl;
+}
+
+template<class DS_Traits>
+void
+print_container_attributes()
+{
+  // First print out the data structure category.
+  print_container_category(typename DS_Traits::container_category());
+
+  // Now print the attributes of the container.
+  print_erase_can_throw(DS_Traits::erase_can_throw);
+  print_order_preserving(DS_Traits::order_preserving);
+  print_invalidation_guarantee(typename DS_Traits::invalidation_guarantee());
+  print_reverse_iteration(DS_Traits::reverse_iteration);
+
+  cout << endl << endl;
+}
+
+int
+main()
+{
+  {
+    // Print the attributes of a collision-chaining hash table.
+    typedef cc_hash_table< int, char> t;
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of a (general) probing hash table.
+    typedef gp_hash_table< int, char> t;
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of a red-black tree.
+    typedef tree< int, char> t;
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of a splay tree.
+    typedef
+      tree<
+      int,
+      char,
+      less<int>,
+      splay_tree_tag>
+      t;
+
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of an ordered-vector tree.
+    typedef
+      tree<
+      int,
+      char,
+      less<int>,
+      ov_tree_tag>
+      t;
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of an list-based container.
+    typedef list_update< int, char> t;
+    print_container_attributes<container_traits<t> >();
+  }
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
new file mode 100644
index 000000000000..cc3bbe3c352d
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_map.cc
@@ -0,0 +1,130 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_map_example.cpp
+ * A basic example showing how to use maps.
+ */
+
+/**
+ * This example shows how to use "maps". It defines a
+ * function performing a sequence of operations on
+ * a generic container. It then calls this function with some containers.
+ */
+
+#include <iostream>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// The following function performs a sequence of operations on an
+// associative container object mapping integers to characters.
+template<class Cntnr>
+void
+some_op_sequence(Cntnr& r_c)
+{
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  r_c.insert(make_pair(1, 'a'));
+
+  r_c[2] = 'b';
+
+  assert(!r_c.empty());
+  assert(r_c.size() == 2);
+
+  cout << "Key 1 is mapped to " << r_c[1] << endl;
+  cout << "Key 2 is mapped to " << r_c[2] << endl;
+
+  cout << endl << "All value types in the container:" << endl;
+
+  typedef typename Cntnr::const_iterator const_iterator;
+  for (const_iterator it = r_c.begin(); it != r_c.end(); ++it)
+    cout << it->first << " -> " << it->second << endl;
+  cout << endl;
+
+  r_c.clear();
+
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+}
+
+int main()
+{
+  {
+    // Perform operations on a collision-chaining hash map.
+    cc_hash_table<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a general-probing hash map.
+    gp_hash_table<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a red-black tree map.
+    tree<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a splay tree map.
+    tree<int, char, less<int>, splay_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on an ov tree map.
+    tree<int, char, less<int>, ov_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a list-update map.
+    list_update<int, char> c;
+    some_op_sequence(c);
+  }
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
new file mode 100644
index 000000000000..77390809bb29
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_multimap.cc
@@ -0,0 +1,162 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_multimap_example.cpp
+ * A basic example showing how to use multimaps.
+ */
+
+/**
+ * This example shows how to use "multimaps" in the context of a simple
+ * bank account application. Each customer holds a bank account
+ * (or more than one) which holds some balance.
+ */
+
+#include <iostream>
+#include <string>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple hash functor.
+// hash could serve instead of this functor, but it is not yet
+// standard everywhere.
+struct string_hash : public unary_function<string, size_t>
+{
+  inline size_t
+  operator()(const string& r_s) const
+  {
+    size_t ret = 0;
+    string::const_iterator b = r_s.begin();
+    string::const_iterator e = r_s.end();
+    while (b != e)
+      {
+	ret *= 5;
+	ret += static_cast<size_t>(*(b++));
+      }
+    return ret;
+  }
+};
+
+int main()
+{
+  // Each customer is identified by a string.
+  typedef string customer;
+
+  // Each account is identified by an unsigned long.
+  typedef unsigned long account_id;
+
+  // The balance in the account is a floating point.
+  typedef float balance_t;
+
+  /*
+   *  This is the data structure type used for storing information
+   *  about accounts. In this case the primary key is the customer,
+   *  and the secondary key is the account id.
+   *
+   *  A hash-based container maps each customer to a list-based
+   *  container that maps each account to the balance it holds.
+   *
+   *  Note that we could use any combination of primary and secondary
+   *  associative-containers. In this case we choose a hash-based
+   *  container for the primary keys, since we do not need to store
+   *  customers in a sorted order; we choos a list-based container for
+   *  the secondary keys, since we expect that the average number of
+   *  accounts per customer will be small.
+   */
+  typedef
+    cc_hash_table<
+    customer,
+    list_update<
+    account_id,
+    balance_t>,
+    string_hash>
+    accounts_t;
+
+  // This object will hold all information.
+  accounts_t acc;
+
+  // Customer "a" opens empty account 12.
+  acc["a"][12] = 0;
+
+  // Customer "a" deposits 45 into account 12.
+  acc["a"][12] += 45;
+
+  // Customer "b" opens account 13 with balance 12.3.
+  acc["b"][13] = 12.3;
+
+  // Customer "c" opens empty account 14.
+  acc["c"][14] = 0;
+
+  // Customer "a" opens account 160 with balance 142.
+  // Note that "a" already holds account 12.
+  acc["a"][160] = 142;
+
+  // Verify the number of accounts that "a" holds.
+  accounts_t::const_point_iterator it = acc.find("a");
+  assert(it != acc.end());
+  assert(it->second.size() == 2);
+
+  // The begining of the month has arrived. We need to give a 3%
+  // interest to all accounts with a positive balance.
+
+  // First we loop over all customers.
+  accounts_t::iterator cust_it;
+  for (cust_it = acc.begin(); cust_it != acc.end(); ++cust_it)
+    {
+      // For each customer, we loop over the customer's accounts.
+      accounts_t::mapped_type::iterator it;
+      for (it = cust_it->second.begin(); it != cust_it->second.end(); ++it)
+	if (it->second > 0)
+	  it->second *= 1.03;
+    }
+
+  // Customer "a" closes all accounts.
+  acc.erase("a");
+
+  // The bank now has only 2 customers.
+  assert(acc.size() == 2);
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
new file mode 100644
index 000000000000..9b5d0aa069da
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_multiset.cc
@@ -0,0 +1,175 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_multiset_example.cpp
+ * A basic example showing how to use multisets.
+ */
+
+
+// This example shows how to use "multisets".
+
+// In this example we build a very simple priority queue that also can
+// be queried if an entry contains (i.e., it is slightly similar to an
+// associative container as well as a priority queue). The priority
+// queue adapts a "multiset".
+
+// (Note that there are more efficient ways for implementing this than
+// by adapting an associative container. This is just an example for
+// "multisets".)
+
+#include <iostream>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple priority queue that also supports an "contains" query.
+class contains_pq
+{
+public:
+  // Pushes an integer.
+  void
+  push(int i);
+
+  // Pops the largest integer and returns it.
+  int
+  pop();
+
+  // Returns true iff i is contained in the container.
+  bool
+  contains(int i) const
+  { return m_tree.find(i) != m_tree.end(); }
+
+  // Returns true iff empty.
+  bool
+  empty() const
+  { return m_tree.empty(); }
+
+private:
+  // This is the container type we adapt - a "multiset".
+  // It maps each integer to the number of times it logically appears.
+  typedef
+  tree<
+  int,
+  size_t,
+  greater<
+  int> >
+  tree_t;
+
+private:
+  tree_t m_tree;
+};
+
+void
+contains_pq::
+push(int i)
+{
+  // To push i, we insert to the "multiset" that i appears 0 times
+  // (which is a no-op if i already is contained), then increment the
+  // number of times i is contained by 1.
+  ++m_tree.insert(make_pair(i, 0)).first->second;
+}
+
+int
+contains_pq::
+pop()
+{
+  assert(!empty());
+
+  // The element we need to pop must be the first one, since tree_t is
+  // an ordered container.
+  tree_t::iterator it = m_tree.begin();
+
+  const int i = it->first;
+
+  // Decrease the number of times the popped element appears in the
+  // container object. If it is 0 - we erase it.
+  if (--it->second == 0)
+    m_tree.erase(it);
+
+  return i;
+}
+
+int main()
+{
+  contains_pq cpq;
+
+  // First we push some elements.
+  cpq.push(4);
+  cpq.push(3);
+  cpq.push(2);
+  cpq.push(1);
+  cpq.push(4);
+
+  // Note that logically, 4 appears 2 times, and each of 1, 2, and 3
+  // appear once.
+  assert(cpq.contains(4));
+  assert(cpq.contains(3));
+  assert(cpq.contains(2));
+  assert(cpq.contains(1));
+
+  // Now pop the topmost element - it should be 4.
+  assert(cpq.pop() == 4);
+
+  // Now logically, each of 1, 2, 3, and 4 appear once.
+  assert(cpq.contains(4));
+
+  // We pop the topmost element - it should be 4.
+  assert(cpq.pop() == 4);
+
+  // 4 should not be contained any more.
+  assert(!cpq.contains(4));
+
+  assert(cpq.contains(3));
+  assert(cpq.contains(2));
+  assert(cpq.contains(1));
+
+  assert(cpq.pop() == 3);
+  assert(cpq.pop() == 2);
+  assert(cpq.pop() == 1);
+
+  assert(cpq.empty());
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
new file mode 100644
index 000000000000..cc7641c24050
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_priority_queue.cc
@@ -0,0 +1,130 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_priority_queue_example.cpp
+ * A basic example showing how to use priority queues.
+ */
+
+/**
+ * This example shows how to use priority queues. It defines a
+ * function performing a sequence of operations on
+ * a generic container. It then calls this function with some containers.
+ */
+
+#include <cassert>
+#include <iostream>
+#include <ext/pb_ds/priority_queue.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// The following function performs a sequence of operations on a
+// priority queue object storing integers.
+template<class Cntnr>
+void
+some_op_sequence(Cntnr& r_c)
+{
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  for (size_t i = 0; i < 10; ++i)
+    r_c.push(i);
+  cout << endl << "All values in the container:" << endl;
+
+  typedef typename Cntnr::const_iterator const_iterator;
+  for (const_iterator it = r_c.begin(); it != r_c.end();  ++it)
+    cout <<* it << endl;
+  assert(!r_c.empty());
+  assert(r_c.size() == 10);
+
+  cout << "Popping all values: " << endl;
+  while (!r_c.empty())
+    {
+      cout << r_c.top() << endl;
+      r_c.pop();
+    }
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  cout << endl;
+}
+
+int main()
+{
+  {
+    // Perform operations on a pairing-heap queue.
+    cout << "Pairing heap" << endl;
+    pb_ds::priority_queue<int, less<int>, pairing_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a binomial-heap queue.
+    cout << "Binomial heap" << endl;
+    pb_ds::priority_queue<int, less<int>, binomial_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a binomial-heap queue.
+    cout << "Redundant-counter binomial heap" << endl;
+    pb_ds::priority_queue<int, less<int>, rc_binomial_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a binomial-heap queue.
+    cout << "Binary heap" << endl;
+    pb_ds::priority_queue<int, less<int>, binary_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a thin-heap queue.
+    cout << "Thin heap" << endl;
+    pb_ds::priority_queue<int, less<int>, thin_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
new file mode 100644
index 000000000000..733dca311d07
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/basic_set.cc
@@ -0,0 +1,137 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_set_example.cpp
+ * A basic example showing how to use sets.
+ */
+
+/**
+ * This example shows how to use "sets". It defines a
+ * function performing a sequence of operations on
+ * a generic container. It then calls this function with some containers.
+ */
+
+#include <iostream>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// The following function performs a sequence of operations on an
+// associative container object storing integers.
+template<class Cntnr>
+void
+some_op_sequence(Cntnr& r_c)
+{
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  r_c.insert(1);
+  r_c.insert(2);
+
+  assert(!r_c.empty());
+  assert(r_c.size() == 2);
+
+  cout << "All value types in the container:" << endl;
+  for (typename Cntnr::const_iterator it = r_c.begin(); it != r_c.end();
+       ++it)
+    cout <<* it << " ";
+
+  cout << endl;
+
+  r_c.clear();
+
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+}
+
+int main()
+{
+  {
+    // Perform operations on a collision-chaining hash set.
+    cc_hash_table<int, null_mapped_type> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a general-probing hash set.
+    gp_hash_table<int, null_mapped_type> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a red-black tree set.
+    tree<int, null_mapped_type> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a splay tree set.
+    tree<
+      int,
+      null_mapped_type,
+      less<int>,
+      splay_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a splay tree set.
+    tree<
+      int,
+      null_mapped_type,
+      less<int>,
+      ov_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a list-update set.
+    list_update<int, null_mapped_type> c;
+    some_op_sequence(c);
+  }
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
new file mode 100644
index 000000000000..9142bd483776
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/erase_if.cc
@@ -0,0 +1,133 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_if_example.cpp
+ * A basic example showing how to use erase_if.
+ */
+
+/**
+ * The following example shows how to use a conditional-erase
+ * method of associative containers to erase some of their entries.
+ */
+
+#include <iostream>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// The following functor takes a map's value-type object and returns
+// whether its key is between two numbers.
+struct between : public unary_function<pair<const int, char>, bool>
+{
+  // Constructor taking two numbers determining a range.
+  between(int b, int e) : m_b(b), m_e(e)
+  { assert(m_b < m_e); }
+
+  // Operator determining whether a value-type object's key is within
+  // the range.
+  inline bool
+  operator()(const pair<const int, char>& r_val)
+  { return r_val.first >= m_b&&  r_val.first < m_e; }
+
+private:
+  const int m_b;
+  const int m_e;
+};
+
+/**
+ * The following function performs a sequence of operations on an
+ * associative container object mapping integers to characters. Specifically
+ * it inserts 100 values and then uses a conditional-erase method to erase
+ * the values whose key is between 10 and 90.
+ */
+template<class Cntnr>
+void
+some_op_sequence(Cntnr r_c)
+{
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  for (int i = 0; i < 100; ++i)
+    r_c.insert(make_pair(i, static_cast<char>(i)));
+  assert(r_c.size() == 100);
+
+  // Erase all values whose key is between 10 (inclusive) and 90
+  // (non-inclusive).
+  r_c.erase_if(between(10 , 90));
+
+  assert(!r_c.empty());
+  assert(r_c.size() == 20);
+}
+
+int main()
+{
+  // Perform operations on a list-update set.
+  some_op_sequence(list_update<int, char>());
+
+  // Perform operations on a collision-chaining hash set.
+  some_op_sequence(cc_hash_table<int, char>());
+
+  // Perform operations on a general-probing hash set.
+  some_op_sequence(gp_hash_table<int, char>());
+
+  // Perform operations on a red-black tree set.
+  some_op_sequence(tree<int, char>());
+
+  // Perform operations on a splay tree set.
+  some_op_sequence(tree<
+		   int,
+		   char,
+		   less<int>,
+		   splay_tree_tag>());
+
+  // Perform operations on a splay tree set.
+  some_op_sequence(tree<
+		   int,
+		   char,
+		   less<int>,
+		   ov_tree_tag>());
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
new file mode 100644
index 000000000000..a38c7fb6b3f2
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_find_neg.cc
@@ -0,0 +1,79 @@
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_bad_find_example.cpp
+ * An example showing how *not* to use unordered containers.
+ */
+
+/**
+ * This non-compiling example shows wrong use of unordered
+ * associative-containers. These types of containers have distinct
+ * point-type and range-type iterator types.
+ **/
+
+#include <utility>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+int main()
+{
+  // A collision-chaining hash table mapping ints to chars.
+  typedef cc_hash_table<int, char> map_t;
+
+  // A map_t object.
+  map_t h;
+
+  // Insert a value mapping the int 1 to the char 'a'.
+  h.insert(make_pair(1, 'a'));
+
+  // Find the entry of the key '1' the* wrong* way.
+  // The following line will not compile, since map_t::find returns a
+  // point-iterator, which, by design, is not convertible to a
+  // range-iterator.
+  map_t::iterator it = h.find(1); // { dg-error "conversion from" }
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
new file mode 100644
index 000000000000..9b3e77474880
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_illegal_resize.cc
@@ -0,0 +1,137 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_illegal_resize_example.cpp
+ * An example of illegally
+ *    externally resizing a hash-based container object.
+ */
+
+/**
+ * This example shows the case where a hash-based container object is
+ * resized to a value which it cannot accomodate at runtime. Illegal
+ * runtime resizes cause an exception.
+ */
+
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/exception.hpp>
+#include <cassert>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple hash functor.
+// hash could serve instead of this functor, but it is not yet
+// standard everywhere.
+struct int_hash : public unary_function<int, size_t>
+{
+  inline size_t
+  operator()(const int& r_i) const
+  { return r_i; }
+};
+
+
+int main()
+{
+  // A probing hash table mapping ints to chars.
+  typedef
+    gp_hash_table<
+    int,
+    int,
+    int_hash,
+    equal_to<
+    int>,
+    // Combining function.
+    direct_mod_range_hashing<>,
+    // Probe function.
+    quadratic_probe_fn<>,
+    // Resize policy.
+    hash_standard_resize_policy<
+    hash_prime_size_policy,
+    hash_load_check_resize_trigger<>,
+    /* Allow external access to size.
+     *     Without setting this to true, external resizing
+     *     is not possible.
+     */
+    true> >
+    map_t;
+
+  map_t g;
+
+  // Insert some elements.
+  int i;
+
+  for (i = 0; i < 1000; ++i)
+    g[i] = 2*  i;
+
+  // Check all ok.
+  assert(g.size() == 1000);
+  for (i = 0; i < 1000; ++i)
+    assert(g.find(i) != g.end()&&  g.find(i)->second == 2*  i);
+
+  // Now attempt to resize the table to 200 (impossible).
+  bool ex_thrown = false;
+
+  try
+    {
+      g.resize(200);
+    }
+  catch(pb_ds::resize_error& )
+    {
+      ex_thrown = true;
+    }
+
+  // Assert an exception was thrown. A probing table cannot contain
+  // 1000 entries in less than 1000 places.
+  assert(ex_thrown);
+
+  // Irrespective of the fact that the resize was not successful, the
+  // container object should still be in a valid state; the following
+  // checks this.
+  // Check all ok.
+  assert(g.size() == 1000);
+  for (i = 0; i < 1000; ++i)
+    assert(g.find(i) != g.end()&&  g.find(i)->second == 2*  i);
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
new file mode 100644
index 000000000000..5107657dac62
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_initial_size.cc
@@ -0,0 +1,120 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_initial_size_example.cpp
+ * An example of setting an initial size for a container object.
+ */
+
+/**
+ * This example shows how to set the initial size of a hash-based
+ * container object through its resize-policy object.
+ */
+
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple hash functor.
+// hash could serve instead of this functor, but it is not yet
+// standard everywhere.
+struct int_hash : public unary_function<int, size_t>
+{
+  inline size_t
+  operator()(const int& r_i) const
+  { return r_i; }
+};
+
+int main()
+{
+  // Resize policy type.
+  typedef
+    hash_standard_resize_policy<
+    // Size-policy type.
+    hash_exponential_size_policy<>,
+    // Trigger-policy type.
+    hash_load_check_resize_trigger<>,
+    /* Allow external access to size.
+     *     This is just used in this example for using the
+     *     get_actual_size method (which won't be accessible without
+     *     this flag.
+     */
+    true>
+    resize_policy_t;
+
+  // A collision-probing hash table mapping ints to chars.
+  typedef
+    gp_hash_table<
+    int,
+    char,
+    int_hash,
+    equal_to<
+    int>,
+    // Combining function.
+    direct_mask_range_hashing<>,
+    // Probe function.
+    linear_probe_fn<>,
+    // Resize policy.
+    resize_policy_t>
+    map_t;
+
+  // A resize-policy object with suggested initial size 256.
+  resize_policy_t res(hash_exponential_size_policy<>(256));
+
+  map_t g(int_hash(),
+	  equal_to<int>(),
+	  direct_mask_range_hashing<>(),
+	  linear_probe_fn<>(),
+	  res);
+
+  // Check the actual size of the container object. In this case, this
+  // should be the initial size given by the size policy object.
+  assert(g.get_actual_size() == 256);
+
+  // The logical size of g, though is 0 (it does not contain any elements).
+  assert(g.size() == 0);
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
new file mode 100644
index 000000000000..f8132e8e8db5
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_load_set_change.cc
@@ -0,0 +1,141 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_load_set_change_example.cpp
+ * An example of setting and changing the load factor of a hash-based
+ *    container object.
+ */
+
+/**
+ * This example shows how to set and change the load-factor of
+ * a hash-based container object through its resize-policy object.
+ */
+
+#include <functional>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple hash functor.
+// hash could serve instead of this functor, but it is not yet
+// standard everywhere.
+struct int_hash : public unary_function<int, size_t>
+{
+  inline size_t
+  operator()(int i) const
+  { return i; }
+};
+
+int main()
+{
+  // A trigger policy type.
+  typedef hash_load_check_resize_trigger< true> trigger_t;
+
+  // A resize policy type.
+  typedef
+    hash_standard_resize_policy<
+    hash_exponential_size_policy<>,
+    // Trigger type.
+    trigger_t,
+    /* Allow external access to size.
+     * This is not necessary for setting the load factor,
+     * but it allows to call get_actual_size.
+     */
+    true>
+    resize_t;
+
+  // A collision-chaining hash table mapping ints to chars.
+  typedef
+    cc_hash_table<
+    int,
+    char,
+    int_hash,
+    equal_to<int>,
+    // Combining function.
+    direct_mask_range_hashing<>,
+    // Resize policy.
+    resize_t>
+    map_t;
+
+  // A trigger policy object with load between 0.3 and 0.8.
+  trigger_t trigger(static_cast<float>(0.3), static_cast<float>(0.8));
+
+  // A resize policy object with the above trigger.
+  resize_t resize(hash_exponential_size_policy<>(),
+		  trigger);
+
+  map_t r_c(int_hash(),
+	    equal_to<int>(),
+	    direct_mask_range_hashing<>(),
+	    resize);
+
+  r_c[1] = 'a';
+
+  // Check the loads and sizes.
+  assert(r_c.get_loads().first == static_cast<float>(0.3));
+  assert(r_c.get_loads().second == static_cast<float>(0.8));
+  assert(r_c.get_actual_size() == 8);
+  assert(r_c.size() == 1);
+
+  // Note that there is a discrepancy between the loads of the policy
+  // object and the actual size of the container object. This is
+  // because the container's construction performs an implicit
+  // external resize.
+  r_c[2] = 'b';
+  r_c[3] = 'c';
+  r_c[4] = 'd';
+
+  assert(r_c.get_actual_size() == 8);
+
+  // Change the loads. This causes (potentially) a resize.
+  r_c.set_loads(make_pair(static_cast<float>(0.01),
+			  static_cast<float>(0.05)));
+
+  // The actual size should really change in this case.
+  assert(r_c.get_actual_size() > 8);
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
new file mode 100644
index 000000000000..500ed44724de
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_mod.cc
@@ -0,0 +1,96 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_mod_example.cpp
+ * An example showing how to use a mod range-hasing function
+ */
+
+/**
+ * This example shows how to use a hash-based container employing
+ * a modulo-based range-hashing function.
+ */
+
+#include <functional>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple hash functor.
+// hash could serve instead of this functor, but it is not yet
+// standard everywhere.
+struct int_hash : public unary_function<int, size_t>
+{
+  inline size_t
+  operator()(int i) const
+  { return i; }
+};
+
+int main()
+{
+  // In this case, we are worried that the key distribution will be
+  // skewed. We wish to use a more robust combining function.
+
+  // A collision-chaining hash table mapping ints to chars.
+  typedef
+    cc_hash_table<
+    int,
+    char,
+    int_hash,
+    equal_to<int>,
+    // Combining function.
+    direct_mod_range_hashing<> >
+    map_t;
+
+  map_t r_c;
+
+  // Use regularly.
+  r_c[32] = 'b';
+  r_c[1024] = 'c';
+  r_c[4096] = 'd';
+
+  // The above keys are all powers of 2. A mask combining function
+  // would hamper performance in such a case.
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
new file mode 100644
index 000000000000..b6421bdaf996
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize.cc
@@ -0,0 +1,135 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_resize_example.cpp
+ * An example of externally resizing a map.
+ */
+
+/**
+ * This example shows how to externally manipulate the size of a hash-based
+ * container object throught its resize-policy object.
+ **/
+
+#include <functional>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple hash functor.
+// hash could serve instead of this functor, but it is not yet
+// standard everywhere.
+struct int_hash : public unary_function<int, size_t>
+{
+  inline size_t
+  operator()(const int& r_i) const
+  { return r_i; }
+};
+
+int main()
+{
+  // A probing hash table mapping ints to chars.
+  typedef
+    gp_hash_table<
+    int,
+    char,
+    int_hash,
+    equal_to<
+    int>,
+    // Combining function.
+    direct_mask_range_hashing<>,
+    // Probe function.
+    linear_probe_fn<>,
+    // Resize policy.
+    hash_standard_resize_policy<
+    hash_exponential_size_policy<>,
+    hash_load_check_resize_trigger<>,
+    /* Allow external access to size.
+     * Without setting this to true, external resizing
+     * is not possible.
+     */
+    true> >
+    map_t;
+
+  map_t g;
+
+  // Check the actual size of the container object. In this case, this
+  // should be the initial size given by the size policy object.
+  assert(g.get_actual_size() == 8);
+
+  // Insert some elements.
+  g[1] = 'a';
+  g[2] = 'b';
+  g[3] = 'c';
+
+  // Now resize the table upward.
+  g.resize(200);
+
+  // Check the actual size of the container object. 
+  // For the policy used in this example, the nearest larger size than
+  // 200 is 256.
+  assert(g.get_actual_size() == 256);
+
+  g[67] = 'g';
+  g[22] = 'f';
+
+  // Regardless of the internal size, the logical size should be 5.
+  assert(g.size() == 5);
+
+  // Now resize the table downward.
+  g.resize(106);
+
+  // Check the actual size of the container object. 
+  // For the policy used in this example, the nearest larger size than
+  // 106 is 128.
+  assert(g.get_actual_size() == 128);
+
+  g[37] = 'f';
+
+  // Regardless of the internal size, the logical size should be 5.
+  assert(g.size() == 6);
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
new file mode 100644
index 000000000000..908675cad1cd
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_resize_neg.cc
@@ -0,0 +1,74 @@
+// { dg-do compile }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_bad_resize_example.cpp
+ * An example showing how *not* to resize a hash-based container.
+ */
+
+/**
+ * This non-compiling example shows wrong use of hash-based
+ * containers. By default, resize policies don't allow external size
+ * access.
+ **/
+
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+int main()
+{
+  // A collision-chaining hash table mapping ints to chars.
+  typedef cc_hash_table< int, char> map_t;
+
+  // A map_t object.
+  map_t h;
+
+  // The following line won't compile. The resize policy needs to be
+  // configured to allow external resize (by default, this is not
+  // available).
+  h.resize(20); // { dg-error "instantiated from" }
+}
+
+// { dg-error "invalid" "" { target *-*-* } 236 } 
+// { dg-excess-errors "member function" } 
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
new file mode 100644
index 000000000000..33d00120d445
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/hash_shift_mask.cc
@@ -0,0 +1,118 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_shift_mask_example.cpp
+ * An example showing how to write a range-hasing functor.
+ */
+
+/**
+ * In some rare cases, advance knowledge of the distribution of keys allows
+ * writing more efficient hash-related policies.
+ * In the rather simplistic case of the example, it is known in advance that
+ * all keys have 0 two lowest bits. The example shows how to write
+ * a range-hashing function disregarding the two lowest bits of the hash value.
+ */
+
+#include <functional>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A simple hash functor. hash could serve instead of this functor,
+// but it is not yet standard everywhere.
+struct simple_int_hash : public unary_function<int, size_t>
+{
+  inline size_t
+  operator()(int i) const
+  { return i; }
+};
+
+// A range-hashing function which shifts 2 bits right and then masks.
+class shift_two_mask_range_hashing : private direct_mask_range_hashing<>
+{
+public:
+  typedef size_t size_type;
+
+  // Swaps with a different instant.
+  void
+  swap(shift_two_mask_range_hashing& other)
+  { direct_mask_range_hashing<>::swap(other); }
+
+  // Called by the container when internally resized.
+  void
+  notify_resized(size_type size)
+  { direct_mask_range_hashing<>::notify_resized(size); }
+
+  // Given a hash value, returns a number in the range of the internal
+  // size of the container.
+  inline size_type
+  operator()(size_type hash) const
+  { return direct_mask_range_hashing<>::operator()(hash >> 2); }
+};
+
+int
+main()
+{
+  // A collision-chaining hash table mapping ints to chars.
+  typedef
+    cc_hash_table<
+    int,
+    char,
+    // Hash function.
+    simple_int_hash,
+    equal_to<int>,
+    // Range hashing function.
+    shift_two_mask_range_hashing>
+    map_t;
+
+  map_t h;
+
+  // Use normally.
+  h[16] = 'a';
+  h[256] = 'e';
+  h[4] = 'z';
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
new file mode 100644
index 000000000000..f2f0e3b4280a
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_container_traits.cc
@@ -0,0 +1,211 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_container_traits_example.cpp
+ * A basic example showing how to use container_traits for querying container types
+ *    for their behavior.
+ */
+
+/**
+ * The following example shows how to use container_traits in order to print
+ * out information on an priority queue's behavior, e.g., its underlying
+ * data structure.
+ */
+
+#include <iostream>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+template<class DS_Category>
+void
+print_container_category(DS_Category);
+
+template<>
+void
+print_container_category(binary_heap_tag)
+{ cout << "Binary heap:" << endl; }
+
+template<>
+void
+print_container_category(binomial_heap_tag)
+{ cout << "Binomial heap:" << endl; }
+
+template<>
+void
+print_container_category(rc_binomial_heap_tag)
+{ cout << "Redundant-counter binomial heap:" << endl; }
+
+template<>
+void
+print_container_category(pairing_heap_tag)
+{ cout << "Pairing heap:" << endl; }
+
+template<>
+void
+print_container_category(thin_heap_tag)
+{ cout << "Thin heap:" << endl; }
+
+template<class Invalidation_Guarantee>
+void
+print_invalidation_guarantee(Invalidation_Guarantee);
+
+template<>
+void
+print_invalidation_guarantee(basic_invalidation_guarantee)
+{
+  cout << "Guarantees only that found references, pointers, and "
+    "iterators are valid as long as the container object is not "
+    "modified" << endl;
+}
+
+template<>
+void
+print_invalidation_guarantee(point_invalidation_guarantee)
+{
+  cout << "Guarantees that found references, pointers, and "
+    "point_iterators are valid even if the container object "
+    "is modified" << endl;
+}
+
+template<>
+void
+print_invalidation_guarantee(range_invalidation_guarantee)
+{
+  cout << "Guarantees that iterators remain valid even if the "
+    "container object is modified" << endl;
+}
+
+void
+print_split_join_can_throw(bool can)
+{
+  if (can)
+    {
+      cout << "Can throw exceptions if split or joined" << endl;
+      return;
+    }
+  cout << "Cannot throw exceptions if split or joined" << endl;
+}
+
+template<class DS_Traits>
+void
+print_container_attributes()
+{
+  // First print out the data structure category.
+  print_container_category(typename DS_Traits::container_category());
+
+  // Now print the attributes of the container.
+  print_invalidation_guarantee(typename DS_Traits::invalidation_guarantee());
+  print_split_join_can_throw(DS_Traits::split_join_can_throw);
+  cout << endl << endl;
+}
+
+int main()
+{
+  {
+    // Print the attributes of a binary heap.
+    typedef
+      pb_ds::priority_queue<
+      int,
+      std::less<int>,
+      binary_heap_tag>
+      t;
+
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of a binomial heap.
+    typedef
+      pb_ds::priority_queue<
+      int,
+      std::less<int>,
+      binomial_heap_tag>
+      t;
+
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of a redundant-counter binomial heap.
+    typedef
+      pb_ds::priority_queue<
+      int,
+      std::less<int>,
+      rc_binomial_heap_tag>
+      t;
+
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    // Print the attributes of a pairing heap.
+    typedef
+      pb_ds::priority_queue<
+      int,
+      std::less<int>,
+      pairing_heap_tag>
+      t;
+
+    print_container_attributes<container_traits<t> >();
+  }
+
+  {
+    /**
+     *  Print the attributes of a thin heap.
+     */
+
+    typedef
+      pb_ds::priority_queue<
+      int,
+      std::less<int>,
+      thin_heap_tag>
+      t;
+
+    print_container_attributes<container_traits<t> >();
+  }
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
new file mode 100644
index 000000000000..53a788d5d552
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_dijkstra.cc
@@ -0,0 +1,164 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_dijkstra_example.cpp
+ * A basic example showing how to cross reference a vector and a
+ * priority-queue for modify.
+ */
+
+/**
+ * This example shows how to cross-reference priority queues
+ * and a vector. I.e., using a vector to
+ * map keys to entries in a priority queue, and using the priority
+ * queue to map entries to the vector. The combination
+ * can be used for fast modification of keys.
+ *
+ * As an example, a very simple form of Diskstra's algorithm is used. The graph
+ * is represented by an adjacency matrix. Nodes and vertices are size_ts, and
+ * it is assumed that the minimal path between any two nodes is less than 1000.
+ */
+
+
+
+#include <vector>
+#include <iostream>
+#include <ext/pb_ds/priority_queue.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// The value type of the priority queue.
+// The first entry is the node's id, and the second is the distance.
+typedef std::pair<size_t, size_t> pq_value;
+
+// Comparison functor used to compare priority-queue value types.
+struct pq_value_cmp : public binary_function<pq_value, pq_value, bool>
+{
+  inline bool
+  operator()(const pq_value& r_lhs, const pq_value& r_rhs) const
+  {
+    // Note that a value is considered smaller than a different value
+    // if its distance is* larger*. This is because by STL
+    // conventions, "larger" entries are nearer the top of the
+    // priority queue.
+    return r_rhs.second < r_lhs.second;
+  }
+};
+
+int main()
+{
+  enum
+    {
+      // Number of vertices is hard-coded in this example.
+      num_vertices = 5,
+      // "Infinity".
+      graph_inf = 1000
+    };
+
+  // The edge-distance matrix.
+  // For example, the distance from node 0 to node 1 is 5, and the
+  // distance from node 1 to node 0 is 2.
+  const size_t a_a_edge_legnth[num_vertices][num_vertices] =
+    {
+      {0, 5, 3, 7, 6},
+      {2, 0, 2, 8, 9},
+      {2, 1, 0, 8, 0},
+      {1, 8, 3, 0, 2},
+      {2, 3, 4, 2, 0}
+    };
+
+  // The priority queue type.
+  typedef pb_ds::priority_queue< pq_value, pq_value_cmp> pq_t;
+
+  // The priority queue object.
+  pq_t p;
+
+  // This vector contains for each node, a find-iterator into the
+  // priority queue.
+  vector<pq_t::point_iterator> a_it;
+
+  // First we initialize the data structures.
+
+  // For each node, we push into the priority queue a value
+  // identifying it with a distance of infinity.
+  for (size_t i = 0; i < num_vertices; ++i)
+    a_it.push_back(p.push(pq_value(i, graph_inf)));
+
+  // Now we take the initial node, in this case 0, and modify its
+  // distance to 0.
+  p.modify(a_it[0], pq_value(0, 0));
+
+  // The priority queue contains all vertices whose final distance has
+  // not been determined, so to finish the algorithm, we must loop
+  // until it is empty.
+  while (!p.empty())
+    {
+      // First we find the node whose distance is smallest.
+      const pq_value& r_v = p.top();
+      const size_t node_id = r_v.first;
+      const size_t dist = r_v.second;
+
+      // This is the node's final distance, so we can print it out.
+      cout << "The distance from 0 to " << node_id 
+	   << " is " << dist << endl;
+
+      // Now we go over the node's neighbors and "relax" the
+      // distances, if applicable.
+      for (size_t neighbor_i = 0; neighbor_i < num_vertices; ++neighbor_i)
+        {
+	  // Potentially, the distance to the neighbor is the distance
+	  // to the currently-considered node + the distance from this
+	  // node to the neighbor.
+	  const size_t pot_dist = dist + a_a_edge_legnth[node_id][neighbor_i];
+
+	  // "Relax" the distance (if appropriate) through modify.
+	  if (pot_dist < a_it[neighbor_i]->second)
+	    p.modify(a_it[neighbor_i], pq_value(neighbor_i, pot_dist));
+        }
+
+      // Done with the node, so we pop it.
+      p.pop();
+    }
+
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
new file mode 100644
index 000000000000..b67c8aed5d92
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_erase_if.cc
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_erase_if.cpp
+ * Example showing how to conditionally erase values from a priority queue.
+ */
+
+/**
+ * This example shows how to erase from a priority queue using erase_if.
+ */
+
+#include <functional>
+#include <iostream>
+#include <cassert>
+#include <ext/pb_ds/priority_queue.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+int
+main()
+{
+  pb_ds::priority_queue<int> p;
+
+  // First we insert some values into the container.
+  for (int i = 0; i < 1000; ++i)
+    p.push(i);
+
+  assert(p.top() == 999);
+
+  // Now we erase all values that satisfy some predicate, in this case
+  // one that returns true for all those larger than 500.
+  p.erase_if(bind1st(less<int>(), 500));
+
+  // The largest value should be now 500.
+  assert(p.top() == 500);
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
new file mode 100644
index 000000000000..e59cb34918da
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_split_join.cc
@@ -0,0 +1,135 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_split_join_example.cpp
+ * A basic example showing how to split and join priority queues.
+ */
+
+/**
+ * This example shows how to split and join priority queues.
+ */
+
+#include <functional>
+#include <iostream>
+#include <cassert>
+#include <ext/pb_ds/priority_queue.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+int
+main()
+{
+  // Two priority queue objects.
+  pb_ds::priority_queue<int> even_p, odd_p;
+
+  // First we insert some values: even ones into even_p, and odd ones
+  // into odd_p.
+  for (size_t i = 0; i < 10; ++i)
+    {
+      even_p.push(2*  i);
+      odd_p.push(2*  i + 1);
+    }
+
+  // Check that each one contains the appropriate 10 values.
+  assert(even_p.size() == 10);
+  assert(even_p.top() == 18);
+
+  // Print out the values.
+  cout << "Initial values in even priority queue:" << endl;
+  pb_ds::priority_queue<int>::const_iterator it;
+  for (it = even_p.begin(); it != even_p.end(); ++it)
+    cout <<* it << endl;
+
+  assert(odd_p.size() == 10);
+  assert(odd_p.top() == 19);
+
+  // Print out the values.
+  cout << "Initial values in odd priority queue:" << endl;
+  for (it = odd_p.begin(); it != odd_p.end(); ++it)
+    cout <<* it << endl;
+
+  // Now join the queues.
+  even_p.join(odd_p);
+
+  // Check that each one contains the appropriate values.
+
+  assert(even_p.size() == 20);
+  assert(even_p.top() == 19);
+
+  // Print out the values.
+  cout << "After-join values in even priority queue:" << endl;
+  for (it = even_p.begin(); it != even_p.end(); ++it)
+    cout <<* it << endl;
+
+  assert(odd_p.size() == 0);
+
+  // Print out the values.
+  cout << "After-join values in odd priority queue:" << endl;
+  for (it = odd_p.begin(); it != odd_p.end(); ++it)
+    cout <<* it << endl;
+
+  // Now split the queues.
+  even_p.split(bind2nd(modulus<int>(), 2), odd_p);
+
+  // Check that each one contains the appropriate 10 values.
+
+  assert(even_p.size() == 10);
+  assert(even_p.top() == 18);
+
+  // Print out the values.
+  cout << "After-split values in even priority queue:" << endl;
+  for (it = even_p.begin(); it != even_p.end(); ++it)
+    cout <<* it << endl;
+
+  assert(odd_p.size() == 10);
+  assert(odd_p.top() == 19);
+
+  // Print out the values.
+  cout << "After-split values in odd priority queue:" << endl;
+  for (it = odd_p.begin(); it != odd_p.end(); ++it)
+    cout <<* it << endl;
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
new file mode 100644
index 000000000000..c718d1f86ffd
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/priority_queue_xref.cc
@@ -0,0 +1,221 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_xref_example.cpp
+ * A basic example showing how to cross-reference priority queues and other
+ *    containers for erase.
+ */
+
+/**
+ * This example shows how to cross-reference priority queues
+ * and other containers. I.e., using an associative container to
+ * map keys to entries in a priority queue, and using the priority
+ * queue to map entries to the associative container. The combination
+ * can be used for fast operations involving both priorities and
+ * arbitrary keys.
+ *
+ * The most useful examples of this technique are usually from the
+ * field of graph algorithms (where erasing or modifying an arbitrary
+ * entry of a priority queue is sometimes necessary), but a full-blown
+ * example would be too long. Instead, this example shows a very simple
+ * version of Dijkstra's
+ */
+
+#include <iostream>
+#include <cassert>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// A priority queue of integers, which supports fast pushes,
+// duplicated-int avoidance, and arbitrary-int erases.
+class mapped_priority_queue
+{
+public:
+
+  // Pushes an int into the container. If the key is already in, this
+  // is a no-op.
+  void
+  push(const int& r_str);
+
+  // Returns a const reference to the largest int in the container.
+  const int
+  top() const
+  {
+    assert(!empty());
+    return m_pq.top();
+  }
+
+  // Erases the largest int in the container.
+  void
+  pop();
+
+  // Erases an arbitrary int. If the int is not in the container, this
+  // is a no-op, and the return value is false.
+  bool
+  erase(const int& r_str);
+
+  bool
+  empty() const
+  { return m_pq.empty(); }
+
+  size_t
+  size() const
+  { return m_pq.size(); }
+
+private:
+  // A priority queue of strings.
+  typedef pb_ds::priority_queue< int> pq_t;
+
+  // A hash-table mapping strings to point_iterators inside the
+  // priority queue.
+  typedef cc_hash_table< int, pq_t::point_iterator> map_t;
+
+  pq_t m_pq;
+  map_t m_map;
+};
+
+void
+mapped_priority_queue::
+push(const int& r_str)
+{
+  // First check if the int is already in the container. If so, just return.
+  if (m_map.find(r_str) != m_map.end())
+    return;
+
+  // Push the int into the priority queue, and store a point_iterator to it.
+  pq_t::point_iterator pq_it = m_pq.push(r_str);
+
+  try
+    {
+      // Now make the map associate the int to the point_iterator.
+      m_map[r_str] = pq_it;
+    }
+  catch(...)
+    {
+      // If the above failed, we need to remove the int from the
+      // priority queue as well.
+      m_pq.erase(pq_it);
+      throw;
+    }
+}
+
+void
+mapped_priority_queue::
+pop()
+{
+  assert(!empty());
+
+  // Erase the int from the map.
+  m_map.erase(m_pq.top());
+
+  // ...then from the priority queue.
+  m_pq.pop();
+}
+
+bool
+mapped_priority_queue::
+erase(const int& r_str)
+{
+  map_t::point_iterator map_it = m_map.find(r_str);
+
+  // If the int is not in the map, this is a no-op.
+  if (map_it == m_map.end())
+    return false;
+
+  // Otherwise, we erase it from the priority queue.
+  m_pq.erase(map_it->second);
+
+  // ...then from the map.
+  m_map.erase(r_str);
+
+  return true;
+}
+
+int main()
+{
+  // Push some values into the container object.
+  mapped_priority_queue m;
+  m.push(1);
+  m.push(2);
+
+  // The following four operations are no-ops: 2 and 1 are already in
+  // the container.
+  m.push(2);
+  m.push(2);
+  m.push(2);
+  m.push(1);
+
+  m.push(10);
+  m.push(11);
+  m.push(12);
+
+  // The size should be 5, since m contains the set {1, 2, 10, 11, 12}.
+  assert(m.size() == 5);
+
+  // The largest value should be 12.
+  assert(m.top() == 12);
+
+  // Now erase some values.
+
+  // Erasing 1 actually erases a value.
+  assert(m.erase(1));
+
+  // ...but erasing 1 again is a no-op.
+  assert(!m.erase(1));
+
+  // The size should be 5, since m contains the set {2, 10, 11, 12}.
+  assert(m.size() == 4);
+
+  // Now print the values in the container.
+  while (!m.empty())
+    {
+      cout << m.top() << endl;
+      m.pop();
+    }
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
new file mode 100644
index 000000000000..4dc3721ad917
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/ranged_hash.cc
@@ -0,0 +1,162 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file ranged_hash_example.cpp
+ * A basic example showing how to write a ranged-hash functor.
+ */
+
+/**
+ * In some cases it is beneficial to write a hash function which determines
+ * hash values based on the size of the container object.
+ * The example shows an example of a string-hashing function which
+ * uses a fast method for hashing strings when the number of strings
+ * in the container object is small, and a slower but more careful method
+ * for hashing strings when the number of strings in the container object
+ * is large.
+ */
+
+#include <functional>
+#include <cassert>
+#include <string>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+/**
+ * A (somewhat simplistic) ranged-hash function for strings.
+ * It uses the size of the container object to determine
+ * the hashing method. For smaller sizes it uses a simple hash function;
+ * for larger sizes it uses a more complicated hash function.
+ */
+class simple_string_ranged_hash_fn 
+  : public unary_function<string, size_t>
+{
+public:
+  typedef size_t size_type;
+
+  simple_string_ranged_hash_fn() : m_container_size(0) { }
+
+  // Called to notify that the size has changed.
+  void
+  notify_resized(size_t size)
+  { m_container_size = size; }
+
+  // Called for hashing a string into a size_t in a given range.
+  size_t
+  operator()(const string& r_string)
+  {
+    /*
+     *  This (simplified) hash algorithm decides that if there are
+     *  fewer than 100 strings in the container it will hash
+     *  a string by summing its characters; otherwise, it will
+     *  perform a more complicated operation in order to produce
+     *  hash values with fewer collisions.
+     */
+    string::const_iterator it = r_string.begin();
+    size_t hash = 0;
+    if (m_container_size < 100)
+      {
+	// For this size, perform an accumulate type of operation.
+	while (it != r_string.end())
+	  hash += static_cast<size_t>(*it++);
+      }
+    else
+      {
+	// For this size, perform a different operation.
+	while (it != r_string.end())
+	  {
+	    hash += static_cast<size_t>(*it++);
+	    hash *= 5;
+	  }
+      }
+
+    // The function must, by whatever means, return a size in the
+    // range 0 to m_container_size.
+    return hash % m_container_size;
+  }
+
+  // Swaps content.
+  void
+  swap(simple_string_ranged_hash_fn& other)
+  {
+    std::swap(m_container_size, other.m_container_size);
+  }
+
+private:
+  // Records the size of the container object.
+  size_t m_container_size;
+};
+
+int
+main()
+{
+  // A collision-chaining hash table storing strings.
+  typedef
+    cc_hash_table<
+    string,
+    null_mapped_type,
+    null_hash_fn,
+    equal_to<string>,
+    simple_string_ranged_hash_fn>
+    set_t;
+
+  // Note that in the above, the library determines a resize policy
+  // appropriate for modulo-based range hashing.
+  set_t h;
+
+  // Use the table normally.
+  h.insert("Hello, ");
+  h.insert("world");
+
+  assert(h.size() == 2);
+
+  assert(h.find("Hello, ") != h.end());
+  assert(h.find("world") != h.end());
+
+  assert(h.find("Goodbye, oh cruel world!") == h.end());
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
new file mode 100644
index 000000000000..11ef830cf7ca
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/store_hash.cc
@@ -0,0 +1,107 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file store_hash_example.cpp
+ * An example showing how to store hash-values with
+ *     each entry in a hash-based container.
+ */
+
+/**
+ * This example shows how to configure a hash-based container to store
+ * the hash value of each key along with each entry. This technique
+ * is useful for complex keys (e.g., strings in this example), since
+ * it lowers the cost of collisions. For simpler types (e.g., integers),
+ * where the cost of comparing keys is of the same order as the cost
+ * of comparing hash values, this technique adds unnecessary overhead.
+ */
+
+#include <functional>
+#include <string>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/hash_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// A string hash functor.
+struct string_hash : public unary_function<string, size_t>
+{
+  inline size_t
+  operator()(string str) const
+  {
+    string::const_iterator b = str.begin();
+    string::const_iterator e = str.end();
+
+    size_t hash = 0;
+    while (b != e)
+      {
+	hash *= 5;
+	hash += static_cast<size_t>(*b);
+	++b;
+      }
+    return hash;
+  }
+};
+
+int main()
+{
+  // A collision-chaining hash table mapping strings to ints.
+  typedef
+    cc_hash_table<
+    string,
+    int,
+    string_hash,
+    equal_to<string>,
+    direct_mask_range_hashing<>,
+    hash_standard_resize_policy<>,
+    true>
+    map_t;
+
+  map_t h;
+
+  // Use regularly.
+  h["Hello, "] = 0;
+  h["world"] = 1;
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
new file mode 100644
index 000000000000..e82150de2b48
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_intervals.cc
@@ -0,0 +1,223 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_intervals_example.cpp
+ * An example showing how to augment a trees to support operations involving
+ *    line intervals.
+ */
+
+/**
+ * In some cases tree structure can be used for various purposes other
+ * than storing entries by key order.  This example shows how a
+ * tree-based container can be used for geometric-line intersection
+ * determination. That is, the key of the container is a pair of
+ * numbers representing a line interval. The container object can be
+ * used to query whether a line interval intersects any line interval
+ * it currently stores.
+ *
+ * This type of problem arises not only in geometric applications, but
+ * also sometimes in distributed filesystems. Assume that "leases" are
+ * taken for parts of files or LUNs. When a new lease is requested, it
+ * is necessary to check that it does not conflict with a lease
+ * already taken. In this case a file or LUN can be envisioned as a
+ * line segment; leases requested and granted for contiguous parts of
+ * the file or LUN can be represented as line intervals as well.
+ */
+
+#include <cassert>
+#include <cstdlib>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// Following are definitions of line intervals and functors operating
+// on them. As the purpose of this example is node invariants, and not
+// computational-geometry algorithms per-se, some simplifications are
+// made (e.g., intervals are defined by unsigned integers, and not by
+// a parameterized type, data members are public, etc.).
+
+// An interval of unsigned integers.
+typedef pair< unsigned int, unsigned int> interval;
+
+// Functor updating maximal endpoints of entries. Algorithm taken from
+// "Introduction to Algorithms" by Cormen, Leiserson, and Rivest.
+template<class Const_Node_Iterator,
+	 class Node_Iterator,
+	 class Cmp_Fn,
+	 class Allocator>
+struct intervals_node_update
+{
+public:
+  // The metadata that each node stores is the largest endpoint of an
+  // interval in its subtree. In this case, this is an unsigned int.
+  typedef unsigned int metadata_type;
+
+  // Checks whether a set of intervals contains at least one interval
+  // overlapping some interval. Algorithm taken from "Introduction to
+  // Algorithms" by Cormen, Leiserson, and Rivest.
+  bool
+  overlaps(const interval& r_interval)
+  {
+    Const_Node_Iterator nd_it = node_begin();
+    Const_Node_Iterator end_it = node_end();
+
+    while (nd_it != end_it)
+      {
+	// Check whether r_interval overlaps the current interval.
+	if (r_interval.second >= (*nd_it)->first&&
+	    r_interval.first <= (*nd_it)->second)
+	  return true;
+
+	// Get the const node iterator of the node's left child.
+	Const_Node_Iterator l_nd_it = nd_it.get_l_child();
+
+	// Calculate the maximal endpoint of the left child. If the
+	// node has no left child, then this is the node's maximal
+	// endpoint.
+	const unsigned int l_max_endpoint =(l_nd_it == end_it)?
+	  0 : l_nd_it.get_metadata();
+
+	// Now use the endpoint to determine which child to choose.
+	if (l_max_endpoint >= r_interval.first)
+	  nd_it = l_nd_it;
+	else
+	  nd_it = nd_it.get_r_child();
+      }
+
+    return false;
+  }
+
+protected:
+  // Update predicate: nd_it is a node iterator to the node currently
+  // updated; end_nd_it is a const node iterator to a just-after leaf
+  // node.
+  inline void
+  operator()(Node_Iterator nd_it, Const_Node_Iterator end_nd_it)
+  {
+    // The left maximal endpoint is 0 if there is no left child.
+    const unsigned int l_max_endpoint =(nd_it.get_l_child() == end_nd_it)?
+      0 : nd_it.get_l_child().get_metadata();
+
+    // The right maximal endpoint is 0 if there is no right child.
+    const unsigned int r_max_endpoint =(nd_it.get_r_child() == end_nd_it)?
+      0 : nd_it.get_r_child().get_metadata();
+
+    // The maximal endpoint is the endpoint of the node's interval,
+    // and the maximal endpoints of its children.
+    const_cast<unsigned int&>(nd_it.get_metadata()) =
+      max((*nd_it)->second, max<unsigned int>(l_max_endpoint, r_max_endpoint));
+  }
+
+  virtual Const_Node_Iterator
+  node_begin() const = 0;
+
+  virtual Const_Node_Iterator
+  node_end() const = 0;
+
+  virtual
+  ~intervals_node_update()
+  { }
+};
+
+// The following function performs some operation sequence on a
+// generic associative container supporting order statistics. It
+// inserts some intervals, and checks for overlap.
+template<class Cntnr>
+void
+some_op_sequence(Cntnr r_c)
+{
+  // Insert some entries.
+  r_c.insert(make_pair(0, 100));
+  r_c.insert(make_pair(150, 160));
+  r_c.insert(make_pair(300, 1000));
+  r_c.insert(make_pair(10000, 100000));
+  r_c.insert(make_pair(200, 100200));
+
+  // Test overlaps.
+
+  // Overlaps 150 - 160
+  assert(r_c.overlaps(make_pair(145, 165)) == true);
+  // Overlaps 150 - 160
+  assert(r_c.overlaps(make_pair(145, 155)) == true);
+  assert(r_c.overlaps(make_pair(165, 175)) == false);
+  assert(r_c.overlaps(make_pair(100201, 100203)) == false);
+
+  // Erase an interval
+  r_c.erase(make_pair(150, 160));
+
+  // Test overlaps again.
+  assert(r_c.overlaps(make_pair(145, 165)) == false);
+  assert(r_c.overlaps(make_pair(165, 175)) == false);
+  assert(r_c.overlaps(make_pair(0, 300000)) == true);
+}
+
+int main()
+{
+  // Test a red-black tree.
+  some_op_sequence(tree<
+		   interval,
+		   null_mapped_type,
+		   less<interval>,
+		   rb_tree_tag,
+		   intervals_node_update>());
+
+  // Test an ordered-vector tree.
+  some_op_sequence(tree<
+		   interval,
+		   null_mapped_type,
+		   less<interval>,
+		   ov_tree_tag,
+		   intervals_node_update>());
+
+  // Test a splay tree.
+  some_op_sequence(tree<
+		   interval,
+		   null_mapped_type,
+		   less<interval>,
+		   splay_tree_tag,
+		   intervals_node_update>());
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
new file mode 100644
index 000000000000..795456ab6d56
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_join.cc
@@ -0,0 +1,129 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_join_example.cpp
+ * An example showing how to join splay_tree_map objects.
+ *    The code in the example is relevant to red-black trees as well.
+ */
+
+/**
+ * This example shows how to join tree based containers, i.e., taking two
+ *     objects with non-overlapping sets of keys and combining them into
+ *    a single object.
+ */
+
+// For tree
+#include <ext/pb_ds/assoc_container.hpp>
+// For join_error exception.
+#include <ext/pb_ds/exception.hpp>
+// For assert
+#include <cassert>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+int main()
+{
+  /*
+   *  
+   */
+  // A splay tree table mapping ints to chars.
+  typedef
+    tree<
+    int,
+    char,
+    less<
+    int>,
+    splay_tree_tag>
+    map_t;
+
+  // Two map_t object.
+  map_t h0, h1;
+
+  // Insert some values into the first table.
+  for (int i0 = 0; i0 < 100; ++i0)
+    h0.insert(make_pair(i0, 'a'));
+
+  // Insert some values into the second table.
+  for (int i1 = 0; i1 < 100; ++i1)
+    h1.insert(make_pair(1000 + i1, 'b'));
+
+  // Since all the elements in h0 are smaller than those in h1, it is
+  // possible to join the two tables. This is exception free.
+  h0.join(h1);
+
+  // Check that h0 should now contain all entries, and h1 should be empty.
+  assert(h0.size() == 200);
+  assert(h1.empty());
+
+
+  // Two other map_t objects.
+  map_t h2, h3;
+
+  h2[1] = 'a';
+  h2[3] = 'c';
+
+  h3[2] = 'b';
+
+  // Now perform an illegal join.
+  // It is not true that all elements in h2 are smaller than those in
+  // h3, nor is it true that they are all larger. Hence, attempting to
+  // join h2, and h3 should result in an exception.
+  bool exception_thrown = false;
+  try
+    {
+      h2.join(h3);
+    }
+  catch (pb_ds::join_error& )
+    {
+      exception_thrown = true;
+    }
+  assert(exception_thrown);
+
+  // Since the operation was not performed, the tables should be unaltered.
+  assert(h2.size() == 2);
+  assert(h3[2] == 'b');
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
new file mode 100644
index 000000000000..30ae30912245
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics.cc
@@ -0,0 +1,135 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_order_statistics_example.cpp
+ * An example showing how to use functors for order-statistics
+ *    in tree-based containers.
+ */
+
+/**
+ * In some cases tree structure can be used for various purposes asides
+ *    from storing entries by key order.
+ *    This example shows how a tree-based container can be used for
+ *    order-statistics, i.e., for determining the order of each key
+ *     in the (ordered) sequence of keys stored within the container object.
+ */
+
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// A red-black tree table storing ints and their order
+// statistics. Note that since the tree uses
+// tree_order_statistics_node_update as its update policy, then it
+// includes its methods by_order and order_of_key.
+typedef
+tree<
+  int,
+  null_mapped_type,
+  less<int>,
+  rb_tree_tag,
+  // This policy updates nodes' metadata for order statistics.
+  tree_order_statistics_node_update>
+set_t;
+
+int main()
+{
+  // Insert some entries into s.
+  set_t s;
+  s.insert(12);
+  s.insert(505);
+  s.insert(30);
+  s.insert(1000);
+  s.insert(10000);
+  s.insert(100);
+
+  // The order of the keys should be: 12, 30, 100, 505, 1000, 10000.
+  assert(*s.find_by_order(0) == 12);
+  assert(*s.find_by_order(1) == 30);
+  assert(*s.find_by_order(2) == 100);
+  assert(*s.find_by_order(3) == 505);
+  assert(*s.find_by_order(4) == 1000);
+  assert(*s.find_by_order(5) == 10000);
+  assert(s.find_by_order(6) == s.end());
+
+  // The order of the keys should be: 12, 30, 100, 505, 1000, 10000.
+  assert(s.order_of_key(10) == 0);
+  assert(s.order_of_key(12) == 0);
+  assert(s.order_of_key(15) == 1);
+  assert(s.order_of_key(30) == 1);
+  assert(s.order_of_key(99) == 2);
+  assert(s.order_of_key(100) == 2);
+  assert(s.order_of_key(505) == 3);
+  assert(s.order_of_key(1000) == 4);
+  assert(s.order_of_key(10000) == 5);
+  assert(s.order_of_key(9999999) == 6);
+
+  // Erase an entry.
+  s.erase(30);
+
+  // The order of the keys should be: 12, 100, 505, 1000, 10000.
+  assert(*s.find_by_order(0) == 12);
+  assert(*s.find_by_order(1) == 100);
+  assert(*s.find_by_order(2) == 505);
+  assert(*s.find_by_order(3) == 1000);
+  assert(*s.find_by_order(4) == 10000);
+  assert(s.find_by_order(5) == s.end());
+
+  // The order of the keys should be: 12, 100, 505, 1000, 10000.
+  assert(s.order_of_key(10) == 0);
+  assert(s.order_of_key(12) == 0);
+  assert(s.order_of_key(100) == 1);
+  assert(s.order_of_key(505) == 2);
+  assert(s.order_of_key(707) == 3);
+  assert(s.order_of_key(1000) == 3);
+  assert(s.order_of_key(1001) == 4);
+  assert(s.order_of_key(10000) == 4);
+  assert(s.order_of_key(100000) == 5);
+  assert(s.order_of_key(9999999) == 5);
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
new file mode 100644
index 000000000000..74fe8382cdc9
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/tree_order_statistics_join.cc
@@ -0,0 +1,104 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_order_statistics_join_example.cpp
+ * An example showing how to augment a splay tree to support order statistics.
+ */
+
+// This example shows how join operations still maintain node
+// invariants. Specifically, it shows how the objects of containers
+// supporting order statistics can be joined into an object supporting
+// order statistics.
+// While the example does not show this, the same holds for split operations.
+
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// A splay tree table mapping ints to chars and storing the ints order
+// statistics.
+typedef
+tree<
+  int,
+  char,
+  less<int>,
+  splay_tree_tag,
+  tree_order_statistics_node_update>
+tree_map_t;
+
+int main()
+{
+  // Insert some entries into s0.
+  tree_map_t s0;
+  s0.insert(make_pair(12, 'a'));
+  s0.insert(make_pair(505, 'b'));
+  s0.insert(make_pair(30, 'c'));
+
+  // The order of the keys should be: 12, 30, 505.
+  assert(s0.find_by_order(0)->first == 12);
+  assert(s0.find_by_order(1)->first == 30);
+  assert(s0.find_by_order(2)->first == 505);
+
+  // Insert some entries into s1.
+  tree_map_t s1;
+  s1.insert(make_pair(506, 'a'));
+  s1.insert(make_pair(1222, 'b'));
+  s1.insert(make_pair(3004, 'a'));
+
+  // Now join s0 and s1.
+  s0.join(s1);
+
+  // The order of the keys should be: 12, 30, 505, 506, 1222, 3004.
+  assert(s0.find_by_order(0)->first == 12);
+  assert(s0.find_by_order(1)->first == 30);
+  assert(s0.find_by_order(2)->first == 505);
+  assert(s0.find_by_order(3)->first == 506);
+  assert(s0.find_by_order(4)->first == 1222);
+  assert(s0.find_by_order(5)->first == 3004);
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
new file mode 100644
index 000000000000..c1f23d524c40
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/trie_dna.cc
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_dna_example.cpp
+ * An example showing how to use a trie for storing DNA strings.
+ */
+
+/**
+ * This example shows how to use a PATRICIA trie for storing
+ DNA strings. The main point is writing element-access traits
+ for these strings.
+*/
+
+#include <cassert>
+#include <iostream>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+// DNA is represented by a string.
+typedef string dna_t;
+
+// Following is an element access traits for a DNA string.
+struct dna_string_e_access_traits
+{
+public:
+  typedef size_t size_type;
+  typedef dna_t key_type;
+  typedef const key_type& const_key_reference;
+  typedef char e_type;
+  typedef string::const_iterator const_iterator;
+
+  enum
+    {
+      // Number of distinct elements. This is 4 = |{'A', 'C', 'G', 'T'}|
+      max_size = 4
+    };
+
+  // Returns a const_iterator to the firstelement of r_key.
+  inline static const_iterator
+  begin(const_key_reference r_key)
+  { return r_key.begin(); }
+
+  // Returns a const_iterator to the after-lastelement of r_key.
+  inline static const_iterator
+  end(const_key_reference r_key)
+  { return r_key.end(); }
+
+  // Maps an element to a position.
+  inline static size_t
+  e_pos(e_type e)
+  {
+    switch(e)
+      {
+      case 'A':
+	return 0;
+      case 'C':
+	return 1;
+      case 'G':
+	return 2;
+      case 'T':
+	return 3;
+      default:
+	abort();
+      };
+  }
+};
+
+// A PATRICIA trie with DNA string element-access traits.
+typedef dna_string_e_access_traits traits_type;
+typedef trie<dna_t, string, traits_type> trie_type;
+
+int main()
+{
+  trie_type t;
+
+  // Now map some DNAs to diseases in namespace STD.
+  t["ACCGGTTACTGGTA"] = "gonorrhea";
+  t["CCGTTATCGGTA"] = "syphlis";
+
+  // Check gonorrhea already contracted.
+  assert(t.find("ACCGGTTACTGGTA") != t.end());
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
new file mode 100644
index 000000000000..5cb140b5cb08
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/trie_prefix_search.cc
@@ -0,0 +1,121 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_prefix_search_example.cpp
+ * An example showing how to use a trie for searching
+ *    for words with a given prefix.
+ */
+
+/**
+ * This example shows how to use a PATRICIA trie for searching
+ * for words with a given prefix.
+ */
+
+#include <cassert>
+#include <iostream>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <ext/pb_ds/trie_policy.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+// A PATRICIA trie with a prefix-search node-updator type. Note that
+// since the node updator is trie_prefix_search_node_update, then the
+// container includes its method prefix_range.
+typedef null_mapped_type		mapped_type;
+typedef string_trie_e_access_traits<> 	cmp_fn;
+typedef pat_trie_tag 			tag_type;
+
+typedef trie<string, mapped_type, cmp_fn, tag_type, 
+	     trie_prefix_search_node_update> trie_type;
+
+// The following helper function takes a trie object and r_key, a
+// const reference to a string, and prints all entries whose key
+// includes r_key as a prefix.
+void
+print_prefix_match(const trie_type& t, const string& key)
+{
+  typedef trie_type::const_iterator 		const_iterator;
+  typedef pair<const_iterator, const_iterator> 	pair_type;
+
+  cout << "All keys whose prefix matches \"" << key << "\":" << endl;
+
+  const pair_type match_range = t.prefix_range(key);
+  for (const_iterator it = match_range.first; it != match_range.second; ++it)
+    cout << *it << ' ';
+  cout << endl;
+}
+
+int main()
+{
+  trie_type t;
+
+  // Insert some entries.
+  assert(t.insert("I").second == true);
+  assert(t.insert("wish").second == true);
+  assert(t.insert("that").second == true);
+  assert(t.insert("I").second == false);
+  assert(t.insert("could").second == true);
+  assert(t.insert("ever").second == true);
+  assert(t.insert("see").second == true);
+  assert(t.insert("a").second == true);
+  assert(t.insert("poem").second == true);
+  assert(t.insert("lovely").second == true);
+  assert(t.insert("as").second == true);
+  assert(t.insert("a").second == false);
+  assert(t.insert("trie").second == true);
+
+  // Now search for prefixes.
+  print_prefix_match(t, "");
+  print_prefix_match(t, "a");
+  print_prefix_match(t, "as");
+  print_prefix_match(t, "ad");
+  print_prefix_match(t, "t");
+  print_prefix_match(t, "tr");
+  print_prefix_match(t, "trie");
+  print_prefix_match(t, "zzz");
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc b/libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
new file mode 100644
index 000000000000..11cd1823516c
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/example/trie_split.cc
@@ -0,0 +1,95 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_split_example.cpp
+ * A basic example showing how to split trie-based container objects.
+ */
+
+/**
+ * This example shows how to split trie based containers, i.e., the opposite
+ * of a join operation.
+ */
+
+#include <string>
+#include <cassert>
+#include <ext/pb_ds/assoc_container.hpp>
+
+using namespace std;
+using namespace pb_ds;
+
+int main()
+{
+  // A PATRICIA trie table mapping strings to chars.
+  typedef trie<string, char> map_type;
+
+  // A map_type object.
+  map_type r;
+
+  // Inserts some entries into r.
+  for (int i = 0; i < 100; ++ i)
+    r.insert(make_pair(string(i, 'a'), 'b'));
+
+  // Now split r into a different map_type object.
+
+  // larger_r will hold the larger values following the split.
+  map_type larger_r;
+
+  // Split all elements with key larger than 'a'^1000 into larger_r.
+  // This is exception free.
+  r.split(string(1000, 'a'), larger_r);
+
+  // Since there were no elements with key larger than 'a'^1000, r
+  // should be unchanged.
+  assert(r.size() == 100);
+  assert(r.begin()->first == string(""));
+
+  // Now perform a split which actually changes the content of r.
+
+  // Split all elements with key larger than "aaa" into larger_r.
+  r.split(string("aaa"), larger_r);
+
+  assert(r.size() == 4);
+  assert(larger_r.begin()->first == string("aaaa"));
+
+  return 0;
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
new file mode 100644
index 000000000000..686f8b9c70f1
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/associative_containers.cc
@@ -0,0 +1,175 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file assoc_link_regression_test_1.cpp
+ * A linkage regression test.
+ */
+
+
+#include <ext/pb_ds/assoc_container.hpp>
+#include <iostream>
+#include <cassert>
+
+using namespace std;
+using namespace pb_ds;
+
+/**
+ * The following function performs a sequence of operations on an
+ * associative container object mapping integers to characters.
+ */
+template<typename Cntnr>
+void
+some_op_sequence(Cntnr& r_c)
+{
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  r_c.insert(make_pair(1, 'a'));
+
+  r_c[2] = 'b';
+
+  assert(!r_c.empty());
+  assert(r_c.size() == 2);
+
+  cout << "Key 1 is mapped to " << r_c[1] << endl;
+  cout << "Key 2 is mapped to " << r_c[2] << endl;
+
+  cout << endl << "All value types in the container:" << endl;
+  for (typename Cntnr::const_iterator it = r_c.begin(); it != r_c.end(); ++it)
+    cout << it->first << " -> " << it->second << endl;
+
+  cout << endl;
+
+  r_c.clear();
+
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+}
+
+void
+assoc_link_regression_test_0()
+{
+  {
+    // Perform operations on a collision-chaining hash map.
+    cc_hash_table<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a general-probing hash map.
+    gp_hash_table<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a red-black tree map.
+    tree<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a splay tree map.
+    tree<int, char, less<int>, splay_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a splay tree map.
+    tree<int, char, less<int>, ov_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a list-update map.
+    list_update<int, char> c;
+    some_op_sequence(c);
+  }
+}
+
+
+void
+assoc_link_regression_test_1()
+{
+  {
+    // Perform operations on a collision-chaining hash map.
+    cc_hash_table<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a general-probing hash map.
+    gp_hash_table<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a red-black tree map.
+    tree<int, char> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a splay tree map.
+    tree<int, char, less<int>, splay_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a splay tree map.
+    tree<int, char, less<int>, ov_tree_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    // Perform operations on a list-update map.
+    list_update<int, char> c;
+    some_op_sequence(c);
+  }
+}
+
+int
+main()
+{
+  assoc_link_regression_test_0();
+  assoc_link_regression_test_1();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
new file mode 100644
index 000000000000..06c51f53d1c4
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef hash_map_tl_t map_tl_t;
+
+  return rand_regression_test(10000, 10000,
+			      "hash_data_map_rand_regression_test",
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
new file mode 100644
index 000000000000..50bf33344cde
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/hash_no_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_no_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef hash_set_tl_t map_tl_t;
+
+  return rand_regression_test(10000, 10000,
+			      "hash_no_data_map_rand_regression_test",
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc
new file mode 100644
index 000000000000..d184844f1ae7
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file lu_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef lu_map_tl_t map_tl_t;
+
+  return rand_regression_test(100, 10, 
+			      "lu_data_map_rand_regression_test",
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc
new file mode 100644
index 000000000000..ae70c1ea6a34
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/list_update_no_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file lu_no_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef lu_set_tl_t map_tl_t;
+
+  return rand_regression_test(100, 10,
+			      "lu_no_data_map_rand_regression_test",
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
new file mode 100644
index 000000000000..6266e13d0ca3
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queue_rand.cc
@@ -0,0 +1,59 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_rand_regression_test.cpp
+ * Contains a random-operation test for priority queues.
+ */
+
+#include <regression/rand/priority_queue/rand_regression_test.hpp>
+#include <regression/priority_queue/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  return rand_regression_test(10000, 10000,
+			      "tree_no_data_map_rand_regression_test", 
+			      pq_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
new file mode 100644
index 000000000000..0f53cf22d03c
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/priority_queues.cc
@@ -0,0 +1,194 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * This example shows how to use priority queues. It defines a
+ *    function performing a sequence of operations on
+ *    a generic container. It then calls this function with some containers.
+ */
+
+#include <ext/pb_ds/priority_queue.hpp>
+#include <iostream>
+#include <cassert>
+
+using namespace std;
+using namespace pb_ds;
+using namespace pb_ds;
+
+template<typename Cntnr>
+void
+some_op_sequence(Cntnr& r_c)
+{
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  for (size_t i = 0; i < 10; ++i)
+    r_c.push(i);
+
+  cout << endl << "All values in the container:" << endl;
+  for (typename Cntnr::const_iterator it = r_c.begin(); it != r_c.end();
+       ++it)
+    cout <<* it << endl;
+
+  assert(!r_c.empty());
+  assert(r_c.size() == 10);
+
+  cout << "Popping all values: " << endl;
+
+  while (!r_c.empty())
+    {
+      cout << r_c.top() << endl;
+
+      r_c.pop();
+    }
+
+  assert(r_c.empty());
+  assert(r_c.size() == 0);
+
+  cout << endl;
+}
+
+void
+priority_queue_link_regression_test_0()
+{
+  {
+    /*
+     *  Perform operations on a pairing-heap queue.
+     */
+    cout << "Pairing heap" << endl;
+    pb_ds::priority_queue<int, less<int>, pairing_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a binomial-heap queue.
+     */
+    cout << "Binomial heap" << endl;
+    pb_ds::priority_queue<int, less<int>, binomial_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a binomial-heap queue.
+     */
+    cout << "Redundant-counter binomial heap" << endl;
+    pb_ds::priority_queue<int, less<int>, rc_binomial_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a binomial-heap queue.
+     */
+    cout << "Binary heap" << endl;
+    pb_ds::priority_queue<int, less<int>, binary_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a thin-heap queue.
+     */
+    cout << "Thin heap" << endl;
+    pb_ds::priority_queue<int, less<int>, thin_heap_tag> c;
+    some_op_sequence(c);
+  }
+}
+
+
+void
+priority_queue_link_regression_test_1()
+{
+  {
+    /*
+     *  Perform operations on a pairing-heap queue.
+     */
+    cout << "Pairing heap" << endl;
+    pb_ds::priority_queue<int, less<int>, pairing_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a binomial-heap queue.
+     */
+    cout << "Binomial heap" << endl;
+    pb_ds::priority_queue<int, less<int>, binomial_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a binomial-heap queue.
+     */
+    cout << "Redundant-counter binomial heap" << endl;
+    pb_ds::priority_queue<int, less<int>, rc_binomial_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a binomial-heap queue.
+     */
+    cout << "Binary heap" << endl;
+    pb_ds::priority_queue<int, less<int>, binary_heap_tag> c;
+    some_op_sequence(c);
+  }
+
+  {
+    /*
+     *  Perform operations on a thin-heap queue.
+     */
+    cout << "Thin heap" << endl;
+    pb_ds::priority_queue<int, less<int>, thin_heap_tag> c;
+    some_op_sequence(c);
+  }
+}
+
+int
+main()
+{
+  priority_queue_link_regression_test_0();
+  priority_queue_link_regression_test_1();
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
new file mode 100644
index 000000000000..4a51facf4390
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef tree_map_tl_t map_tl_t;
+
+  return rand_regression_test(10000, 10000,
+			      "tree_data_map_rand_regression_test",
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
new file mode 100644
index 000000000000..4d3c8ff510f4
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/tree_no_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_no_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef tree_set_tl_t map_tl_t;
+
+  return rand_regression_test(10000, 10000,
+			      "tree_no_data_map_rand_regression_test",
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
new file mode 100644
index 000000000000..e6841970cbdb
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef trie_map_tl_t map_tl_t;
+
+  return rand_regression_test(10000, 10000,
+			      "trie_data_map_rand_regression_test",
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
new file mode 100644
index 000000000000..b8af58cdb8ba
--- /dev/null
+++ b/libstdc++-v3/testsuite/ext/pb_ds/regression/trie_no_data_map_rand.cc
@@ -0,0 +1,61 @@
+// { dg-options "-DPB_DS_REGRESSION" }
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_no_data_map_rand_regression_test.cpp
+ * Contains a random-operation test for maps and sets.
+ */
+
+#include <regression/rand/assoc/rand_regression_test.hpp>
+#include <regression/assoc/common_type.hpp>
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  typedef trie_set_tl_t map_tl_t;
+
+  return rand_regression_test(10000, 10000,
+			      "trie_no_data_map_rand_regression_test", 
+			      map_tl_t());
+}
+
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp b/libstdc++-v3/testsuite/lib/libstdc++.exp
index e98397ba77cd..d7da29f77c3d 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -405,10 +405,14 @@ proc v3-build_support { } {
     }
 
     # Build the support objects.
-    set source_files \
-	[list testsuite_abi.cc testsuite_allocator.cc testsuite_character.cc testsuite_hooks.cc ]
+    set source_files [list testsuite_abi.cc testsuite_allocator.cc \
+			  testsuite_character.cc testsuite_hooks.cc \
+	       	 rng/twister_rand_gen.cc io/verified_cmd_line_input.cc \
+       	 io/prog_bar.cc regression/res_mng/dbg_ex_allocator_base.cc \
+	     performance/time/elapsed_timer.cc ]
     foreach f $source_files {
-	set object_file [file rootname $f].o
+	set obj [file rootname $f].o
+	set object_file [file tail $obj]
 	# Compile with "-w" so that warnings issued by the compiler
 	# do not prevent compilation.
 	if { [v3_target_compile $srcdir/util/$f $object_file "object" \
@@ -419,10 +423,27 @@ proc v3-build_support { } {
 	append v3-test_objs "$object_file "
     }
 
-    # Build the shared support objects.
+    # Collect into libtestc++.a
+    set arcommand "ar -rc ./libtestc++.a ${v3-test_objs}"
+    set result [lindex [local_exec "$arcommand" "" "" 300] 0]
+    verbose "link result is $result"
+    if { $result == 0 } {
+	set ranlibcommand "ranlib ./libtestc++.a"
+	set result [lindex [local_exec "$ranlibcommand" "" "" 300] 0]
+	if { $result != 0 } {
+	    error "could not link libtestc++.a"
+	    
+	    # We cannot actually use libtestc++.a because it's hard to
+	    # position this library after the test file being compiled
+	    # on the constructed compile line. However, we use this as
+	    # a convenience for performance testing.  
+	    #set v3-test_objs "./libtestc++.a"
+	}
+    }
+
+    # Build any shared objects needed for regression testing.
     if { ${v3-sharedlib} == 1 } {
-	set source_files \
-	    [list testsuite_shared.cc]
+	set source_files [list testsuite_shared.cc]
 	foreach f $source_files {
 	    set object_file [file rootname $f].so
 	    # Compile with "-w" so that warnings issued by the compiler
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc
new file mode 100644
index 000000000000..075c49567580
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_random_int_erase_mem_usage.cc
@@ -0,0 +1,138 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_random_int_erase_mem_usage_test.cpp
+ * Contains test for erasing random integers.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/mem_usage/erase_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/mem/mem_track_allocator.hpp>
+#include <iostream>
+#include <vector>
+#include <functional>
+
+struct int_hash : public std::unary_function<int, int>
+{
+  inline int
+  operator()(int i) const
+  { return i; }
+};
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Memory (bytes)");
+
+      typedef std::vector< int> vec_t;
+      vec_t a_v(vm);
+      twister_rand_gen g;
+      for (size_t i = 0; i < vm; ++i)
+	a_v[i] = static_cast<int>(g.get_unsigned_long());
+
+      vec_t::const_iterator b = a_v.begin();
+      erase_test<vec_t::const_iterator> tst(b,  vn, vs, vm);
+      typedef mem_track_allocator<char> alloc_t;
+      {
+	typedef
+	  hash_common_types<int, pb_ds::null_mapped_type, int_hash,
+	  std::equal_to<int>, alloc_t>::performance_tl
+	  tl_t;
+
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef
+	  native_hash_set<int, 8, int_hash,
+	  std::equal_to<int>,
+	  std::less<int>, alloc_t>
+	  native_t;
+
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: hash_random_int_erase_if_test <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their erase method. " << endl;
+  cerr << "Specifically, it does the following:"    << endl;
+  cerr << "*  Creates a vector of random integers "    << endl;
+  cerr << "*  Inserts the elements into the container"    << endl;
+  cerr << "*  Erases all the elements, except one, from the constainer" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc
new file mode 100644
index 000000000000..a5e9f5fa785f
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/hash_zlob_random_int_find_timing.cc
@@ -0,0 +1,130 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file hash_zlob_random_int_find_timing_test.cpp
+ * Contains test for finding random integers.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <native_type/assoc/native_hash_set.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/find_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<int, char> > vec_t;
+      vec_t a_v(vm);
+      twister_rand_gen g;
+
+      for (size_t i = 0; i < vm; ++i)
+        {
+	  int k = static_cast<int>(g.get_unsigned_long());
+	  a_v[i] = std::make_pair(k << 8, 0);
+	  if ((a_v[i].first&  127) != 0)
+	    throw std::logic_error("Fucked!");
+        }
+
+      vec_t::const_iterator b = a_v.begin();
+      typedef find_test<vec_t::const_iterator> test_t;
+      test_t tst(b, b, vn, vs, vm, vn, vs, vm);
+      {
+	typedef native_hash_map< int, char> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef hash_common_types<int, char>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: hash_zlob_random_int_find_timing_test <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their find method. " << endl;
+  cerr << "Specifically, it does the following:"    << endl;
+  cerr << "*  Creates a vector of zero low-order bit random integers " << endl;
+  cerr << "*  Inserts the elements into the container" << endl;
+  cerr << "*  Performs a sequence of find operations. At each iteration, "
+    "it finds, for each integer in the vector, its entry in the "
+    "container, using the find method";
+  cerr << "*  Repeats the above test a number of times" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
new file mode 100644
index 000000000000..a57254a8522f
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing.hpp
@@ -0,0 +1,148 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file multimap_text_find_timing_test.cpp
+ * Contains test for inserting text words.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <io/text_populate.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <native_type/assoc/native_hash_multimap.hpp>
+#include <native_type/assoc/native_multimap.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/multimap_find_test.hpp>
+#include <performance/assoc/multimap_common_type.hpp>
+#include <hash_fn/string_hash_fn.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+void
+set_test_parameters(size_t& n, size_t&s, size_t& m, size_t& prm);
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t prm;
+  size_t ratio_n;
+  size_t ratio_s;
+  size_t ratio_m;
+
+
+  set_test_parameters(prm, ratio_n, ratio_s, ratio_m);
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, int> > vec_t;
+      vec_t a_v_init(prm);
+      distinct_text_populate(f_name, a_v_init);
+
+      vec_t a_v;
+      twister_rand_gen g;
+      for (size_t i = 0; i < ratio_m; ++i)
+	for (size_t j = 0; j < a_v_init.size(); ++j)
+	  a_v.push_back(std::make_pair(a_v_init[j].first,
+				       static_cast<int>(g.get_unsigned_long())));
+
+      vec_t::const_iterator b = a_v.begin();
+      {
+	typedef mmap_tl_t<std::string, int, std::allocator<char> >::type mmap_tl_tl;
+	mmap_tl_tl tl;
+
+	typedef multimap_find_test<vec_t::const_iterator, false> test_type;
+	test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m);
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_hash_multimap<std::string, int, 8, string_hash_fn> native_t;
+	typedef multimap_find_test<vec_t::const_iterator, true> test_type;
+	test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m);
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef native_multimap<std::string, int> native_t;
+	typedef multimap_find_test<vec_t::const_iterator, true> test_type;
+	test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m);
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: multimap_text_insert_test.out <prm> <ratio_n> <ratio_s> <ratio_m>" 
+       << endl << endl;
+
+  cerr << "This test checks the performance of various associative containers "
+          "using their insert method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of pairs of text words" << endl;
+  cerr << "*  Inserts the elements into the container" << endl;
+  cerr << "*  Repeats the above test a number of times" << endl;
+  cerr << endl << endl;
+
+  cerr << "prm = maximum size of distinct pair-first entries" << endl;
+  cerr << "ratio_n = minimum ratio of secondary keys to primary keys" << endl;
+  cerr << "ratio_s = step ratio of secondary keys to primary keys" << endl;
+  cerr << "ratio_m = maximum ratio of secondary keys to primary keys" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_large.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_large.cc
new file mode 100644
index 000000000000..1c9178643b7b
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_large.cc
@@ -0,0 +1,51 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "multimap_text_find_timing.hpp"
+
+void
+set_test_parameters(size_t& prm, size_t&n, size_t& s, size_t& m)
+{
+  prm = 100;
+  n = 3;
+  s = 4;
+  m = 20;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_small.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_small.cc
new file mode 100644
index 000000000000..8398f48a2658
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_find_timing_small.cc
@@ -0,0 +1,52 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "multimap_text_find_timing.hpp"
+
+void
+set_test_parameters(size_t& prm, size_t&n, size_t& s, size_t& m)
+{
+  prm = 400;
+  n = 1;
+  s = 1;
+  m = 6;
+}
+
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
new file mode 100644
index 000000000000..896d766753f1
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage.hpp
@@ -0,0 +1,166 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file multimap_text_insert_mem_usage_test.cpp
+ * Contains test for inserting text words.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <io/text_populate.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <native_type/assoc/native_hash_multimap.hpp>
+#include <native_type/assoc/native_multimap.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/mem_usage/multimap_insert_test.hpp>
+#include <performance/assoc/multimap_common_type.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/mem/mem_track_allocator.hpp>
+#include <hash_fn/string_hash_fn.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+void
+set_test_parameters(size_t& n, size_t&s, size_t& m, size_t& prm);
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t prm;
+  size_t ratio_n;
+  size_t ratio_s;
+  size_t ratio_m;
+
+  set_test_parameters(prm, ratio_n, ratio_s, ratio_m);
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Memory (bytes)");
+
+      typedef std::vector<std::pair<std::string, int> > init_vec_t;
+      init_vec_t a_v_init(prm);
+      distinct_text_populate(f_name, a_v_init);
+
+      typedef mem_track_allocator<char> alloc_t;
+      typedef std::basic_string<char, std::char_traits<char>, alloc_t> string_t;
+      typedef std::vector<std::pair<string_t, int> > vec_t;
+      vec_t a_v;
+      twister_rand_gen g;
+      for (size_t i = 0; i < ratio_m; ++i)
+	for (size_t j = 0; j < a_v_init.size(); ++j)
+	  a_v.push_back(std::make_pair(string_t(a_v_init[j].first.begin(), a_v_init[j].first.end()), static_cast<int>(g.get_unsigned_long())));
+
+      vec_t::const_iterator b = a_v.begin();
+      {
+	typedef mmap_tl_t<string_t, int, alloc_t>::type tl_t;
+	tl_t tl;
+	typedef multimap_insert_test<vec_t::const_iterator, false> test_type;
+	test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m);
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef mmap_tl_t< string_t, int, alloc_t>::type tl_t;
+	tl_t tl;
+	typedef multimap_insert_test<vec_t::const_iterator, false> test_type;
+	test_type tst(b,  prm*  ratio_n, prm*  ratio_s, prm*  ratio_m);
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      typedef multimap_insert_test<vec_t::const_iterator, true> test_type;
+      test_type tst(b,  prm* ratio_n, prm* ratio_s, prm* ratio_m);
+      {
+	typedef native_multimap<string_t, int, std::less<string_t>, alloc_t> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef
+	  native_hash_multimap<
+	  string_t,
+	  int,
+	  8,
+	  string_hash_fn, std::equal_to<string_t>,
+	  std::less<string_t>,
+	  alloc_t>
+	  native_t;
+
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: multimap_text_insert_test.out <prm> <ratio_n> <ratio_s> <ratio_m>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their insert method. " << endl;
+  cerr << "Specifically, it does the following:"    << endl;
+  cerr << "*  Creates a vector of pairs of text words"    << endl;
+  cerr << "*  Inserts the elements into the container"    << endl;
+  cerr << "*  Repeats the above test a number of times" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "prm = maximum size of distinct pair-first entries" << endl;
+  cerr << "ratio_n = minimum ratio of secondary keys to primary keys" << endl;
+  cerr << "ratio_s = step ratio of secondary keys to primary keys" << endl;
+  cerr << "ratio_m = maximum ratio of secondary keys to primary keys" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc
new file mode 100644
index 000000000000..6cd5f1c9e7b8
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_large.cc
@@ -0,0 +1,51 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "multimap_text_insert_mem_usage.hpp"
+
+void
+set_test_parameters(size_t& prm, size_t&n, size_t& s, size_t& m)
+{
+  prm = 100;
+  n = 3;
+  s = 4;
+  m = 20;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc
new file mode 100644
index 000000000000..8020bfc30562
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_mem_usage_small.cc
@@ -0,0 +1,51 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "multimap_text_insert_mem_usage.hpp"
+
+void
+set_test_parameters(size_t& prm, size_t&n, size_t& s, size_t& m)
+{
+  prm = 400;
+  n = 1;
+  s = 1;
+  m = 6;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
new file mode 100644
index 000000000000..1c757d5dae28
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing.hpp
@@ -0,0 +1,148 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file multimap_text_insert_timing_test.cpp
+ * Contains test for inserting text words.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <io/text_populate.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <native_type/assoc/native_hash_multimap.hpp>
+#include <native_type/assoc/native_multimap.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/multimap_insert_test.hpp>
+#include <performance/assoc/multimap_common_type.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <hash_fn/string_hash_fn.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+void
+set_test_parameters(size_t& n, size_t&s, size_t& m, size_t& prm);
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t prm;
+  size_t ratio_n;
+  size_t ratio_s;
+  size_t ratio_m;
+
+  set_test_parameters(prm, ratio_n, ratio_s, ratio_m);
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, int> > vec_t;
+      vec_t a_v_init(prm);
+      distinct_text_populate(f_name, a_v_init);
+
+      vec_t a_v;
+      twister_rand_gen g;
+      for (size_t i = 0; i < ratio_m; ++i)
+	for (size_t j = 0; j < a_v_init.size(); ++j)
+	  a_v.push_back(std::make_pair(a_v_init[j].first,
+				       static_cast<int>(g.get_unsigned_long())));
+
+      vec_t::const_iterator b = a_v.begin();
+      {
+	typedef mmap_tl_t<std::string, int, std::allocator<char> >::type mmap_tl_tl;
+	mmap_tl_tl tl;
+	typedef multimap_insert_test<vec_t::const_iterator, false> test_type;
+	test_type tst(b, prm*  ratio_n, prm*  ratio_s, prm*  ratio_m);
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_hash_multimap<std::string, int, 8, string_hash_fn> native_t;
+	typedef multimap_insert_test<vec_t::const_iterator, true> test_type;
+	test_type tst(b,  prm*  ratio_n, prm*  ratio_s, prm*  ratio_m);
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef native_multimap<std::string, int> native_t;
+	typedef multimap_insert_test<vec_t::const_iterator, true> test_type;
+	test_type tst(b, prm* ratio_n, prm* ratio_s, prm* ratio_m);
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: multimap_text_insert_test.out <prm> <ratio_n> <ratio_s> <ratio_m>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their insert method. " << endl;
+  cerr << "Specifically, it does the following:"    << endl;
+  cerr << "*  Creates a vector of pairs of text words"    << endl;
+  cerr << "*  Inserts the elements into the container"    << endl;
+  cerr << "*  Repeats the above test a number of times" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "prm = maximum size of distinct pair-first entries" << endl;
+  cerr << "ratio_n = minimum ratio of secondary keys to primary keys" << endl;
+  cerr << "ratio_s = step ratio of secondary keys to primary keys" << endl;
+  cerr << "ratio_m = maximum ratio of secondary keys to primary keys" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_large.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_large.cc
new file mode 100644
index 000000000000..9930c88888ce
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_large.cc
@@ -0,0 +1,51 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "multimap_text_insert_timing.hpp"
+
+void
+set_test_parameters(size_t& prm, size_t&n, size_t& s, size_t& m)
+{
+  prm = 100;
+  n = 3;
+  s = 4;
+  m = 20;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_small.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_small.cc
new file mode 100644
index 000000000000..84017a520131
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/multimap_text_insert_timing_small.cc
@@ -0,0 +1,51 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "multimap_text_insert_timing.hpp"
+
+void
+set_test_parameters(size_t& prm, size_t&n, size_t& s, size_t& m)
+{
+  prm = 400;
+  n = 1;
+  s = 1;
+  m = 6;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc
new file mode 100644
index 000000000000..64f19b12799f
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_pop_timing.cc
@@ -0,0 +1,129 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_random_int_push_pop_timing_test.cpp
+ * Contains test for finding random_int.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <performance/priority_queue/timing/push_pop_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<int, char> > vector_type;
+      vector_type a_v(vm);
+      twister_rand_gen g;
+
+      for (size_t i = 0; i < vm; ++i)
+	a_v[i] = std::make_pair(static_cast<int>(g.get_unsigned_long()), 0);
+      vector_type::const_iterator b = a_v.begin();
+
+      typedef push_pop_test<vector_type::const_iterator> test_type;
+      test_type tst(b, vn, vs, vm);
+      {
+	typedef pq_common_types<int>::performance_tl pq_tl_t;
+	pq_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_priority_queue<int, true> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+
+      {
+	typedef native_priority_queue<int, false> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  std::cerr << "usage: priority_queue_random_int_push_pop_timing_test <vn> <vs> <vm>" <<
+    std::endl << std::endl;
+
+  std::cerr <<
+    "This test checks the performance of various priority_queue containers "
+    "using their push and pop method. " << std::endl;
+  std::cerr << "Specifically, it does the following:" << std::endl;
+  std::cerr << "*  Creates a vector of random integers " << std::endl;
+  std::cerr << "*  Pushes the elements into the container" << std::endl;
+  std::cerr << "*  Pops the elements from the container" << std::endl;
+  std::cerr << "*  Repeats the above test a number of times "
+	    << std::endl;
+
+  std::cerr << std::endl << std::endl;
+
+  std::cerr << "vn = minimum size of the vector" << std::endl;
+  std::cerr << "vs = step size of the vector" << std::endl;
+  std::cerr << "vm = maximum size of the vector" << std::endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc
new file mode 100644
index 000000000000..7706175355b6
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_random_int_push_timing.cc
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_random_int_push_timing_test.cpp
+ * Contains test for finding random_int.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <performance/priority_queue/timing/push_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<int, char> > vec_t;
+      vec_t a_v(vm);
+      twister_rand_gen g;
+      for (size_t i = 0; i < vm; ++i)
+	a_v[i] = std::make_pair(static_cast<int>(g.get_unsigned_long()), 0);
+
+      typedef push_test<vec_t::const_iterator> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, vn, vs, vm);
+      {
+	typedef pq_common_types<int>::performance_tl pq_tl_t;
+	pq_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_priority_queue<int, true> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+
+      {
+	typedef native_priority_queue<int, false> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: priority_queue_random_int_push_timing_test <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various priority_queue containers "
+    "using their push method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of random integers " << endl;
+  cerr << "*  Pushes the elements into the container" << endl;
+  cerr << "*  Repeats the above test a number of times "
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc
new file mode 100644
index 000000000000..c13f060c3c96
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_join_timing.cc
@@ -0,0 +1,123 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_text_join_timing_test.cpp
+ * Contains test for finding text.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <performance/priority_queue/timing/join_test.hpp>
+#include <io/text_populate.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: priority_queue_text_join_timing_test <f_name> <vn> <vs> <vm>";
+  cerr << endl << endl;
+
+  cerr << "This test checks the performance of various priority_queueiative containers "
+    "using their join method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Pushes the elements into two containers" << endl;
+  cerr << "*  Joins the two containers (and measures this time)" << endl;
+  cerr << "*  Repeats the above test a number of times " << endl;
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, char> > vec_t;
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+
+      typedef join_test<vec_t::const_iterator> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, vn, vs, vm);
+      {
+	typedef pq_common_types<std::string>::performance_tl pq_tl_t;
+	pq_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_priority_queue<std::string, true> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+
+      {
+	typedef native_priority_queue<std::string, false> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc
new file mode 100644
index 000000000000..614191118bfe
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc
@@ -0,0 +1,47 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "priority_queue_text_modify_timing.hpp"
+
+void
+set_test_parameters(bool& b)
+{ b = false; }
+
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
new file mode 100644
index 000000000000..58e9cf546f9d
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_timing.hpp
@@ -0,0 +1,138 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_text_modify_timing_test.cpp
+ * Contains test for finding text.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <performance/priority_queue/timing/modify_test.hpp>
+#include <io/text_populate.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+void
+set_test_parameters(bool& b);
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t vn = 100;
+  size_t vs = 100;
+  size_t vm = 1100;
+  bool modify_up;
+
+  set_test_parameters(modify_up);
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, char> > vec_t;
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+
+      typedef modify_test<vec_t::const_iterator> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, vn, vs, vm, modify_up);
+      {
+	typedef pq_common_types<std::string>::performance_tl pq_tl_t;
+	pq_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_priority_queue<std::string, true> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+
+      {
+	typedef native_priority_queue<std::string, false> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: priority_queue_text_modify_timing_test <f_name> <vn> <vs> <vm> <modify_up>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various priority_queueiative containers "
+    "using their modify method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Pushes the elements into the container" << endl;
+  cerr << "*  Modifies the words in the container. If modify_up == 't', then" << endl;
+  cerr << "*      it modifies them to the largest word. If modify_up == 'f', then" << endl;
+  cerr << "*      it modifies them to the smallest word." << endl;
+  cerr << "*  Repeats the above test a number of times "
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc
new file mode 100644
index 000000000000..e2ff2bc7247f
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_modify_up_timing.cc
@@ -0,0 +1,47 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+#include "priority_queue_text_modify_timing.hpp"
+
+void
+set_test_parameters(bool& b)
+{ b = true; }
+
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc
new file mode 100644
index 000000000000..12820e906901
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_pop_mem_usage.cc
@@ -0,0 +1,129 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_text_push_pop_timing_test.cpp
+ * Contains test for finding text.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <performance/priority_queue/mem_usage/pop_test.hpp>
+#include <io/text_populate.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <performance/mem/mem_track_allocator.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Memory (bytes)");
+
+      typedef std::basic_string<char, std::char_traits<char>, mem_track_allocator<char> > string_t;
+
+      typedef std::vector<std::pair< string_t, char> > vec_t;
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+
+      typedef pop_test<vec_t::const_iterator> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, vn, vs, vm);
+      {
+	typedef pq_common_types<string_t, std::less<string_t>, mem_track_allocator<char> >::performance_tl pq_tl_t;
+	pq_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_priority_queue<string_t, true, std::less<string_t>, mem_track_allocator<string_t> > native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+
+      {
+	typedef native_priority_queue<string_t, false, std::less<string_t>, mem_track_allocator<string_t> > native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: priority_queue_text_pop_mem_usage_test <f_name> <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various priority_queueiative containers "
+    "using their push method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Pushes the elements into the container, then pops until it's empty." << endl;
+
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc
new file mode 100644
index 000000000000..13f5c00000b5
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_pop_timing.cc
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_text_push_pop_timing_test.cpp
+ * Contains test for finding text.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <performance/priority_queue/timing/push_pop_test.hpp>
+#include <io/text_populate.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, char> > vec_t;
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+
+      typedef push_pop_test<vec_t::const_iterator> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, vn, vs, vm);
+      {
+	typedef pq_common_types<std::string>::performance_tl pq_tl_t;
+	pq_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_priority_queue<std::string, true> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+
+      {
+	typedef native_priority_queue<std::string, false> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: priority_queue_text_push_pop_timing_test "
+          "<f_name> <vn> <vs> <vm>" << endl << endl;
+
+  cerr << "This test checks the performance of various"
+    "priority_queue containers using their push method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Pushes the elements into the container, then pops until it's empty." << endl;
+  cerr << "*  Repeats the above test a number of times) "
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc
new file mode 100644
index 000000000000..f1f76e899c71
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/priority_queue_text_push_timing.cc
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file priority_queue_text_push_timing_test.cpp
+ * Contains test for finding text.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <performance/priority_queue/timing/push_test.hpp>
+#include <io/text_populate.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, char> > vec_t;
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+
+      typedef push_test<vec_t::const_iterator> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, vn, vs, vm);
+      {
+	typedef pq_common_types<std::string>::performance_tl pq_tl_t;
+	pq_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_priority_queue<std::string, true> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+
+      {
+	typedef native_priority_queue<std::string, false> native_pq_t;
+	tst(pb_ds::detail::type_to_type<native_pq_t>());
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: priority_queue_text_push_timing_test <f_name> <vn> <vs> <vm>"
+       << endl << endl;
+
+  cerr <<
+    "This test checks the performance of various priority_queue containers "
+    "using their push method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Pushes the elements into the container" << endl;
+  cerr << "*  Repeats the above test a number of times "
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc
new file mode 100644
index 000000000000..ce7c56952da9
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_find_timing.cc
@@ -0,0 +1,137 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file random_int_find_timing_test.cpp
+ * Contains test for finding random integers.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <native_type/assoc/native_hash_map.hpp>
+#include <native_type/assoc/native_map.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/find_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector< std::pair< int, char> > vec_t;
+      vec_t a_v(vm);
+      twister_rand_gen g;
+      for (size_t i = 0; i < vm; ++i)
+	a_v[i] = std::make_pair(static_cast<int>(g.get_unsigned_long()), 0);
+      vec_t::const_iterator b = a_v.begin();
+
+      typedef find_test< vec_t::const_iterator> test_t;
+      test_t tst(b, b, vn, vs, vm, vn, vs, vm);
+      {
+	typedef native_hash_map< int, char> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef native_map< int, char> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef hash_common_types<int, char>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef tree_common_types<int, char>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: hash_random_int_find_timing_test <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their find method. " << endl;
+  cerr << "Specifically, it does the following:"    << endl;
+  cerr << "*  Creates a vector of random integers "    << endl;
+  cerr << "*  Inserts the elements into the container"    << endl;
+  cerr << "*  Performs a sequence of find operations. At each iteration, "
+    "it finds, for each integer in the vector, its entry in the "
+    "container, using the find method";
+  cerr << "*  Repeats the above test a number of times" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc
new file mode 100644
index 000000000000..5d796c26be26
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_find_timing.cc
@@ -0,0 +1,137 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file random_int_subscript_find_timing_test.cpp
+ * Contains test for subscripting random integers.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <native_type/assoc/native_hash_map.hpp>
+#include <native_type/assoc/native_map.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/subscript_find_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<int, size_t> > vec_t;
+      vec_t a_v(vm);
+      twister_rand_gen g;
+      for (size_t i = 0; i < vm; ++i)
+	a_v[i] = std::make_pair(static_cast<int>(g.get_unsigned_long()), 0);
+      vec_t::const_iterator b = a_v.begin();
+
+      typedef subscript_find_test<vec_t::const_iterator> test_t;
+      test_t tst(b, b, vn, vs, vm, vn, vs, vm);
+      {
+	typedef hash_common_types<int, size_t>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef tree_common_types<int, size_t>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_hash_map<int, size_t> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef native_map< int, size_t> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: hash_random_int_subscript_find_timing_test <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their find method. " << endl;
+  cerr << "Specifically, it does the following:"    << endl;
+  cerr << "*  Creates a vector of random integers "    << endl;
+  cerr << "*  Inserts the elements into the container"    << endl;
+  cerr << "*  Performs a sequence of find operations. At each iteration, "
+    "it finds, for each integer in the vector, its entry in the "
+    "container, using the subscript operator";
+  cerr << "*  Repeats the above test a number of times" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc
new file mode 100644
index 000000000000..60e16dd1bcc3
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/random_int_subscript_insert_timing.cc
@@ -0,0 +1,134 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file random_int_subscript_insert_timing_test.cpp
+ * Contains test for subscripting random integers.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <native_type/assoc/native_hash_map.hpp>
+#include <native_type/assoc/native_map.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/subscript_insert_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<int, size_t> > vec_t;
+      vec_t a_v(vm);
+      twister_rand_gen g;
+
+      for (size_t i = 0; i < vm; ++i)
+	a_v[i] = std::make_pair(static_cast<int>(g.get_unsigned_long()), 0);
+      vec_t::const_iterator b = a_v.begin();
+
+      typedef subscript_insert_test<vec_t::const_iterator> test_t;
+      test_t tst(b, b, vn, vs, vm, vn, vs, vm);
+      {
+	typedef hash_common_types<int, size_t>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef tree_common_types<int, size_t>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_hash_map< int, size_t> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+
+      {
+	typedef native_map< int, size_t> native_t;
+	tst(pb_ds::detail::type_to_type<native_t>());
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: hash_random_int_subscript_insert_timing_test <vn> <vs> <vm>" 
+       << endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their find method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of random integers " << endl;
+  cerr << "*  Inserts the elements into the container" << endl;
+  cerr << "*  Repeats the above test a number of times" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc
new file mode 100644
index 000000000000..a1cc598a78d0
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/text_find_timing.cc
@@ -0,0 +1,159 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file text_find_timing_test.cpp
+ * Contains test for finding text.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/find_test.hpp>
+#include <io/text_populate.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <hash_fn/string_hash_fn.hpp>
+#include <native_type/assoc/native_hash_map.hpp>
+#include <native_type/assoc/native_map.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+      typedef std::vector<std::pair<std::string, char> > vec_t;
+
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+      typedef find_test<vec_t::const_iterator, false> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, b, vn, vs, vm, vn, vs, vm);
+      {
+	typedef trie_common_types<std::string, char>::performance_tl pat_trie_tl_t;
+
+	typedef tree_common_types<std::string, char>::performance_tl tree_tl_t;
+
+	typedef hash_common_types<std::string, char, string_hash_fn>::performance_tl hash_tl_t;
+
+	typedef pb_ds::detail::typelist_append<pat_trie_tl_t, pb_ds::detail::typelist_append<hash_tl_t, tree_tl_t>::type>::type tl_t;
+
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_map<std::string, char> native_map_t;
+	tst(pb_ds::detail::type_to_type<native_map_t>());
+
+	typedef native_hash_map<std::string, char, 8, string_hash_fn> native_hash_map_t;
+	tst(pb_ds::detail::type_to_type<native_hash_map_t>());
+
+	// XXX Unfortunately, this crashes
+#if 0
+#ifdef PB_DS_USE_TR1
+	typedef
+	  native_hash_map<
+	  std::string,
+	  char,
+	  8,
+	  string_hash_fn,
+	  std::equal_to<
+	  std::string>,
+	  std::less<
+	  std::string>,
+	  std::allocator<
+	  char>,
+	  true>
+	  sth_native_hash_map_t;
+
+	tst(pb_ds::detail::type_to_type<sth_native_hash_map_t>());
+#endif // #ifdef PB_DS_USE_TR1
+#endif // #if 0
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: text_find_timing_test <f_name> <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their find method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Inserts the elements into the container" << endl;
+  cerr << "*  Performs a sequence of find operations. At each iteration, "
+    "it finds, for each word in the vector, its entry in the "
+    "container, using the find method" << endl;
+  cerr << "*  Repeats the above test a number of times) "
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc
new file mode 100644
index 000000000000..2af32f394d66
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_order_statistics_timing.cc
@@ -0,0 +1,116 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_order_statistics_timing_test.cpp
+ * Contains test for order_statisticsing trees.
+ */
+
+#include <iostream>
+#include <vector>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/assoc/timing/tree_order_statistics_test.hpp>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      {
+	typedef tree_order_statistics_test< true> test_t;
+	test_t tst(vn, vs, vm);
+	typedef tree_common_types<int, pb_ds::null_mapped_type, std::less<int>, pb_ds::tree_order_statistics_node_update>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef tree_order_statistics_test<false> test_t;
+	test_t tst(vn, vs, vm);
+	typedef native_set<int> native_set_t;
+	tst(pb_ds::detail::type_to_type<native_set_t>());
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: tree_order_statistics_timing_test.out <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr << "This test checks the performance of order statistics"
+    " in tree based containers. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a tree" << endl;
+  cerr << "*  Inserts integers into the tree" << endl;
+  cerr << "*  Checks the order-statistics of each entry in the tree" << endl;
+  cerr << "*  Repeats the above test some times"
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the tree" << endl;
+  cerr << "vs = step size of the tree" << endl;
+  cerr << "vm = maximum size of the tree" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc
new file mode 100644
index 000000000000..6de06c53335e
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_split_join_timing.cc
@@ -0,0 +1,118 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_split_join_timing_test.cpp
+ * Contains test for joining trees.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/tree_split_join_test.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      {
+	typedef tree_split_join_test<true> test_t;
+	test_t tst(vn, vs, vm);
+
+	typedef tree_common_types<int, pb_ds::null_mapped_type>::performance_tl tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef tree_split_join_test<false> test_t;
+	test_t tst(vn, vs, vm);
+	typedef native_set<int> native_set_t;
+	tst(pb_ds::detail::type_to_type<native_set_t>());
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: tree_split_join_test.cpp <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr << "This test checks the performance of splitting joining" 
+          "tree based containers. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a tree " << endl;
+  cerr << "*  Inserts integers into the tree" << endl;
+  cerr << "*  Splits half the tree into a different tree" << endl;
+  cerr << "*  Joins the trees" << endl;
+  cerr << "*  Repeats the above test a given number of times) "
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "vn = minimum size of the tree" << endl;
+  cerr << "vs = step size of the tree" << endl;
+  cerr << "vm = maximum size of the tree" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc
new file mode 100644
index 000000000000..f61fe1c6d365
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_insert_timing.cc
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_text_insert_timing_test.cpp
+ * Contains test for finding text.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/insert_test.hpp>
+#include <io/text_populate.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <hash_fn/string_hash_fn.hpp>
+#include <native_type/assoc/native_hash_map.hpp>
+#include <native_type/assoc/native_map.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+  
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, char> > vec_t;
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+
+      typedef insert_test< vec_t::const_iterator> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, vn, vs, vm);
+      {
+	typedef trie_common_types<std::string, char>::performance_tl pat_trie_tl_t;
+	typedef tree_common_types<std::string, char>::performance_tl tree_tl_t;
+	typedef pb_ds::detail::typelist_append<pat_trie_tl_t, tree_tl_t>::type tl_t;
+	tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+
+      {
+	typedef native_map<std::string, char> native_map_t;
+	tst(pb_ds::detail::type_to_type<native_map_t>());
+      }
+    }
+  catch (...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: tree_text_insert_timing_test <f_name> <vn> <vs> <vm>" <<
+    endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their insert method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Inserts the elements into the container" << endl;
+  cerr << "*  Repeats the above test a number of times) "
+	    << endl;
+
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc
new file mode 100644
index 000000000000..4dd52445d627
--- /dev/null
+++ b/libstdc++-v3/testsuite/performance/ext/pb_ds/tree_text_lor_find_timing.cc
@@ -0,0 +1,126 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_text_lor_find_timing_test.cpp
+ * Contains test for finding text with locality of reference.
+ */
+
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <performance/assoc/timing/find_test.hpp>
+#include <io/text_populate.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+#include <native_type/assoc/native_map.hpp>
+#include <iostream>
+#include <vector>
+
+void
+usage();
+
+int
+main(int argc, char* a_p_argv[])
+{
+  using namespace pb_ds::test;
+
+  std::string f_name = "thirty_years_among_the_dead_preproc.txt";
+  size_t vn = 200;
+  size_t vs = 200;
+  size_t vm = 2100;
+
+  try
+    {
+      xml_test_performance_formatter fmt("Size", "Average time (sec.)");
+
+      typedef std::vector<std::pair<std::string, char> > vec_t;
+      vec_t a_v(vm);
+      text_populate(f_name, a_v);
+
+      typedef find_test<vec_t::const_iterator, true> test_t;
+      vec_t::const_iterator b = a_v.begin();
+      test_t tst(b, b, vn, vs, vm, vn, vs, vm);
+      {
+	typedef native_map<std::string, char> native_set_t;
+	tst(pb_ds::detail::type_to_type<native_set_t>());
+      }
+
+      {
+	typedef tree_common_types<std::string, char>::performance_tl tree_tl_t;
+	tree_tl_t tl;
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+    }
+  catch(...)
+    {
+      std::cerr << "Test failed" << std::endl;
+      return -1;
+    }
+  return 0;
+}
+
+void
+usage()
+{
+  using namespace std;
+  cerr << "usage: tree_text_lor_find_performance_test <f_name> <vn> <vs> <vm>" 
+       << endl << endl;
+
+  cerr <<
+    "This test checks the performance of various associative containers "
+    "using their find method. " << endl;
+  cerr << "Specifically, it does the following:" << endl;
+  cerr << "*  Creates a vector of text words " << endl;
+  cerr << "*  Inserts the elements into the container" << endl;
+  cerr << "*  Performs a sequence of find operations. At each iteration, "
+    "it finds, for each word in the vector, its entry in the "
+    "container, using the find method" << endl;
+  cerr << "*  Repeats the above test a number of times" << endl;
+
+  cerr << endl << endl;
+
+  cerr << "f_name = file name containing the text words. "
+    "Each line should contain one word." << endl;
+  cerr << "vn = minimum size of the vector" << endl;
+  cerr << "vs = step size of the vector" << endl;
+  cerr << "vm = maximum size of the vector" << endl;
+}
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
new file mode 100644
index 000000000000..df07eb38644a
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/common_type.hpp
@@ -0,0 +1,847 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file common_type.hpp
+ * Contains common types.
+ */
+
+#ifndef PB_DS_COMMON_TYPES_HPP
+#define PB_DS_COMMON_TYPES_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <common_type/assoc/template_policy.hpp>
+#include <ext/pb_ds/assoc_container.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    template<typename Key,
+	     typename Data,
+	     class Hash_Fn =
+	     typename pb_ds::detail::default_hash_fn<
+      Key>::type,
+	     class Eq_Fn =
+	     std::equal_to<Key>,
+	     class Allocator =
+	     std::allocator< std::pair<const Key, Data> > >
+    struct hash_common_types
+    {
+    private:
+      typedef typename Allocator::size_type size_type;
+
+      typedef
+      pb_ds::test::hash_load_check_resize_trigger_t_<
+	Allocator,
+	1, 8,
+	1, 2,
+	false>
+      no_access_half_load_check_resize_trigger_policy;
+
+      typedef
+      pb_ds::test::hash_load_check_resize_trigger_t_<
+	Allocator,
+	1, 8,
+	1, 2,
+	true>
+      access_half_load_check_resize_trigger_policy;
+
+      typedef
+      pb_ds::test::hash_load_check_resize_trigger_t_<
+	Allocator,
+	1, 8,
+	1, 1,
+	false>
+      no_access_one_load_check_resize_trigger_policy;
+
+      typedef
+      pb_ds::test::cc_hash_max_collision_check_resize_trigger_t_<
+	Allocator,
+	1, 2,
+	false>
+      no_access_half_max_col_check_check_resize_trigger_policy;
+
+      typedef
+      pb_ds::test::cc_hash_max_collision_check_resize_trigger_t_<
+	Allocator,
+	1, 2,
+	true>
+      access_half_max_col_check_check_resize_trigger_policy;
+
+      typedef pb_ds::test::linear_probe_fn_t_< Key, Allocator> lin_p_t;
+
+      typedef pb_ds::test::quadratic_probe_fn_t_< Key, Allocator> quad_p_t;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::false_type,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	no_access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      performance_cc_policy0;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::false_type,
+	pb_ds::test::direct_mod_range_hashing_t_<
+	Allocator>,
+	no_access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_prime_size_policy_t_>::type
+      performance_cc_policy1;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::false_type,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	no_access_one_load_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      performance_cc_policy2;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::false_type,
+	pb_ds::test::direct_mod_range_hashing_t_<
+	Allocator>,
+	no_access_one_load_check_resize_trigger_policy,
+	pb_ds::test::hash_prime_size_policy_t_ >::type
+      performance_cc_policy3;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::true_type,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	no_access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      performance_cc_policy4;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::false_type,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	no_access_half_max_col_check_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      performance_cc_policy5;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::false_type,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	access_half_max_col_check_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      regression_cc_policy0;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::false_type,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      regression_cc_policy1;
+
+      typedef
+      typename pb_ds::detail::typelist4<
+	pb_ds::detail::true_type,
+	pb_ds::test::direct_mod_range_hashing_t_<
+	Allocator>,
+	no_access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_prime_size_policy_t_ >::type
+      regression_cc_policy2;
+
+      typedef
+      typename pb_ds::detail::typelist5<
+	pb_ds::detail::false_type,
+	lin_p_t,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	no_access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      performance_gp_policy0;
+
+      typedef
+      typename pb_ds::detail::typelist5<
+	pb_ds::detail::false_type,
+	quad_p_t,
+	pb_ds::test::direct_mod_range_hashing_t_<
+	Allocator>,
+	no_access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_prime_size_policy_t_ >::type
+      performance_gp_policy1;
+
+      typedef
+      typename pb_ds::detail::typelist5<
+	pb_ds::detail::false_type,
+	quad_p_t,
+	pb_ds::test::direct_mod_range_hashing_t_<
+	Allocator>,
+	access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_prime_size_policy_t_>::type
+      regression_gp_policy0;
+
+      typedef
+      typename pb_ds::detail::typelist5<
+	pb_ds::detail::true_type,
+	lin_p_t,
+	pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator>,
+	access_half_load_check_resize_trigger_policy,
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator> >::type
+      regression_gp_policy1;
+
+      typedef
+      typename pb_ds::detail::typelist6<
+	performance_cc_policy0,
+	performance_cc_policy1,
+	performance_cc_policy2,
+	performance_cc_policy3,
+	performance_cc_policy4,
+	performance_cc_policy5>::type
+      performance_cc_range_hashing_policies;
+
+      typedef
+      typename pb_ds::detail::typelist3<
+	regression_cc_policy0,
+	regression_cc_policy1,
+	regression_cc_policy2>::type
+      regression_cc_range_hashing_policies;
+
+      typedef
+      typename pb_ds::detail::typelist2<
+	performance_gp_policy0,
+	performance_gp_policy1>::type
+      performance_gp_range_hashing_policies;
+
+      typedef
+      typename pb_ds::detail::typelist2<
+	regression_gp_policy0,
+	regression_gp_policy1>::type
+      regression_gp_range_hashing_policies;
+
+      template<typename Policy_Tl>
+      struct no_access_generic_cc_hash_table_t
+      {
+      private:
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	Policy_Tl, 0>::type
+	store_hash_indicator;
+
+        enum
+	  {
+            store_hash = store_hash_indicator::value
+	  };
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 1>::type
+	comb_hash_fn;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 2>::type
+	trigger_policy;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 3>::type
+	size_policy;
+
+      public:
+        typedef
+	pb_ds::cc_hash_table<
+	Key,
+	Data,
+	Hash_Fn,
+	Eq_Fn,
+	comb_hash_fn,
+	pb_ds::hash_standard_resize_policy<
+	size_policy,
+	trigger_policy,
+	false>,
+	store_hash,
+	Allocator>
+	type;
+      };
+
+      template<typename Policy_Tl>
+      struct access_generic_cc_hash_table_t
+      {
+      private:
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	Policy_Tl, 0>::type
+	store_hash_indicator;
+
+        enum
+	  {
+            store_hash = store_hash_indicator::value
+	  };
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 1>::type
+	comb_hash_fn;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 2>::type
+	trigger_policy;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 3>::type
+	size_policy;
+
+      public:
+        typedef
+	pb_ds::cc_hash_table<
+	Key,
+	Data,
+	Hash_Fn,
+	Eq_Fn,
+	comb_hash_fn,
+	pb_ds::hash_standard_resize_policy<
+	size_policy,
+	trigger_policy,
+	true>,
+	store_hash,
+	Allocator>
+	type;
+      };
+
+      template<typename Policy_Tl>
+      struct no_access_generic_gp_hash_table_t
+      {
+      private:
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	Policy_Tl, 0>::type
+	store_hash_indicator;
+
+        enum
+	  {
+            store_hash = store_hash_indicator::value
+	  };
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 1>::type
+	probe_fn;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 2>::type
+	comb_probe_fn;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 3>::type
+	trigger_policy;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 4>::type
+	size_policy;
+
+      public:
+        typedef
+	pb_ds::gp_hash_table<
+	Key,
+	Data,
+	Hash_Fn,
+	Eq_Fn,
+	comb_probe_fn,
+	probe_fn,
+	pb_ds::hash_standard_resize_policy<
+	size_policy,
+	trigger_policy,
+	false>,
+	store_hash,
+	Allocator>
+	type;
+      };
+
+      template<typename Policy_Tl>
+      struct access_generic_gp_hash_table_t
+      {
+      private:
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	Policy_Tl, 0>::type
+	store_hash_indicator;
+
+        enum
+	  {
+            store_hash = store_hash_indicator::value
+	  };
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 1>::type
+	probe_fn;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 2>::type
+	comb_probe_fn;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 3>::type
+	trigger_policy;
+
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	  Policy_Tl, 4>::type
+	size_policy;
+
+      public:
+        typedef
+	pb_ds::gp_hash_table<
+	Key,
+	Data,
+	Hash_Fn,
+	Eq_Fn,
+	comb_probe_fn,
+	probe_fn,
+	pb_ds::hash_standard_resize_policy<
+	size_policy,
+	trigger_policy,
+	true>,
+	store_hash,
+	Allocator>
+	type;
+      };
+
+      typedef
+      typename pb_ds::detail::typelist_transform<
+	performance_cc_range_hashing_policies,
+	no_access_generic_cc_hash_table_t>::type
+      performance_cc_types;
+
+      typedef
+      typename pb_ds::detail::typelist_transform<
+	regression_cc_range_hashing_policies,
+	access_generic_cc_hash_table_t>::type
+      regression_cc_types;
+
+      typedef
+      typename pb_ds::detail::typelist_at_index<
+	performance_cc_types,
+	0>::type
+      performance_min_cc_type;
+
+      typedef
+      typename pb_ds::detail::typelist_transform<
+	performance_gp_range_hashing_policies,
+	no_access_generic_gp_hash_table_t>::type
+      performance_gp_types;
+
+      typedef
+      typename pb_ds::detail::typelist_transform<
+	regression_gp_range_hashing_policies,
+	access_generic_gp_hash_table_t>::type
+      regression_gp_types;
+
+      typedef
+      typename pb_ds::detail::typelist_at_index<
+	performance_gp_types,
+	0>::type
+      performance_min_gp_type;
+
+    public:
+      typedef
+      typename pb_ds::detail::typelist_append<
+      performance_cc_types,
+      performance_gp_types>::type
+      performance_tl;
+
+      typedef
+      typename pb_ds::detail::typelist_append<
+	regression_gp_types,
+	regression_cc_types>::type
+      regression_tl;
+
+      typedef
+      typename pb_ds::detail::typelist1<
+	performance_min_cc_type>::type
+      performance_min_tl;
+    };
+
+    template<typename Key,
+	     typename Data,
+	     class Comb_Hash_Fn_TL,
+	     class Comb_Probe_Fn_TL,
+	     class Eq_Fn =
+	     std::equal_to<Key>,
+	     class Allocator =
+	     std::allocator<
+      std::pair<
+      const Key,
+      Data> > >
+    struct ranged_hash_common_types
+    {
+    private:
+      typedef typename Allocator::size_type size_type;
+
+      typedef
+      pb_ds::test::hash_load_check_resize_trigger_t_<
+	Allocator,
+	1, 8,
+	1, 2,
+	false>
+      no_access_half_load_check_resize_trigger_policy;
+
+      typedef
+      pb_ds::test::hash_load_check_resize_trigger_t_<
+	Allocator,
+	1, 8,
+	1, 1,
+	false>
+      no_access_one_load_check_resize_trigger_policy;
+
+      typedef
+      pb_ds::hash_standard_resize_policy<
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator>,
+	no_access_half_load_check_resize_trigger_policy>
+      mask_half_resize_policy_t;
+
+      typedef
+      pb_ds::hash_standard_resize_policy<
+	pb_ds::test::hash_exponential_size_policy_t_<
+	Allocator>,
+	no_access_one_load_check_resize_trigger_policy>
+      mask_one_resize_policy_t;
+
+      typedef
+      pb_ds::hash_standard_resize_policy<
+	pb_ds::test::hash_prime_size_policy_t_,
+	no_access_half_load_check_resize_trigger_policy>
+      mod_half_resize_policy_t;
+
+      typedef
+      pb_ds::hash_standard_resize_policy<
+	pb_ds::test::hash_prime_size_policy_t_,
+	no_access_one_load_check_resize_trigger_policy>
+      mod_one_resize_policy_t;
+
+      template<typename Comb_Hash_Fn_>
+      struct half_resize_policy_selector;
+
+      template<typename Allocator_>
+      struct half_resize_policy_selector<
+        pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator_> >
+      {
+        typedef mask_half_resize_policy_t type;
+      };
+
+      template<typename Allocator_>
+      struct half_resize_policy_selector<
+        pb_ds::test::direct_mod_range_hashing_t_<
+	Allocator_> >
+      {
+        typedef mod_half_resize_policy_t type;
+      };
+
+      template<typename Comb_Hash_Fn_>
+      struct one_resize_policy_selector;
+
+      template<typename Allocator_>
+      struct one_resize_policy_selector<
+        pb_ds::test::direct_mask_range_hashing_t_<
+	Allocator_> >
+      {
+        typedef mask_one_resize_policy_t type;
+      };
+
+      template<typename Allocator_>
+      struct one_resize_policy_selector<
+        pb_ds::test::direct_mod_range_hashing_t_<
+	Allocator_> >
+      {
+        typedef mod_one_resize_policy_t type;
+      };
+
+      template<typename Comb_Hash_Fn>
+      struct generic_cc_hash_table_t
+      {
+        typedef
+	pb_ds::cc_hash_table<
+	  Key,
+	  Data,
+	  pb_ds::null_hash_fn,
+	  Eq_Fn,
+	  Comb_Hash_Fn,
+	  typename one_resize_policy_selector<
+	  typename Comb_Hash_Fn::comb_fn>::type,
+	  false,
+	  Allocator>
+	type;
+      };
+
+      typedef
+      typename pb_ds::detail::typelist_transform<
+	Comb_Hash_Fn_TL,
+	generic_cc_hash_table_t>::type
+      performance_cc_types;
+
+      template<typename Comb_Probe_Fn>
+      struct no_access_generic_gp_hash_table_t
+      {
+        typedef
+	pb_ds::gp_hash_table<
+	  Key,
+	  Data,
+	  pb_ds::null_hash_fn,
+	  Eq_Fn,
+	  Comb_Probe_Fn,
+	  pb_ds::null_probe_fn,
+	  typename half_resize_policy_selector<
+	  typename Comb_Probe_Fn::comb_fn>::type,
+	  false,
+	  Allocator>
+	type;
+      };
+
+      typedef
+      typename pb_ds::detail::typelist_transform<
+	Comb_Probe_Fn_TL,
+	no_access_generic_gp_hash_table_t>::type
+      performance_gp_types;
+
+    public:
+      typedef
+      typename pb_ds::detail::typelist_append<
+      performance_cc_types,
+      performance_gp_types>::type
+      performance_tl;
+    };
+
+    template<typename Key, typename Data, class Eq_Fn = std::equal_to<Key>,
+	     class Allocator =
+	     std::allocator<char> >
+    class lu_common_types
+    {
+    private:
+      typedef typename Allocator::size_type size_type;
+
+      typedef pb_ds::test::move_to_front_lu_policy_t_ mtf_u;
+
+      typedef pb_ds::test::counter_lu_policy_t_< Allocator, 5> cnt_5_u;
+
+      typedef typename pb_ds::detail::typelist1< mtf_u>::type lu_policy0;
+
+      typedef typename pb_ds::detail::typelist1< cnt_5_u>::type lu_policy1;
+
+      typedef
+      typename pb_ds::detail::typelist2<
+	lu_policy0,
+	lu_policy1>::type
+      lu_policies;
+
+      template<typename Policy_Tl>
+      struct generic_list_update_t
+      {
+      private:
+        typedef
+	typename pb_ds::detail::typelist_at_index<
+	Policy_Tl, 0>::type
+	update_policy_t;
+
+      public:
+        typedef
+	pb_ds::list_update<
+	Key,
+	Data,
+	Eq_Fn,
+	update_policy_t,
+	Allocator>
+	type;
+      };
+
+      typedef
+      typename pb_ds::detail::typelist_transform<
+	lu_policies,
+	generic_list_update_t>::type
+      lu_types;
+
+      typedef
+      typename pb_ds::detail::typelist_at_index<
+	lu_types,
+	0>::type
+      min_lu_type;
+
+    public:
+      typedef lu_types performance_tl;
+
+      typedef lu_types regression_tl;
+
+      typedef
+      typename pb_ds::detail::typelist1<
+	min_lu_type>::type
+      performance_min_tl;
+    };
+
+    template<typename Key, typename Data, class Cmp_Fn = std::less<Key>,
+	     template<typename Const_Node_Iterator,
+		      class Node_Iterator,
+		      class Cmp_Fn_,
+		      class Allocator_>
+    class Node_Update =
+	     pb_ds::null_tree_node_update,
+	     class Allocator =
+	     std::allocator<std::pair<const Key, Data> > >
+    struct tree_common_types
+    {
+    private:
+      typedef
+      pb_ds::tree<
+      Key,
+      Data,
+      Cmp_Fn,
+      pb_ds::ov_tree_tag,
+      Node_Update,
+      Allocator>
+      ov_tree_assoc_container_t;
+
+      typedef
+      pb_ds::tree<
+	Key,
+	Data,
+	Cmp_Fn,
+	pb_ds::rb_tree_tag,
+	Node_Update,
+	Allocator>
+      rb_tree_assoc_container_t;
+
+      typedef
+      pb_ds::tree<
+	Key,
+	Data,
+	Cmp_Fn,
+	pb_ds::splay_tree_tag,
+	Node_Update,
+	Allocator>
+      splay_tree_assoc_container_t;
+
+    public:
+      typedef
+      typename pb_ds::detail::typelist3<
+      splay_tree_assoc_container_t,
+      rb_tree_assoc_container_t,
+      ov_tree_assoc_container_t>::type
+      performance_tl;
+
+      typedef
+      typename pb_ds::detail::typelist3<
+	ov_tree_assoc_container_t,
+	splay_tree_assoc_container_t,
+	rb_tree_assoc_container_t>::type
+      regression_tl;
+
+      typedef
+      typename pb_ds::detail::typelist1<
+	rb_tree_assoc_container_t>::type
+      performance_min_tl;
+    };
+
+    template<typename Key,
+	     typename Data,
+	     class E_Access_Traits =
+	     typename pb_ds::detail::default_trie_e_access_traits<
+      Key>::type,
+	     class Tag =
+	     pb_ds::pat_trie_tag,
+	     template<typename Const_Node_Iterator,
+		      typename Node_Iterator,
+		      class E_Access_Traits_,
+		      typename Allocator_>
+    class Node_Update =
+	     pb_ds::null_trie_node_update,
+	     class Allocator =
+	     std::allocator<char> >
+    class trie_common_types
+    {
+    private:
+      typedef
+      pb_ds::trie<
+      Key,
+      Data,
+      E_Access_Traits,
+      Tag,
+      Node_Update,
+      Allocator>
+      type;
+
+    public:
+      typedef typename pb_ds::detail::typelist1< type>::type performance_tl;
+
+      typedef typename pb_ds::detail::typelist1< type>::type regression_tl;
+
+      typedef
+      typename pb_ds::detail::typelist1<
+	type>::type
+      performance_min_tl;
+    };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_COMMON_TYPES_HPP
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
new file mode 100644
index 000000000000..024caab4b2b9
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/comb_hash_fn_string_form.hpp
@@ -0,0 +1,122 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file comb_hash_fn_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_COMB_HASH_FN_STRING_FORM_HPP
+#define PB_DS_COMB_HASH_FN_STRING_FORM_HPP
+
+#include <string>
+#include <common_type/assoc/template_policy.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Comb_Hash_Fn>
+      struct comb_hash_fn_string_form
+      {
+	static std::string
+        name()
+	{
+	  return (Comb_Hash_Fn::name());
+	}
+
+	static std::string
+        desc()
+	{
+	  return (Comb_Hash_Fn::desc());
+	}
+      };
+
+      template<typename Size_Type>
+      struct comb_hash_fn_string_form<
+	direct_mask_range_hashing_t_<
+        Size_Type> >
+      {
+	static std::string
+        name()
+	{
+	  return ("mask_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Comb_Hash_Fn", "value", "direct_mask_range_hashing"));
+	}
+      };
+
+      template<typename Size_Type>
+      struct comb_hash_fn_string_form<
+	direct_mod_range_hashing_t_<
+        Size_Type> >
+      {
+	static std::string
+        name()
+	{
+	  return ("mod_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Comb_Hash_Fn", "value", "direct_mod_range_hashing"));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_COMB_HASH_FN_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
new file mode 100644
index 000000000000..84edbd90273f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/ds_string_form.hpp
@@ -0,0 +1,304 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file ds_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_DS_STRING_FORM_HPP
+#define PB_DS_DS_STRING_FORM_HPP
+
+#include <string>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <common_type/assoc/detail/list_update_policy_string_form.hpp>
+#include <common_type/assoc/detail/comb_hash_fn_string_form.hpp>
+#include <common_type/assoc/detail/resize_policy_string_form.hpp>
+#include <common_type/assoc/detail/probe_fn_string_form.hpp>
+#include <common_type/assoc/detail/tree_supports_order_statistics.hpp>
+#include <common_type/assoc/detail/trie_supports_order_statistics.hpp>
+#include <common_type/assoc/detail/trie_supports_prefix_search.hpp>
+#include <common_type/assoc/detail/store_hash_string_form.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr, class Tag>
+      struct ds_string_form;
+
+      template<typename Cntnr>
+      struct ds_string_form<
+	Cntnr,
+	pb_ds::cc_hash_tag>
+      {
+	static std::string
+        name()
+	{
+	  return ("cc_hash_" +
+		  comb_hash_fn_string_form<typename Cntnr::comb_hash_fn>::name() +
+		  resize_policy_string_form<typename Cntnr::resize_policy>::name() +
+		  store_hash_string_form<Cntnr::store_hash>::name());
+	}
+
+	static std::string
+        desc()
+	{
+	  const std::string comb_hash_fn_desc =
+            comb_hash_fn_string_form<typename Cntnr::comb_hash_fn>::desc();
+
+	  const std::string resize_policy_desc =
+            resize_policy_string_form<typename Cntnr::resize_policy>::desc();
+
+	  const std::string store_hash_desc =
+            store_hash_string_form<Cntnr::store_hash>::desc();
+
+	  return (make_xml_tag(            "type", "value", "cc_hash_table", comb_hash_fn_desc +            resize_policy_desc +            store_hash_desc));
+	}
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<
+	Cntnr,
+	pb_ds::gp_hash_tag>
+      {
+	static std::string
+        name()
+	{
+	  return ("gp_hash_" +
+		  comb_hash_fn_string_form<typename Cntnr::comb_probe_fn>::name() +
+		  probe_fn_string_form<typename Cntnr::probe_fn>::name() +
+		  resize_policy_string_form<typename Cntnr::resize_policy>::name() +
+		  store_hash_string_form<Cntnr::store_hash>::name());
+	}
+
+	static std::string
+        desc()
+	{
+	  const std::string comb_probe_fn_desc =
+            comb_hash_fn_string_form<typename Cntnr::comb_probe_fn>::desc();
+
+	  const std::string probe_fn_desc =
+            probe_fn_string_form<typename Cntnr::probe_fn>::desc();
+
+	  const std::string resize_policy_desc =
+            resize_policy_string_form<typename Cntnr::resize_policy>::desc();
+
+	  const std::string store_hash_desc =
+            store_hash_string_form<Cntnr::store_hash>::desc();
+
+	  return (make_xml_tag(            "type", "value", "gp_hash_table", comb_probe_fn_desc +            probe_fn_desc +            resize_policy_desc +            store_hash_desc));
+	}
+      };
+
+      template<typename Cntnr>
+      struct tree_ds_string_form
+      {
+	static std::string
+        name(const std::string container_category_str)
+	{
+	  if (tree_supports_order_statistics<Cntnr>::value)
+            return (container_category_str + "ost_");
+
+	  return (container_category_str);
+	}
+
+	static std::string
+        desc(const std::string container_category_str)
+	{
+	  const std::string category_str =
+            make_xml_tag(                "Tag",  "value",  container_category_str);
+
+	  const std::string node_update_str =
+            make_xml_tag(
+			 "Node_Update",
+			 "value",(tree_supports_order_statistics<Cntnr>::value?
+				  "tree_order_statistics_node_update" : "null_tree_node_update"));
+
+	  return (make_xml_tag(            "type", "value", "tree", category_str + node_update_str));
+	}
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<
+        Cntnr,
+        pb_ds::rb_tree_tag> : private tree_ds_string_form<
+        Cntnr>
+      {
+      private:
+	typedef tree_ds_string_form< Cntnr> base_type;
+
+      public:
+	static std::string
+        name()
+	{
+	  return (base_type::name("rb_tree_"));
+	}
+
+	static std::string
+        desc()
+	{
+	  return (base_type::desc("rb_tree_tag"));
+	}
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<
+        Cntnr,
+        pb_ds::splay_tree_tag> : private tree_ds_string_form<
+        Cntnr>
+      {
+      private:
+	typedef tree_ds_string_form< Cntnr> base_type;
+
+      public:
+	static std::string
+        name()
+	{
+	  return (base_type::name("splay_tree_"));
+	}
+
+	static std::string
+        desc()
+	{
+	  return (base_type::desc("splay_tree_tag"));
+	}
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<
+        Cntnr,
+        pb_ds::ov_tree_tag> : private tree_ds_string_form<
+        Cntnr>
+      {
+      private:
+	typedef tree_ds_string_form< Cntnr> base_type;
+
+      public:
+	static std::string
+        name()
+	{
+	  return (base_type::name("ov_tree_"));
+	}
+
+	static std::string
+        desc()
+	{
+	  return (base_type::desc("ov_tree_tag"));
+	}
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<
+	Cntnr,
+	pb_ds::list_update_tag>
+      {
+	static std::string
+        name()
+	{
+	  return ("lu_" +
+		  lu_policy_string_form<typename Cntnr::update_policy>::name());
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(
+			       "type",
+			       "value",
+			       "list_update",
+			       lu_policy_string_form<typename Cntnr::update_policy>::desc()));
+	}
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<
+	Cntnr,
+	pb_ds::pat_trie_tag>
+      {
+	static std::string
+        name()
+	{
+	  if (trie_supports_order_statistics<Cntnr>::value)
+            return ("pat_trie_ost_");
+
+	  if (trie_supports_prefix_search<Cntnr>::value)
+            return ("pat_trie_prs_");
+
+	  return ("pat_trie_");
+	}
+
+	static std::string
+        desc()
+	{
+	  const std::string category_str =
+            make_xml_tag(                "Tag",  "value",  "pat_trie_tag");
+
+	  std::string node_update_desc;
+
+	  if (trie_supports_order_statistics<Cntnr>::value)
+            node_update_desc =
+	      make_xml_tag(                    "Node_Update",  "value",  "trie_order_statistics_node_update");
+	  else if (trie_supports_prefix_search<Cntnr>::value)
+            node_update_desc =
+	      make_xml_tag(                    "Node_Update",  "value",  "trie_prefix_search_node_update");
+	  else
+            node_update_desc =
+	      make_xml_tag(                    "Node_Update",  "value",  "null_trie_node_update");
+
+	  return (make_xml_tag(            "type", "value", "trie", category_str + node_update_desc));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_DS_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
new file mode 100644
index 000000000000..d8f9e977aec0
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/list_update_policy_string_form.hpp
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file lu_policy_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_LU_POLICY_STRING_FORM_HPP
+#define PB_DS_LU_POLICY_STRING_FORM_HPP
+
+#include <string>
+#include <common_type/assoc/template_policy.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Update_Policy>
+      struct lu_policy_string_form;
+
+      template<>
+      struct lu_policy_string_form<
+	move_to_front_lu_policy_t_>
+      {
+	static std::string
+        name()
+	{
+	  return ("mtf_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Update_Policy", "value", "move_to_front_lu_policy"));
+	}
+      };
+
+      template<typename Allocator, typename Allocator::size_type Max_Count>
+      struct lu_policy_string_form<
+	counter_lu_policy_t_<
+        Allocator,
+        Max_Count> >
+      {
+	static std::string
+        name()
+	{
+	  std::ostringstream ret;
+
+	  ret << "cnt_" << Max_Count << "_";
+
+	  return (ret.str());
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Update_Policy", "value", "counter_lu_policy", "Max_Count", Max_Count));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_LU_POLICY_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
new file mode 100644
index 000000000000..364e7efcc733
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/probe_fn_string_form.hpp
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file probe_fn_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_PROBE_FN_STRING_FORM_HPP
+#define PB_DS_PROBE_FN_STRING_FORM_HPP
+
+#include <string>
+#include <common_type/assoc/template_policy.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Probe_Fn>
+      struct probe_fn_string_form;
+
+      template<typename Key, class Allocator>
+      struct probe_fn_string_form<
+	linear_probe_fn_t_<
+        Key,
+        Allocator> >
+      {
+	static std::string
+        name()
+	{
+	  return ("linp_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Probe_Fn", "value", "linear_probe_fn"));
+	}
+      };
+
+      template<typename Key, class Allocator>
+      struct probe_fn_string_form<
+	quadratic_probe_fn_t_<
+        Key,
+        Allocator> >
+      {
+	static std::string
+        name()
+	{
+	  return ("quadp_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Probe_Fn", "value", "quadratic_probe_fn"));
+	}
+      };
+
+      template<>
+      struct probe_fn_string_form<
+	pb_ds::null_probe_fn>
+      {
+	static std::string
+        name()
+	{
+	  return ("");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Probe_Fn", "value", "null_probe_fn"));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PROBE_FN_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
new file mode 100644
index 000000000000..96da7a3c721c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/resize_policy_string_form.hpp
@@ -0,0 +1,106 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_policy_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_RESIZE_POLICY_STRING_FORM_HPP
+#define PB_DS_RESIZE_POLICY_STRING_FORM_HPP
+
+#include <string>
+#include <common_type/assoc/detail/size_policy_string_form.hpp>
+#include <common_type/assoc/detail/trigger_policy_string_form.hpp>
+#include <common_type/assoc/template_policy.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Resize_Policy>
+      struct resize_policy_string_form;
+
+      template<typename Size_Policy,
+	       class Trigger_Policy,
+	       bool External_Size_Access,
+	       typename Size_Type>
+      struct resize_policy_string_form<
+	pb_ds::hash_standard_resize_policy<
+        Size_Policy,
+        Trigger_Policy,
+        External_Size_Access,
+        Size_Type> >
+      {
+	static std::string
+        name()
+	{
+	  return (size_policy_string_form<Size_Policy>::name() +
+		  trigger_policy_string_form<Trigger_Policy>::name());
+	}
+
+	static std::string
+        desc()
+	{
+	  const std::string size_policy_string_form_desc =
+            size_policy_string_form<Size_Policy>::desc();
+
+	  const std::string trigger_policy_string_form_desc =
+            trigger_policy_string_form<Trigger_Policy>::desc();
+
+	  return (make_xml_tag(            "Resize_Policy", "value", "hash_standard_resize_policy", size_policy_string_form_desc + trigger_policy_string_form_desc));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RESIZE_POLICY_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
new file mode 100644
index 000000000000..1ae61c4c14a3
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/size_policy_string_form.hpp
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file size_policy_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_SIZE_POLICY_STRING_FORM_HPP
+#define PB_DS_SIZE_POLICY_STRING_FORM_HPP
+
+#include <string>
+#include <common_type/assoc/detail/size_policy_string_form.hpp>
+#include <common_type/assoc/detail/trigger_policy_string_form.hpp>
+#include <common_type/assoc/template_policy.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Size_Policy>
+      struct size_policy_string_form;
+
+      template<typename Allocator>
+      struct size_policy_string_form<
+	pb_ds::test::hash_exponential_size_policy_t_<
+        Allocator> >
+      {
+	static std::string
+        name()
+	{
+	  return ("exp_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Size_Policy", "value", "hash_exponential_size_policy"));
+	}
+      };
+
+      template<>
+      struct size_policy_string_form<
+	pb_ds::test::hash_prime_size_policy_t_>
+      {
+	static std::string
+        name()
+	{
+	  return ("prime_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Size_Policy", "value", "hash_prime_size_policy"));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SIZE_POLICY_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
new file mode 100644
index 000000000000..4dabbd6ca8f1
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/store_hash_string_form.hpp
@@ -0,0 +1,103 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file store_hash_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_STORE_HASH_STRING_FORM_HPP
+#define PB_DS_STORE_HASH_STRING_FORM_HPP
+
+#include <string>
+#include <common_type/assoc/template_policy.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<bool Store_Hash>
+      struct store_hash_string_form
+      {
+	static std::string
+        name()
+	{
+	  return ("sth_");
+	}
+
+	static std::string
+        desc()
+	{
+	  return (make_xml_tag(            "Store_Hash", "value", "true"));
+	}
+      };
+
+      template<>
+      struct store_hash_string_form<
+        false>
+      {
+	static std::string
+	name()
+        {
+	  return ("nsth_");
+	}
+
+	static std::string
+        desc()
+        {
+	  return (make_xml_tag(                "Store_Hash",  "value",  "false"));
+        }
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_STORE_HASH_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
new file mode 100644
index 000000000000..14bdc7bab325
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/tree_supports_order_statistics.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_supports_order_statistics.hpp
+ * Checks whether a tree supports order statistics.
+ */
+
+#ifndef PB_DS_TREE_SUPPORTS_ORDER_STATISTICS_HPP
+#define PB_DS_TREE_SUPPORTS_ORDER_STATISTICS_HPP
+
+#include <ext/pb_ds/tree_policy.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Tree_Cntnr>
+      struct tree_supports_order_statistics
+      {
+	enum
+	  {
+	    value = pb_ds::detail::is_same<
+            typename Tree_Cntnr::node_update,
+            pb_ds::tree_order_statistics_node_update<
+            typename Tree_Cntnr::const_node_iterator,
+            typename Tree_Cntnr::node_iterator,
+            typename Tree_Cntnr::cmp_fn,
+            typename Tree_Cntnr::allocator> >::value
+	  };
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TREE_SUPPORTS_ORDER_STATISTICS_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
new file mode 100644
index 000000000000..43f2c7111070
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_order_statistics.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_supports_order_statistics.hpp
+ * Checks whether a trie supports order stats.
+ */
+
+#ifndef PB_DS_TRIE_SUPPORTS_ORDER_STATISTICS_HPP
+#define PB_DS_TRIE_SUPPORTS_ORDER_STATISTICS_HPP
+
+#include <ext/pb_ds/trie_policy.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Tree_Cntnr>
+      struct trie_supports_order_statistics
+      {
+	enum
+	  {
+	    value = pb_ds::detail::is_same<
+            typename Tree_Cntnr::node_update,
+            pb_ds::trie_order_statistics_node_update<
+            typename Tree_Cntnr::const_node_iterator,
+            typename Tree_Cntnr::node_iterator,
+            typename Tree_Cntnr::e_access_traits,
+            typename Tree_Cntnr::allocator> >::value
+	  };
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TRIE_SUPPORTS_ORDER_STATISTICS_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
new file mode 100644
index 000000000000..7fb3479715fc
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/trie_supports_prefix_search.hpp
@@ -0,0 +1,83 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trie_supports_prefix_search.hpp
+ * Checks whether a trie supports prefix search.
+ */
+
+#ifndef PB_DS_TRIE_SUPPORTS_PREFIX_SEARCH_HPP
+#define PB_DS_TRIE_SUPPORTS_PREFIX_SEARCH_HPP
+
+#include <ext/pb_ds/trie_policy.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Tree_Cntnr>
+      struct trie_supports_prefix_search
+      {
+	enum
+	  {
+	    value = pb_ds::detail::is_same<
+            typename Tree_Cntnr::node_update,
+            pb_ds::trie_prefix_search_node_update<
+            typename Tree_Cntnr::const_node_iterator,
+            typename Tree_Cntnr::node_iterator,
+            typename Tree_Cntnr::e_access_traits,
+            typename Tree_Cntnr::allocator> >::value
+	  };
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TRIE_SUPPORTS_PREFIX_SEARCH_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
new file mode 100644
index 000000000000..0d7081f49660
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/detail/trigger_policy_string_form.hpp
@@ -0,0 +1,153 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trigger_policy_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_TRIGGER_POLICY_STRING_FORM_HPP
+#define PB_DS_TRIGGER_POLICY_STRING_FORM_HPP
+
+#include <string>
+#include <common_type/assoc/template_policy.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Trigger_Policy>
+      struct trigger_policy_string_form;
+
+      template<typename Allocator,
+	       typename Allocator::size_type Min_Load_Nom,
+	       typename Allocator::size_type Min_Load_Denom,
+	       typename Allocator::size_type Max_Load_Nom,
+	       typename Allocator::size_type Max_Load_Denom,
+	       bool External_Access>
+      struct trigger_policy_string_form<
+	pb_ds::test::hash_load_check_resize_trigger_t_<
+        Allocator,
+        Min_Load_Nom,
+        Min_Load_Denom,
+        Max_Load_Nom,
+        Max_Load_Denom,
+        External_Access> >
+      {
+	static std::string
+        name()
+	{
+	  std::ostringstream ret;
+
+	  ret << (External_Access? "": "n") << "ea_"
+            "lc_" << Min_Load_Nom << "div" << Min_Load_Denom << "_" <<
+            Max_Load_Nom << "div" << Max_Load_Denom << "_";
+
+	  return (ret.str());
+	}
+
+	static std::string
+        desc()
+	{
+	  const std::string ext_access_desc =
+            make_xml_tag(
+			 "External_Access",
+			 "value",(External_Access? "true" : "false"));
+
+	  const std::string loads_desc =
+            make_xml_tag(                "alpha_min",  "nom", Min_Load_Nom,  "denom", Min_Load_Denom) +
+            make_xml_tag(                "alpha_max",  "nom", Max_Load_Nom,  "denom", Max_Load_Denom);
+
+	  return (make_xml_tag(            "Trigger_Policy", "value", "hash_load_check_resize_trigger", ext_access_desc + loads_desc));
+	}
+      };
+
+      template<typename Allocator,
+	       typename Allocator::size_type Load_Nom,
+	       typename Allocator::size_type Load_Denom,
+	       bool External_Access>
+      struct trigger_policy_string_form<
+	pb_ds::test::cc_hash_max_collision_check_resize_trigger_t_<
+        Allocator,
+        Load_Nom,
+        Load_Denom,
+        External_Access> >
+      {
+	static std::string
+        name()
+	{
+	  std::ostringstream ret;
+
+	  ret << (External_Access? "": "n") << "ea_"
+            "mcolc_" << Load_Nom << "div" << Load_Denom << "_";
+
+	  return (ret.str());
+	}
+
+	static std::string
+        desc()
+	{
+	  const std::string ext_access_desc =
+            make_xml_tag(
+			 "External_Access",
+			 "value",(External_Access? "true" : "false"));
+
+	  const std::string load_desc =
+            make_xml_tag(                "alpha",  "nom", Load_Nom,  "denom", Load_Denom);
+
+	  return (make_xml_tag(            "Trigger_Policy", "value", "cc_hash_max_collision_check_resize_trigger", ext_access_desc + load_desc));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TRIGGER_POLICY_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
new file mode 100644
index 000000000000..ec72648f854b
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/native_set.hpp
@@ -0,0 +1,111 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_set.hpp
+ * Contains an adapter to Dinkumware/SGI tree tables
+ */
+
+#ifndef PB_DS_NATIVE_SET_HPP
+#define PB_DS_NATIVE_SET_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <native_type/assoc/native_tree_tag.hpp>
+#include <io/xml.hpp>
+#include <string>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_BASE_C_DEC						\
+    std::set<								\
+								Key,	\
+								Cmp_Fn,	\
+								typename Allocator::template rebind< \
+														Key>::other>
+
+    template<typename Key, class Cmp_Fn = std::less<Key>,
+	     class Allocator =
+	     std::allocator<char> >
+    class native_set : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef native_tree_tag container_category;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator;
+
+    public:
+      native_set() : base_type()
+      { }
+
+      template<typename It>
+      native_set(It f,  It l) : base_type(f, l)
+      { }
+
+      native_set(const_iterator f,  const_iterator l) : base_type(f, l)
+      { }
+
+      static std::string
+      name()
+      {
+        return ("n_set");
+      }
+
+      static std::string
+      desc()
+      {
+        return (make_xml_tag(            "type", "value", "std_set"));
+      }
+    };
+
+#undef PB_DS_BASE_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_SET_HPP
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
new file mode 100644
index 000000000000..983f8a11c57e
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/string_form.hpp
@@ -0,0 +1,238 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_STRING_FORM_HPP
+#define PB_DS_STRING_FORM_HPP
+
+#include <string>
+#include <sstream>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <native_type/assoc/native_hash_map.hpp>
+#include <native_type/assoc/native_hash_set.hpp>
+#include <native_type/assoc/native_multimap.hpp>
+#include <native_type/assoc/native_hash_multimap.hpp>
+#include <native_type/assoc/native_set.hpp>
+#include <common_type/assoc/template_policy.hpp>
+#include <common_type/assoc/detail/ds_string_form.hpp>
+#include <regression/basic_type.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr>
+      struct pb_ds_string_form
+      {
+      private:
+	typedef typename Cntnr::mapped_type mapped_type;
+
+	struct mapped_string_form
+	{
+	private:
+	  template<typename D_Cntnr>
+	  static std::string
+	  name(pb_ds::detail::type_to_type<D_Cntnr>)
+	  {
+            return ("mmap_" + pb_ds_string_form<D_Cntnr>::name());
+	  }
+
+	  template<typename D_Cntnr>
+	  static std::string
+	  desc(pb_ds::detail::type_to_type<D_Cntnr>)
+	  {
+            return (pb_ds_string_form<D_Cntnr>::desc());
+	  }
+
+	  static std::string
+	  name(pb_ds::detail::type_to_type<size_t>)
+	  {
+            return ("map");
+	  }
+
+	  static std::string
+	  desc(pb_ds::detail::type_to_type<size_t>)
+	  {
+            return ("");
+	  }
+
+	  static std::string
+	  name(pb_ds::detail::type_to_type<basic_type>)
+	  {
+            return ("map");
+	  }
+
+	  static std::string
+	  desc(pb_ds::detail::type_to_type<basic_type>)
+	  {
+            return ("");
+	  }
+
+	  static std::string
+	  name(pb_ds::detail::type_to_type<int>)
+	  {
+            return ("map");
+	  }
+
+	  static std::string
+	  desc(pb_ds::detail::type_to_type<int>)
+	  {
+            return ("");
+	  }
+
+	  static std::string
+	  name(pb_ds::detail::type_to_type<char>)
+	  {
+            return ("map");
+	  }
+
+	  static std::string
+	  desc(pb_ds::detail::type_to_type<char>)
+	  {
+            return ("");
+	  }
+
+	  static std::string
+	  name(pb_ds::detail::type_to_type<pb_ds::null_mapped_type>)
+	  {
+            return ("set");
+	  }
+
+	  static std::string
+	  desc(pb_ds::detail::type_to_type<pb_ds::null_mapped_type>)
+	  {
+            return ("");
+	  }
+
+	public:
+	  static std::string
+	  name()
+	  {
+            return (name(pb_ds::detail::type_to_type<mapped_type>()));
+	  }
+
+	  static std::string
+	  desc()
+	  {
+            return (desc(pb_ds::detail::type_to_type<mapped_type>()));
+	  }
+	};
+
+	typedef
+        detail::ds_string_form<
+	  Cntnr,
+	  typename Cntnr::container_category>
+        ds_string_form_t;
+
+      public:
+	static std::string
+        name()
+	{
+	  return (ds_string_form_t::name() + mapped_string_form::name());
+	}
+
+	static std::string
+        desc()
+	{
+	  return (ds_string_form_t::desc() + mapped_string_form::desc());
+	}
+      };
+
+      template<typename Cntnr>
+      struct native_string_form
+      {
+	static std::string
+        name()
+	{
+	  return (Cntnr::name());
+	}
+
+	static std::string
+        desc()
+	{
+	  return (Cntnr::desc());
+	}
+      };
+
+      template<typename Cntnr, class Tag>
+      struct tag_select_string_form : public pb_ds_string_form<
+        Cntnr>
+      { };
+
+      template<typename Cntnr>
+      struct tag_select_string_form<
+        Cntnr,
+        native_hash_tag> : public native_string_form<
+        Cntnr>
+      { };
+
+      template<typename Cntnr>
+      struct tag_select_string_form<
+        Cntnr,
+        native_tree_tag> : public native_string_form<
+        Cntnr>
+      { };
+
+    } // namespace detail
+
+    template<typename Cntnr>
+    struct string_form : public detail::tag_select_string_form<
+      Cntnr,
+      typename Cntnr::container_category>
+    { };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp b/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
new file mode 100644
index 000000000000..288aba24a47e
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/assoc/template_policy.hpp
@@ -0,0 +1,176 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file template_policy.hpp
+ * Contains template versions of policies.
+ */
+
+#ifndef PB_DS_TEMPLATE_POLICY_HPP
+#define PB_DS_TEMPLATE_POLICY_HPP
+
+#include <ext/pb_ds/detail/typelist.hpp>
+
+#include <ext/pb_ds/hash_policy.hpp>
+#include <ext/pb_ds/tree_policy.hpp>
+#include <ext/pb_ds/list_update_policy.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    template<typename Allocator>
+    struct direct_mask_range_hashing_t_ : public pb_ds::direct_mask_range_hashing<
+      typename Allocator::size_type>
+    {
+      typedef
+      pb_ds::direct_mask_range_hashing<
+	typename Allocator::size_type>
+      base_type;
+    };
+
+    template<typename Allocator>
+    struct direct_mod_range_hashing_t_ : public pb_ds::direct_mod_range_hashing<
+      typename Allocator::size_type>
+    {
+      typedef
+      pb_ds::direct_mod_range_hashing<
+	typename Allocator::size_type>
+      base_type;
+    };
+
+    template<typename Allocator,
+	     typename Allocator::size_type Min_Load_Nom,
+	     typename Allocator::size_type Min_Load_Denom,
+	     typename Allocator::size_type Max_Load_Nom,
+	     typename Allocator::size_type Max_Load_Denom,
+	     bool External_Access>
+    struct hash_load_check_resize_trigger_t_ : public pb_ds::hash_load_check_resize_trigger<
+      External_Access,
+      typename Allocator::size_type>
+    {
+      typedef
+      pb_ds::hash_load_check_resize_trigger<
+	External_Access,
+	typename Allocator::size_type>
+      base_type;
+
+      inline
+      hash_load_check_resize_trigger_t_() : base_type(
+						      static_cast<float>(Min_Load_Nom) /
+						      static_cast<float>(Min_Load_Denom),
+						      static_cast<float>(Max_Load_Nom) /
+						      static_cast<float>(Max_Load_Denom))
+      { }
+
+      enum
+	{
+	  get_set_loads = External_Access,
+	  get_set_load = false
+	};
+    };
+
+    template<typename Allocator,
+	     typename Allocator::size_type Load_Nom,
+	     typename Allocator::size_type Load_Denom,
+	     bool External_Access>
+    struct cc_hash_max_collision_check_resize_trigger_t_ : public pb_ds::cc_hash_max_collision_check_resize_trigger<
+      External_Access,
+      typename Allocator::size_type>
+    {
+      typedef
+      pb_ds::cc_hash_max_collision_check_resize_trigger<
+	External_Access,
+	typename Allocator::size_type>
+      base_type;
+
+      inline
+      cc_hash_max_collision_check_resize_trigger_t_() : base_type(
+								  static_cast<float>(Load_Nom) /
+								  static_cast<float>(Load_Denom))
+      { }
+
+      enum
+	{
+	  get_set_load = External_Access,
+	  get_set_loads = false
+	};
+    };
+
+    struct hash_prime_size_policy_t_ : public pb_ds::hash_prime_size_policy
+    { };
+
+    template<typename Allocator>
+    struct hash_exponential_size_policy_t_ : public pb_ds::hash_exponential_size_policy<
+      typename Allocator::size_type>
+    {
+      // Nothing
+    };
+
+    template<typename Key, class Allocator>
+    struct linear_probe_fn_t_ : public pb_ds::linear_probe_fn<
+      typename Allocator::size_type>
+    { };
+
+    template<typename Key, class Allocator>
+    struct quadratic_probe_fn_t_ : public pb_ds::quadratic_probe_fn<
+      typename Allocator::size_type>
+    { };
+
+    template<typename Allocator, typename Allocator::size_type Max_Count>
+    struct counter_lu_policy_t_ : public pb_ds::counter_lu_policy<
+      Max_Count,
+      Allocator>
+    {
+      typedef pb_ds::counter_lu_policy< Max_Count, Allocator> base_type;
+    };
+
+    struct move_to_front_lu_policy_t_ : public pb_ds::move_to_front_lu_policy<>
+    { };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TEMPLATE_POLICY_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp b/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
new file mode 100644
index 000000000000..437fe6e09e5c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/priority_queue/common_type.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file common_type.hpp
+ * Contains common types.
+ */
+
+#ifndef PB_DS_COMMON_TYPES_HPP
+#define PB_DS_COMMON_TYPES_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <ext/pb_ds/detail/typelist.hpp>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    template<typename Value_Type, typename Cmp_Fn = std::less<Value_Type>,
+	     class Allocator = std::allocator<Value_Type> >
+    struct pq_common_types
+    {
+    private:
+      //    typedef typename Allocator::size_type size_type;
+
+      typedef pb_ds::priority_queue<Value_Type, Cmp_Fn, pb_ds::pairing_heap_tag, Allocator> pairing_heap_t;
+
+      typedef pb_ds::priority_queue<Value_Type, Cmp_Fn, pb_ds::binomial_heap_tag, Allocator> binomial_heap_t;
+
+      typedef pb_ds::priority_queue<Value_Type, Cmp_Fn, pb_ds::rc_binomial_heap_tag, Allocator> rc_binomial_heap_t;
+
+      typedef pb_ds::priority_queue<Value_Type, Cmp_Fn, pb_ds::binary_heap_tag, Allocator> binary_heap_t;
+
+      typedef pb_ds::priority_queue<Value_Type, Cmp_Fn, pb_ds::thin_heap_tag, Allocator> thin_heap_t;
+
+      typedef typename pb_ds::detail::typelist5<thin_heap_t, pairing_heap_t, binomial_heap_t, rc_binomial_heap_t, binary_heap_t>::type all_tl;
+
+    public:
+      typedef all_tl performance_tl;
+      typedef all_tl regression_tl;
+      typedef all_tl performance_min_tl;
+      typedef all_tl regression_min_tl;
+    };
+
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_COMMON_TYPES_HPP
diff --git a/libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp b/libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
new file mode 100644
index 000000000000..4c33e6c1fdbd
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/priority_queue/detail/ds_string_form.hpp
@@ -0,0 +1,128 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file ds_string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_DS_STRING_FORM_HPP
+#define PB_DS_DS_STRING_FORM_HPP
+
+#include <string>
+#include <ext/pb_ds/tag_and_trait.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    namespace detail
+    {
+      template<typename Cntnr, class Tag>
+      struct ds_string_form;
+
+      template<typename Cntnr>
+      struct ds_string_form<Cntnr, pb_ds::pairing_heap_tag>
+      {
+	static std::string
+        name()
+	{ return "pairing_heap"; }
+
+	static std::string
+        desc()
+	{ return make_xml_tag("type", "value", "pairing_heap"); }
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<Cntnr, pb_ds::thin_heap_tag>
+      {
+	static std::string
+        name()
+	{ return "thin_heap"; }
+
+	static std::string
+        desc()
+	{ return make_xml_tag("type", "value", "thin_heap"); }
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<Cntnr, pb_ds::binomial_heap_tag>
+      {
+	static std::string
+        name()
+	{ return "binomial_heap"; }
+
+	static std::string
+        desc()
+	{ return make_xml_tag("type", "value", "binomial_heap"); }
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<Cntnr, pb_ds::rc_binomial_heap_tag>
+      {
+	static std::string
+        name()
+	{ return "rc_binomial_heap"; }
+
+	static std::string
+        desc()
+	{ return make_xml_tag("type", "value", "rc_binomial_heap"); }
+      };
+
+      template<typename Cntnr>
+      struct ds_string_form<Cntnr, pb_ds::binary_heap_tag>
+      {
+	static std::string
+        name()
+	{ return "binary_heap"; }
+
+	static std::string
+        desc()
+	{ return make_xml_tag("type", "value", "binary_heap"); }
+      };
+
+    } // namespace detail
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_DS_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp b/libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
new file mode 100644
index 000000000000..6d85b86a11db
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/common_type/priority_queue/string_form.hpp
@@ -0,0 +1,109 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file string_form.hpp
+ * Transforms containers into string form.
+ */
+
+#ifndef PB_DS_STRING_FORM_HPP
+#define PB_DS_STRING_FORM_HPP
+
+#include <string>
+#include <sstream>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <native_type/priority_queue/native_priority_queue.hpp>
+#include <common_type/priority_queue/detail/ds_string_form.hpp>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    namespace detail
+    {
+      template<typename Cntnr>
+      struct pb_ds_string_form
+      {
+      private:
+	typedef ds_string_form<Cntnr, typename Cntnr::container_category> ds_string_form_t;
+
+      public:
+	static std::string
+        name()
+	{ return ds_string_form_t::name(); }
+
+	static std::string
+        desc()
+	{ return ds_string_form_t::desc(); }
+      };
+
+      template<typename Cntnr>
+      struct native_string_form
+      {
+	static std::string
+        name()
+	{ return Cntnr::name(); }
+
+	static std::string
+        desc()
+	{ return Cntnr::desc(); }
+      };
+
+      template<typename Cntnr, class Tag>
+      struct tag_select_string_form : public pb_ds_string_form<Cntnr>
+      { };
+
+      template<typename Cntnr>
+      struct tag_select_string_form<Cntnr, native_pq_tag> 
+	: public native_string_form<Cntnr>
+      { };
+    } // namespace detail
+
+    template<typename Cntnr>
+    struct string_form 
+      : public detail::tag_select_string_form<Cntnr, typename Cntnr::container_category>
+    { };
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_STRING_FORM_HPP
+
diff --git a/libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp b/libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
new file mode 100644
index 000000000000..144cf03b2b94
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/hash_fn/dna_str_limit.hpp
@@ -0,0 +1,72 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file dna_str_limit.hpp
+ * Contains a function for finding the numer of characters
+ *    to access in a DNA string.
+ */
+
+#ifndef PB_DS_DNA_STR_LIMIT_HPP
+#define PB_DS_DNA_STR_LIMIT_HPP
+
+#include <string>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    size_t
+    dna_str_limit(size_t size)
+    {
+      size_t ret = 1;
+      size_t calc_size = 4;
+      while (calc_size < size)
+	{
+	  ++ret;
+	  calc_size = calc_size << 2;
+	}
+      return ret;
+    }
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_DNA_STR_LIMIT_HPP
diff --git a/libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp b/libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
new file mode 100644
index 000000000000..78cc6f22735f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/hash_fn/limit_string_hash_fn.hpp
@@ -0,0 +1,82 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file limit_string_hash_fn.hpp
+ * Contains a string hash function.
+ */
+
+#ifndef PB_DS_LIMIT_STRING_HASH_FN_HPP
+#define PB_DS_LIMIT_STRING_HASH_FN_HPP
+
+#include <string>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    struct limit_string_hash_fn
+    {
+      static size_t _S_max;
+
+      inline size_t
+      operator()(const std::string& r_str) const
+      {
+	size_t ret = 0;
+	std::string::const_iterator b = r_str.begin();
+	std::string::const_iterator e = r_str.end();
+
+	size_t i = 0;
+	while (b != e&&  i < _S_max)
+	  {
+	    ret *= 5;
+	    ret += static_cast<size_t>(*(b++));
+	  }
+	return ret;
+      }
+    };
+
+    size_t limit_string_hash_fn::_S_max;
+
+  } // namespace test
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp b/libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
new file mode 100644
index 000000000000..b1990b4b390d
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/hash_fn/string_hash_fn.hpp
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file string_hash_fn.hpp
+ * Contains a string hash function.
+ */
+
+#ifndef PB_DS_STRING_HASH_FN_HPP
+#define PB_DS_STRING_HASH_FN_HPP
+
+#include <string>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    struct string_hash_fn
+    {
+      template<typename String_T>
+      inline size_t
+      operator()(const String_T& r_str) const
+      {
+	typedef typename String_T::const_iterator const_iterator;
+	const_iterator b = r_str.begin();
+	const_iterator e = r_str.end();
+
+	size_t ret = 0;
+	while (b != e)
+	  {
+	    ret *= 5;
+	    ret += static_cast<size_t>(*(b++));
+	  }
+	return ret;
+      }
+    };
+  } // namespace test
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp b/libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
new file mode 100644
index 000000000000..e9a5465e485f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/hash_fn/string_ranged_hash_fn.hpp
@@ -0,0 +1,109 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file string_ranged_hash_fn.hpp
+ * Contains a ranged string hash function.
+ */
+
+#ifndef PB_DS_STRING_RANGED_HASH_FN_HPP
+#define PB_DS_STRING_RANGED_HASH_FN_HPP
+
+#include <string>
+#include <hash_fn/dna_str_limit.hpp>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    template<typename Comb_Fn>
+    class string_ranged_hash_fn : public Comb_Fn
+    {
+    private:
+      size_t _M_limit;
+
+    public:
+      typedef Comb_Fn comb_fn;
+      typedef detail::comb_hash_fn_string_form<comb_fn> string_form;
+
+      inline size_t
+      operator()(const std::string& r_str) const
+      {
+	size_t ret = 0;
+	std::string::const_iterator b = r_str.begin();
+	std::string::const_iterator e = r_str.end();
+
+	size_t i = 0;
+	while (i < _M_limit&&  b != e)
+	  {
+	    ret *= 5;
+	    ret += static_cast<size_t>(*(b++));
+	    ++i;
+	  }
+	return (comb_fn::operator()(ret));
+      }
+
+      void
+      swap(string_ranged_hash_fn<Comb_Fn>& other)
+      {
+	std::swap(_M_limit, other._M_limit);
+	comb_fn::swap(other);
+      }
+
+      void
+      notify_resized(size_t new_size)
+      {
+	comb_fn::notify_resized(new_size);
+	_M_limit = dna_str_limit(new_size);
+      }
+
+      static std::string
+      name()
+      { return ("string_ranged_hash_fn_" + string_form<comb_fn>::name()); }
+
+      static std::string
+      desc()
+      { return ("string ranged-hash using" + string_form<comb_fn>::desc()); }
+    };
+  } // namespace test
+} // namespace pb_ds
+
+#endif 
diff --git a/libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp b/libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
new file mode 100644
index 000000000000..63bb0533c55c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/hash_fn/string_ranged_probe_fn.hpp
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file string_ranged_probe_fn.hpp
+ * Contains a ranged string probe function.
+ */
+
+#ifndef PB_DS_STRING_RANGED_PROBE_FN_HPP
+#define PB_DS_STRING_RANGED_PROBE_FN_HPP
+
+#include <string>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    template<typename Comb_Fn, typename Probe_Fn>
+    class string_ranged_probe_fn : public Probe_Fn, public Comb_Fn
+    {
+    private:
+      size_t _M_limit;
+
+    public:
+      typedef Comb_Fn comb_fn;
+      typedef Probe_Fn probe_fn;
+      typedef detail::comb_hash_fn_string_form<comb_fn> string_form;
+
+      inline size_t
+      operator()(const std::string& r_str) const
+      {
+	size_t ret = 0;
+	std::string::const_iterator b = r_str.begin();
+	std::string::const_iterator e = r_str.end();
+
+	size_t i = 0;
+	while (i < _M_limit&&  b != e)
+	  {
+	    ret *= 5;
+	    ret += static_cast<size_t>(*(b++));
+	    ++i;
+	  }
+	return (comb_fn::operator()(ret));
+      }
+
+      inline size_t
+      operator()(const std::string&, const size_t hash, size_t i) const
+      { return comb_fn::operator()(hash + probe_fn::operator()(i)); }
+
+      void
+      swap(string_ranged_probe_fn<Comb_Fn, Probe_Fn>& other)
+      {
+	std::swap(_M_limit, other._M_limit);
+	comb_fn::swap(other);
+      }
+
+      void
+      notify_resized(size_t new_size)
+      {
+	comb_fn::notify_resized(new_size);
+	_M_limit = dna_str_limit(new_size);
+      }
+
+      static std::string
+      name()
+      { return ("string_ranged_probe_fn_" + string_form<comb_fn>::name()); }
+
+      static std::string
+      desc()
+      { return ("string ranged-probe using" + string_form<comb_fn>::desc());}
+    };
+  } // namespace test
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/testsuite/util/io/illegal_input_error.hpp b/libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
new file mode 100644
index 000000000000..3e786d457f83
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/illegal_input_error.hpp
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file illegal_input_error.hpp
+ * Contains an input exception.
+ */
+
+#ifndef PB_DS_ILLEGAL_INPUT_EX_HPP
+#define PB_DS_ILLEGAL_INPUT_EX_HPP
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    class illegal_input_error
+    { };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_ILLEGAL_INPUT_EX_HPP
diff --git a/libstdc++-v3/testsuite/util/io/prog_bar.cc b/libstdc++-v3/testsuite/util/io/prog_bar.cc
new file mode 100644
index 000000000000..365c5186532b
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/prog_bar.cc
@@ -0,0 +1,92 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file prog_bar.cpp
+ * Contains a progress bar - idea taken from boost::timer by Beman Dawes.
+ */
+
+#include <util/io/prog_bar.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    prog_bar::
+    prog_bar(size_t max, std::ostream& r_os, bool display/*= true*/) :
+      m_cur(0),
+      m_max(max),
+      m_cur_disp(0),
+      m_r_os(r_os),
+      m_display(display)
+    {
+      if (m_display == false)
+        return;
+
+      for (std::size_t i = 0; i < num_disp; ++i)
+        m_r_os << "-";
+
+      m_r_os << std::endl;
+    }
+
+    void
+    prog_bar::
+    inc()
+    {
+      ++m_cur;
+
+      if (m_display == false)
+        return;
+
+      while (m_cur*  num_disp >= m_max*  m_cur_disp&&  m_cur_disp < num_disp)
+	{
+	  m_r_os << '*';
+	  m_r_os.flush();
+
+	  ++m_cur_disp;
+	}
+    }
+
+  } // namespace test
+
+} // namespace pb_ds
diff --git a/libstdc++-v3/testsuite/util/io/prog_bar.hpp b/libstdc++-v3/testsuite/util/io/prog_bar.hpp
new file mode 100644
index 000000000000..0bbbda278542
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/prog_bar.hpp
@@ -0,0 +1,96 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file prog_bar.hpp
+ * Contains a progress bar - idea taken from boost::timer by Beman Dawes.
+ */
+
+#ifndef PB_DS_PROG_BAR_HPP
+#define PB_DS_PROG_BAR_HPP
+
+#include <limits.h>
+#include <iostream>
+#include <string>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    /**
+     * Progress bar.
+     * Simplified from part of boost::timer by Beman Dawes.
+     **/
+    class prog_bar
+    {
+    protected:
+      enum{num_disp = 40};
+
+    public:
+      prog_bar(size_t max, std::ostream& r_os, bool display = true);
+
+      void
+      inc();
+
+    private:
+      prog_bar(const prog_bar& );
+
+      prog_bar& 
+      operator=(const prog_bar& );
+
+    private:
+      size_t m_cur;
+      const size_t m_max;
+
+      size_t m_cur_disp;
+
+      std::ostream& m_r_os;
+
+      bool m_display;
+    };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PROG_BAR_HPP
diff --git a/libstdc++-v3/testsuite/util/io/text_populate.hpp b/libstdc++-v3/testsuite/util/io/text_populate.hpp
new file mode 100644
index 000000000000..a91097c5c932
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/text_populate.hpp
@@ -0,0 +1,163 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file text_populate.hpp
+ * Contains a function for populating a vector with text words from
+ *    a file.
+ */
+
+#ifndef PB_DS_TEXT_POPULATE_HPP
+#define PB_DS_TEXT_POPULATE_HPP
+
+#include <io/illegal_input_error.hpp>
+#include <set>
+#include <fstream>
+#include <string>
+#include <iostream>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    template<typename Vec>
+    void
+    text_populate(const std::string& r_f_name, Vec& r_a_txt)
+    {
+      const size_t size = r_a_txt.size();
+
+      try
+	{
+	  std::ifstream f(r_f_name.c_str());
+
+	  if (!f.good())
+	    {
+	      std::cerr << "Cannot open file " << r_f_name.c_str() <<
+                std::endl;
+
+	      throw pb_ds::test::illegal_input_error();
+	    }
+
+	  size_t i = 0;
+
+	  while (f.good()&&  i < size)
+	    {
+	      f >> r_a_txt[i].first;
+	      r_a_txt[i].second = 0;
+
+	      ++i;
+	    }
+
+	  if (i < size)
+	    {
+	      std::cerr << "Read only " << static_cast<unsigned long>(i) <<
+                " words" << std::endl;
+
+	      throw pb_ds::test::illegal_input_error();
+	    }
+	}
+      catch(...)
+	{
+	  std::cerr << "Error reading from file" << std::endl;
+
+	  throw;
+	}
+    }
+
+    template<typename Vec>
+    void
+    distinct_text_populate(const std::string& r_f_name, Vec& r_a_txt)
+    {
+      const size_t size = r_a_txt.size();
+
+      try
+	{
+	  std::ifstream f(r_f_name.c_str());
+
+	  if (!f.good())
+	    {
+	      std::cerr << "Cannot open file " << r_f_name.c_str() <<
+                std::endl;
+
+	      throw pb_ds::test::illegal_input_error();
+	    }
+
+	  typedef std::set< typename Vec::value_type::first_type> set_t;
+
+	  set_t s;
+
+	  while (f.good()&&  s.size() < size)
+	    {
+	      typename Vec::value_type::first_type v;
+
+	      f >> v;
+
+	      if (s.find(v) == s.end())
+		{
+		  r_a_txt[s.size()] = std::make_pair(v, 0);
+
+		  s.insert(v);
+		}
+	    }
+
+	  if (s.size() < size)
+	    {
+	      std::cerr << "Read only " << static_cast<unsigned long>(s.size()) <<
+                " words" << std::endl;
+
+	      throw pb_ds::test::illegal_input_error();
+	    }
+	}
+      catch(...)
+	{
+	  std::cerr << "Error reading from file" << std::endl;
+
+	  throw;
+	}
+    }
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TEXT_POPULATE_HPP
diff --git a/libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc b/libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
new file mode 100644
index 000000000000..7b004a565d43
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/verified_cmd_line_input.cc
@@ -0,0 +1,131 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file verified_cmd_line_input.cpp
+ * Contains definitions for tests - verified command line input.
+ */
+
+#include <util/io/verified_cmd_line_input.hpp>
+#include <limits.h>
+#include <utility>
+#include <stdlib.h>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    void
+    verify_argc(size_t given, size_t required)
+    {
+      if (given != required)
+        throw illegal_input_error();
+    }
+
+    void
+    verify_prob(double prob)
+    {
+      if (prob < 0 || prob > 1)
+        throw illegal_input_error();
+    }
+
+    std::string
+    get_cmd_line_str(int argc, char* a_p_argv[], int argn)
+    {
+      if (argc <= argn)
+        throw illegal_input_error();
+
+      const std::string ret(a_p_argv[argn]);
+
+      return (ret);
+    }
+
+    double
+    get_cmd_line_prob(int argc, char* a_p_argv[], int argn)
+    {
+      if (argc <= argn)
+        throw illegal_input_error();
+
+      const double ret = ::atof(a_p_argv[argn]);
+
+      verify_prob(ret);
+
+      return (ret);
+    }
+
+    size_t
+    get_cmd_line_size(int argc, char* a_p_argv[], int argn)
+    {
+      if (argc <= argn)
+        throw illegal_input_error();
+
+      const size_t ret = static_cast<size_t>(::atoi(a_p_argv[argn]));
+
+      return (ret);
+    }
+
+    bool
+    get_cmd_line_bool(int argc, char* a_p_argv[], int argn)
+    {
+      if (argc <= argn)
+        throw illegal_input_error();
+
+      const std::string opt(a_p_argv[argn]);
+
+      if (opt.size() != 1)
+        throw illegal_input_error();
+
+      if (opt[0] == 't')
+        return (true);
+
+      if (opt[0] == 'f')
+        return (false);
+
+      throw illegal_input_error();
+
+      return (false);
+    }
+
+  } // namespace test
+
+} // namespace pb_ds
diff --git a/libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp b/libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
new file mode 100644
index 000000000000..725c75e62910
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/verified_cmd_line_input.hpp
@@ -0,0 +1,77 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file verified_cmd_line_input.hpp
+ * Contains definitions for tests - verified command line input.
+ */
+
+#ifndef PB_DS_VERIFIED_CMD_LINE_INPUT_HPP
+#define PB_DS_VERIFIED_CMD_LINE_INPUT_HPP
+
+#include <io/illegal_input_error.hpp>
+#include <string>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    void
+    verify_argc(size_t given, size_t required);
+
+    void
+    verify_prob(double prob);
+
+    std::string
+    get_cmd_line_str(int argc, char* a_p_argv[], int argn);
+
+    double
+    get_cmd_line_prob(int argc, char* a_p_argv[], int argn);
+
+    size_t
+    get_cmd_line_size(int argc, char* a_p_argv[], int argn);
+
+    bool
+    get_cmd_line_bool(int argc, char* a_p_argv[], int argn);
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_VERIFIED_CMD_LINE_INPUT_HPP
diff --git a/libstdc++-v3/testsuite/util/io/xml.hpp b/libstdc++-v3/testsuite/util/io/xml.hpp
new file mode 100644
index 000000000000..506c1a10a0d6
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/xml.hpp
@@ -0,0 +1,131 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file xml.hpp
+ * Contains some xml utilities.
+ */
+
+#ifndef PB_DS_XML_HPP
+#define PB_DS_XML_HPP
+
+#include <string>
+#include <sstream>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    namespace detail
+    {
+      std::string
+      make_xml_name_start_tag(std::string name)
+      { return ("<" + name); }
+
+      template<typename V>
+      std::string
+      make_xml_attrib_val(std::string attrib, const V val)
+      {
+	std::ostringstream sstrm;
+	sstrm << " " << attrib << " = \"" << val << "\"";
+	return (sstrm.str());
+      }
+
+      std::string
+      make_xml_name_start_tag_end_delimiter()
+      { return (">\n"); }
+
+      std::string
+      make_xml_name_end_tag(std::string name)
+      { return ("</" + name + ">\n"); }
+    } // namespace detail
+
+    std::string
+    make_xml_tag(const std::string name,
+		 const std::string data = std::string(""))
+    {
+      std::ostringstream sstrm;
+      sstrm << detail::make_xml_name_start_tag(name);
+      sstrm << detail::make_xml_name_start_tag_end_delimiter();
+      sstrm << data;
+      sstrm << detail::make_xml_name_end_tag(name);
+      return sstrm.str();
+    }
+
+    template<typename Val0>
+    std::string
+    make_xml_tag(const std::string name,
+		 const std::string attrib0,
+		 const Val0 val0,
+		 const std::string data = std::string(""))
+    {
+      std::ostringstream sstrm;
+
+      sstrm << detail::make_xml_name_start_tag(name);
+      sstrm << detail::make_xml_attrib_val(attrib0, val0);
+      sstrm << detail::make_xml_name_start_tag_end_delimiter();
+      sstrm << data;
+      sstrm << detail::make_xml_name_end_tag(name);
+      return sstrm.str();
+    }
+
+    template<typename Val0, typename Val1>
+    std::string
+    make_xml_tag(const std::string name,
+		 const std::string attrib0,
+		 const Val0 val0,
+		 const std::string attrib1,
+		 const Val1 val1,
+		 const std::string data = std::string(""))
+    {
+      std::ostringstream sstrm;
+      sstrm << detail::make_xml_name_start_tag(name);
+      sstrm << detail::make_xml_attrib_val(attrib0, val0);
+      sstrm << detail::make_xml_attrib_val(attrib1, val1);
+      sstrm << detail::make_xml_name_start_tag_end_delimiter();
+      sstrm << data;
+      sstrm << detail::make_xml_name_end_tag(name);
+      return sstrm.str();
+    }
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_XML_HPP
diff --git a/libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp b/libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
new file mode 100644
index 000000000000..ceedf817378e
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/io/xml_test_formatter.hpp
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file xml_test_formatter.hpp
+ * Contains an XML formatter for tests.
+ */
+
+#ifndef PB_DS_XML_TEST_FORMATTER_HPP
+#define PB_DS_XML_TEST_FORMATTER_HPP
+
+#include <string>
+#include <iostream>
+#include <io/xml.hpp>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    struct xml_test_formatter
+    {
+      xml_test_formatter()
+      {
+	std::cout << "<?xml version = \"1.0\"?>" << std::endl;
+	std::cout << "<test>" << std::endl;
+      }
+
+      virtual
+      ~xml_test_formatter()
+      { std::cout << "</test>" << std::endl; }
+    };
+
+    struct xml_result_set_formatter
+    {
+      xml_result_set_formatter(const std::string& name, const std::string& desc)
+      {
+	std::cout << detail::make_xml_name_start_tag("cntnr");
+	std::cout << detail::make_xml_attrib_val("name", name);
+	std::cout << detail::make_xml_name_start_tag_end_delimiter();	
+	std::cout << make_xml_tag("desc", desc);
+      }
+
+      virtual
+      ~xml_result_set_formatter()
+      { std::cout << "</cntnr>" << std::endl; }
+    };
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_XML_TEST_FORMATTER_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp
new file mode 100644
index 000000000000..528934e92c66
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_map.hpp
@@ -0,0 +1,137 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_hash_map.hpp
+ * Contains an adapter to Dinkumware/SGI hash tables
+ */
+
+#ifndef PB_DS_NATIVE_HASH_MAP_HPP
+#define PB_DS_NATIVE_HASH_MAP_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <native_type/assoc/native_hash_tag.hpp>
+#include <io/xml.hpp>
+#include <string>
+
+// Default to using tr1.
+#define PB_DS_USE_TR1 1
+
+#ifdef PB_DS_USE_TR1
+#include <tr1/unordered_map>
+#else
+#include <ext/hash_map>
+#endif 
+
+namespace pb_ds
+{
+  namespace test
+  {
+#ifdef PB_DS_USE_TR1
+#define PB_DS_BASE_C_DEC \
+    std::tr1::unordered_map<Key, Data, Hash_Fn, Eq_Fn, \
+    typename Allocator::template rebind<std::pair<const Key, Data> >::other, Cache_Hash>
+#else 
+#define PB_DS_BASE_C_DEC \
+    __gnu_cxx::hash_map<Key, Data, Hash_Fn, Eq_Fn, \
+    typename Allocator::template rebind<std::pair<const Key, Data> >::other>
+#endif
+
+    template<typename Key,
+	     typename Data,
+	     size_t Init_Size = 8,
+	     typename Hash_Fn = typename pb_ds::detail::default_hash_fn<Key>::type,
+	     typename Eq_Fn = std::equal_to<Key>,
+	     typename Less_Fn = std::less<Key>,
+	     typename Allocator = std::allocator<char>
+#ifdef PB_DS_USE_TR1
+	     , bool Cache_Hash = false
+#endif
+	     >
+    class native_hash_map : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef native_hash_tag container_category;
+
+    public:
+      native_hash_map() : base_type(Init_Size) { }
+
+      template<typename It>
+      native_hash_map(It f, It l) : base_type(f, l) { }
+
+      static std::string
+      name()
+      {
+#ifdef PB_DS_USE_TR1
+        return std::string("n_hash_map_") 
+               + (Cache_Hash ? std::string("cah") : std::string("ncah"));
+#else 
+        return std::string("n_hash_map_ncah");
+#endif
+      }
+
+      static std::string
+      desc()
+      {
+#ifdef PB_DS_USE_TR1
+        const std::string cache_hash_desc =
+	make_xml_tag("cache_hash_code",
+		     "value",
+		    (Cache_Hash ? std::string("true") : std::string("false")));
+
+        return make_xml_tag("type", "value", "std_tr1_unordered_map", 
+			    cache_hash_desc);
+#else 
+        return make_xml_tag("type", "value", "__gnucxx_hash_map");
+#endif 
+      }
+    };
+
+#undef PB_DS_BASE_C_DEC
+
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_HASH_MAP_HPP
+
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp
new file mode 100644
index 000000000000..65b3c8d8270c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_multimap.hpp
@@ -0,0 +1,253 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_hash_multimap.hpp
+ * Contains an adapter to Dinkumware/SGI hash tables
+ */
+
+#ifndef PB_DS_NATIVE_HASH_MULTIMAP_HPP
+#define PB_DS_NATIVE_HASH_MULTIMAP_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <native_type/assoc/native_hash_tag.hpp>
+#include <io/xml.hpp>
+#include <string>
+#include <ext/hash_map>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#ifdef NATIVE_HASH_MULTIMAP_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef NATIVE_HASH_MULTIMAP_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef NATIVE_HASH_MULTIMAP_DEBUG
+
+#define PB_DS_CLASS_T_DEC						\
+    template<								\
+						typename Key,		\
+						typename Data,		\
+						size_t Init_Size,	\
+						class Hash_Fn,		\
+						class Eq_Fn,		\
+						class Less_Fn,		\
+						class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    native_hash_multimap<					\
+						Key,		\
+						Data,		\
+						Init_Size,	\
+						Hash_Fn,	\
+						Eq_Fn,		\
+						Less_Fn,	\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC					\
+    __gnu_cxx::hash_multimap<					\
+						Key,		\
+						Data,		\
+						Hash_Fn,	\
+						Eq_Fn,		\
+						Allocator>
+
+    template<typename Key,
+	     typename Data,
+	     size_t Init_Size = 8,
+	     class Hash_Fn =
+	     typename pb_ds::detail::default_hash_fn<Key>::type,
+	     class Eq_Fn =
+	     std::equal_to<Key>,
+	     class Less_Fn =
+	     std::less<Key>,
+	     class Allocator =
+	     std::allocator<char> >
+    class native_hash_multimap : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef native_hash_tag container_category;
+
+      typedef Allocator allocator;
+
+      typedef typename base_type::iterator iterator;
+
+      typedef typename base_type::const_iterator const_iterator;
+
+      typedef
+      typename Allocator::template rebind<
+	std::pair<
+	Key,
+	Data> >::other::const_reference
+      const_reference;
+
+    public:
+      native_hash_multimap();
+
+      inline void
+      insert(typename base_type::const_reference r_val)
+      {
+        typedef
+	  std::pair<
+	  typename base_type::iterator,
+	  typename base_type::iterator>
+	  eq_range_t;
+
+        eq_range_t f = base_type::equal_range(r_val.first);
+
+        typename base_type::iterator it = f.first;
+
+        while (it != f.second)
+	  {
+            if (it->second == r_val.second)
+	      return;
+
+            ++it;
+	  }
+
+        base_type::insert(r_val);
+      }
+
+      inline iterator
+      find(const_reference r_val)
+      {
+        typedef
+	std::pair<
+	typename base_type::iterator,
+	typename base_type::iterator>
+	eq_range_t;
+
+        eq_range_t f = base_type::equal_range(r_val.first);
+
+        typename base_type::iterator it = f.first;
+
+        while (it != f.second)
+	  {
+            if (it->second == r_val.second)
+	      return it;
+
+            ++it;
+	  }
+
+        return base_type::end();
+      }
+
+      inline const_iterator
+      find(const_reference r_val) const
+      {
+        typedef
+	std::pair<
+	typename base_type::const_iterator,
+	typename base_type::const_iterator>
+	eq_range_t;
+
+        eq_range_t f = base_type::equal_range(r_val.first);
+
+        typename base_type::const_iterator it = f.first;
+
+        while (it != f.second)
+	  {
+            if (it->second == r_val.second)
+	      return it;
+
+            ++it;
+	  }
+
+        return base_type::end();
+      }
+
+      template<typename It>
+      native_hash_multimap(It f, It l);
+
+      static std::string
+      name()
+      {
+        return ("n_hash_mmap");
+      }
+
+      static std::string
+      desc()
+      {
+        return (make_xml_tag(            "type", "value", "__gnucxx_hash_multimap"));
+      }
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    native_hash_multimap()
+#ifdef __GNUC__
+      :
+    base_type(Init_Size)
+#endif // #ifdef __GNUC__
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename It>
+    PB_DS_CLASS_C_DEC::
+    native_hash_multimap(It f, It l) :
+      base_type(f, l)
+    { }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_HASH_MULTIMAP_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp
new file mode 100644
index 000000000000..e1082c907e44
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_set.hpp
@@ -0,0 +1,159 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_hash_set.hpp
+ * Contains an adapter to Dinkumware/SGI hash tables
+ */
+
+#ifndef PB_DS_NATIVE_HASH_SET_HPP
+#define PB_DS_NATIVE_HASH_SET_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <native_type/assoc/native_hash_tag.hpp>
+#include <io/xml.hpp>
+#include <string>
+
+// Default to using tr1.
+#define PB_DS_USE_TR1 1
+
+#ifdef PB_DS_USE_TR1
+#include <tr1/unordered_set>
+#else 
+#include <ext/hash_set>
+#endif
+
+namespace pb_ds
+{
+  namespace test
+  {
+#ifdef PB_DS_USE_TR1
+#define PB_DS_BASE_C_DEC \
+    std::tr1::unordered_set<Key, Hash_Fn, Eq_Fn, \
+			    typename Allocator::template rebind<Key>::other>
+#else
+#define PB_DS_BASE_C_DEC \
+    __gnu_cxx::hash_set<Key, Hash_Fn, Eq_Fn, \
+			typename Allocator::template rebind<Key>::other>
+#endif
+
+    template<typename Key,
+	     size_t Init_Size = 8,
+	     typename Hash_Fn = typename pb_ds::detail::default_hash_fn<Key>::type,
+	     typename Eq_Fn = std::equal_to<Key>,
+	     typename Less_Fn = std::less<Key>,
+	     typename Allocator = std::allocator<char>
+#ifdef PB_DS_USE_TR1
+	     , bool Cache_Hash = false
+#endif
+	     >
+    class native_hash_set : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef native_hash_tag container_category;
+
+      native_hash_set() : base_type(Init_Size) { }
+
+      template<typename It>
+      native_hash_set(It f, It l) : base_type(f, l) { }
+
+      template<typename Pred>
+      inline size_t
+      erase_if(Pred pred)
+      {
+        size_t ersd = 0;
+        bool done = false;
+        while (!done)
+	  {
+            typename base_type::iterator b_it = base_type::begin();
+            typename base_type::iterator e_it = base_type::end();
+            done = true;
+            while (b_it != e_it)
+	      {
+                if (pred(*b_it))
+		  {
+                    ++ersd;
+                    done = false;
+                    base_type::erase(*b_it);
+                    b_it = e_it;
+		  }
+                else
+		  ++b_it;
+	      }
+	  }
+        return ersd;
+      }
+
+      static std::string
+      name()
+      {
+#ifdef PB_DS_USE_TR1
+        return std::string("n_hash_set_") 
+	       + (Cache_Hash ? std::string("cah") : std::string("ncah"));
+#else
+        return std::string("n_hash_set_ncah");
+#endif
+      }
+
+      static std::string
+      desc()
+      {
+#ifdef PB_DS_USE_TR1
+        const std::string cache_hash_desc =
+	make_xml_tag("cache_hash_code", "value",
+		     Cache_Hash ? std::string("true") : std::string("false"));
+
+        return make_xml_tag("type", "value", "std_tr1_unordered_set", 
+			    cache_hash_desc);
+#else
+        return make_xml_tag("type", "value", "__gnucxx_hash_set");
+#endif
+      }
+    };
+
+#undef PB_DS_BASE_C_DEC
+  } // namespace test
+} // namespace pb_ds
+
+#endif
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp
new file mode 100644
index 000000000000..4c6c80b42752
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_hash_tag.hpp
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_hash_tag.hpp
+ * Contains a tag for native hash-based containers
+ */
+
+#ifndef PB_DS_NATIVE_HASH_DS_TAG_HPP
+#define PB_DS_NATIVE_HASH_DS_TAG_HPP
+
+namespace pb_ds
+{
+  namespace test
+  {
+    struct native_hash_tag { };
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_HASH_DS_TAG_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp
new file mode 100644
index 000000000000..a9d8e11b10ed
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_map.hpp
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_map.hpp
+ * Contains an adapter to Dinkumware/SGI tree tables
+ */
+
+#ifndef PB_DS_NATIVE_MAP_HPP
+#define PB_DS_NATIVE_MAP_HPP
+
+#include <map>
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <native_type/assoc/native_tree_tag.hpp>
+#include <io/xml.hpp>
+#include <string>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_BASE_C_DEC						\
+    std::map<								\
+									Key, \
+									Data, \
+									Cmp_Fn,	\
+									typename Allocator::template rebind< \
+																std::pair< \
+																			const Key, \
+																			Data > >::other >
+
+    template<typename Key, typename Data, class Cmp_Fn = std::less<Key>,
+	     class Allocator =
+	     std::allocator<char> >
+    class native_map : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef native_tree_tag container_category;
+
+    public:
+      native_map() : base_type()
+      { }
+
+      template<typename It>
+      native_map(It f, It l) : base_type(f, l)
+      { }
+
+      static std::string
+      name()
+      {
+        return ("n_map");
+      }
+
+      static std::string
+      desc()
+      {
+        return (make_xml_tag(            "type", "value", "std_map"));
+      }
+    };
+
+#undef PB_DS_BASE_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_MAP_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp
new file mode 100644
index 000000000000..f428ca8cdeae
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_multimap.hpp
@@ -0,0 +1,231 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_multimap.hpp
+ * Contains an adapter to Dinkumware/SGI tables
+ */
+
+#ifndef PB_DS_NATIVE_MULTIMAP_HPP
+#define PB_DS_NATIVE_MULTIMAP_HPP
+
+#include <map>
+#include <native_type/assoc/native_tree_tag.hpp>
+#include <string>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#ifdef NATIVE_HASH_SET_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef NATIVE_HASH_SET_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef NATIVE_HASH_SET_DEBUG
+
+#define PB_DS_CLASS_T_DEC						\
+    template<typename Key, typename Data, class Less_Fn, class Allocator>
+
+#define PB_DS_CLASS_C_DEC					\
+    native_multimap<						\
+						Key,		\
+						Data,		\
+						Less_Fn,	\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    std::multimap<							\
+									Key, \
+									Data, \
+									Less_Fn, \
+									typename Allocator::template rebind< \
+																std::pair< \
+																		const Key, \
+																		Data> >::other >
+
+    template<typename Key, typename Data, class Less_Fn = std::less<Key>,
+	     class Allocator =
+	     std::allocator<char> >
+    class native_multimap : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef native_tree_tag container_category;
+
+      typedef Allocator allocator;
+
+      typedef
+      typename Allocator::template rebind<
+	std::pair<
+	Key,
+	Data> >::other::const_reference
+      const_reference;
+
+      typedef typename base_type::iterator iterator;
+
+      typedef typename base_type::const_iterator const_iterator;
+
+    public:
+      native_multimap();
+
+      inline void
+      insert(const_reference r_val)
+      {
+        typedef
+	  std::pair<
+	  typename base_type::iterator,
+	  typename base_type::iterator>
+	  eq_range_t;
+
+        eq_range_t f = base_type::equal_range(r_val.first);
+
+        typename base_type::iterator it = f.first;
+
+        while (it != f.second)
+	  {
+            if (it->second == r_val.second)
+	      return;
+
+            ++it;
+	  }
+
+        base_type::insert(r_val);
+      }
+
+      inline iterator
+      find(const_reference r_val)
+      {
+        typedef
+	std::pair<
+	typename base_type::iterator,
+	typename base_type::iterator>
+	eq_range_t;
+
+        eq_range_t f = base_type::equal_range(r_val.first);
+
+        typename base_type::iterator it = f.first;
+
+        while (it != f.second)
+	  {
+            if (it->second == r_val.second)
+	      return it;
+
+            ++it;
+	  }
+
+        return base_type::end();
+      }
+
+      inline const_iterator
+      find(const_reference r_val) const
+      {
+        typedef
+	std::pair<
+	typename base_type::const_iterator,
+	typename base_type::const_iterator>
+	eq_range_t;
+
+        eq_range_t f = base_type::equal_range(r_val.first);
+
+        typename base_type::const_iterator it = f.first;
+
+        while (it != f.second)
+	  {
+            if (it->second == r_val.second)
+	      return it;
+
+            ++it;
+	  }
+
+        return base_type::end();
+      }
+
+      template<typename It>
+      native_multimap(It f, It l);
+
+      static std::string
+      name()
+      {
+        return ("n_mmap");
+      }
+
+      static std::string
+      desc()
+      {
+        return (make_xml_tag(            "type", "value", "std_multimap"));
+      }
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    native_multimap()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename It>
+    PB_DS_CLASS_C_DEC::
+    native_multimap(It f, It l) :
+      base_type(f, l)
+    { }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_MULTIMAP_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp
new file mode 100644
index 000000000000..ec72648f854b
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_set.hpp
@@ -0,0 +1,111 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_set.hpp
+ * Contains an adapter to Dinkumware/SGI tree tables
+ */
+
+#ifndef PB_DS_NATIVE_SET_HPP
+#define PB_DS_NATIVE_SET_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <native_type/assoc/native_tree_tag.hpp>
+#include <io/xml.hpp>
+#include <string>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_BASE_C_DEC						\
+    std::set<								\
+								Key,	\
+								Cmp_Fn,	\
+								typename Allocator::template rebind< \
+														Key>::other>
+
+    template<typename Key, class Cmp_Fn = std::less<Key>,
+	     class Allocator =
+	     std::allocator<char> >
+    class native_set : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef native_tree_tag container_category;
+
+      typedef typename PB_DS_BASE_C_DEC::const_iterator const_iterator;
+
+    public:
+      native_set() : base_type()
+      { }
+
+      template<typename It>
+      native_set(It f,  It l) : base_type(f, l)
+      { }
+
+      native_set(const_iterator f,  const_iterator l) : base_type(f, l)
+      { }
+
+      static std::string
+      name()
+      {
+        return ("n_set");
+      }
+
+      static std::string
+      desc()
+      {
+        return (make_xml_tag(            "type", "value", "std_set"));
+      }
+    };
+
+#undef PB_DS_BASE_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_SET_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp b/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp
new file mode 100644
index 000000000000..bf69c92c2358
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/assoc/native_tree_tag.hpp
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_tree_tag.hpp
+ * Contains a tag for native tree-based containers
+ */
+
+#ifndef PB_DS_NATIVE_TREE_DS_TAG_HPP
+#define PB_DS_NATIVE_TREE_DS_TAG_HPP
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    struct native_tree_tag
+    { };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_TREE_DS_TAG_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp b/libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp
new file mode 100644
index 000000000000..8b0357c99d5b
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/priority_queue/native_pq_tag.hpp
@@ -0,0 +1,63 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_tree_tag.hpp
+ * Contains a tag for native tree-based containers
+ */
+
+#ifndef PB_DS_NATIVE_PQ_DS_TAG_HPP
+#define PB_DS_NATIVE_PQ_DS_TAG_HPP
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    struct native_pq_tag
+    { };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_PQ_DS_TAG_HPP
diff --git a/libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp b/libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp
new file mode 100644
index 000000000000..d8a2865c0f0a
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/native_type/priority_queue/native_priority_queue.hpp
@@ -0,0 +1,280 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_priority_queue.hpp
+ * Contains an adapter to Dinkumware/SGI tree tables
+ */
+
+#ifndef PB_DS_NATIVE_PRIORITY_QUEUE_HPP
+#define PB_DS_NATIVE_PRIORITY_QUEUE_HPP
+
+#include <ext/pb_ds/detail/standard_policies.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <native_type/priority_queue/native_pq_tag.hpp>
+#include <io/xml.hpp>
+#include <string>
+#include <vector>
+#include <queue>
+#include <deque>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Value_Type, bool Vector, class Allocator>
+      struct base_seq
+      {
+	typedef
+        std::vector<
+	  Value_Type,
+	  typename Allocator::template rebind<
+	  Value_Type>::other>
+        type;
+      };
+
+      template<typename Value_Type, class Allocator>
+      struct base_seq<
+	Value_Type,
+	false,
+	Allocator>
+      {
+	typedef
+        std::deque<
+	  Value_Type,
+	  typename Allocator::template rebind<
+	  Value_Type>::other>
+        type;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_C_DEC					\
+    native_priority_queue<					\
+						Value_Type,	\
+						Vector,		\
+						Cmp_Fn,		\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+    std::priority_queue<						\
+									Value_Type, \
+									typename detail::base_seq<Value_Type, Vector, Allocator>::type, \
+									Cmp_Fn>
+
+    template<typename Value_Type,
+	     bool Vector,
+	     class Cmp_Fn =
+	     std::less<Value_Type>,
+	     class Allocator = std::allocator<char> >
+    class native_priority_queue : public PB_DS_BASE_C_DEC
+    {
+    private:
+      typedef PB_DS_BASE_C_DEC base_type;
+
+    public:
+      typedef Value_Type value_type;
+
+      typedef
+      typename Allocator::template rebind<
+	value_type>::other::const_reference
+      const_reference;
+
+      typedef native_pq_tag container_category;
+
+      typedef Cmp_Fn cmp_fn;
+
+    public:
+      native_priority_queue() : base_type()
+      { }
+
+      template<typename It>
+      native_priority_queue(It f, It l) : base_type(f, l)
+      { }
+
+      static std::string
+      name()
+      {
+        if (Vector)
+	  return ("n_pq_vector");
+
+        return ("n_pq_deque");
+      }
+
+      static std::string
+      desc()
+      {
+        if (Vector)
+	  return (make_xml_tag(                "type",  "value",  "std::priority_queue_vector"));
+
+        return (make_xml_tag(            "type", "value", "std::priority_queue_deque"));
+      }
+
+      void
+      clear()
+      {
+	* static_cast<base_type* >(this) = base_type();
+      }
+
+      void
+      erase(const_reference r_val)
+      {
+        base_type tmp;
+
+        Cmp_Fn cmp;
+
+        while (cmp(base_type::top(), r_val) || cmp(r_val, base_type::top()))
+	  {
+            tmp.push(base_type::top());
+
+            base_type::pop();
+	  }
+
+        if (!base_type::empty())
+	  {
+            base_type::pop();
+
+            while (!base_type::empty())
+	      {
+                tmp.push(base_type::top());
+
+                base_type::pop();
+	      }
+	  }
+
+	* static_cast<base_type* >(this) = tmp;
+      }
+
+      template<typename Pred>
+      size_t
+      erase_if(Pred pred)
+      {
+        base_type tmp;
+
+        std::size_t ersd = 0;
+
+        while (!base_type::empty())
+	  {
+            if (!pred(base_type::top()))
+	      tmp.push(base_type::top());
+            else
+	      ++ersd;
+
+            base_type::pop();
+	  }
+
+	* static_cast<base_type* >(this) = tmp;
+
+        return ersd;
+      }
+
+      template<typename Pred>
+      void
+      split(Pred pred, PB_DS_CLASS_C_DEC& other)
+      {
+        base_type tmp;
+
+        other.clear();
+
+        while (!base_type::empty())
+	  {
+            if (!pred(base_type::top()))
+	      tmp.push(base_type::top());
+            else
+	      other.push(base_type::top());
+
+            base_type::pop();
+	  }
+
+	* static_cast<base_type* >(this) = tmp;
+      }
+
+      void
+      modify(const_reference r_old, const_reference r_new)
+      {
+        erase(r_old);
+
+        push(r_new);
+      }
+
+      void
+      join(PB_DS_CLASS_C_DEC& other)
+      {
+        std::vector<value_type> a_tmp;
+
+        while (!base_type::empty())
+	  {
+            a_tmp.push_back(base_type::top());
+
+            base_type::pop();
+	  }
+
+        while (!other.empty())
+	  {
+            a_tmp.push_back(other.top());
+
+            other.pop();
+	  }
+
+	* static_cast<base_type* >(this) = base_type(a_tmp.begin(), a_tmp.end());
+      }
+
+      Cmp_Fn
+      get_cmp_fn() const
+      {
+        return Cmp_Fn();
+      }
+    };
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_NATIVE_PRIORITY_QUEUE_HPP
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
new file mode 100644
index 000000000000..0754567a304e
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/erase_test.hpp
@@ -0,0 +1,145 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_test.hpp
+ * Contains a generic erase test.
+ */
+
+#ifndef PB_DS_ERASE_TEST_HPP
+#define PB_DS_ERASE_TEST_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/mem/mem_track_allocator.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    erase_test<						\
+						It>
+
+    template<typename It>
+    class erase_test
+    {
+    public:
+      erase_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      erase_test(const erase_test& );
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    erase_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t ins_size = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, ins_size);
+
+	  mem_track_allocator<char> alloc;
+
+	  const size_t init_mem = alloc.get_total();
+
+	  Cntnr cntnr(ins_it_b, ins_it_e);
+
+	  while (cntnr.size() > 1)
+            cntnr.erase(*cntnr.begin());
+
+	  const size_t final_mem = alloc.get_total();
+
+	  assert(final_mem > init_mem);
+
+	  const size_t delta_mem = final_mem - init_mem;
+
+	  res_set_fmt.add_res(ins_size, static_cast<double>(delta_mem));
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_ERASE_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
new file mode 100644
index 000000000000..2cb9abc8f502
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/mem_usage/multimap_insert_test.hpp
@@ -0,0 +1,188 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file multimap_insert_test.hpp
+ * Contains a generic multimap_insert_test test.
+ */
+
+#ifndef PB_DS_MULTIMAP_INSERT_TEST_HPP
+#define PB_DS_MULTIMAP_INSERT_TEST_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/mem/mem_track_allocator.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It, bool Native>
+
+#define PB_DS_CLASS_C_DEC				\
+    multimap_insert_test<				\
+						It,	\
+						Native>
+
+    template<typename It, bool Native>
+    class multimap_insert_test
+    {
+    public:
+      multimap_insert_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      multimap_insert_test(const multimap_insert_test& );
+
+      template<typename Cntnr>
+      size_t
+      insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::true_type);
+
+      template<typename Cntnr>
+      size_t
+      insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::false_type);
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    multimap_insert_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t ins_size = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, ins_size);
+
+	  const size_t delta_mem = insert(pb_ds::detail::type_to_type<Cntnr>(),
+					  ins_it_b,
+					  ins_it_e,
+					  pb_ds::detail::integral_constant<int,Native>());
+
+	  res_set_fmt.add_res(ins_size, static_cast<double>(delta_mem));
+	}
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    size_t
+    PB_DS_CLASS_C_DEC::
+    insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::true_type)
+    {
+      mem_track_allocator<char> alloc;
+
+      const size_t init_mem = alloc.get_total();
+
+      Cntnr cntnr;
+
+      for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
+        cntnr.insert((typename Cntnr::const_reference)(*ins_it));
+
+      const size_t final_mem = alloc.get_total();
+
+      assert(final_mem > init_mem);
+
+      return (final_mem - init_mem);
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    size_t
+    PB_DS_CLASS_C_DEC::
+    insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e, pb_ds::detail::false_type)
+    {
+      mem_track_allocator<char> alloc;
+
+      const size_t init_mem = alloc.get_total();
+
+      Cntnr cntnr;
+
+      for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
+        cntnr[ins_it->first].insert(ins_it->second);
+
+      const size_t final_mem = alloc.get_total();
+
+      assert(final_mem > init_mem);
+
+      return (final_mem - init_mem);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MULTIMAP_INSERT_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp b/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
new file mode 100644
index 000000000000..244fb101ca29
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/multimap_common_type.hpp
@@ -0,0 +1,260 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file multimap_common_type.hpp
+ * Contains types for a generic multimap_insert_test test.
+ */
+
+#ifndef PB_DS_MULTIMAP_RANDOM_INT_INSERT_TEST_COMMON_TYPE_HPP
+#define PB_DS_MULTIMAP_RANDOM_INT_INSERT_TEST_COMMON_TYPE_HPP
+
+#include <hash_fn/string_hash_fn.hpp>
+#include <common_type/assoc/common_type.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      struct int_hash : public std::unary_function<
+        int,
+        size_t>
+      {
+	inline size_t
+        operator()(const int i) const
+	{
+	  return (static_cast<size_t>(i));
+	}
+      };
+
+      template<typename Key, class Allocator = std::allocator<char> >
+      struct hash_set_tl_t
+      {
+	typedef
+        typename pb_ds::test::hash_common_types<
+	  Key,
+	  pb_ds::null_mapped_type,
+	  int_hash,
+	  std::equal_to<
+	  Key>,
+	  Allocator>::performance_min_tl
+        type;
+      };
+
+      template<typename Key, class Allocator = std::allocator<char> >
+      struct lu_set_tl_t
+      {
+	typedef
+        typename pb_ds::test::lu_common_types<
+	  Key,
+	  pb_ds::null_mapped_type,
+	  std::equal_to<
+	  Key>,
+	  Allocator>::performance_min_tl
+        type;
+      };
+
+      template<typename Key,
+	       class Sec_Tl,
+	       class Allocator = std::allocator<
+        char> >
+      struct hash_mmap_tl_t
+      {
+      private:
+	typedef
+        typename pb_ds::detail::conditional_type<
+	pb_ds::detail::is_same<
+	int,
+	Key>::value,
+	int_hash,
+	string_hash_fn>::type
+        hash_fn_t;
+
+	template<typename Cntnr_T>
+	struct hash_mmap_transform
+	{
+	  typedef
+	  typename pb_ds::test::hash_common_types<
+	    Key,
+	    Cntnr_T,
+	    hash_fn_t,
+	    std::equal_to<
+	    Key>,
+	    Allocator>::performance_min_tl
+	  type;
+	};
+
+      public:
+	typedef
+        typename pb_ds::detail::typelist_flatten<
+	typename pb_ds::detail::typelist_transform<
+	Sec_Tl,
+	hash_mmap_transform>::type>::type
+        type;
+      };
+
+      template<typename Key,
+	       class Sec_Tl,
+	       class Allocator = std::allocator<
+        char> >
+      struct tree_mmap_tl_t
+      {
+      private:
+	template<typename Cntnr_T>
+	struct tree_mmap_transform
+	{
+	  typedef
+	  typename pb_ds::test::tree_common_types<
+	    Key,
+	    Cntnr_T,
+	    std::less<
+	    Key>,
+	    pb_ds::null_tree_node_update,
+	    Allocator>::performance_min_tl
+	  type;
+	};
+
+      public:
+	typedef
+        typename pb_ds::detail::typelist_flatten<
+	typename pb_ds::detail::typelist_transform<
+	Sec_Tl,
+	tree_mmap_transform>::type>::type
+        type;
+      };
+
+      template<typename Key, typename Mapped, class Allocator>
+      struct hash_hash_mmap_tl_t
+      {
+      private:
+	typedef typename hash_set_tl_t< Mapped, Allocator>::type sec_tl_t;
+
+      public:
+	typedef typename hash_mmap_tl_t< Key, sec_tl_t, Allocator>::type type;
+      };
+
+      template<typename Key, typename Mapped, class Allocator>
+      struct tree_hash_mmap_tl_t
+      {
+      private:
+	typedef typename hash_set_tl_t< Mapped, Allocator>::type sec_tl_t;
+
+      public:
+	typedef typename tree_mmap_tl_t< Key, sec_tl_t, Allocator>::type type;
+      };
+
+      template<typename Key, typename Mapped, class Allocator>
+      struct tree_lu_mmap_tl_t
+      {
+      private:
+	typedef typename lu_set_tl_t< Mapped, Allocator>::type sec_tl_t;
+
+      public:
+	typedef typename tree_mmap_tl_t< Key, sec_tl_t, Allocator>::type type;
+      };
+
+      template<typename Key, typename Mapped, class Allocator>
+      struct hash_lu_mmap_tl_t
+      {
+      private:
+	typedef typename lu_set_tl_t< Mapped, Allocator>::type sec_tl_t;
+
+      public:
+	typedef typename hash_mmap_tl_t< Key, sec_tl_t, Allocator>::type type;
+      };
+
+    } // namespace detail
+
+    template<typename Key, typename Mapped, class Allocator>
+    struct mmap_tl_t
+    {
+    private:
+      typedef
+      typename detail::hash_hash_mmap_tl_t<
+      Key,
+      Mapped,
+      Allocator>::type
+      hh_mmap_tl_t;
+
+      typedef
+      typename detail::hash_lu_mmap_tl_t<
+	Key,
+	Mapped,
+	Allocator>::type
+      hl_mmap_tl_t;
+
+      typedef
+      typename detail::tree_hash_mmap_tl_t<
+	Key,
+	Mapped,
+	Allocator>::type
+      th_mmap_tl_t;
+
+      typedef
+      typename detail::tree_lu_mmap_tl_t<
+	Key,
+	Mapped,
+	Allocator>::type
+      tl_mmap_tl_t;
+
+    public:
+      typedef
+      typename pb_ds::detail::typelist_append<
+      hl_mmap_tl_t,
+      typename pb_ds::detail::typelist_append<
+      hh_mmap_tl_t,
+      typename pb_ds::detail::typelist_append<
+      th_mmap_tl_t,
+      tl_mmap_tl_t>::type>::type>::type
+      type;
+    };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MULTIMAP_RANDOM_INT_INSERT_TEST_COMMON_TYPE_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
new file mode 100644
index 000000000000..8a6a22e98274
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/common_type.hpp
@@ -0,0 +1,113 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file common_type.hpp
+ * Contains types for a generic multimap_insert_test test.
+ */
+
+#ifndef PB_DS_MULTIMAP_RANDOM_INT_INSERT_TEST_COMMON_TYPE_HPP
+#define PB_DS_MULTIMAP_RANDOM_INT_INSERT_TEST_COMMON_TYPE_HPP
+
+#include <common_type/assoc/common_type.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    typedef
+    pb_ds::test::hash_common_types<
+      int,
+      pb_ds::null_mapped_type>::tl
+    hash_set_tl_t;
+
+    template<typename Cntnr_T>
+    struct hash_mmap_transform
+    {
+      typedef
+      typename pb_ds::test::hash_common_types<
+	int,
+	pb_ds::compound_data_type<
+	Cntnr_T> >::tl
+      type;
+    };
+
+    typedef
+    pb_ds::detail::typelist_flatten<
+      pb_ds::detail::typelist_transform<
+      hash_set_tl_t,
+      hash_mmap_transform>::type>::type
+    hash_mmap_tl_t;
+
+    typedef
+    pb_ds::test::tree_common_types<
+      int,
+      pb_ds::null_mapped_type>::tl
+    tree_set_tl_t;
+
+    template<typename Cntnr_T>
+    struct tree_mmap_transform
+    {
+      typedef
+      typename pb_ds::test::tree_common_types<
+	int,
+	pb_ds::compound_data_type<
+	Cntnr_T> >::tl
+      type;
+    };
+
+    typedef
+    pb_ds::detail::typelist_flatten<
+      pb_ds::detail::typelist_transform<
+      tree_set_tl_t,
+      tree_mmap_transform>::type>::type
+    tree_mmap_tl_t;
+
+    typedef hash_mmap_tl_t mmap_tl_t;
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MULTIMAP_RANDOM_INT_INSERT_TEST_COMMON_TYPE_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
new file mode 100644
index 000000000000..aa58e8a9d4e7
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/find_test.hpp
@@ -0,0 +1,219 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file find_test.hpp
+ * Contains a generic find test.
+ */
+
+#ifndef PB_DS_FIND_TEST_HPP
+#define PB_DS_FIND_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr, bool LOR>
+      class find_find_functor
+      {
+      public:
+        find_find_functor(Cntnr& r_container,  It fnd_it_b,  It fnd_it_e) : m_r_container(r_container),
+									    m_fnd_it_b(fnd_it_b),
+									    m_fnd_it_e(fnd_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      It fnd_it = m_fnd_it_b;
+
+	      while (fnd_it != m_fnd_it_e)
+                ++m_r_container.find((fnd_it++)->first)->second;
+	    }
+	}
+
+      private:
+	Cntnr& m_r_container;
+
+	const It m_fnd_it_b;
+	const It m_fnd_it_e;
+      };
+
+      template<typename It, class Cntnr>
+      class find_find_functor<
+	It,
+	Cntnr,
+	true>
+      {
+      public:
+        find_find_functor(Cntnr& r_container,  It fnd_it_b,  It fnd_it_e) : m_r_container(r_container),
+									    m_fnd_it_b(fnd_it_b),
+									    m_fnd_it_e(fnd_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  It fnd_it = m_fnd_it_b;
+
+	  while (fnd_it != m_fnd_it_e)
+	    {
+	      for (std::size_t i = 0; i < resolution; ++i)
+                ++m_r_container.find(fnd_it->first)->second;
+
+	      ++fnd_it;
+	    }
+	}
+
+      private:
+	Cntnr& m_r_container;
+
+	const It m_fnd_it_b;
+	const It m_fnd_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It, bool LOR>
+
+#define PB_DS_CLASS_C_DEC				\
+    find_test<						\
+						It,	\
+						LOR>
+
+    template<typename It, bool LOR = false>
+    class find_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      find_test(It ins_b, It fnd_it_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      find_test(const find_test& );
+
+    private:
+      const It m_ins_b;
+
+      const It m_fnd_it_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+
+      const size_t m_fnd_vn;
+      const size_t m_fnd_vs;
+      const size_t m_fnd_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    find_test(It ins_b, It fnd_it_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm) :
+      m_ins_b(ins_b),
+      m_fnd_it_b(fnd_it_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm),
+      m_fnd_vn(fnd_vn),
+      m_fnd_vs(fnd_vs),
+      m_fnd_vm(fnd_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+	  const size_t fnd_size = m_fnd_vn + size_i*  m_fnd_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  Cntnr test_container(ins_it_b, ins_it_e);
+
+	  It fnd_it_b = m_fnd_it_b;
+	  It fnd_it_e = m_fnd_it_b;
+	  std::advance(fnd_it_e, fnd_size);
+
+	  pb_ds::test::detail::find_find_functor<It, Cntnr, LOR>
+            fn(test_container, fnd_it_b, fnd_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / fnd_size);
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_FIND_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
new file mode 100644
index 000000000000..d4227796d75f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/insert_test.hpp
@@ -0,0 +1,182 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_test.hpp
+ * Contains an insert performance test.
+ */
+
+#ifndef PB_DS_INSERT_TEST_HPP
+#define PB_DS_INSERT_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr>
+      class insert_insert_functor
+      {
+      public:
+        insert_insert_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+							   m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr cntnr;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                cntnr.insert((typename Cntnr::const_reference)(*ins_it));
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    insert_test<					\
+						It>
+
+    template<typename It>
+    class insert_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      insert_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      insert_test(const insert_test& );
+
+      template<typename Cntnr>
+      void
+      insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e);
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    insert_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  pb_ds::test::detail::insert_insert_functor<It, Cntnr>
+            fn(ins_it_b, ins_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / v);
+	}
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    insert(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e)
+    {
+      Cntnr cntnr;
+
+      for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
+        cntnr.insert((typename Cntnr::const_reference)(*ins_it));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_INSERT_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
new file mode 100644
index 000000000000..1d005fc686f0
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_find_test.hpp
@@ -0,0 +1,253 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file multimap_find_test.hpp
+ * Contains a generic multimap_find_test test.
+ */
+
+#ifndef PB_DS_MULTIMAP_INSERT_TEST_HPP
+#define PB_DS_MULTIMAP_INSERT_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr, bool Native>
+      class multimap_find_functor
+      {
+      public:
+        multimap_find_functor(const Cntnr& r_container,  It fnd_it_b,  It fnd_it_e) : m_r_container(r_container),
+										      m_fnd_it_b(fnd_it_b),
+										      m_fnd_it_e(fnd_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  size_t not_found_count = 0;
+
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      typename Cntnr::const_point_iterator prm_end_it = m_r_container.end();
+
+	      for (It fnd_it = m_fnd_it_b; fnd_it != m_fnd_it_e; ++fnd_it)
+		{
+		  typename Cntnr::const_point_iterator prm_it = m_r_container.find(fnd_it->first);
+
+		  if (prm_it == prm_end_it ||
+		      prm_it->second.find(fnd_it->second) == prm_it->second.end())
+                    ++not_found_count;
+		}
+	    }
+
+	  if (not_found_count != 0)
+            abort();
+	}
+
+      private:
+	const Cntnr& m_r_container;
+
+	const It m_fnd_it_b;
+	const It m_fnd_it_e;
+      };
+
+      template<typename It, class Cntnr>
+      class multimap_find_functor<
+	It,
+	Cntnr,
+	true>
+      {
+      public:
+        multimap_find_functor(const Cntnr& r_container,  It fnd_it_b,  It fnd_it_e) : m_r_container(r_container),
+										      m_fnd_it_b(fnd_it_b),
+										      m_fnd_it_e(fnd_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  size_t not_found_count = 0;
+
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr cntnr;
+
+	      for (It fnd_it = m_fnd_it_b; fnd_it != m_fnd_it_e; ++fnd_it)
+                if (m_r_container.find((typename Cntnr::const_reference)(*fnd_it)) == m_r_container.end())
+		  ++not_found_count;
+	    }
+
+	  if (not_found_count != 0)
+            abort();
+	}
+
+      private:
+	const Cntnr& m_r_container;
+
+	const It m_fnd_it_b;
+	const It m_fnd_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It, bool Native>
+
+#define PB_DS_CLASS_C_DEC				\
+    multimap_find_test<					\
+						It,	\
+						Native>
+
+    template<typename It, bool Native>
+    class multimap_find_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      multimap_find_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      multimap_find_test(const multimap_find_test& );
+
+      template<typename Cntnr>
+      Cntnr
+      init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::true_type);
+
+      template<typename Cntnr>
+      Cntnr
+      init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::false_type);
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    multimap_find_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  Cntnr c = init(ins_it_b,
+			 ins_it_e,
+			 pb_ds::detail::type_to_type<Cntnr>(),
+			 pb_ds::detail::integral_constant<int,Native>());
+
+	  pb_ds::test::detail::multimap_find_functor<It, Cntnr, Native>
+            fn(c, ins_it_b, ins_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / v);
+	}
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    Cntnr
+    PB_DS_CLASS_C_DEC::
+    init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::true_type)
+    {
+      return Cntnr(ins_b, ins_e);
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    Cntnr
+    PB_DS_CLASS_C_DEC::
+    init(It ins_b, It ins_e, pb_ds::detail::type_to_type<Cntnr>, pb_ds::detail::false_type)
+    {
+      Cntnr ret;
+
+      for (It it = ins_b; it != ins_e; ++it)
+        ret[it->first].insert(it->second);
+
+      return ret;
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MULTIMAP_INSERT_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
new file mode 100644
index 000000000000..f481137825c5
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/multimap_insert_test.hpp
@@ -0,0 +1,194 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file multimap_insert_test.hpp
+ * Contains a generic multimap_insert_test test.
+ */
+
+#ifndef PB_DS_MULTIMAP_INSERT_TEST_HPP
+#define PB_DS_MULTIMAP_INSERT_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr, bool Native>
+      class multimap_insert_functor
+      {
+      public:
+        multimap_insert_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+							     m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr cntnr;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                cntnr[ins_it->first].insert(ins_it->second);
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+      template<typename It, class Cntnr>
+      class multimap_insert_functor<
+	It,
+	Cntnr,
+	true>
+      {
+      public:
+        multimap_insert_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+							     m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr cntnr;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                cntnr.insert((typename Cntnr::const_reference)(*ins_it));
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It, bool Native>
+
+#define PB_DS_CLASS_C_DEC				\
+    multimap_insert_test<				\
+						It,	\
+						Native>
+
+    template<typename It, bool Native>
+    class multimap_insert_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      multimap_insert_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      multimap_insert_test(const multimap_insert_test& );
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    multimap_insert_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  pb_ds::test::detail::multimap_insert_functor<It, Cntnr, Native>
+            fn(ins_it_b, ins_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / v);
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MULTIMAP_INSERT_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
new file mode 100644
index 000000000000..eaf66b4537eb
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_find_test.hpp
@@ -0,0 +1,185 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file subscript_find_test.hpp
+ * Contains a generic subscript_find_test test.
+ */
+
+#ifndef PB_DS_SUBSCRIPT_TEST_HPP
+#define PB_DS_SUBSCRIPT_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr>
+      class subscript_find_functor
+      {
+      public:
+        subscript_find_functor(Cntnr& r_container,  It fnd_it_b,  It fnd_it_e) : m_r_container(r_container),
+										 m_fnd_it_b(fnd_it_b),
+										 m_fnd_it_e(fnd_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      It fnd_it = m_fnd_it_b;
+
+	      while (fnd_it != m_fnd_it_e)
+                ++m_r_container[(fnd_it++)->first];
+
+	      ++fnd_it;
+	    }
+	}
+
+      private:
+	Cntnr& m_r_container;
+	const It m_fnd_it_b;
+	const It m_fnd_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    subscript_find_test<				\
+						It>
+
+    template<typename It>
+    class subscript_find_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      subscript_find_test(It ins_b, It fnd_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      subscript_find_test(const subscript_find_test& );
+
+    private:
+      const It m_ins_b;
+
+      const It m_fnd_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+
+      const size_t m_fnd_vn;
+      const size_t m_fnd_vs;
+      const size_t m_fnd_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    subscript_find_test(It ins_b, It fnd_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm) :
+      m_ins_b(ins_b),
+      m_fnd_b(fnd_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm),
+      m_fnd_vn(fnd_vn),
+      m_fnd_vs(fnd_vs),
+      m_fnd_vm(fnd_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+	  const size_t fnd_size = m_fnd_vn + size_i*  m_fnd_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  Cntnr test_container(ins_it_b, ins_it_e);
+
+	  It fnd_it_b = m_fnd_b;
+	  It fnd_it_e = m_fnd_b;
+	  std::advance(fnd_it_e, fnd_size);
+
+	  pb_ds::test::detail::subscript_find_functor<It, Cntnr>
+            fn(test_container, fnd_it_b, fnd_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / fnd_size);
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SUBSCRIPT_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
new file mode 100644
index 000000000000..2fd8b8874875
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/subscript_insert_test.hpp
@@ -0,0 +1,176 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file subscript_insert_test.hpp
+ * Contains a generic subscript_insert_test test.
+ */
+
+#ifndef PB_DS_SUBSCRIPT_TEST_HPP
+#define PB_DS_SUBSCRIPT_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <statistic/res_recorder.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr>
+      class subscript_insert_functor
+      {
+      public:
+        subscript_insert_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+							      m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr cntnr;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                ++cntnr[ins_it->first];
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    subscript_insert_test<				\
+						It>
+
+    template<typename It>
+    class subscript_insert_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      subscript_insert_test(It ins_b, It fnd_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      subscript_insert_test(const subscript_insert_test& );
+
+    private:
+      const It m_ins_b;
+
+      const It m_fnd_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+
+      const size_t m_fnd_vn;
+      const size_t m_fnd_vs;
+      const size_t m_fnd_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    subscript_insert_test(It ins_b, It fnd_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, size_t fnd_vn, size_t fnd_vs, size_t fnd_vm) :
+      m_ins_b(ins_b),
+      m_fnd_b(fnd_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm),
+      m_fnd_vn(fnd_vn),
+      m_fnd_vs(fnd_vs),
+      m_fnd_vm(fnd_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  pb_ds::test::detail::subscript_insert_functor<It, Cntnr>
+            fn(ins_it_b, ins_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / v);
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SUBSCRIPT_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
new file mode 100644
index 000000000000..c87a7823d6a6
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_order_statistics_test.hpp
@@ -0,0 +1,225 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_order_statistics_test.hpp
+ * Contains a test for order_statisticsing trees
+ */
+
+#ifndef PB_DS_TREE_ORDER_STATISTICS_TEST_HPP
+#define PB_DS_TREE_ORDER_STATISTICS_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#define PB_DS_STATIC_ASSERT(UNIQUE, E)					\
+      typedef								\
+      pb_ds::detail::static_assert_dumclass<				\
+									sizeof(pb_ds::detail::static_assert<(bool)(E)>)> \
+      UNIQUE##static_assert_type
+
+      template<typename Cntnr, bool Native>
+      class order_statistics_functor
+      {
+      public:
+        order_statistics_functor(Cntnr& r_container) : m_r_container(r_container)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  enum
+	    {
+	      support_detected =
+	      pb_ds::test::detail::tree_supports_order_statistics<
+	      Cntnr>::value
+	    };
+
+	  PB_DS_STATIC_ASSERT(correct_type, support_detected);
+
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      typename Cntnr::const_iterator it = m_r_container.begin();
+
+	      typename Cntnr::const_iterator e = m_r_container.end();
+
+	      const size_t max_size = m_r_container.size();
+
+	      while (it != e)
+		if (m_r_container.order_of_key(*(it++)) > max_size)
+		  abort();
+	    }
+	}
+
+      private:
+	Cntnr& m_r_container;
+      };
+
+      template<typename Cntnr>
+      class order_statistics_functor<
+	Cntnr,
+	false>
+      {
+      public:
+        order_statistics_functor(Cntnr& r_container) : m_r_container(r_container)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      typename Cntnr::const_iterator b = m_r_container.begin();
+
+	      typename Cntnr::const_iterator e = m_r_container.end();
+
+	      typename Cntnr::const_iterator it = b;
+
+	      const size_t max_size = m_r_container.size();
+
+	      while (it != e)
+		{
+		  typename Cntnr::const_iterator f_it = m_r_container.find(*(it++));
+
+		  if (static_cast<size_t>(std::distance(b, f_it)) > max_size)
+		    abort();
+		}
+	    }
+	}
+
+      private:
+	Cntnr& m_r_container;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<bool Support_Order_Statistics>
+
+#define PB_DS_CLASS_C_DEC						\
+    tree_order_statistics_test<						\
+								Support_Order_Statistics>
+
+    template<bool Support_Order_Statistics>
+    class tree_order_statistics_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      tree_order_statistics_test(size_t vn, size_t vs, size_t vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      tree_order_statistics_test(const tree_order_statistics_test& );
+
+      template<typename Cntnr>
+      void
+      order_statistics(Cntnr& r_container, pb_ds::detail::true_type);
+
+      template<typename Cntnr>
+      void
+      order_statistics(Cntnr& r_container, pb_ds::detail::false_type);
+
+    private:
+      const size_t m_vn;
+      const size_t m_vs;
+      const size_t m_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    tree_order_statistics_test(size_t vn, size_t vs, size_t vm) :
+      m_vn(vn),
+      m_vs(vs),
+      m_vm(vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t v = m_vn; v < m_vm; v += m_vs)
+	{
+	  Cntnr cntnr;
+
+	  for (size_t ins = 0; ins < v; ++ ins)
+            cntnr.insert((typename Cntnr::value_type)ins);
+
+	  pb_ds::test::detail::order_statistics_functor<Cntnr, Support_Order_Statistics>
+            fn(cntnr);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / v);
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_STATIC_ASSERT
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TREE_ORDER_STATISTICS_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
new file mode 100644
index 000000000000..18dd0af6c13d
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/assoc/timing/tree_split_join_test.hpp
@@ -0,0 +1,192 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file tree_split_join_test.hpp
+ * Contains a test for splitting and joining trees
+ */
+
+#ifndef PB_DS_TREE_SPLIT_JOIN_TEST_HPP
+#define PB_DS_TREE_SPLIT_JOIN_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr, bool Support_Split_Join>
+      class split_join_functor
+      {
+      public:
+        split_join_functor(Cntnr& r_container) : m_r_container(r_container)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      typename Cntnr::const_iterator mid_it = m_r_container.begin();
+	      std::advance(mid_it, m_r_container.size() / 2);
+
+	      Cntnr other;
+
+	      m_r_container.split(*mid_it, other);
+
+	      m_r_container.join(other);
+	    }
+	}
+
+      private:
+	Cntnr& m_r_container;
+      };
+
+      template<typename Cntnr>
+      class split_join_functor<
+	Cntnr,
+	false>
+      {
+      public:
+        split_join_functor(Cntnr& r_container) : m_r_container(r_container)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      typename Cntnr::iterator mid_it = m_r_container.begin();
+	      std::advance(mid_it, m_r_container.size() / 2);
+
+	      Cntnr other(mid_it, m_r_container.end());
+	      m_r_container.erase(mid_it, m_r_container.end());
+
+	      m_r_container.insert(other.begin(), other.end());
+	      other.clear();
+	    }
+	}
+
+      private:
+	Cntnr& m_r_container;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<bool Support_Split_Join>
+
+#define PB_DS_CLASS_C_DEC						\
+    tree_split_join_test<						\
+						Support_Split_Join>
+
+    template<bool Support_Split_Join>
+    class tree_split_join_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      tree_split_join_test(size_t vn, size_t vs, size_t vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      tree_split_join_test(const tree_split_join_test& );
+
+    private:
+      const size_t m_vn;
+      const size_t m_vs;
+      const size_t m_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    tree_split_join_test(size_t vn, size_t vs, size_t vm) :
+      m_vn(vn),
+      m_vs(vs),
+      m_vm(vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t v = m_vn; v < m_vm; v += m_vs)
+	{
+	  Cntnr cntnr;
+
+	  for (size_t ins = 0; ins < v; ++ ins)
+            cntnr.insert((typename Cntnr::value_type)ins);
+
+	  pb_ds::test::detail::split_join_functor<Cntnr, Support_Split_Join>
+            fn(cntnr);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res);
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TREE_SPLIT_JOIN_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp b/libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
new file mode 100644
index 000000000000..e7d48d7dc48f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/io/xml_formatter.hpp
@@ -0,0 +1,88 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file xml_formatter.hpp
+ * Contains an XML formatter for performance tests.
+ */
+
+#ifndef PB_DS_XML_TEST_PERFORMANCE_FORMATTER_HPP
+#define PB_DS_XML_TEST_PERFORMANCE_FORMATTER_HPP
+
+#include <string>
+#include <iostream>
+#include <io/xml_test_formatter.hpp>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    class xml_test_performance_formatter : public xml_test_formatter
+    {
+    public:
+      xml_test_performance_formatter(const std::string& r_x_name, const std::string& r_y_name)
+      {
+	std::cout << make_xml_tag("x_name", r_x_name);
+	std::cout << make_xml_tag("y_name", r_y_name);
+      }
+    };
+
+    class xml_result_set_performance_formatter : public xml_result_set_formatter
+    {
+    public:
+      xml_result_set_performance_formatter(const std::string& r_container_name, const std::string& r_container_desc)
+	:  xml_result_set_formatter(r_container_name, r_container_desc)
+      {
+	{ }
+      }
+
+      void
+      add_res(size_t x, double y)
+      {
+	const unsigned long ul = static_cast<unsigned long>(x);
+	const std::string res = make_xml_tag("result", "x", ul, "y", y);
+	std::cout << res;
+      }
+    };
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_XML_TEST_PERFORMANCE_FORMATTER_HPP
diff --git a/libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator.hpp b/libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator.hpp
new file mode 100644
index 000000000000..d119e95c2cdf
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator.hpp
@@ -0,0 +1,189 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file mem_track_allocator.hpp
+ * Contains a memory-tracking allocator used for tests.
+ */
+
+#ifndef PB_DS_MEM_TRACK_ALLOCATOR_HPP
+#define PB_DS_MEM_TRACK_ALLOCATOR_HPP
+
+#include <performance/mem/mem_track_allocator_base.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename T>
+
+#define PB_DS_CLASS_C_DEC				\
+    mem_track_allocator<				\
+						T>
+
+    template<typename T>
+    class mem_track_allocator : public detail::mem_track_allocator_base
+    {
+    public:
+      typedef size_t size_type;
+      typedef ptrdiff_t difference_type;
+      typedef T* pointer;
+      typedef const T* const_pointer;
+      typedef T& reference;
+      typedef const T& const_reference;
+      typedef T value_type;
+
+      template<typename U>
+      struct rebind
+      {
+        typedef mem_track_allocator<U> other;
+      };
+
+      mem_track_allocator() throw();
+
+      mem_track_allocator(const PB_DS_CLASS_C_DEC& ) throw();
+
+      template <class U>
+      mem_track_allocator(const mem_track_allocator<U>& ) throw();
+
+      ~mem_track_allocator() throw();
+
+      size_type
+      max_size() const throw();
+
+      pointer
+      allocate(size_type num, std::allocator<void>::const_pointer hint = 0);
+
+      void
+      construct(pointer p, const T& r_val);
+
+      void
+      destroy(pointer p);
+
+      void
+      deallocate(pointer p, size_type num);
+    };
+
+    PB_DS_CLASS_T_DEC
+    bool
+    operator==(const PB_DS_CLASS_C_DEC& , const PB_DS_CLASS_C_DEC& )
+    {
+      return true;
+    }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    mem_track_allocator() throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    mem_track_allocator(const PB_DS_CLASS_C_DEC& ) throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename U>
+    PB_DS_CLASS_C_DEC::
+    mem_track_allocator(const mem_track_allocator<U>& ) throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ~mem_track_allocator() throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    max_size() const throw()
+    {
+      return (std::allocator<T>().max_size());
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::pointer
+    PB_DS_CLASS_C_DEC::
+    allocate(size_type num, std::allocator<void>::const_pointer hint/*= 0*/)
+    {
+      T* const a_t = std::allocator<T>().allocate(num, hint);
+
+      inc(sizeof(T)*  num);
+
+      return (a_t);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    construct(pointer p, const T& r_val)
+    {
+      return (std::allocator<T>().construct(p, r_val));
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    destroy(pointer p)
+    {
+      std::allocator<T>().destroy(p);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    deallocate(pointer p, size_type num)
+    {
+      std::allocator<T>().deallocate(p, num);
+
+      dec(sizeof(T)*  num);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MEM_TRACK_ALLOCATOR_HPP
diff --git a/libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator_base.hpp b/libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator_base.hpp
new file mode 100644
index 000000000000..97d831a755e9
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/mem/mem_track_allocator_base.hpp
@@ -0,0 +1,116 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file mem_track_allocator_base.hpp
+ * Contains a base for a memory-tracking allocator used for tests.
+ */
+
+#ifndef PB_DS_MEM_TRACK_ALLOCATOR_BASE_HPP
+#define PB_DS_MEM_TRACK_ALLOCATOR_BASE_HPP
+
+#include <cassert>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      struct total_holder
+      {
+        total_holder() : m_total(0)
+	{ }
+
+	size_t m_total;
+      };
+
+      class mem_track_allocator_base
+      {
+      public:
+	static void
+        inc(size_t size);
+
+	static void
+        dec(size_t size);
+
+	static size_t
+        get_total();
+
+      private:
+	static total_holder s_total_holder;
+      };
+
+      total_holder mem_track_allocator_base::s_total_holder;
+
+      void
+      mem_track_allocator_base::
+      inc(size_t size)
+      {
+	s_total_holder.m_total += size;
+      }
+
+      void
+      mem_track_allocator_base::
+      dec(size_t size)
+      {
+	assert(s_total_holder.m_total >= size);
+
+	s_total_holder.m_total -= size;
+      }
+
+      size_t
+      mem_track_allocator_base::
+      get_total()
+      {
+	return (s_total_holder.m_total);
+      }
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_MEM_TRACK_ALLOCATOR_BASE_HPP
diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
new file mode 100644
index 000000000000..85e234c9b680
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/priority_queue/mem_usage/pop_test.hpp
@@ -0,0 +1,148 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file pop_test.hpp
+ * Contains a generic pop test.
+ */
+
+#ifndef PB_DS_POP_TEST_HPP
+#define PB_DS_POP_TEST_HPP
+
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/mem/mem_track_allocator.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/priority_queue/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    pop_test<						\
+						It>
+
+    template<typename It>
+    class pop_test
+    {
+    public:
+      pop_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      pop_test(const pop_test& );
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    pop_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t ins_size = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, ins_size);
+
+	  mem_track_allocator<char> alloc;
+
+	  const size_t init_mem = alloc.get_total();
+
+	  Cntnr cntnr;
+
+	  for (It ins_it =    ins_it_b; ins_it != ins_it_e; ++ins_it)
+            cntnr.push(ins_it->first);
+
+	  while (cntnr.size() > 1)
+            cntnr.pop();
+
+	  const size_t final_mem = alloc.get_total();
+
+	  assert(final_mem > init_mem);
+
+	  const size_t delta_mem = final_mem - init_mem;
+
+	  res_set_fmt.add_res(ins_size, static_cast<double>(delta_mem));
+	}
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_POP_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
new file mode 100644
index 000000000000..ffa1187dde46
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/join_test.hpp
@@ -0,0 +1,174 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file join_test.hpp
+ * Contains a join performance test.
+ */
+
+#ifndef PB_DS_JOIN_TEST_HPP
+#define PB_DS_JOIN_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/priority_queue/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    namespace detail
+    {
+      template<typename It, typename Cntnr>
+      class double_push_functor
+      {
+	const It _M_begin;
+	const It _M_end;
+
+      public:
+        double_push_functor(It b,  It e) : _M_begin(b), _M_end(e) { }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  typedef typename Cntnr::const_reference const_reference;
+	  for (std::size_t n = 0; n < resolution; ++n)
+	    {
+	      Cntnr c0;
+	      Cntnr c1;
+	      for (It it = _M_begin; it != _M_end; ++it)
+		{
+		  c0.push(const_reference(it->first));
+		  c1.push(const_reference(it->first));
+		}
+	    }
+	}
+      };
+
+      template<typename It, typename Cntnr>
+      class double_push_join_functor
+      {
+	const It _M_begin;
+	const It _M_end;
+
+      public:
+        double_push_join_functor(It b,  It e) : _M_begin(b), _M_end(e) { }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  typedef typename Cntnr::const_reference const_reference;
+	  for (std::size_t n = 0; n < resolution; ++n)
+	    {
+	      Cntnr c0;
+	      Cntnr c1;
+	      for (It it = _M_begin; it != _M_end; ++it)
+		{
+		  c0.push(const_reference(it->first));
+		  c1.push(const_reference(it->first));
+		}
+	      c0.join(c1);
+	    }
+	}
+      };
+    } // namespace detail
+
+    template<typename It>
+    class join_test : private pb_ds::test::detail::timing_test_base
+    {
+      const It 		m_ins_b;
+      const size_t 	m_ins_vn;
+      const size_t 	m_ins_vs;
+      const size_t 	m_ins_vm;
+
+    public:
+      join_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm)
+	: m_ins_b(ins_b), m_ins_vn(ins_vn), m_ins_vs(ins_vs), m_ins_vm(ins_vm)
+      { }
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>)
+      {
+	using pb_ds::test::detail::double_push_functor;
+	using pb_ds::test::detail::double_push_join_functor;
+	typedef pb_ds::test::detail::timing_test_base base_type;
+	typedef xml_result_set_performance_formatter result_type;
+	result_type res(string_form<Cntnr>::name(), string_form<Cntnr>::desc());
+	  
+	for (size_t n = 0; m_ins_vn + n*  m_ins_vs < m_ins_vm; ++n)
+	  {
+	    const size_t v = m_ins_vn + n *  m_ins_vs;
+	    It b = m_ins_b;
+	    It e = m_ins_b;
+	    std::advance(e, v);
+
+	    double_push_functor<It, Cntnr> double_push_fn(b, e);
+	    const double double_push_res = base_type::operator()(double_push_fn);
+	    double_push_join_functor<It, Cntnr> double_push_join_fn(b, e);
+	    const double double_push_join_res = base_type::operator()(double_push_join_fn);
+	      
+	    const double effective_delta = std::max(double_push_join_res - double_push_res,
+						    base_type::min_time_res());
+	    res.add_res(v, effective_delta / v);
+	  }
+      }
+
+    private:
+      join_test(const join_test&);
+
+      template<typename Cntnr>
+      void
+      join(pb_ds::detail::type_to_type<Cntnr>, It b, It e)
+      {
+	Cntnr cntnr;
+	typedef typename Cntnr::const_reference const_reference;
+	for (It it = b; it != e; ++it)
+	  cntnr.join(const_reference(*it));
+      }
+    };
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_JOIN_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
new file mode 100644
index 000000000000..8694f9957697
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/modify_test.hpp
@@ -0,0 +1,387 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file modify_test.hpp
+ * Contains a modify performance test.
+ */
+
+#ifndef PB_DS_JOIN_TEST_HPP
+#define PB_DS_JOIN_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/priority_queue/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr, class Tag>
+      class push_functor
+      {
+      public:
+        push_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+						  m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr c;
+
+	      typedef std::vector< typename Cntnr::point_iterator> it_vec_t;
+
+	      it_vec_t m_a_its;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                m_a_its.push_back(c.push((typename Cntnr::const_reference)(ins_it->first)));
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+      template<typename It, class Cntnr, class Tag>
+      class push_modify_functor
+      {
+      public:
+        push_modify_functor(It ins_it_b,  It ins_it_e,  typename Cntnr::value_type mod_val) : m_ins_it_b(ins_it_b),
+											      m_ins_it_e(ins_it_e),
+											      m_mod_val(mod_val)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr c;
+
+	      typedef std::vector< typename Cntnr::point_iterator> it_vec_t;
+
+	      it_vec_t m_a_its;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                m_a_its.push_back(c.push((typename Cntnr::const_reference)(ins_it->first)));
+
+	      typename it_vec_t::iterator mod_it = m_a_its.begin();
+
+	      while (mod_it != m_a_its.end())
+                c.modify(*mod_it++, m_mod_val);
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+
+	const typename Cntnr::value_type m_mod_val;
+      };
+
+      template<typename It, class Cntnr>
+      class push_functor<
+	It,
+	Cntnr,
+	pb_ds::binary_heap_tag>
+      {
+      public:
+        push_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+						  m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr c;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                c.push((typename Cntnr::const_reference)(ins_it->first));
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+      template<typename It, class Cntnr>
+      class push_modify_functor<
+	It,
+	Cntnr,
+	pb_ds::binary_heap_tag>
+      {
+      public:
+        push_modify_functor(It ins_it_b,  It ins_it_e,  typename Cntnr::value_type mod_val) : m_ins_it_b(ins_it_b),
+											      m_ins_it_e(ins_it_e),
+											      m_mod_val(mod_val)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr c;
+
+	      It ins_it;
+
+	      for (ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                c.push((typename Cntnr::const_reference)(ins_it->first));
+
+	      for (ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+		{
+		  bool modified = false;
+
+		  for (typename Cntnr::iterator it = c.begin(); !modified&&  it != c.end(); ++it)
+                    if (*it == ins_it->first)
+		      {
+                        c.modify(it, m_mod_val);
+
+                        modified = true;
+		      }
+		}
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+
+	const typename Cntnr::value_type m_mod_val;
+      };
+
+      template<typename It, class Cntnr>
+      class push_functor<
+	It,
+	Cntnr,
+	pb_ds::test::native_pq_tag>
+      {
+      public:
+        push_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+						  m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr c;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                c.push((typename Cntnr::const_reference)(ins_it->first));
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+      template<typename It, class Cntnr>
+      class push_modify_functor<
+	It,
+	Cntnr,
+	pb_ds::test::native_pq_tag>
+      {
+      public:
+        push_modify_functor(It ins_it_b,  It ins_it_e,  typename Cntnr::value_type mod_val) : m_ins_it_b(ins_it_b),
+											      m_ins_it_e(ins_it_e),
+											      m_mod_val(mod_val)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr c;
+
+	      It ins_it;
+
+	      for (ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                c.push((typename Cntnr::const_reference)(ins_it->first));
+
+	      for (ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                c.modify(ins_it->first, m_mod_val);
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+
+	const typename Cntnr::value_type m_mod_val;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    modify_test<					\
+						It>
+
+    template<typename It>
+    class modify_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      modify_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, bool m_modify_up);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      modify_test(const modify_test& );
+
+      template<typename Cntnr>
+      void
+      modify(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e);
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+
+      const bool m_modify_up;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    modify_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm, bool modify_up) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm),
+      m_modify_up(modify_up)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  pb_ds::test::detail::push_functor<It, Cntnr, typename Cntnr::container_category>
+            push_fn(ins_it_b, ins_it_e);
+
+	  const double push_res =
+            pb_ds::test::detail::timing_test_base::operator()(push_fn);
+
+	  typename Cntnr::value_type mod_val = ins_it_b->first;
+
+	  {
+            Cntnr mod_val_container;
+            for (It mod_val_it = ins_it_b; mod_val_it != ins_it_e; ++mod_val_it)
+	      {
+                typename Cntnr::value_type pot = mod_val_it->first;
+
+                if (m_modify_up == mod_val_container.get_cmp_fn()(mod_val, pot))
+		  mod_val = pot;
+	      }
+	  }
+
+	  pb_ds::test::detail::push_modify_functor<It, Cntnr, typename Cntnr::container_category>
+            push_modify_fn(ins_it_b, ins_it_e, mod_val);
+
+	  const double push_modify_res =
+            pb_ds::test::detail::timing_test_base::operator()(push_modify_fn);
+
+	  const double effective_delta = std::max(
+						  push_modify_res - push_res,
+						  pb_ds::test::detail::timing_test_base::min_time_res());
+
+	  res_set_fmt.add_res(v, effective_delta / v);
+	}
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    modify(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e)
+    {
+      Cntnr cntnr;
+
+      for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
+        cntnr.modify((typename Cntnr::const_reference)(*ins_it));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_JOIN_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
new file mode 100644
index 000000000000..779ee672926c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_pop_test.hpp
@@ -0,0 +1,185 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file push_pop_test.hpp
+ * Contains a push performance test.
+ */
+
+#ifndef PB_DS_PUSH_TEST_HPP
+#define PB_DS_PUSH_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/priority_queue/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr>
+      class push_pop_push_pop_functor
+      {
+      public:
+        push_pop_push_pop_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+							       m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr cntnr;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                cntnr.push((typename Cntnr::const_reference)(ins_it->first));
+
+	      while (!cntnr.empty())
+                cntnr.pop();
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    push_pop_test<					\
+						It>
+
+    template<typename It>
+    class push_pop_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      push_pop_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      push_pop_test(const push_pop_test& );
+
+      template<typename Cntnr>
+      void
+      push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e);
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    push_pop_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  pb_ds::test::detail::push_pop_push_pop_functor<It, Cntnr>
+            fn(ins_it_b, ins_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / v);
+	}
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e)
+    {
+      Cntnr cntnr;
+
+      for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
+        cntnr.push((typename Cntnr::const_reference)(*ins_it));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PUSH_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
new file mode 100644
index 000000000000..29dcd7740ce5
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/priority_queue/timing/push_test.hpp
@@ -0,0 +1,182 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file push_test.hpp
+ * Contains a push performance test.
+ */
+
+#ifndef PB_DS_PUSH_TEST_HPP
+#define PB_DS_PUSH_TEST_HPP
+
+#include <performance/time/timing_test_base.hpp>
+#include <ext/pb_ds/detail/type_utils.hpp>
+#include <performance/io/xml_formatter.hpp>
+#include <common_type/priority_queue/string_form.hpp>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename It, class Cntnr>
+      class push_push_functor
+      {
+      public:
+        push_push_functor(It ins_it_b,  It ins_it_e) : m_ins_it_b(ins_it_b),
+						       m_ins_it_e(ins_it_e)
+	{ }
+
+	void
+        operator()(std::size_t resolution)
+	{
+	  for (std::size_t i = 0; i < resolution; ++i)
+	    {
+	      Cntnr cntnr;
+
+	      for (It ins_it = m_ins_it_b; ins_it != m_ins_it_e; ++ins_it)
+                cntnr.push((typename Cntnr::const_reference)(ins_it->first));
+	    }
+	}
+
+      private:
+	const It m_ins_it_b;
+	const It m_ins_it_e;
+      };
+
+    } // namespace detail
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename It>
+
+#define PB_DS_CLASS_C_DEC				\
+    push_test<						\
+						It>
+
+    template<typename It>
+    class push_test : private pb_ds::test::detail::timing_test_base
+    {
+    public:
+      push_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm);
+
+      template<typename Cntnr>
+      void
+      operator()(pb_ds::detail::type_to_type<Cntnr>);
+
+    private:
+      push_test(const push_test& );
+
+      template<typename Cntnr>
+      void
+      push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e);
+
+    private:
+      const It m_ins_b;
+
+      const size_t m_ins_vn;
+      const size_t m_ins_vs;
+      const size_t m_ins_vm;
+    };
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    push_test(It ins_b, size_t ins_vn, size_t ins_vs, size_t ins_vm) :
+      m_ins_b(ins_b),
+      m_ins_vn(ins_vn),
+      m_ins_vs(ins_vs),
+      m_ins_vm(ins_vm)
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      xml_result_set_performance_formatter res_set_fmt(
+						       string_form<Cntnr>::name(),
+						       string_form<Cntnr>::desc());
+
+      for (size_t size_i = 0; m_ins_vn + size_i*  m_ins_vs < m_ins_vm; ++size_i)
+	{
+	  const size_t v = m_ins_vn + size_i*  m_ins_vs;
+
+	  It ins_it_b = m_ins_b;
+	  It ins_it_e = m_ins_b;
+	  std::advance(ins_it_e, v);
+
+	  pb_ds::test::detail::push_push_functor<It, Cntnr>
+            fn(ins_it_b, ins_it_e);
+
+	  const double res =
+            pb_ds::test::detail::timing_test_base::operator()(fn);
+
+	  res_set_fmt.add_res(v, res / v);
+	}
+    }
+
+    PB_DS_CLASS_T_DEC
+    template<typename Cntnr>
+    void
+    PB_DS_CLASS_C_DEC::
+    push(pb_ds::detail::type_to_type<Cntnr>, It ins_it_b, It ins_it_e)
+    {
+      Cntnr cntnr;
+
+      for (It ins_it = ins_it_b; ins_it != ins_it_e; ++ins_it)
+        cntnr.push((typename Cntnr::const_reference)(*ins_it));
+    }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_PUSH_TEST_HPP
+
diff --git a/libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc b/libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
new file mode 100644
index 000000000000..39748bf2d8da
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/time/elapsed_timer.cc
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file elapsed_timer.cpp
+ * Contains utilities for tests.
+ */
+
+#include <util/performance/time/elapsed_timer.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    elapsed_timer::
+    elapsed_timer()
+    {
+      reset();
+    }
+
+    void
+    elapsed_timer::
+    reset()
+    {
+      m_start = ::clock();
+    }
+
+    elapsed_timer::
+    operator double() const
+    {
+      const clock_t now = ::clock();
+
+      return (((double)now - m_start) / CLOCKS_PER_SEC);
+    }
+
+  } // namespace test
+
+} // namespace pb_ds
diff --git a/libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp b/libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
new file mode 100644
index 000000000000..06d9b307984e
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/time/elapsed_timer.hpp
@@ -0,0 +1,77 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file elapsed_timer.hpp
+ * Contains time utilities for tests.
+ */
+
+#ifndef PB_DS_TEST_TIME_HPP
+#define PB_DS_TEST_TIME_HPP
+
+#include <time.h>
+#include <iosfwd>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    class elapsed_timer
+    {
+    public:
+      elapsed_timer();
+
+      void
+      reset();
+
+      operator double() const;
+
+    protected:
+      clock_t m_start;
+    };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TEST_TIME_HPP
diff --git a/libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp b/libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
new file mode 100644
index 000000000000..c9121fe3f486
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/performance/time/timing_test_base.hpp
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file timing_test_base.hpp
+ * Contains a base class for timing tests.
+ */
+
+#ifndef PB_DS_TIMING_TEST_BASE_HPP
+#define PB_DS_TIMING_TEST_BASE_HPP
+
+#include <performance/time/elapsed_timer.hpp>
+#include <statistic/res_recorder.hpp>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    namespace detail
+    {
+      class timing_test_base
+      {
+      protected:
+	template<typename Functor>
+	double
+	operator()(Functor& fn);
+
+	static double
+        min_time_res();
+
+      private:
+	template<typename Functor>
+	std::size_t
+	get_min_resolution(Functor&);
+
+	template<typename Functor>
+	double
+	run_at_resolution(Functor&, std::size_t);
+      };
+
+      template<typename Functor>
+      double
+      timing_test_base::operator()(Functor& fn)
+      {
+	const std::size_t resolution = get_min_resolution(fn);
+	pb_ds::test::detail::res_recorder<double> rec;
+	double res;
+	do
+	  res = run_at_resolution(fn, resolution);
+	while (rec.add_res(res) == false);
+	res = rec.sample_mean() / resolution;
+	return res;
+      }
+
+      double
+      timing_test_base::min_time_res()
+      { return 1e-7; }
+
+      template<typename Functor>
+      std::size_t
+      timing_test_base::get_min_resolution(Functor& fn)
+      {
+	std::size_t guess = 0;
+	const double epsilon_val = min_time_res();
+	double res;
+	do
+	  {
+	    guess = guess * 2 + 1;
+	    res = run_at_resolution(fn, guess);
+	  }
+	while (res < epsilon_val);
+	return guess;
+      }
+
+      template<typename Functor>
+      double
+      timing_test_base::run_at_resolution(Functor& fn, std::size_t resolution)
+      {
+	elapsed_timer res;
+	fn(resolution);
+	return res;
+      }
+
+    } // namespace detail
+  } // namespace test
+} // namespace pb_ds
+
+#endif 
+
diff --git a/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp b/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp
new file mode 100644
index 000000000000..bc89bd71789f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/assoc/common_type.hpp
@@ -0,0 +1,261 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file common_type.hpp
+ * Contains types used for regression tests.
+ */
+
+#ifndef PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP
+#define PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP
+
+#include <regression/basic_type.hpp>
+#include <common_type/assoc/common_type.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    typedef
+    pb_ds::test::dbg_ex_allocator<
+      pb_ds::test::basic_type>
+    alloc_type;
+
+    struct hash
+    {
+      typedef
+      alloc_type::rebind<
+	pb_ds::test::basic_type>::other::const_reference
+      const_key_reference;
+
+      size_t
+      operator()(const_key_reference r_key) const
+      {
+        size_t ret = 0;
+
+        for (pb_ds::test::basic_type::const_iterator it = r_key.begin(); it != r_key.end(); ++it)
+	  ret = ret*  5 +    static_cast<size_t>(*it);
+
+        return (ret);
+      }
+    };
+
+    typedef
+    pb_ds::string_trie_e_access_traits<
+      basic_type,
+      'a',
+      'a' + basic_type::distinct_chars - 1,
+      false,
+      alloc_type>
+    e_access_traits_t;
+
+    template<typename Data_Type>
+    struct tree_types
+    {
+    private:
+      typedef
+      typename pb_ds::test::tree_common_types<
+      pb_ds::test::basic_type,
+      Data_Type,
+      std::less<
+      pb_ds::test::basic_type>,
+      pb_ds::null_tree_node_update,
+      alloc_type>::regression_tl
+      no_order_statistics_tl_t;
+
+      typedef
+      typename pb_ds::test::tree_common_types<
+	pb_ds::test::basic_type,
+	Data_Type,
+	std::less<
+	pb_ds::test::basic_type>,
+	pb_ds::tree_order_statistics_node_update,
+	alloc_type>::regression_tl
+      order_statistics_tl_t;
+
+    public:
+
+      typedef
+      typename pb_ds::detail::typelist_append<
+      no_order_statistics_tl_t,
+      order_statistics_tl_t>::type
+      tl_t;
+
+      typedef no_order_statistics_tl_t min_tl_t;
+    };
+
+    template<typename Data_Type>
+    struct trie_types
+    {
+    private:
+      typedef
+      typename pb_ds::test::trie_common_types<
+      pb_ds::test::basic_type,
+      Data_Type,
+      e_access_traits_t,
+      pb_ds::pat_trie_tag,
+      pb_ds::null_trie_node_update,
+      alloc_type>::regression_tl
+      no_updates_tl_t;
+
+      typedef
+      typename pb_ds::test::trie_common_types<
+	pb_ds::test::basic_type,
+	Data_Type,
+	e_access_traits_t,
+	pb_ds::pat_trie_tag,
+	pb_ds::trie_order_statistics_node_update,
+	alloc_type>::regression_tl
+      order_statistics_tl_t;
+
+      typedef
+      typename pb_ds::test::trie_common_types<
+	pb_ds::test::basic_type,
+	Data_Type,
+	e_access_traits_t,
+	pb_ds::pat_trie_tag,
+	pb_ds::trie_prefix_search_node_update,
+	alloc_type>::regression_tl
+      prefix_search_tl_t;
+
+    public:
+      typedef
+      typename pb_ds::detail::typelist_append<
+      no_updates_tl_t,
+      typename pb_ds::detail::typelist_append<
+      prefix_search_tl_t,
+      order_statistics_tl_t>::type>::type
+      tl_t;
+
+      typedef no_updates_tl_t min_tl_t;
+    };
+
+    template<typename Data_Type>
+    struct hash_types
+    {
+      typedef
+      typename pb_ds::test::hash_common_types<
+	pb_ds::test::basic_type,
+	Data_Type,
+	hash,
+	std::equal_to<
+	pb_ds::test::basic_type>,
+	alloc_type>::regression_tl
+      tl_t;
+
+      typedef tl_t min_tl_t;
+    };
+
+    template<typename Data_Type>
+    struct lu_types
+    {
+      typedef
+      typename pb_ds::test::lu_common_types<
+	pb_ds::test::basic_type,
+	Data_Type,
+	std::equal_to<
+	pb_ds::test::basic_type>,
+	alloc_type>::regression_tl
+      tl_t;
+
+      typedef tl_t min_tl_t;
+    };
+
+    typedef
+    tree_types<
+      pb_ds::null_mapped_type>::tl_t
+    tree_set_tl_t;
+
+    typedef
+    tree_types<
+      pb_ds::null_mapped_type>::min_tl_t
+    min_tree_set_tl_t;
+
+    typedef
+    hash_types<
+      pb_ds::null_mapped_type>::tl_t
+    hash_set_tl_t;
+
+    typedef
+    hash_types<
+      pb_ds::null_mapped_type>::min_tl_t
+    min_hash_set_tl_t;
+
+    typedef lu_types< pb_ds::null_mapped_type>::tl_t lu_set_tl_t;
+
+    typedef
+    lu_types<
+      pb_ds::null_mapped_type>::min_tl_t
+    min_lu_set_tl_t;
+
+    typedef
+    trie_types<
+      pb_ds::null_mapped_type>::tl_t
+    trie_set_tl_t;
+
+    typedef
+    trie_types<
+      pb_ds::null_mapped_type>::min_tl_t
+    min_trie_set_tl_t;
+
+    typedef tree_types< basic_type>::tl_t tree_map_tl_t;
+
+    typedef tree_types< basic_type>::min_tl_t min_tree_map_tl_t;
+
+    typedef hash_types< basic_type>::tl_t hash_map_tl_t;
+
+    typedef hash_types< basic_type>::min_tl_t min_hash_map_tl_t;
+
+    typedef lu_types< basic_type>::tl_t lu_map_tl_t;
+
+    typedef lu_types< basic_type>::min_tl_t min_lu_map_tl_t;
+
+    typedef trie_types< basic_type>::tl_t trie_map_tl_t;
+
+    typedef trie_types< basic_type>::min_tl_t min_trie_map_tl_t;
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/basic_type.hpp b/libstdc++-v3/testsuite/util/regression/basic_type.hpp
new file mode 100644
index 000000000000..60e970bd471c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/basic_type.hpp
@@ -0,0 +1,118 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file basic_type.hpp
+ * Containsert a type used for regression tests' key and data.
+ */
+
+#ifndef PB_DS_BASIC_TYPE_HPP
+#define PB_DS_BASIC_TYPE_HPP
+
+#include <string>
+#include <regression/res_mng/dbg_ex_allocator.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_BASE_C_DEC						\
+    std::basic_string<							\
+							char,		\
+							std::char_traits< \
+											char>, \
+							dbg_ex_allocator< \
+											char> >
+
+    struct basic_type : public PB_DS_BASE_C_DEC
+    {
+    public:
+      enum
+	{
+	  distinct_chars = 4
+	};
+
+    public:
+      basic_type()
+      { }
+
+      template<typename Gen>
+      basic_type(Gen& r_gen, size_t max)
+      {
+        size_t rnd =
+	  r_gen.get_unsigned_long(0, static_cast<unsigned long>(max));
+
+        while (rnd > 0)
+	  {
+            PB_DS_BASE_C_DEC::push_back('a' +
+					static_cast<char>(rnd % distinct_chars));
+
+            rnd /= distinct_chars;
+	  }
+      }
+
+      basic_type(const std::string other)
+      {
+        std::string::const_iterator it = other.begin();
+
+        while (it != other.end())
+	  {
+            PB_DS_BASE_C_DEC::push_back(*it);
+
+            ++it;
+	  }
+      }
+
+      operator std::string() const
+      {
+        return (std::string(PB_DS_BASE_C_DEC::c_str()));
+      }
+    };
+
+#undef PB_DS_BASE_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_BASIC_TYPE_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp b/libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp
new file mode 100644
index 000000000000..4c67167a0e23
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/priority_queue/common_type.hpp
@@ -0,0 +1,78 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file common_type.hpp
+ * Contains types used for regression tests.
+ */
+
+#ifndef PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP
+#define PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP
+
+#include <regression/basic_type.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    typedef
+    pb_ds::test::dbg_ex_allocator<
+      pb_ds::test::basic_type>
+    alloc_type;
+
+    typedef
+    pb_ds::test::pq_common_types<
+      pb_ds::test::basic_type,
+      std::less<
+      pb_ds::test::basic_type>,
+      alloc_type>::regression_tl
+    pq_tl_t;
+
+    typedef pq_tl_t min_pq_tl_t;
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RAND_REGRESSION_TEST_COMMON_TYPE_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp
new file mode 100644
index 000000000000..4f4c144b8d2a
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/container_rand_regression_test.hpp
@@ -0,0 +1,530 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file container_rand_regression_test.hpp
+ * Contains a random regression test for a specific container type.
+ */
+
+#ifndef PB_DS_CONTAINER_RAND_REGRESSION_TEST_HPP
+#define PB_DS_CONTAINER_RAND_REGRESSION_TEST_HPP
+
+#include <algorithm>
+#include <string>
+#include <sstream>
+#include <utility>
+#include <ext/pb_ds/assoc_container.hpp>
+#include <io/prog_bar.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <regression/trait/assoc/trait.hpp>
+#include <common_type/assoc/string_form.hpp>
+#include <regression/rand/io/assoc/xml_formatter.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#ifdef PB_DS_REGRESSION_TRACE
+#define PB_DS_TRACE(X) std::cerr << X << std::endl
+#else // #ifdef PB_DS_REGRESSION_TRACE
+#define PB_DS_TRACE(X)
+#endif // #ifdef PB_DS_REGRESSION_TRACE
+
+#define PB_DS_CLASS_T_DEC			\
+      template<typename Cntnr>
+
+#define PB_DS_CLASS_C_DEC				\
+      container_rand_regression_test<			\
+						Cntnr>
+
+#define PB_DS_COND_COMPARE(L, R)		\
+      if (m_g.get_prob() < m_mp)		\
+        cmp(L, R, __FUNCTION__);
+
+#define PB_DS_RUN_MTHD(MTHD)			\
+      {						\
+        bool done = false;			\
+						\
+        while (!done)				\
+	  done = MTHD();			\
+      }
+
+#define PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, F, L)		\
+      if (!(PRED))							\
+	{								\
+	  std::cerr << "Failure at " << F << ": " << L << std::endl;	\
+									\
+	  std::cerr << MORE << std::endl;				\
+									\
+	  std::cerr << "container:" << std::endl;			\
+									\
+	  print_container(*(P_C));					\
+	  std::cerr << std::endl;					\
+									\
+	  std::cerr << "native container:" << std::endl;		\
+									\
+	  print_container(*(P_NC));					\
+	  std::cerr << std::endl;					\
+									\
+	  throw std::logic_error("fucked!");				\
+	}
+
+#define PB_DS_THROW_IF_FAILED(PRED, MORE, P_C, P_NC)			\
+      PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, __FILE__, __LINE__)
+
+#define PB_DS_SET_DESTRUCT_PRINT			\
+      destructor_printer dest_print___(__FUNCTION__);
+
+#define PB_DS_CANCEL_DESTRUCT_PRINT		\
+      dest_print___.cancel_print();
+
+      // Rand test specialized for a specific container.
+      template<typename Cntnr>
+      class container_rand_regression_test
+      {
+
+      public:
+
+        container_rand_regression_test(unsigned long seed, size_t n, size_t m, double tp, double ip, double ep, double cp, double mp, bool disp);
+
+	virtual
+        ~container_rand_regression_test();
+
+	void
+        operator()();
+
+      private:
+	typedef Cntnr cntnr;
+
+	typedef typename cntnr::allocator allocator;
+
+	typedef typename cntnr::size_type size_type;
+
+	typedef twister_rand_gen gen;
+
+	typedef regression_test_traits< Cntnr> test_traits;
+
+	typedef pb_ds::container_traits< Cntnr> container_traits;
+
+	typedef typename test_traits::key_type key_type;
+
+	typedef typename test_traits::const_key_reference const_key_reference;
+
+	typedef typename test_traits::value_type value_type;
+
+	typedef typename test_traits::native_type native_type;
+
+	enum op
+	  {
+	    insert_op,
+	    erase_op,
+	    clear_op,
+	    other_op
+	  };
+
+	typedef dbg_ex_allocator< char> alloc_t;
+
+      private:
+
+	op
+        get_next_op();
+
+	size_t
+        get_next_sub_op(size_t max);
+
+	static void
+        defs();
+
+	static void
+        key_defs();
+
+	static void
+        mapped_defs();
+
+	static void
+        value_defs();
+
+	static void
+        ds_defs();
+
+	static void
+        iterator_defs();
+
+	static void
+        node_iterator_defs(pb_ds::detail::false_type);
+
+	static void
+        node_iterator_defs(pb_ds::detail::true_type);
+
+	static void
+        policy_defs();
+
+	static void
+        policy_defs(pb_ds::basic_hash_tag);
+
+	static void
+        policy_defs(pb_ds::cc_hash_tag);
+
+	static void
+        policy_defs(pb_ds::gp_hash_tag);
+
+	static void
+        policy_defs(pb_ds::tree_tag);
+
+	static void
+        policy_defs(pb_ds::list_update_tag);
+
+	static void
+        policy_defs(pb_ds::pat_trie_tag);
+
+	void
+        policy_access();
+
+	void
+        policy_access(pb_ds::basic_hash_tag);
+
+	void
+        policy_access(pb_ds::cc_hash_tag);
+
+	void
+        policy_access(pb_ds::gp_hash_tag);
+
+	void
+        policy_access(pb_ds::tree_tag);
+
+	void
+        policy_access(pb_ds::list_update_tag);
+
+	void
+        policy_access(pb_ds::pat_trie_tag);
+
+	void
+        it_copy();
+
+	void
+        it_assign();
+
+	void
+        rev_it_copy();
+
+	void
+        rev_it_assign();
+
+	void
+        rev_it_copy_imp(pb_ds::detail::false_type);
+
+	void
+        rev_it_copy_imp(pb_ds::detail::true_type);
+
+	void
+        rev_it_assign_imp(pb_ds::detail::false_type);
+
+	void
+        rev_it_assign_imp(pb_ds::detail::true_type);
+
+	bool
+        default_constructor();
+
+	void
+        swap();
+
+	bool
+        copy_constructor();
+
+	bool
+        assignment_operator();
+
+	bool
+        it_constructor();
+
+	bool
+        it_constructor_imp(pb_ds::cc_hash_tag);
+
+	bool
+        it_constructor_imp(pb_ds::gp_hash_tag);
+
+	bool
+        it_constructor_imp(pb_ds::tree_tag);
+
+	bool
+        it_constructor_imp(pb_ds::list_update_tag);
+
+	bool
+        it_constructor_imp(pb_ds::pat_trie_tag);
+
+	bool
+        insert();
+
+	bool
+        erase();
+
+	bool
+        erase_it();
+
+	bool
+        erase_it_imp(pb_ds::detail::false_type);
+
+	bool
+        erase_it_imp(pb_ds::detail::true_type);
+
+	bool
+        erase_rev_it();
+
+	bool
+        erase_rev_it_imp(pb_ds::detail::false_type);
+
+	bool
+        erase_rev_it_imp(pb_ds::detail::true_type);
+
+	bool
+        erase_if();
+
+	bool
+        clear();
+
+	bool
+        resize();
+
+	bool
+        resize_imp(pb_ds::detail::true_type);
+
+	bool
+        resize_imp(pb_ds::detail::false_type);
+
+	bool
+        get_set_loads();
+
+	bool
+        get_set_loads_imp(pb_ds::detail::true_type);
+
+	bool
+        get_set_loads_imp(pb_ds::detail::false_type);
+
+	void
+        get_set_load();
+
+	void
+        get_set_load_imp(pb_ds::detail::true_type);
+
+	void
+        get_set_load_imp(pb_ds::detail::false_type);
+
+	bool
+        subscript();
+
+	bool
+        subscript_imp(pb_ds::detail::false_type);
+
+	bool
+        subscript_imp(pb_ds::detail::true_type);
+
+	bool
+        split_join();
+
+	bool
+        split_join_imp(pb_ds::detail::false_type);
+
+	bool
+        split_join_imp(pb_ds::detail::true_type);
+
+	void
+        cmp(const Cntnr& r_container, const native_type& r_native_c, const std::string& r_call_fn);
+
+	void
+        basic_cmp_(const Cntnr& r_container, const native_type& r_native_c);
+
+	void
+        cmp_(const Cntnr& r_container, const native_type& r_native_c);
+
+	void
+        order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type);
+
+	void
+        order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type);
+
+	void
+        back_order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type);
+
+	void
+        back_order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type);
+
+	void
+        reverse_iteration_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type);
+
+	void
+        reverse_iteration_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type);
+
+	void
+        order_statistics_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type);
+
+	void
+        order_statistics_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type);
+
+	void
+        prefix_search_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type);
+
+	void
+        prefix_search_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type);
+
+	template<typename Const_It, class Const_Native_It>
+	void
+        it_cmp_imp(Const_It b, Const_It e, Const_Native_It native_b, Const_Native_It native_e);
+
+	template<typename Const_It, class Const_Native_It>
+	void
+        back_it_cmp_imp(Const_It b, Const_It e, Const_Native_It native_b, Const_Native_It native_e);
+
+	void
+        lower_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type);
+
+	void
+        lower_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type);
+
+	void
+        upper_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::false_type);
+
+	void
+        upper_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type);
+
+	void
+        print_container(const native_type& r_cnt, std::ostream& r_os = std::cerr) const;
+
+	void
+        print_container(const cntnr& r_cnt, std::ostream& r_os = std::cerr) const;
+
+      private:
+	struct destructor_printer
+	{
+	  destructor_printer(const std::string& r_msg) : m_msg(r_msg),
+							 m_print(true)
+	  { }
+
+	  void
+	  cancel_print()
+	  {
+            m_print = false;
+	  }
+
+	  ~destructor_printer()
+	  {
+            if (!m_print)
+	      return;
+
+            std::cerr << std::endl <<
+	      "Uncaught exception: " << std::endl <<
+	      m_msg << std::endl;
+	  }
+
+	private:
+	  const std::string m_msg;
+
+	  bool m_print;
+	};
+
+      private:
+	const unsigned long m_seed;
+
+	const size_t m_n;
+	const size_t m_m;
+	const double m_tp;
+	const double m_ip;
+	const double m_ep;
+	const double m_cp;
+	const double m_mp;
+	const bool m_disp;
+
+	twister_rand_gen m_g;
+
+	Cntnr* m_p_c;
+
+	native_type m_native_c;
+
+	alloc_t m_alloc;
+
+	size_t m_i;
+      };
+
+#include <regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp>
+#include <regression/rand/assoc/detail/cmp_fn_imps.hpp>
+#include <regression/rand/assoc/detail/operator_fn_imps.hpp>
+#include <regression/rand/assoc/detail/insert_fn_imps.hpp>
+#include <regression/rand/assoc/detail/subscript_fn_imps.hpp>
+#include <regression/rand/assoc/detail/clear_fn_imps.hpp>
+#include <regression/rand/assoc/detail/erase_fn_imps.hpp>
+#include <regression/rand/assoc/detail/defs_fn_imps.hpp>
+#include <regression/rand/assoc/detail/policy_access_fn_imps.hpp>
+#include <regression/rand/assoc/detail/split_join_fn_imps.hpp>
+#include <regression/rand/assoc/detail/it_conversion_fn_imps.hpp>
+#include <regression/rand/assoc/detail/resize_fn_imps.hpp>
+#include <regression/rand/assoc/detail/get_set_load_fn_imps.hpp>
+#include <regression/rand/assoc/detail/get_set_loads_fn_imps.hpp>
+#include <regression/rand/assoc/detail/diagnostic_fn_imps.hpp>
+
+#undef PB_DS_COND_COMPARE
+
+#undef PB_DS_RUN_MTHD
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_THROW_IF_FAILED_
+
+#undef PB_DS_THROW_IF_FAILED
+
+#undef PB_DS_SET_DESTRUCT_PRINT
+
+#undef PB_DS_CANCEL_DESTRUCT_PRINT
+
+#undef PB_DS_TRACE
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_CONTAINER_RAND_REGRESSION_TEST_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/clear_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/clear_fn_imps.hpp
new file mode 100644
index 000000000000..bbc8cbe75c90
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/clear_fn_imps.hpp
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file clear_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  m_p_c->clear();
+
+  m_native_c.clear();
+
+  return (true);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/cmp_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/cmp_fn_imps.hpp
new file mode 100644
index 000000000000..2b1325f8e516
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/cmp_fn_imps.hpp
@@ -0,0 +1,601 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cmp_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+cmp(const Cntnr& r_c, const native_type& r_native_c, const std::string& r_call_fn)
+{
+  m_alloc.set_throw_prob(1);
+
+  const size_t size = r_c.size();
+  const size_t native_size = r_native_c.size();
+
+  PB_DS_THROW_IF_FAILED(
+			size == native_size,
+			static_cast<unsigned long>(size) << " " <<
+			static_cast<unsigned long>(native_size),
+			& r_c,
+			& r_native_c);
+
+  const bool empty = r_c.empty();
+  const bool native_empty = r_native_c.empty();
+
+  PB_DS_THROW_IF_FAILED(
+			empty == native_empty,
+			empty << " " << native_empty,
+			& r_c,
+			& r_native_c);
+
+  try
+    {
+      basic_cmp_(r_c, r_native_c);
+
+      cmp_(r_c, r_native_c);
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(            false, "call-fn: " + r_call_fn, & r_c, & r_native_c);
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+basic_cmp_(const Cntnr& r_c, const native_type& r_native_c)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    if (static_cast<size_t>(std::distance(r_c.begin(), r_c.end())) !=
+	r_c.size())
+      PB_DS_THROW_IF_FAILED(
+			    false,
+			    static_cast<unsigned long>(
+						       std::distance(r_c.begin(), r_c.end())) <<
+			    " " << static_cast<unsigned long>(r_c.size()),
+			    & r_c,
+			    & r_native_c);
+
+  typename native_type::const_iterator it = r_native_c.begin();
+
+  while (it != r_native_c.end())
+    {
+      typename native_type::key_type native_key =
+	test_traits::extract_native_key(*it);
+
+      m_alloc.set_throw_prob(0);
+
+      const key_type k = native_key;
+
+      m_alloc.set_throw_prob(1);
+
+      typename cntnr::const_point_iterator found_it = r_c.find(k);
+
+      PB_DS_THROW_IF_FAILED(
+			    found_it != r_c.end(),
+			    test_traits::native_val_to_string(*it),
+			    & r_c,
+			    & r_native_c);
+
+      if (!test_traits::cmp(*found_it, * it))
+	PB_DS_THROW_IF_FAILED(                false,  "", & r_c, & r_native_c);
+
+      ++it;
+    }
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+cmp_(const Cntnr& r_c, const native_type& r_native_c)
+{
+  enum
+    {
+      order_preserving =
+      container_traits::order_preserving,
+      back_order_preserving =
+      container_traits::order_preserving&& 
+      !pb_ds::detail::is_same<
+      typename std::iterator_traits<
+      typename cntnr::const_iterator>::iterator_category,
+      std::forward_iterator_tag>::value,
+      reverse_iteration = container_traits::reverse_iteration,
+      order_statistics = test_traits::order_statistics,
+      prefix_search = test_traits::prefix_search,
+      has_mapped = !pb_ds::detail::is_same<
+      typename Cntnr::mapped_type,
+      pb_ds::null_mapped_type>::value
+    };
+
+  order_preserving_cmp_imp(r_c, r_native_c,
+			   pb_ds::detail::integral_constant<int,order_preserving>());
+
+  back_order_preserving_cmp_imp(r_c, r_native_c,
+				pb_ds::detail::integral_constant<int,back_order_preserving>());
+
+  order_statistics_cmp_imp(r_c, r_native_c,
+			   pb_ds::detail::integral_constant<int,order_statistics>());
+
+  prefix_search_cmp_imp(r_c, r_native_c,
+			pb_ds::detail::integral_constant<int,prefix_search>());
+
+  reverse_iteration_cmp_imp(r_c, r_native_c,
+			    pb_ds::detail::integral_constant<int,reverse_iteration>());
+
+  lower_bound_cmp_imp(r_c, r_native_c,
+		      pb_ds::detail::integral_constant<int,order_preserving>());
+
+  upper_bound_cmp_imp(r_c, r_native_c,
+		      pb_ds::detail::integral_constant<int,order_preserving>());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+order_preserving_cmp_imp(const Cntnr& /*r_c*/, const native_type& /*r_native_c*/, pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    typename cntnr::const_iterator b = r_c.begin();
+  typename cntnr::const_iterator e = r_c.end();
+
+  typename native_type::const_iterator native_b = r_native_c.begin();
+  typename native_type::const_iterator native_e = r_native_c.end();
+
+  try
+    {
+      it_cmp_imp(b, e, native_b, native_e);
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(            false, "", & r_c, & r_native_c)
+	}
+
+  try
+    {
+      back_it_cmp_imp(b, e, native_b, native_e);
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(            false, "", & r_c, & r_native_c)
+	}
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+back_order_preserving_cmp_imp(const Cntnr& /*r_c*/, const native_type& /*r_native_c*/, pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+back_order_preserving_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    typename cntnr::const_iterator b = r_c.begin();
+  typename cntnr::const_iterator e = r_c.end();
+
+  typename native_type::const_iterator native_b = r_native_c.begin();
+  typename native_type::const_iterator native_e = r_native_c.end();
+
+  it_cmp_imp(b, e, native_b, native_e);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+reverse_iteration_cmp_imp(const Cntnr& /*r_c*/, const native_type& /*r_native_c*/, pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+reverse_iteration_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    typename cntnr::const_reverse_iterator b = r_c.rbegin();
+  typename cntnr::const_reverse_iterator e = r_c.rend();
+
+  typename native_type::const_reverse_iterator native_b = r_native_c.rbegin();
+  typename native_type::const_reverse_iterator native_e = r_native_c.rend();
+
+  try
+    {
+      it_cmp_imp(b, e, native_b, native_e);
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(            false, "", & r_c, & r_native_c)
+	}
+
+  try
+    {
+      back_it_cmp_imp(b, e, native_b, native_e);
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(            false, "", & r_c, & r_native_c)
+	}
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+order_statistics_cmp_imp(const Cntnr& /*r_c*/, const native_type& /*r_native_c*/, pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+order_statistics_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type)
+{
+  {
+    m_alloc.set_throw_prob(0);
+
+    const key_type k =
+      test_traits::generate_key(m_g, m_m);
+
+    m_alloc.set_throw_prob(1);
+
+    const size_type order = r_c.order_of_key(k);
+
+    const size_type native_order = std::distance(
+						 r_native_c.begin(),
+						 r_native_c.lower_bound(test_traits::native_key(k)));
+
+    PB_DS_THROW_IF_FAILED(
+			  order == native_order,
+			  test_traits::key_to_string(k) << " " <<
+			  static_cast<unsigned long>(order) << " " <<
+			  static_cast<unsigned long>(native_order),
+			  & r_c,
+			  & r_native_c);
+  }
+
+  const size_type rand_ord =
+    static_cast<size_t>(m_g.get_unsigned_long(
+					      0,
+					      2*  static_cast<unsigned long>(m_m)));
+
+  typename cntnr::const_iterator it =
+    r_c.find_by_order(rand_ord);
+
+  typename native_type::const_iterator native_it =
+    r_native_c.begin();
+
+  std::advance(native_it, std::min(rand_ord, r_native_c.size()));
+
+  if (it == r_c.end()&&  native_it != r_native_c.end())
+    PB_DS_THROW_IF_FAILED(
+			  false,
+			  static_cast<unsigned long>(rand_ord),
+			  m_p_c,
+			  & m_native_c);
+
+  if (it != r_c.end()&&  native_it == r_native_c.end())
+    PB_DS_THROW_IF_FAILED(
+			  false,
+			  static_cast<unsigned long>(rand_ord),
+			  m_p_c,
+			  & m_native_c);
+
+  if (it != r_c.end()&&     native_it != r_native_c.end())
+    PB_DS_THROW_IF_FAILED(
+			  test_traits::cmp(*it, * native_it),
+			  static_cast<unsigned long>(rand_ord),
+			  m_p_c,
+			  & m_native_c);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+prefix_search_cmp_imp(const Cntnr& /*r_c*/, const native_type& /*r_native_c*/, pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+prefix_search_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    m_alloc.set_throw_prob(0);
+
+  const key_type k =
+    test_traits::generate_key(m_g, m_m);
+
+  m_alloc.set_throw_prob(1);
+
+  try
+    {
+      typedef
+	std::pair<
+	typename Cntnr::const_iterator,
+	typename Cntnr::const_iterator>
+	pref_ret_t;
+
+      const pref_ret_t pref_ret = r_c.prefix_range(k);
+
+      typename native_type::const_iterator native_start_it =
+	r_native_c.begin();
+
+      while (native_start_it != r_native_c.end()&& 
+	     !test_traits::prefix_match(
+					k,
+					test_traits::extract_native_key(*native_start_it)))
+	++native_start_it;
+
+      typename native_type::const_iterator native_end_it =
+	native_start_it;
+
+      do
+        {
+	  if (native_end_it != r_native_c.end())
+	    ++native_end_it;
+        }
+      while (native_end_it != r_native_c.end()&& 
+	     test_traits::prefix_match(
+				       k,
+				       test_traits::extract_native_key(*native_end_it)));
+
+      it_cmp_imp(            pref_ret.first, pref_ret.second, native_start_it, native_end_it);
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(
+			    false,
+			    "prefix key " << k,
+			    & r_c,
+			    & r_native_c);
+    }
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename Const_It, class Const_Native_It>
+void
+PB_DS_CLASS_C_DEC::
+it_cmp_imp(Const_It b, Const_It e, Const_Native_It native_b, Const_Native_It native_e)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    if (std::distance(b, e) != std::distance(native_b, native_e))
+      {
+        const size_t dist = std::distance(b, e);
+
+        const size_t native_dist = std::distance(native_b, native_e);
+
+        PB_DS_THROW_IF_FAILED(
+			      false,
+			      static_cast<unsigned long>(dist) << " "
+			      << static_cast<unsigned long>(native_dist),
+			      m_p_c,
+			      & m_native_c);
+      }
+
+  while (b != e)
+    {
+      PB_DS_THROW_IF_FAILED(            native_b != native_e, "", m_p_c, & m_native_c);
+
+      if (!test_traits::cmp(*b, * native_b))
+	PB_DS_THROW_IF_FAILED(
+			      false,
+			      test_traits::val_to_string(*b) << " " <<
+			      test_traits::val_to_string(*native_b),
+			      m_p_c,
+			      & m_native_c);
+
+      ++b;
+      ++native_b;
+    }
+
+  PB_DS_THROW_IF_FAILED(        native_b == native_e, "", m_p_c,    & m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+template<typename Const_It, class Const_Native_It>
+void
+PB_DS_CLASS_C_DEC::
+back_it_cmp_imp(Const_It b, Const_It e, Const_Native_It native_b, Const_Native_It native_e)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    while (b != e)
+      {
+        PB_DS_THROW_IF_FAILED(
+			      native_b != native_e,
+			      test_traits::val_to_string(*native_e),
+			      m_p_c,
+			      & m_native_c);
+
+        --e;
+        --native_e;
+
+        PB_DS_THROW_IF_FAILED(
+			      test_traits::cmp(*e, * native_e),
+			      test_traits::val_to_string(*e) <<
+			      test_traits::val_to_string(*native_e),
+			      m_p_c,
+			      & m_native_c);
+      }
+
+  PB_DS_THROW_IF_FAILED(
+			native_b == native_e,
+			test_traits::val_to_string(*native_e),
+			m_p_c,
+			& m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+lower_bound_cmp_imp(const Cntnr& /*r_c*/, const native_type& /*r_native_c*/, pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+lower_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    m_alloc.set_throw_prob(0);
+
+  const key_type k =
+    test_traits::generate_key(m_g, m_m);
+
+  m_alloc.set_throw_prob(1);
+
+  typename cntnr::const_iterator it =    r_c.lower_bound(k);
+
+  typename native_type::key_type native_k = test_traits::native_key(k);
+
+  typename native_type::const_iterator native_it =
+    r_native_c.lower_bound(native_k);
+
+  if (it != r_c.end()&&  native_it == r_native_c.end())
+    PB_DS_THROW_IF_FAILED(
+			  "",
+			  "it: " + test_traits::val_to_string(*it) + "\n\n",
+			  & r_c,
+			  & r_native_c);
+
+  if (it == r_c.end()&&  native_it != r_native_c.end())
+    PB_DS_THROW_IF_FAILED(
+			  "",
+			  "native_it: " + test_traits::val_to_string(*native_it) + "\n\n",
+			  & r_c,
+			  & r_native_c);
+
+  if (it != r_c.end()&&  !test_traits::cmp(*it, * native_it))
+    PB_DS_THROW_IF_FAILED(
+			  false,
+			  "key: " + test_traits::key_to_string(k) + "\n\n" +
+			  "it: " + test_traits::val_to_string(*it) + "\n\n" +
+			  "native_it: " + test_traits::val_to_string(*native_it) + "\n\n",
+			  & r_c,
+			  & r_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+upper_bound_cmp_imp(const Cntnr& /*r_c*/, const native_type& /*r_native_c*/, pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+upper_bound_cmp_imp(const Cntnr& r_c, const native_type& r_native_c, pb_ds::detail::true_type)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    m_alloc.set_throw_prob(0);
+
+  const key_type k =
+    test_traits::generate_key(m_g, m_m);
+
+  m_alloc.set_throw_prob(1);
+
+  typename cntnr::const_iterator it =    r_c.upper_bound(k);
+
+  typename native_type::key_type native_k = test_traits::native_key(k);
+
+  typename native_type::const_iterator native_it =
+    r_native_c.upper_bound(native_k);
+
+  if (it == r_c.end()&&  native_it != r_native_c.end())
+    PB_DS_THROW_IF_FAILED(
+			  false,
+			  "key: " + test_traits::key_to_string(k) + "\n\n" +
+			  "native_it: " + test_traits::val_to_string(*native_it) + "\n\n",
+			  & r_c,
+			  & r_native_c);
+
+  if (it != r_c.end()&&  native_it == r_native_c.end())
+    PB_DS_THROW_IF_FAILED(
+			  false,
+			  "key: " + test_traits::key_to_string(k) + "\n\n" +
+			  "it: " + test_traits::val_to_string(*it) + "\n\n",
+			  & r_c,
+			  & r_native_c);
+
+  if (it != r_c.end()&&  !test_traits::cmp(*it, * native_it))
+    PB_DS_THROW_IF_FAILED(
+			  false,
+			  "key: " + test_traits::key_to_string(k) + "\n\n" +
+			  "it: " + test_traits::val_to_string(*it) + "\n\n" +
+			  "native_it: " + test_traits::val_to_string(*native_it) + "\n\n",
+			  & r_c,
+			  & r_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..82cc024e3a58
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/constructor_destructor_fn_imps.hpp
@@ -0,0 +1,521 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+container_rand_regression_test(unsigned long seed, size_t n, size_t m, double tp, double ip, double ep, double cp, double mp, bool disp) :
+  m_seed((seed == 0)?
+	 twister_rand_gen::get_time_determined_seed():
+	 seed),
+  m_n(n),
+  m_m(m),
+  m_tp(tp),
+  m_ip(ip),
+  m_ep(ep),
+  m_cp(cp),
+  m_mp(mp),
+  m_disp(disp),
+  m_p_c(NULL)
+{ }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~container_rand_regression_test()
+{ }
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+default_constructor()
+{
+  PB_DS_TRACE("default_constructor");
+
+  bool done = true;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  try
+    {
+      m_p_c = new Cntnr;
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  if (m_p_c != NULL)
+    PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap()
+{
+  PB_DS_TRACE("swap");
+
+  m_alloc.set_throw_prob(0);
+
+  Cntnr* p_c = new Cntnr;
+
+  m_alloc.set_throw_prob(1);
+
+  p_c->swap(*m_p_c);
+
+  std::swap(p_c, m_p_c);
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+copy_constructor()
+{
+  PB_DS_TRACE("copy_constructor");
+
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      p_c = new Cntnr(*m_p_c);
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+assignment_operator()
+{
+  PB_DS_TRACE("assignment operator");
+
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      p_c = new Cntnr();
+
+      * p_c =* m_p_c;
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+it_constructor()
+{
+  PB_DS_TRACE("it_constructor");
+
+  return (it_constructor_imp(typename Cntnr::container_category()));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+it_constructor_imp(pb_ds::cc_hash_tag)
+{
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      switch(get_next_sub_op(8))
+        {
+        case 0:
+	  p_c = new Cntnr(m_p_c->get_hash_fn());
+	  m_native_c.clear();
+	  break;
+        case 1:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn());
+	  m_native_c.clear();
+	  break;
+        case 2:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_hash_fn());
+	  m_native_c.clear();
+	  break;
+        case 3:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_hash_fn(),
+			  m_p_c->get_resize_policy());
+	  m_native_c.clear();
+	  break;
+        case 4:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end());
+	  break;
+        case 5:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn());
+	  break;
+        case 6:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn());
+	  break;
+        case 7:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_hash_fn());
+	  break;
+        case 8:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_hash_fn(),
+			  m_p_c->get_resize_policy());
+	  break;
+        default:
+	  PB_DS_THROW_IF_FAILED(                    false,  "",  m_p_c, & m_native_c);
+        };
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+it_constructor_imp(pb_ds::gp_hash_tag)
+{
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      switch(get_next_sub_op(11))
+        {
+        case 0:
+	  p_c = new Cntnr(m_p_c->get_hash_fn());
+	  m_native_c.clear();
+	  break;
+        case 1:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn());
+	  m_native_c.clear();
+	  break;
+        case 2:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn());
+	  m_native_c.clear();
+	  break;
+        case 3:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn());
+	  m_native_c.clear();
+	  break;
+        case 4:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn(),
+			  m_p_c->get_probe_fn());
+	  m_native_c.clear();
+	  break;
+        case 5:
+	  p_c = new Cntnr(m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn(),
+			  m_p_c->get_probe_fn(),
+			  m_p_c->get_resize_policy());
+	  m_native_c.clear();
+	  break;
+        case 6:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn());
+	  break;
+        case 7:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn());
+	  break;
+        case 8:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn());
+	  break;
+        case 9:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn());
+	  break;
+        case 10:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn(),
+			  m_p_c->get_probe_fn());
+	  break;
+        case 11:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_hash_fn(),
+			  m_p_c->get_eq_fn(),
+			  m_p_c->get_comb_probe_fn(),
+			  m_p_c->get_probe_fn(),
+			  m_p_c->get_resize_policy());
+	  break;
+        default:
+	  PB_DS_THROW_IF_FAILED(                    false,  "",  m_p_c, & m_native_c);
+        };
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+it_constructor_imp(pb_ds::tree_tag)
+{
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      switch(get_next_sub_op(2))
+        {
+        case 0:
+	  p_c = new Cntnr(m_p_c->get_cmp_fn());
+	  m_native_c.clear();
+	  break;
+        case 1:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_cmp_fn());
+	  break;
+        default:
+	  PB_DS_THROW_IF_FAILED(                false,  "",  m_p_c, & m_native_c);
+        };
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+it_constructor_imp(pb_ds::list_update_tag)
+{
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      p_c = new Cntnr(m_p_c->begin(),
+		      m_p_c->end());
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+it_constructor_imp(pb_ds::pat_trie_tag)
+{
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      switch(get_next_sub_op(2))
+        {
+        case 0:
+	  p_c = new Cntnr(m_p_c->get_e_access_traits());
+	  m_native_c.clear();
+	  break;
+        case 1:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_e_access_traits());
+	  break;
+        default:
+	  PB_DS_THROW_IF_FAILED(                    false,  "",  m_p_c, & m_native_c);
+        };
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp
new file mode 100644
index 000000000000..68829d3e1871
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/defs_fn_imps.hpp
@@ -0,0 +1,248 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file defs_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+defs()
+{
+  // General container types.
+
+  typedef typename Cntnr::size_type test_size_type;
+
+  typedef typename Cntnr::difference_type difference_type;
+
+  key_defs();
+
+  mapped_defs();
+
+  value_defs();
+
+  iterator_defs();
+
+  node_iterator_defs(pb_ds::detail::integral_constant<int,
+		     container_traits::order_preserving>());
+
+  policy_defs();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+key_defs()
+{
+  typedef typename Cntnr::key_type test_key_type;
+
+  typedef typename Cntnr::key_reference test_key_reference;
+
+  typedef typename Cntnr::const_key_reference test_const_key_reference;
+
+  typedef typename Cntnr::key_pointer test_key_pointer;
+
+  typedef typename Cntnr::const_key_pointer test_const_key_pointer;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+mapped_defs()
+{
+  typedef typename Cntnr::mapped_type test_mapped_type;
+
+  typedef typename Cntnr::mapped_reference test_mapped_reference;
+
+  typedef
+    typename Cntnr::const_mapped_reference
+    test_const_mapped_reference;
+
+  typedef typename Cntnr::mapped_pointer test_mapped_pointer;
+
+  typedef typename Cntnr::const_mapped_pointer test_const_mapped_pointer;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+value_defs()
+{
+  typedef typename Cntnr::value_type test_value_type;
+
+  typedef typename Cntnr::reference test_reference;
+
+  typedef typename Cntnr::const_reference test_const_reference;
+
+  typedef typename Cntnr::pointer test_pointer;
+
+  typedef typename Cntnr::const_pointer test_const_pointer;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+ds_defs()
+{
+  typedef pb_ds::container_traits< Cntnr> test_container_traits;
+
+  typedef typename test_container_traits::container_category test_container_category;
+
+  typedef
+    typename test_container_traits::invalidation_guarantee
+    test_invalidation_guarantee;
+
+  enum
+    {
+      test_order_preserving =
+      test_container_traits::order_preserving
+    };
+
+  enum
+    {
+      test_erase_can_throw =
+      test_container_traits::erase_can_throw
+    };
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+iterator_defs()
+{
+  typedef typename Cntnr::point_iterator test_point_iterator;
+
+  typedef typename Cntnr::const_point_iterator const_test_point_iterator;
+
+  typedef typename Cntnr::iterator test_iterator;
+
+  typedef typename Cntnr::const_iterator const_test_iterator;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+node_iterator_defs(pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+node_iterator_defs(pb_ds::detail::true_type)
+{
+  typedef typename Cntnr::node_iterator test_node_iterator;
+
+  typedef typename Cntnr::const_node_iterator test_const_node_iterator;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs()
+{
+  typedef typename Cntnr::allocator test_allocator;
+
+  policy_defs(typename Cntnr::container_category());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs(pb_ds::basic_hash_tag)
+{
+  typedef typename Cntnr::hash_fn test_hash_fn;
+
+  typedef typename Cntnr::eq_fn test_eq_fn;
+
+  typedef typename Cntnr::resize_policy test_resize_policy;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs(pb_ds::cc_hash_tag)
+{
+  policy_defs(pb_ds::basic_hash_tag());
+
+  typedef typename Cntnr::comb_hash_fn test_comb_hash_fn;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs(pb_ds::gp_hash_tag)
+{
+  policy_defs(pb_ds::basic_hash_tag());
+
+  typedef typename Cntnr::comb_probe_fn test_comb_probe_fn;
+
+  typedef typename Cntnr::probe_fn test_probe_fn;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs(pb_ds::tree_tag)
+{
+  typedef typename Cntnr::cmp_fn test_cmp_fn;
+
+  typedef typename Cntnr::node_update test_node_update;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs(pb_ds::list_update_tag)
+{
+  typedef typename Cntnr::eq_fn test_eq_fn;
+
+  typedef typename Cntnr::update_policy test_update_policy;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs(pb_ds::pat_trie_tag)
+{
+  typedef typename Cntnr::e_access_traits e_access_traits;
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/diagnostic_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/diagnostic_fn_imps.hpp
new file mode 100644
index 000000000000..0a16482d3a13
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/diagnostic_fn_imps.hpp
@@ -0,0 +1,79 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file diagnostic_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+print_container(const native_type& r_cnt, std::ostream& r_os /*= std::cerr*/) const
+{
+  m_alloc.set_throw_prob(0);
+
+  typename native_type::const_iterator it = r_cnt.begin();
+
+  while (it != r_cnt.end())
+    {
+      r_os << test_traits::val_to_string(*it) + "\n";
+
+      ++it;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+print_container(const cntnr& r_cnt, std::ostream& r_os /*= std::cerr*/) const
+{
+  m_alloc.set_throw_prob(0);
+
+  typename cntnr::const_iterator it = r_cnt.begin();
+
+  while (it != r_cnt.end())
+    {
+      r_os << test_traits::val_to_string(*it) + "\n";
+
+      ++it;
+    }
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/erase_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/erase_fn_imps.hpp
new file mode 100644
index 000000000000..0b2a62c0ecdb
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/erase_fn_imps.hpp
@@ -0,0 +1,319 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase()
+{
+  PB_DS_TRACE("erase");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    m_alloc.set_throw_prob(0);
+
+  const key_type k =
+    test_traits::generate_key(m_g, m_m);
+
+  m_alloc.set_throw_prob(m_tp);
+
+  try
+    {
+      const bool cntnd = m_p_c->find(k) != m_p_c->end();
+
+      PB_DS_THROW_IF_FAILED(
+			    cntnd ==(m_native_c.find(test_traits::native_key(k)) != m_native_c.end()),
+			    test_traits::key_to_string(k),
+			    m_p_c,
+			    & m_native_c);
+
+      const bool ersd = m_p_c->erase(k);
+
+      const bool native_ersd =
+	m_native_c.erase(test_traits::native_key(k)) != 0;
+
+      PB_DS_THROW_IF_FAILED(
+			    ersd == native_ersd,
+			    ersd << " " << native_ersd,
+			    m_p_c,
+			    & m_native_c);
+
+      PB_DS_THROW_IF_FAILED(
+			    m_p_c->find(k) == m_p_c->end(),
+			    "",
+			    m_p_c,
+			    & m_native_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+
+      PB_DS_THROW_IF_FAILED(            container_traits::erase_can_throw, container_traits::erase_can_throw, m_p_c, & m_native_c);
+    }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_if()
+{
+  PB_DS_TRACE("erase_if");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        typedef
+	  typename std::iterator_traits<
+	  typename cntnr::iterator>::reference
+	  it_const_reference;
+
+        typedef
+	  typename test_traits::template erase_if_fn<
+	  value_type>
+	  erase_if_fn_t;
+
+        m_alloc.set_throw_prob(m_tp);
+
+        const size_t ersd =
+	  m_p_c->erase_if(erase_if_fn_t());
+
+        const size_t native_ersd =
+	  test_traits::erase_if(m_native_c);
+
+        PB_DS_THROW_IF_FAILED(
+			      ersd == native_ersd,
+			      static_cast<unsigned long>(ersd) << " " <<
+			      static_cast<unsigned long>(native_ersd),
+			      m_p_c,
+			      & m_native_c);
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            container_traits::erase_can_throw, container_traits::erase_can_throw, m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_it()
+{
+  enum
+    {
+      erase_iterators =
+      container_traits::order_preserving
+    };
+
+  return (erase_it_imp(pb_ds::detail::integral_constant<int,erase_iterators>()));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_it_imp(pb_ds::detail::false_type)
+{
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_it_imp(pb_ds::detail::true_type)
+{
+  PB_DS_TRACE("erase_it");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        const key_type k =
+	  test_traits::generate_key(m_g, m_m);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        typename cntnr::iterator found_it = m_p_c->find(k);
+
+        typename native_type::iterator native_it = m_native_c.find(
+								   test_traits::native_key(k));
+
+        const bool found = found_it != m_p_c->end();
+        const bool native_found = native_it != m_native_c.end();
+
+        PB_DS_THROW_IF_FAILED(
+			      found == native_found,
+			      found << " " <<    native_found,
+			      m_p_c,
+			      & m_native_c);
+
+        typename cntnr::const_iterator next_it = found_it;
+        if (next_it != m_p_c->end())
+	  ++next_it;
+
+        typename cntnr::iterator next_ers_it =
+	  m_p_c->erase(found_it);
+
+        if (native_it != m_native_c.end())
+	  m_native_c.erase(native_it);
+
+        bool range_guarantee =
+	  pb_ds::detail::is_same<
+	  typename container_traits::invalidation_guarantee,
+	  pb_ds::range_invalidation_guarantee>::value ;
+
+        if (range_guarantee)
+	  PB_DS_THROW_IF_FAILED(                next_ers_it == next_it,  "",  m_p_c, & m_native_c);
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            container_traits::erase_can_throw, container_traits::erase_can_throw, m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_rev_it()
+{
+  enum
+    {
+      erase_iterators =
+      container_traits::order_preserving&& 
+      container_traits::reverse_iteration
+    };
+
+  return (erase_rev_it_imp(pb_ds::detail::integral_constant<int,erase_iterators>()));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_rev_it_imp(pb_ds::detail::false_type)
+{
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_rev_it_imp(pb_ds::detail::true_type)
+{
+  PB_DS_TRACE("erase_rev_it");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        const key_type k =
+	  test_traits::generate_key(m_g, m_m);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        typename cntnr::iterator found_it = m_p_c->find(k);
+
+        typename native_type::iterator native_it = m_native_c.find(
+								   test_traits::native_key(k));
+
+        typename cntnr::const_reverse_iterator next_it = found_it;
+        if (next_it != m_p_c->end())
+	  ++next_it;
+
+        typename cntnr::reverse_iterator next_ers_it =
+	  m_p_c->erase((typename cntnr::reverse_iterator)found_it);
+
+        PB_DS_THROW_IF_FAILED(            next_ers_it == next_it, "", m_p_c, & m_native_c);
+
+        if (native_it != m_native_c.end())
+	  m_native_c.erase(native_it);
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            container_traits::erase_can_throw, container_traits::erase_can_throw, m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_load_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_load_fn_imps.hpp
new file mode 100644
index 000000000000..8f58f3e2c46b
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_load_fn_imps.hpp
@@ -0,0 +1,102 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file get_set_load_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+get_set_load()
+{
+  typedef
+    pb_ds::detail::integral_constant<int,
+    test_traits::get_set_load>
+    get_set_load_ind;
+
+  get_set_load_imp(get_set_load_ind());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+get_set_load_imp(pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+get_set_load_imp(pb_ds::detail::true_type)
+{
+  PB_DS_TRACE("get_set_load");
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    m_p_c->get_load();
+
+  m_alloc.set_throw_prob(1);
+
+  typename alloc_t::group_throw_prob_adjustor adjust(
+						     m_p_c->size());
+
+  const float min_load = static_cast<float>(0.05);
+  const float max_load = static_cast<float>(0.9);
+
+  const float new_load =
+    static_cast<float>(
+		       m_g.get_prob()*  (max_load - min_load) +
+		       min_load);
+
+  m_p_c->set_load(new_load);
+
+  PB_DS_THROW_IF_FAILED(
+			m_p_c->get_load() == new_load,
+			"",
+			m_p_c,
+			& m_native_c);
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_loads_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_loads_fn_imps.hpp
new file mode 100644
index 000000000000..cbcac81c6317
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/get_set_loads_fn_imps.hpp
@@ -0,0 +1,122 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file get_set_loads_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+get_set_loads()
+{
+  typedef
+    pb_ds::detail::integral_constant<int,
+    test_traits::get_set_loads>
+    get_set_loads_ind;
+
+  return (get_set_loads_imp(get_set_loads_ind()));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+get_set_loads_imp(pb_ds::detail::false_type)
+{
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+get_set_loads_imp(pb_ds::detail::true_type)
+{
+  PB_DS_TRACE("get_set_loads");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    const std::pair<float, float> old_loads =
+    m_p_c->get_loads();
+
+  try
+    {
+      m_alloc.set_throw_prob(m_tp);
+
+      typename alloc_t::group_throw_prob_adjustor adjust(
+							 m_p_c->size());
+
+      const float min_min_load = static_cast<float>(0.05);
+      const float max_min_load = static_cast<float>(0.2);
+
+      const float new_min_load =
+	static_cast<float>(
+			   m_g.get_prob()*  (max_min_load - min_min_load) +
+			   min_min_load);
+
+      const float new_max_load = static_cast<float>(new_min_load*  2.5);
+
+      PB_DS_THROW_IF_FAILED(            new_max_load < 1, new_max_load, m_p_c, & m_native_c);
+
+      m_p_c->set_loads(
+		       std::make_pair(                new_min_load,  new_max_load));
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(
+			    old_loads == m_p_c->get_loads(),
+			    old_loads.first << " " << old_loads.second << " " <<
+			    m_p_c->get_loads().first << " " <<
+			    m_p_c->get_loads().second,
+			    m_p_c,
+			    & m_native_c);
+
+      done = false;
+    }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/insert_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/insert_fn_imps.hpp
new file mode 100644
index 000000000000..262b28ba2cf8
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/insert_fn_imps.hpp
@@ -0,0 +1,89 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+insert()
+{
+  PB_DS_TRACE("insert");
+  bool done = true;
+  PB_DS_SET_DESTRUCT_PRINT
+    try
+      {
+        m_alloc.set_throw_prob(0);
+        value_type v = test_traits::generate_value(m_g, m_m);
+        m_alloc.set_throw_prob(m_tp);
+        const_key_reference r_k = test_traits::extract_key(v);
+        typename cntnr::const_point_iterator found_it = m_p_c->find(r_k);
+        const bool existed = (found_it != m_p_c->end());
+        const std::pair<typename cntnr::point_iterator, bool> ins_ret = m_p_c->insert(v);
+
+        if (ins_ret.second)
+	  {
+            PB_DS_THROW_IF_FAILED(!existed, "", m_p_c, & m_native_c);
+	  }
+        else
+	  {
+            PB_DS_THROW_IF_FAILED(existed, "", m_p_c, & m_native_c);
+            PB_DS_THROW_IF_FAILED(found_it == ins_ret.first, "", m_p_c, & m_native_c);
+	  }
+        m_native_c.insert(test_traits::native_value(v));
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+      }
+    catch(pb_ds::insert_error& )
+      {
+        PB_DS_THROW_IF_FAILED(false, "", m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    return (done);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/it_conversion_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/it_conversion_fn_imps.hpp
new file mode 100644
index 000000000000..14d89e1ebf93
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/it_conversion_fn_imps.hpp
@@ -0,0 +1,307 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file it_conversion_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+it_copy()
+{
+  {
+    typename cntnr::iterator it = m_p_c->end();
+
+    typename cntnr::const_iterator const_it(it);
+
+    PB_DS_THROW_IF_FAILED(            const_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::const_point_iterator const_find_it(it);
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::point_iterator find_it(it);
+
+    PB_DS_THROW_IF_FAILED(            find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::const_iterator const_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it(const_it);
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == const_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != const_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::point_iterator find_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it(find_it);
+
+    PB_DS_THROW_IF_FAILED(            find_it == const_find_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != const_find_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+it_assign()
+{
+  {
+    typename cntnr::iterator it = m_p_c->end();
+
+    typename cntnr::const_iterator const_it;
+    const_it = it;
+
+    PB_DS_THROW_IF_FAILED(            const_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::const_point_iterator const_find_it;
+    const_find_it = it;
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::point_iterator find_it;
+    find_it = it;
+
+    PB_DS_THROW_IF_FAILED(            find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::const_iterator const_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it;
+    const_find_it = const_it;
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == const_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != const_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::point_iterator find_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it;
+    const_find_it = find_it;
+
+    PB_DS_THROW_IF_FAILED(            find_it == const_find_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != const_find_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rev_it_copy()
+{
+  enum
+    {
+      reverse_iteration = container_traits::reverse_iteration
+    };
+
+  rev_it_copy_imp(pb_ds::detail::integral_constant<int,reverse_iteration>());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rev_it_assign()
+{
+  enum
+    {
+      reverse_iteration = container_traits::reverse_iteration
+    };
+
+  rev_it_assign_imp(pb_ds::detail::integral_constant<int,reverse_iteration>());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rev_it_copy_imp(pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rev_it_copy_imp(pb_ds::detail::true_type)
+{
+  {
+    typename cntnr::iterator it = m_p_c->end();
+
+    typename cntnr::const_reverse_iterator const_it(it);
+
+    PB_DS_THROW_IF_FAILED(            const_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::const_point_iterator const_find_it(it);
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::point_iterator find_it(it);
+
+    PB_DS_THROW_IF_FAILED(            find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rev_it_assign_imp(pb_ds::detail::false_type)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+rev_it_assign_imp(pb_ds::detail::true_type)
+{
+  {
+    typename cntnr::iterator it = m_p_c->end();
+
+    typename cntnr::const_reverse_iterator const_it;
+    const_it = it;
+
+    PB_DS_THROW_IF_FAILED(            const_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::const_point_iterator const_find_it;
+    const_find_it = it;
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::point_iterator find_it;
+    find_it = it;
+
+    PB_DS_THROW_IF_FAILED(            find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/operator_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/operator_fn_imps.hpp
new file mode 100644
index 000000000000..34df60ec294d
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/operator_fn_imps.hpp
@@ -0,0 +1,249 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file operator_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+operator()()
+{
+  xml_result_set_regression_formatter* p_fmt = NULL;
+
+  if (m_disp)
+    p_fmt = new xml_result_set_regression_formatter(
+						    string_form<Cntnr>::name(),
+						    string_form<Cntnr>::desc());
+
+  m_g.init(m_seed);
+  m_alloc.init(m_seed);
+
+  prog_bar pb(m_n, std::cout, m_disp);
+
+  m_i = 0;
+
+  try
+    {
+      for (m_i = 0; m_i < m_n; ++m_i)
+        {
+	  PB_DS_TRACE("Op #" << static_cast<unsigned long>(m_i));
+
+	  allocator::set_label(m_i);
+
+	  switch(m_i)
+            {
+            case 0:
+	      PB_DS_RUN_MTHD(default_constructor);
+	      break;
+            case 1:
+	      defs();
+	      break;
+            case 2:
+	      policy_access();
+	      break;
+            case 3:
+	      it_copy();
+	      break;
+            case 4:
+	      it_assign();
+	      break;
+            case 5:
+	      rev_it_copy();
+	      break;
+            case 6:
+	      rev_it_assign();
+	      break;
+            default:
+	      switch(get_next_op())
+                {
+                case insert_op:
+		  switch(get_next_sub_op(2))
+                    {
+                    case 0:
+		      PB_DS_RUN_MTHD(insert)
+                        break;
+                    case 1:
+		      PB_DS_RUN_MTHD(subscript)
+                        break;
+                    default:
+		      PB_DS_THROW_IF_FAILED(                            false,       "",       m_p_c,      & m_native_c);
+                    }
+		  break;
+                case erase_op:
+		  switch(get_next_sub_op(4))
+                    {
+                    case 0:
+		      PB_DS_RUN_MTHD(erase)
+                        break;
+                    case 1:
+		      PB_DS_RUN_MTHD(erase_if)
+                        break;
+                    case 2:
+		      PB_DS_RUN_MTHD(erase_it)
+                        break;
+                    case 3:
+		      PB_DS_RUN_MTHD(erase_rev_it)
+                        break;
+                    default:
+		      PB_DS_THROW_IF_FAILED(                            false,       "",       m_p_c,      & m_native_c);
+                    }
+		  break;
+                case clear_op:
+		  PB_DS_RUN_MTHD(clear)
+                    break;
+                case other_op:
+		  switch(get_next_sub_op(8))
+                    {
+                    case 0:
+		      swap();
+		      break;
+                    case 1:
+		      PB_DS_RUN_MTHD(copy_constructor)
+                        break;
+                    case 2:
+		      PB_DS_RUN_MTHD(it_constructor)
+                        break;
+                    case 3:
+		      PB_DS_RUN_MTHD(assignment_operator)
+                        break;
+                    case 4:
+		      PB_DS_RUN_MTHD(split_join)
+                        break;
+                    case 5:
+		      resize();
+		      break;
+                    case 6:
+		      get_set_load();
+		      break;
+                    case 7:
+		      get_set_loads();
+		      break;
+                    default:
+		      PB_DS_THROW_IF_FAILED(                            false,       "",       m_p_c,      & m_native_c);
+                    }
+		  break;
+                default:
+		  PB_DS_THROW_IF_FAILED(                        false,   "",   m_p_c,  & m_native_c);
+                };
+            }
+
+	  pb.inc();
+        }
+    }
+  catch(...)
+    {
+      std::cerr << "Failed at index " << static_cast<unsigned long>(m_i) <<
+	std::endl;
+
+      delete m_p_c;
+
+      throw;
+    }
+
+  delete m_p_c;
+
+  if (!m_alloc.dbg_ex_allocator<char>::empty())
+    {
+      std::cerr << "detected leaks!" << std::endl;
+
+      std::cerr << m_alloc << std::endl;
+
+      PB_DS_THROW_IF_FAILED(            false, "", m_p_c, & m_native_c);
+    }
+
+  if (m_disp)
+    {
+      std::cout << std::endl;
+
+      delete p_fmt;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::op
+PB_DS_CLASS_C_DEC::
+get_next_op()
+{
+  const double prob = m_g.get_prob();
+
+  if (prob < m_ip)
+    return (insert_op);
+
+  if (prob < m_ip + m_ep)
+    return (erase_op);
+
+  if (prob < m_ip + m_ep + m_cp)
+    return (clear_op);
+
+  PB_DS_THROW_IF_FAILED(        prob <= 1, prob, m_p_c,    & m_native_c);
+
+  return (other_op);
+}
+
+PB_DS_CLASS_T_DEC
+size_t
+PB_DS_CLASS_C_DEC::
+get_next_sub_op(size_t max)
+{
+  const double p = m_g.get_prob();
+
+  const double delta = 1 / static_cast<double>(max);
+
+  size_t i = 0;
+
+  while (true)
+    if (p <= (i + 1)*  delta)
+      {
+	PB_DS_THROW_IF_FAILED(
+			      i < max,
+			      static_cast<unsigned long>(i) << " " <<
+			      static_cast<unsigned long>(max),
+			      m_p_c,
+			      & m_native_c);
+
+	return (i);
+      }
+    else
+      ++i;
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/policy_access_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..7ffd18a77dc4
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/policy_access_fn_imps.hpp
@@ -0,0 +1,184 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access()
+{
+  policy_access(typename Cntnr::container_category());
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access(pb_ds::basic_hash_tag)
+{
+  {
+    typename Cntnr::hash_fn& r_t =
+      m_p_c->get_hash_fn();
+
+    assert(&r_t != NULL);
+  }
+  {
+    const typename Cntnr::hash_fn& r_t =((const Cntnr& )*m_p_c).get_hash_fn();
+
+    assert(&r_t != NULL);
+  }
+
+  {
+    typename Cntnr::eq_fn& r_t =
+      m_p_c->get_eq_fn();
+
+    assert(&r_t != NULL);
+  }
+  {
+    const typename Cntnr::eq_fn& r_t =((const Cntnr& )*m_p_c).get_eq_fn();
+
+    assert(&r_t != NULL);
+  }
+
+  {
+    typename Cntnr::resize_policy& r_t =
+      m_p_c->get_resize_policy();
+
+    assert(&r_t != NULL);
+  }
+  {
+    const typename Cntnr::resize_policy& r_t =((const Cntnr& )*m_p_c).get_resize_policy();
+
+    assert(&r_t != NULL);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access(pb_ds::cc_hash_tag)
+{
+  policy_access(pb_ds::basic_hash_tag());
+
+  {
+    typename Cntnr::comb_hash_fn& r_t =
+      m_p_c->get_comb_hash_fn();
+
+    assert(&r_t != NULL);
+  }
+  {
+    const typename Cntnr::comb_hash_fn& r_t =((const Cntnr& )*m_p_c).get_comb_hash_fn();
+
+    assert(&r_t != NULL);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access(pb_ds::gp_hash_tag)
+{
+  policy_access(pb_ds::basic_hash_tag());
+
+  {
+    typename Cntnr::comb_probe_fn& r_t =
+      m_p_c->get_comb_probe_fn();
+
+    assert(&r_t != NULL);
+  }
+  {
+    const typename Cntnr::comb_probe_fn& r_t =((const Cntnr& )*m_p_c).get_comb_probe_fn();
+
+    assert(&r_t != NULL);
+  }
+
+  {
+    typename Cntnr::probe_fn& r_t =
+      m_p_c->get_probe_fn();
+
+    assert(&r_t != NULL);
+  }
+  {
+    const typename Cntnr::probe_fn& r_t =((const Cntnr& )*m_p_c).get_probe_fn();
+
+    assert(&r_t != NULL);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access(pb_ds::tree_tag)
+{
+  {
+    typename Cntnr::cmp_fn& r_t =
+      m_p_c->get_cmp_fn();
+
+    assert(&r_t != NULL);
+  }
+
+  {
+    const typename Cntnr::cmp_fn& r_t =((const Cntnr& )*m_p_c).get_cmp_fn();
+
+    assert(&r_t != NULL);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access(pb_ds::list_update_tag)
+{ }
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access(pb_ds::pat_trie_tag)
+{
+  typename Cntnr::e_access_traits& r_t =
+    m_p_c->get_e_access_traits();
+
+  assert(&r_t != NULL);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/resize_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/resize_fn_imps.hpp
new file mode 100644
index 000000000000..6f5ee79fdd4c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/resize_fn_imps.hpp
@@ -0,0 +1,125 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+resize()
+{
+  typedef pb_ds::detail::integral_constant<int, test_traits::resize> resize_ind;
+
+  return (resize_imp(resize_ind()));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+resize_imp(pb_ds::detail::false_type)
+{
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+resize_imp(pb_ds::detail::true_type)
+{
+  PB_DS_TRACE("resize");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    const size_t old_size =
+    m_p_c->get_actual_size();
+
+  try
+    {
+      m_alloc.set_throw_prob(m_tp);
+
+      typename alloc_t::group_throw_prob_adjustor
+	adjust(m_p_c->size());
+
+      enum
+        {
+	  min_new_size = 200,
+	  max_new_size = 2000
+        };
+
+      const size_t new_size =
+	m_g.get_unsigned_long(min_new_size, max_new_size);
+
+      m_p_c->resize(new_size);
+
+      const size_t actual_new_size =
+	m_p_c->get_actual_size();
+
+      PB_DS_THROW_IF_FAILED(
+			    actual_new_size >= new_size,
+			    static_cast<unsigned long>(actual_new_size) << " " <<
+			    static_cast<unsigned long>(new_size),
+			    m_p_c,
+			    & m_native_c);
+    }
+  catch(...)
+    {
+      PB_DS_THROW_IF_FAILED(
+			    m_p_c->get_actual_size() == old_size,
+			    static_cast<unsigned long>(m_p_c->get_actual_size()) <<
+			    " " << static_cast<unsigned long>(old_size),
+			    m_p_c,
+			    & m_native_c);
+
+      done = false;
+    }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/split_join_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..3b0da01d90d8
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/split_join_fn_imps.hpp
@@ -0,0 +1,149 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+split_join()
+{
+  enum
+    {
+      split_join = container_traits::order_preserving
+    };
+
+  return (split_join_imp(pb_ds::detail::integral_constant<int,split_join>()));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+split_join_imp(pb_ds::detail::false_type)
+{
+  return (true);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+split_join_imp(pb_ds::detail::true_type)
+{
+  PB_DS_TRACE("split_join");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        Cntnr lhs(*m_p_c);
+
+        Cntnr rhs;
+
+        native_type native_lhs(m_native_c);
+
+        native_type native_rhs;
+
+        const key_type k =
+	  test_traits::generate_key(m_g, m_m);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        lhs.split(k, rhs);
+
+        typename native_type::const_iterator it =
+	  native_lhs.upper_bound(test_traits::native_key(k));
+
+        while (!native_lhs.empty()&&  it != native_lhs.end())
+	  {
+            native_rhs.insert(*it);
+
+            typename native_type::const_iterator next_it = it;
+            ++next_it;
+
+            native_lhs.erase(test_traits::extract_native_key(*it));
+
+            it = next_it;
+	  }
+
+        PB_DS_COND_COMPARE(lhs, native_lhs);
+        PB_DS_COND_COMPARE(rhs, native_rhs);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        if (m_g.get_prob() < 0.5)
+	  lhs.swap(rhs);
+
+        lhs.join(rhs);
+
+        PB_DS_THROW_IF_FAILED(
+			      rhs.size() == 0,
+			      static_cast<unsigned long>(rhs.size()),
+			      m_p_c,
+			      & m_native_c);
+
+        PB_DS_THROW_IF_FAILED(
+			      rhs.empty(),
+			      static_cast<unsigned long>(rhs.size()),
+			      m_p_c,
+			      & m_native_c);
+
+        m_p_c->swap(lhs);
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            container_traits::split_join_can_throw, container_traits::split_join_can_throw, m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/subscript_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/subscript_fn_imps.hpp
new file mode 100644
index 000000000000..561f230054e4
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/detail/subscript_fn_imps.hpp
@@ -0,0 +1,127 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file subscript_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+subscript()
+{
+  PB_DS_TRACE("subscript");
+
+  enum
+    {
+      no_data = pb_ds::detail::is_same<
+      typename Cntnr::const_key_reference,
+      typename Cntnr::const_reference>::value
+    };
+
+  return (subscript_imp(pb_ds::detail::integral_constant<int,no_data>()));
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+subscript_imp(pb_ds::detail::false_type)
+{
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        value_type v = test_traits::generate_value(m_g, m_m);
+
+        m_alloc.set_throw_prob(m_tp);
+	(*m_p_c)[v.first] = v.second;
+
+        m_native_c[test_traits::native_value(v).first] =
+	  test_traits::native_value(v).second;
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+subscript_imp(pb_ds::detail::true_type)
+{
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        value_type v = test_traits::generate_value(m_g, m_m);
+
+        m_alloc.set_throw_prob(m_tp);
+	(*m_p_c)[v] = pb_ds::null_mapped_type();
+
+        m_native_c.insert(test_traits::native_value(v));
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
new file mode 100644
index 000000000000..6f6bafa861bd
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/assoc/rand_regression_test.hpp
@@ -0,0 +1,206 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file rand_regression_test.hpp
+ * Contains a random-operation test.
+ */
+
+#include <iostream>
+#include <vector>
+#include <regression/rand/assoc/container_rand_regression_test.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/assoc/common_type.hpp>
+#include <regression/basic_type.hpp>
+#include <regression/assoc/common_type.hpp>
+
+namespace pb_ds
+{
+namespace test
+{
+namespace detail
+{
+#ifndef PB_DS_REGRESSION
+#error "Must define PB_DS_REGRESSION"
+#endif
+
+  struct rand_reg_test
+  {
+  public:
+    rand_reg_test(size_t seed, size_t n, size_t m, double tp, double ip, 
+		  double ep, double cp, double mp, bool d) 
+    : m_sd(seed), m_n(n), m_m(m), m_tp(tp), m_ip(ip), m_ep(ep), m_cp(cp), 
+      m_mp(mp), m_disp(d)
+    { }
+
+    template<typename Cntnr>
+    void
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      unsigned long ul = static_cast<unsigned long>(m_sd);
+      container_rand_regression_test<Cntnr> t(ul, m_n, m_n, m_tp, m_ip, 
+					      m_ep, m_cp, m_mp, m_disp);
+      t();
+    }
+
+  private:
+    const size_t m_sd;
+    const size_t m_n;
+    const size_t m_m;
+    const double m_tp;
+    const double m_ip;
+    const double m_ep;
+    const double m_cp;
+    const double m_mp;
+    const bool m_disp;
+  };
+
+  void
+  usage(const std::string& r_name);
+
+  void
+  verify_params(size_t&, size_t&, size_t&, 
+		double&, double&, double&, double&, double&, bool&);
+} // namespace detail
+
+  template<typename TL>
+  int
+  rand_regression_test(size_t iter, size_t keys, const std::string name, TL tl)
+  {
+    // Sane defaults.
+    size_t n = iter;
+    size_t m = keys;
+    size_t sd = 0; // 0 = time-determined arbitrary
+    double tp = 0.2;
+    double ip = 0.6;
+    double ep = 0.2; 
+    double cp = 0.001;
+    double mp = 1;
+    bool disp = false; // show progress
+
+    try
+      {
+	detail::verify_params(sd, n, m, tp, ip, ep, cp, mp, disp);
+      }
+    catch(pb_ds::test::illegal_input_error&)
+      {
+	detail::usage(name);
+	return -1;
+      }
+    catch(...)
+      {
+	return -2;
+      };
+
+    xml_test_rand_regression_formatter* p_fmt = NULL;
+    if (sd == 0)
+      sd = twister_rand_gen::get_time_determined_seed();
+    if (disp)
+      p_fmt = new xml_test_rand_regression_formatter(sd, n, m, tp, ip, 
+						     ep, cp, mp);
+
+    try
+      {
+	detail::rand_reg_test tst(sd, n, m, tp, ip, ep, cp, mp, disp);
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+    catch(...)
+      {
+	std::cerr << "Test failed with seed " << sd << std::endl;
+	if (disp)
+	  delete p_fmt;
+	return -1;
+      }
+
+    if (disp)
+      delete p_fmt;
+    return 0;
+  }
+
+namespace detail
+{
+  void
+  usage(const std::string& name)
+  {
+    using namespace std;
+    cerr << "usage: " << name << " <sd> <n> <m> <tp> <ip> <ep> <cp> <mp> ['t' | 'f']" <<
+      endl << endl;
+
+    cerr << "This test performs basic regression tests on various associative containers."
+      "For each container, it performs a sequence of operations. At each iteration, it does "
+      "the following: " << endl;
+    cerr << "*  Performs an operation on the container " << endl;
+    cerr << "*  Performs the same operation on an cntnr object" << endl;
+    cerr << "*  Possibly compares the container to the cntnr object" << endl;
+    cerr << "*  Checks that exceptions (thrown by an allocator) "
+      "do not violate exception guarantees";
+
+    cerr << endl << endl;
+
+    cerr << "sd = seed for random-number generator; 0 = "
+      "time determined value" << endl;
+    cerr << "n = number of iterations" << endl;
+    cerr << "m = number of distinct values" << endl;
+    cerr << "tp = probability that an exception will be actively thrown" << endl;
+    cerr << "ip = probability that an operation will be insert" << endl;
+    cerr << "ep = probability that an operation will be erase" << endl;
+    cerr << "cp = probability that an operation will be clear" << endl;
+    cerr << "(therefore, 1 - (ip + ep + cp) = probability of any other operation)" << endl;
+    cerr << "mp = probability that the container will be compared to the cntnr object" << endl;
+    cerr << "'t' or 'f' determine whether progress will be displayed" << endl;
+  }
+
+  void
+  verify_params(size_t& r_seed, size_t& r_n, 
+		size_t& r_m, double& r_tp, double& r_ip, double& r_ep, 
+		double& r_cp, double& r_mp, bool& r_d)
+  {
+    verify_prob(r_tp);
+    verify_prob(r_ip);
+    verify_prob(r_ep);
+    verify_prob(r_cp);
+    verify_prob(r_mp);
+    verify_prob(r_ip + r_ep + r_cp);
+  }
+} // namespace detail
+} // namespace test
+} // namespace pb_ds
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/io/assoc/xml_formatter.hpp b/libstdc++-v3/testsuite/util/regression/rand/io/assoc/xml_formatter.hpp
new file mode 100644
index 000000000000..d5e1f5ba3a44
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/io/assoc/xml_formatter.hpp
@@ -0,0 +1,81 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file xml_formatter.hpp
+ * Contains an XML formatter for regression tests.
+ */
+
+#ifndef PB_DS_XML_TEST_REGRESSION_FORMATTER_HPP
+#define PB_DS_XML_TEST_REGRESSION_FORMATTER_HPP
+
+#include <regression/rand/io/xml_formatter.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    class xml_test_rand_regression_formatter : public xml_test_formatter
+    {
+    public:
+      xml_test_rand_regression_formatter(size_t sd, size_t n, size_t m, double tp, double ip, double ep, double cp, double mp);
+    };
+
+    xml_test_rand_regression_formatter::
+    xml_test_rand_regression_formatter(size_t sd, size_t n, size_t m, double tp, double ip, double ep, double cp, double mp)
+    {
+      std::cout << make_xml_tag("sd", "value", sd);
+      std::cout << make_xml_tag("n", "value", n);
+      std::cout << make_xml_tag("m", "value", m);
+      std::cout << make_xml_tag("tp", "value", tp);
+      std::cout << make_xml_tag("ip", "value", ip);
+      std::cout << make_xml_tag("ep", "value", ep);
+      std::cout << make_xml_tag("cp", "value", cp);
+      std::cout << make_xml_tag("mp", "value", mp);
+    }
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_XML_TEST_REGRESSION_FORMATTER_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/rand/io/priority_queue/xml_formatter.hpp b/libstdc++-v3/testsuite/util/regression/rand/io/priority_queue/xml_formatter.hpp
new file mode 100644
index 000000000000..a8ceab4d2eed
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/io/priority_queue/xml_formatter.hpp
@@ -0,0 +1,82 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file xml_formatter.hpp
+ * Contains an XML formatter for regression tests.
+ */
+
+#ifndef PB_DS_XML_TEST_REGRESSION_FORMATTER_HPP
+#define PB_DS_XML_TEST_REGRESSION_FORMATTER_HPP
+
+#include <regression/rand/io/xml_formatter.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    class xml_test_rand_regression_formatter : public xml_test_formatter
+    {
+    public:
+      xml_test_rand_regression_formatter(size_t sd, size_t n, size_t m, double tp, double ip, double dp, double ep, double cp, double mp);
+    };
+
+    xml_test_rand_regression_formatter::
+    xml_test_rand_regression_formatter(size_t sd, size_t n, size_t m, double tp, double ip, double dp, double ep, double cp, double mp)
+    {
+      std::cout << make_xml_tag("sd", "value", sd);
+      std::cout << make_xml_tag("n", "value", n);
+      std::cout << make_xml_tag("m", "value", m);
+      std::cout << make_xml_tag("tp", "value", tp);
+      std::cout << make_xml_tag("ip", "value", ip);
+      std::cout << make_xml_tag("dp", "value", dp);
+      std::cout << make_xml_tag("ep", "value", ep);
+      std::cout << make_xml_tag("cp", "value", cp);
+      std::cout << make_xml_tag("mp", "value", mp);
+    }
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_XML_TEST_REGRESSION_FORMATTER_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/rand/io/xml_formatter.hpp b/libstdc++-v3/testsuite/util/regression/rand/io/xml_formatter.hpp
new file mode 100644
index 000000000000..6bc89976c58f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/io/xml_formatter.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file xml_formatter.hpp
+ * Contains an XML formatter for regression tests.
+ */
+
+#ifndef PB_DS_COMMON_XML_TEST_REGRESSION_FORMATTER_HPP
+#define PB_DS_COMMON_XML_TEST_REGRESSION_FORMATTER_HPP
+
+#include <string>
+#include <iostream>
+#include <io/xml_test_formatter.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    class xml_result_set_regression_formatter : public xml_result_set_formatter
+    {
+    public:
+      xml_result_set_regression_formatter(const std::string& r_container_name, const std::string& r_container_desc);
+
+      ~xml_result_set_regression_formatter();
+    };
+
+    xml_result_set_regression_formatter::
+    xml_result_set_regression_formatter(const std::string& r_container_name, const std::string& r_container_desc) :
+      xml_result_set_formatter(r_container_name, r_container_desc)
+    {
+
+      std::cout << detail::make_xml_name_start_tag("progress");
+      std::cout << detail::make_xml_name_start_tag_end_delimiter();
+    }
+
+    xml_result_set_regression_formatter::
+    ~xml_result_set_regression_formatter()
+    {
+      std::cout << detail::make_xml_name_end_tag("progress");
+    }
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_COMMON_XML_TEST_REGRESSION_FORMATTER_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.hpp
new file mode 100644
index 000000000000..310d59b01545
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/container_rand_regression_test.hpp
@@ -0,0 +1,334 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file container_rand_regression_test.hpp
+ * Contains a random regression test for a specific container type.
+ */
+
+#ifndef PB_DS_CONTAINER_RAND_REGRESSION_TEST_HPP
+#define PB_DS_CONTAINER_RAND_REGRESSION_TEST_HPP
+
+#include <algorithm>
+#include <string>
+#include <sstream>
+#include <utility>
+#include <cassert>
+#include <regression/basic_type.hpp>
+#include <ext/pb_ds/priority_queue.hpp>
+#include <io/prog_bar.hpp>
+#include <rng/twister_rand_gen.hpp>
+#include <common_type/priority_queue/string_form.hpp>
+#include <regression/rand/io/priority_queue/xml_formatter.hpp>
+#include <regression/trait/priority_queue/trait.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#ifdef PB_DS_REGRESSION_TRACE
+#define PB_DS_TRACE(X) std::cerr << X << std::endl
+#else // #ifdef PB_DS_REGRESSION_TRACE
+#define PB_DS_TRACE(X)
+#endif // #ifdef PB_DS_REGRESSION_TRACE
+
+#define PB_DS_CLASS_T_DEC			\
+      template<typename Cntnr>
+
+#define PB_DS_CLASS_C_DEC				\
+      container_rand_regression_test<			\
+						Cntnr>
+
+#define PB_DS_COND_COMPARE(L, R)		\
+      if (m_g.get_prob() < m_mp)		\
+        cmp(L, R, __FUNCTION__);
+
+#define PB_DS_RUN_MTHD(MTHD)			\
+      {						\
+        bool done = false;			\
+						\
+        while (!done)				\
+	  done = MTHD();			\
+      }
+
+#define PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, F, L)		\
+      if (!(PRED))							\
+	{								\
+	  std::cerr << "Failure at " << F << ": " << L << std::endl;	\
+									\
+	  std::cerr << MORE << std::endl;				\
+									\
+	  std::cerr << "container:" << std::endl;			\
+									\
+	  print_container(*(P_C));					\
+	  std::cerr << std::endl;					\
+									\
+	  std::cerr << "native container:" << std::endl;		\
+									\
+	  print_container(*(P_NC));					\
+	  std::cerr << std::endl;					\
+									\
+	  throw std::logic_error("fucked!");				\
+	}
+
+#define PB_DS_THROW_IF_FAILED(PRED, MORE, P_C, P_NC)			\
+      PB_DS_THROW_IF_FAILED_(PRED, MORE, P_C, P_NC, __FILE__, __LINE__)
+
+#define PB_DS_SET_DESTRUCT_PRINT			\
+      destructor_printer dest_print___(__FUNCTION__);
+
+#define PB_DS_CANCEL_DESTRUCT_PRINT		\
+      dest_print___.cancel_print();
+
+      // Rand test specialized for a specific container.
+      template<typename Cntnr>
+      class container_rand_regression_test
+      {
+
+      public:
+
+        container_rand_regression_test(unsigned long seed, size_t n, size_t m, double tp, double ip, double dp, double ep, double cp, double mp, bool disp);
+
+	virtual
+        ~container_rand_regression_test();
+
+	void
+        operator()();
+
+      private:
+	typedef Cntnr cntnr;
+
+	typedef typename cntnr::allocator allocator;
+
+	typedef typename cntnr::size_type size_type;
+
+	typedef twister_rand_gen gen;
+
+	typedef basic_type value_type;
+
+	typedef native_priority_queue< std::string, true> native_type;
+
+	enum op
+	  {
+	    insert_op,
+	    modify_op,
+	    erase_op,
+	    clear_op,
+	    other_op
+	  };
+
+	typedef dbg_ex_allocator< char> alloc_t;
+
+	typedef regression_test_traits< Cntnr> test_traits;
+
+      private:
+
+	op
+        get_next_op();
+
+	size_t
+        get_next_sub_op(size_t max);
+
+	static void
+        defs();
+
+	static void
+        value_defs();
+
+	static void
+        ds_defs();
+
+	static void
+        iterator_defs();
+
+	static void
+        policy_defs();
+
+	void
+        policy_access();
+
+	void
+        it_copy();
+
+	void
+        it_assign();
+
+	bool
+        default_constructor();
+
+	void
+        swap();
+
+	bool
+        copy_constructor();
+
+	bool
+        assignment_operator();
+
+	bool
+        it_constructor();
+
+	bool
+        push();
+
+	bool
+        modify();
+
+	bool
+        pop();
+
+	bool
+        erase_if();
+
+	bool
+        erase_it();
+
+	bool
+        clear();
+
+	bool
+        split_join();
+
+	void
+        cmp(const Cntnr& r_container, const native_type& r_native_c, const std::string& r_call_fn);
+
+	void
+        print_container(const native_type& r_cnt, std::ostream& r_os = std::cerr) const;
+
+	void
+        print_container(const cntnr& r_cnt, std::ostream& r_os = std::cerr) const;
+
+      private:
+	struct destructor_printer
+	{
+	  destructor_printer(const std::string& r_msg) : m_msg(r_msg),
+							 m_print(true)
+	  { }
+
+	  void
+	  cancel_print()
+	  {
+            m_print = false;
+	  }
+
+	  ~destructor_printer()
+	  {
+            if (!m_print)
+	      return;
+
+            std::cerr << std::endl <<
+	      "Uncaught exception: " << std::endl <<
+	      m_msg << std::endl;
+	  }
+
+	private:
+	  const std::string m_msg;
+
+	  bool m_print;
+	};
+
+      private:
+	const unsigned long m_seed;
+
+	const size_t m_n;
+	const size_t m_m;
+	const double m_tp;
+	const double m_ip;
+	const double m_dp;
+	const double m_ep;
+	const double m_cp;
+	const double m_mp;
+	const bool m_disp;
+
+	twister_rand_gen m_g;
+
+	Cntnr* m_p_c;
+
+	native_type m_native_c;
+
+	alloc_t m_alloc;
+
+	size_t m_i;
+      };
+
+#include <regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/cmp_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/operator_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/insert_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/modify_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/clear_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/erase_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/defs_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/policy_access_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/split_join_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp>
+#include <regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp>
+
+#undef PB_DS_COND_COMPARE
+
+#undef PB_DS_RUN_MTHD
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+#undef PB_DS_THROW_IF_FAILED_
+
+#undef PB_DS_THROW_IF_FAILED
+
+#undef PB_DS_SET_DESTRUCT_PRINT
+
+#undef PB_DS_CANCEL_DESTRUCT_PRINT
+
+#undef PB_DS_TRACE
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_CONTAINER_RAND_REGRESSION_TEST_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/clear_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/clear_fn_imps.hpp
new file mode 100644
index 000000000000..009b56faaf60
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/clear_fn_imps.hpp
@@ -0,0 +1,60 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file clear_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+clear()
+{
+  PB_DS_TRACE("clear");
+
+  m_p_c->clear();
+
+  m_native_c.clear();
+
+  return (true);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/cmp_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/cmp_fn_imps.hpp
new file mode 100644
index 000000000000..3707b7db9972
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/cmp_fn_imps.hpp
@@ -0,0 +1,108 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file cmp_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+cmp(const Cntnr& r_c, const native_type& r_native_c, const std::string& r_call_fn)
+{
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(1);
+
+        const size_t size = r_c.size();
+        const size_t native_size = r_native_c.size();
+
+        PB_DS_THROW_IF_FAILED(
+			      size == native_size,
+			      static_cast<unsigned long>(size) << " " <<
+			      static_cast<unsigned long>(native_size),
+			      & r_c,
+			      & r_native_c);
+
+        const bool empty = r_c.empty();
+        const bool native_empty = r_native_c.empty();
+
+        PB_DS_THROW_IF_FAILED(
+			      empty == native_empty,
+			      empty << " " << native_empty,
+			      & r_c,
+			      & r_native_c);
+
+        const size_t it_size = std::distance(r_c.begin(), r_c.end());
+
+        PB_DS_THROW_IF_FAILED(
+			      it_size == size,
+			      it_size << " " << size,
+			      & r_c,
+			      & r_native_c);
+
+        if (!r_c.empty())
+	  {
+            const std::string native_top = r_native_c.top();
+            const std::string top = test_traits::native_value(r_c.top());
+
+            const bool top_smaller = std::less<std::string>()(top, native_top);
+            const bool top_larger = std::less<std::string>()(native_top, top);
+
+            if (top_smaller || top_larger)
+	      PB_DS_THROW_IF_FAILED(
+				    false,
+				    top << " " << native_top,
+				    & r_c,
+				    & r_native_c);
+	  }
+      }
+    catch(...)
+      {
+        PB_DS_THROW_IF_FAILED(            false, "call-fn: " + r_call_fn, & r_c, & r_native_c);
+      }
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+    }
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp
new file mode 100644
index 000000000000..e04627c151e3
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/constructor_destructor_fn_imps.hpp
@@ -0,0 +1,235 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file constructor_destructor_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+container_rand_regression_test(unsigned long seed, size_t n, size_t m, double tp, double ip, double dp, double ep, double cp, double mp, bool disp) :
+  m_seed((seed == 0)?
+	 twister_rand_gen::get_time_determined_seed():
+	 seed),
+  m_n(n),
+  m_m(m),
+  m_tp(tp),
+  m_ip(ip),
+  m_dp(dp),
+  m_ep(ep),
+  m_cp(cp),
+  m_mp(mp),
+  m_disp(disp),
+  m_p_c(NULL)
+{ }
+
+PB_DS_CLASS_T_DEC
+PB_DS_CLASS_C_DEC::
+~container_rand_regression_test()
+{ }
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+default_constructor()
+{
+  PB_DS_TRACE("default_constructor");
+
+  bool done = true;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  try
+    {
+      m_p_c = new Cntnr;
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  if (m_p_c != NULL)
+    PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+swap()
+{
+  PB_DS_TRACE("swap");
+
+  m_alloc.set_throw_prob(0);
+
+  Cntnr* p_c = new Cntnr;
+
+  m_alloc.set_throw_prob(1);
+
+  p_c->swap(*m_p_c);
+
+  std::swap(p_c, m_p_c);
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+copy_constructor()
+{
+  PB_DS_TRACE("copy_constructor");
+
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      p_c = new Cntnr(*m_p_c);
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+assignment_operator()
+{
+  PB_DS_TRACE("assignment operator");
+
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      p_c = new Cntnr();
+
+      * p_c =* m_p_c;
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+it_constructor()
+{
+  bool done = true;
+
+  Cntnr* p_c = NULL;
+
+  m_alloc.set_throw_prob(m_tp);
+
+  typename alloc_t::group_throw_prob_adjustor
+    adjust(m_p_c->size());
+
+  try
+    {
+      switch(get_next_sub_op(3))
+        {
+        case 0:
+	  p_c = new Cntnr(m_p_c->get_cmp_fn());
+	  m_native_c.clear();
+	  break;
+        case 1:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end());
+	  break;
+        case 2:
+	  p_c = new Cntnr(m_p_c->begin(),
+			  m_p_c->end(),
+			  m_p_c->get_cmp_fn());
+	  break;
+        default:
+	  PB_DS_THROW_IF_FAILED(                    false,  "",  m_p_c, & m_native_c);
+        };
+
+      std::swap(p_c, m_p_c);
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+    }
+
+  delete p_c;
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  return (done);
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/defs_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/defs_fn_imps.hpp
new file mode 100644
index 000000000000..85bc6b0a14e4
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/defs_fn_imps.hpp
@@ -0,0 +1,111 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file defs_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+defs()
+{
+  // General container types.
+
+  typedef typename Cntnr::size_type test_size_type;
+
+  typedef typename Cntnr::difference_type difference_type;
+
+  value_defs();
+
+  iterator_defs();
+
+  policy_defs();
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+value_defs()
+{
+  typedef typename Cntnr::value_type test_value_type;
+
+  typedef typename Cntnr::reference test_reference;
+
+  typedef typename Cntnr::const_reference test_const_reference;
+
+  typedef typename Cntnr::pointer test_pointer;
+
+  typedef typename Cntnr::const_pointer test_const_pointer;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+ds_defs()
+{
+  typedef typename Cntnr::container_category test_container_category;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+iterator_defs()
+{
+  typedef typename Cntnr::point_iterator test_point_iterator;
+
+  typedef typename Cntnr::const_point_iterator const_test_point_iterator;
+
+  typedef typename Cntnr::iterator test_iterator;
+
+  typedef typename Cntnr::const_iterator const_test_iterator;
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_defs()
+{
+  typedef typename Cntnr::allocator test_allocator;
+
+  typedef typename Cntnr::cmp_fn test_cmp_fn;
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp
new file mode 100644
index 000000000000..caeba090e256
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/diagnostic_fn_imps.hpp
@@ -0,0 +1,73 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file diagnostic_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+print_container(const native_type& r_cnt, std::ostream& r_os /*= std::cerr*/) const
+{
+  m_alloc.set_throw_prob(0);
+
+  native_type cpy(r_cnt);
+
+  while (!cpy.empty())
+    {
+      r_os << cpy.top() << std::endl;
+
+      cpy.pop();
+    }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+print_container(const cntnr& r_cnt, std::ostream& r_os /*= std::cerr*/) const
+{
+  m_alloc.set_throw_prob(0);
+
+  for (typename cntnr::const_iterator it = r_cnt.begin(); it != r_cnt.end(); ++it)
+    r_os <<* it << std::endl;
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/erase_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/erase_fn_imps.hpp
new file mode 100644
index 000000000000..f5e287b9d655
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/erase_fn_imps.hpp
@@ -0,0 +1,178 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+pop()
+{
+  PB_DS_TRACE("pop");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    m_alloc.set_throw_prob(1);
+
+  try
+    {
+      if (!m_p_c->empty())
+        {
+	  m_p_c->pop();
+
+	  m_native_c.pop();
+        }
+    }
+  catch(forced_exception& )
+    {
+      done = false;
+
+      PB_DS_THROW_IF_FAILED(            false, "", m_p_c, & m_native_c);
+    }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_if()
+{
+  PB_DS_TRACE("erase_if");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        typedef
+	  typename std::iterator_traits<
+	  typename cntnr::iterator>::reference
+	  it_const_reference;
+
+        m_alloc.set_throw_prob(1);
+
+        typedef
+	  typename test_traits::template erase_if_fn<
+	  value_type>
+	  erase_if_fn_t;
+
+        const size_t ersd =
+	  m_p_c->erase_if(erase_if_fn_t());
+
+        typedef
+	  typename test_traits::template erase_if_fn<
+	  std::string>
+	  native_erase_if_fn_t;
+
+        const size_t native_ersd =
+	  m_native_c.erase_if(native_erase_if_fn_t());
+
+        PB_DS_THROW_IF_FAILED(
+			      ersd == native_ersd,
+			      static_cast<unsigned long>(ersd) << " " <<
+			      static_cast<unsigned long>(native_ersd),
+			      m_p_c,
+			      & m_native_c);
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            false, "", m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+erase_it()
+{
+  PB_DS_TRACE("erase_it");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(1);
+
+        typename cntnr::iterator it = m_p_c->begin();
+
+        std::advance(it, m_g.get_unsigned_long(0, m_p_c->size()));
+
+        if (it != m_p_c->end())
+	  {
+            m_native_c.erase(*it);
+
+            m_p_c->erase(it);
+	  }
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            false, "", m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/insert_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/insert_fn_imps.hpp
new file mode 100644
index 000000000000..70eea252762c
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/insert_fn_imps.hpp
@@ -0,0 +1,93 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file insert_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+push()
+{
+  PB_DS_TRACE("push");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        value_type v = test_traits::generate_value(m_g, m_m);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        const typename cntnr::size_type sz = m_p_c->size();
+
+        typename cntnr::point_iterator ins_ret = m_p_c->push(v);
+
+        PB_DS_THROW_IF_FAILED(
+			      sz == m_p_c->size() - 1,
+			      sz,
+			      m_p_c,
+			      & m_native_c);
+
+        m_native_c.push(test_traits::native_value(v));
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+      }
+    catch(...)
+      {
+        PB_DS_THROW_IF_FAILED(            false, "", m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp
new file mode 100644
index 000000000000..c59e13688351
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/it_conversion_fn_imps.hpp
@@ -0,0 +1,190 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file it_conversion_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+it_copy()
+{
+  PB_DS_TRACE("it_copy");
+
+  {
+    typename cntnr::iterator it = m_p_c->end();
+
+    typename cntnr::const_iterator const_it(it);
+
+    PB_DS_THROW_IF_FAILED(            const_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::const_point_iterator const_find_it(it);
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::point_iterator find_it(it);
+
+    PB_DS_THROW_IF_FAILED(            find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::const_iterator const_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it(const_it);
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == const_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != const_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::point_iterator find_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it(find_it);
+
+    PB_DS_THROW_IF_FAILED(            find_it == const_find_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != const_find_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+}
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+it_assign()
+{
+  PB_DS_TRACE("it_assign");
+
+  {
+    typename cntnr::iterator it = m_p_c->end();
+
+    typename cntnr::const_iterator const_it;
+    const_it = it;
+
+    PB_DS_THROW_IF_FAILED(            const_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::const_point_iterator const_find_it;
+    const_find_it = it;
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+
+    typename cntnr::point_iterator find_it;
+    find_it = it;
+
+    PB_DS_THROW_IF_FAILED(            find_it == it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::const_iterator const_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it;
+    const_find_it = const_it;
+
+    PB_DS_THROW_IF_FAILED(            const_find_it == const_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(const_find_it != const_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+
+  {
+    typename cntnr::point_iterator find_it = m_p_c->end();
+
+    typename cntnr::const_point_iterator const_find_it;
+    const_find_it = find_it;
+
+    PB_DS_THROW_IF_FAILED(            find_it == const_find_it, "", m_p_c, & m_native_c);
+
+    PB_DS_THROW_IF_FAILED(
+			  !(find_it != const_find_it),
+			  "",
+			  m_p_c,
+			  & m_native_c);
+  }
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/modify_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/modify_fn_imps.hpp
new file mode 100644
index 000000000000..e213a2ea57fe
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/modify_fn_imps.hpp
@@ -0,0 +1,96 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file modify_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+modify()
+{
+  PB_DS_TRACE("modify");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        value_type v = test_traits::generate_value(m_g, m_m);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        typename cntnr::iterator it = m_p_c->begin();
+
+        std::advance(it, m_g.get_unsigned_long(0, m_p_c->size()));
+
+        if (it != m_p_c->end())
+	  {
+            typename test_traits::native_value_type native_v =
+	      test_traits::native_value(*it);
+
+            typename test_traits::native_value_type new_native_v =
+	      test_traits::native_value(v);
+
+            m_p_c->modify(it, v);
+
+            m_native_c.modify(native_v, new_native_v);
+	  }
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            false, "", m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
+
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/operator_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/operator_fn_imps.hpp
new file mode 100644
index 000000000000..9b8c0dd87c43
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/operator_fn_imps.hpp
@@ -0,0 +1,227 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file operator_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+operator()()
+{
+  xml_result_set_regression_formatter* p_fmt = NULL;
+
+  if (m_disp)
+    p_fmt = new xml_result_set_regression_formatter(
+						    string_form<Cntnr>::name(),
+						    string_form<Cntnr>::desc());
+
+  m_g.init(m_seed);
+  m_alloc.init(m_seed);
+
+  prog_bar pb(m_n, std::cout, m_disp);
+
+  m_i = 0;
+
+  try
+    {
+      for (m_i = 0; m_i < m_n; ++m_i)
+        {
+	  PB_DS_TRACE("Op #" << static_cast<unsigned long>(m_i));
+
+	  allocator::set_label(m_i);
+
+	  switch(m_i)
+            {
+            case 0:
+	      PB_DS_RUN_MTHD(default_constructor);
+	      break;
+            case 1:
+	      defs();
+	      break;
+            case 2:
+	      policy_access();
+	      break;
+            case 3:
+	      it_copy();
+	      break;
+            case 4:
+	      it_assign();
+	      break;
+            default:
+	      switch(get_next_op())
+                {
+                case insert_op:
+		  PB_DS_RUN_MTHD(push)
+                    break;
+                case modify_op:
+		  PB_DS_RUN_MTHD(modify)
+                    break;
+                case erase_op:
+		  switch(get_next_sub_op(3))
+                    {
+                    case 0:
+		      PB_DS_RUN_MTHD(pop)
+                        break;
+                    case 1:
+		      PB_DS_RUN_MTHD(erase_if)
+                        break;
+                    case 2:
+		      PB_DS_RUN_MTHD(erase_it)
+                        break;
+                    default:
+		      PB_DS_THROW_IF_FAILED(                            false,       "",       m_p_c,      & m_native_c);
+                    }
+		  break;
+                case clear_op:
+		  PB_DS_RUN_MTHD(clear)
+                    break;
+                case other_op:
+		  switch(get_next_sub_op(5))
+                    {
+                    case 0:
+		      swap();
+		      break;
+                    case 1:
+		      PB_DS_RUN_MTHD(copy_constructor)
+                        break;
+                    case 2:
+		      PB_DS_RUN_MTHD(it_constructor)
+                        break;
+                    case 3:
+		      PB_DS_RUN_MTHD(assignment_operator)
+                        break;
+                    case 4:
+		      PB_DS_RUN_MTHD(split_join)
+                        break;
+                    default:
+		      PB_DS_THROW_IF_FAILED(                            false,       "",       m_p_c,      & m_native_c);
+                    }
+		  break;
+                default:
+		  PB_DS_THROW_IF_FAILED(                        false,   "",   m_p_c,  & m_native_c);
+                };
+            }
+
+	  pb.inc();
+        }
+    }
+  catch(...)
+    {
+      std::cerr << "Failed at index " << static_cast<unsigned long>(m_i) <<
+	std::endl;
+
+      delete m_p_c;
+
+      throw;
+    }
+
+  delete m_p_c;
+
+  if (!m_alloc.dbg_ex_allocator<char>::empty())
+    {
+      std::cerr << "detected leaks!" << std::endl;
+
+      std::cerr << m_alloc << std::endl;
+
+      PB_DS_THROW_IF_FAILED(            false, "", m_p_c, & m_native_c);
+    }
+
+  if (m_disp)
+    {
+      std::cout << std::endl;
+
+      delete p_fmt;
+    }
+}
+
+PB_DS_CLASS_T_DEC
+typename PB_DS_CLASS_C_DEC::op
+PB_DS_CLASS_C_DEC::
+get_next_op()
+{
+  const double prob = m_g.get_prob();
+
+  if (prob < m_ip)
+    return (insert_op);
+
+  if (prob < m_ip + m_dp)
+    return (modify_op);
+
+  if (prob < m_ip + m_dp + m_ep)
+    return (erase_op);
+
+  if (prob < m_ip + m_dp + m_ep + m_cp)
+    return (clear_op);
+
+  PB_DS_THROW_IF_FAILED(        prob <= 1, prob, m_p_c,    & m_native_c);
+
+  return (other_op);
+}
+
+PB_DS_CLASS_T_DEC
+size_t
+PB_DS_CLASS_C_DEC::
+get_next_sub_op(size_t max)
+{
+  const double p = m_g.get_prob();
+
+  const double delta = 1 / static_cast<double>(max);
+
+  size_t i = 0;
+
+  while (true)
+    if (p <= (i + 1)*  delta)
+      {
+	PB_DS_THROW_IF_FAILED(
+			      i < max,
+			      static_cast<unsigned long>(i) << " " <<
+			      static_cast<unsigned long>(max),
+			      m_p_c,
+			      & m_native_c);
+
+	return (i);
+      }
+    else
+      ++i;
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/policy_access_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/policy_access_fn_imps.hpp
new file mode 100644
index 000000000000..40f37926c8e2
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/policy_access_fn_imps.hpp
@@ -0,0 +1,66 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file policy_access_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+void
+PB_DS_CLASS_C_DEC::
+policy_access()
+{
+  PB_DS_TRACE("policy_access");
+
+  {
+    typename Cntnr::cmp_fn& r_t =
+      m_p_c->get_cmp_fn();
+
+    assert(&r_t != NULL);
+  }
+
+  {
+    const typename Cntnr::cmp_fn& r_t =((const Cntnr& )*m_p_c).get_cmp_fn();
+
+    assert(&r_t != NULL);
+  }
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/split_join_fn_imps.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/split_join_fn_imps.hpp
new file mode 100644
index 000000000000..b3f7425674ec
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/detail/split_join_fn_imps.hpp
@@ -0,0 +1,120 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file split_join_fn_imps.hpp
+ * Containsert a random regression test for a specific container type.
+ */
+
+PB_DS_CLASS_T_DEC
+bool
+PB_DS_CLASS_C_DEC::
+split_join()
+{
+  PB_DS_TRACE("split_join");
+
+  bool done = true;
+
+  PB_DS_SET_DESTRUCT_PRINT
+
+    try
+      {
+        m_alloc.set_throw_prob(0);
+
+        Cntnr lhs(*m_p_c);
+
+        Cntnr rhs;
+
+        native_type native_lhs(m_native_c);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        typedef
+	  typename test_traits::template erase_if_fn<
+	  value_type>
+	  split_fn_t;
+
+        lhs.split(split_fn_t(), rhs);
+
+        typedef
+	  typename test_traits::template erase_if_fn<
+	  std::string>
+	  native_split_fn_t;
+
+        native_type native_rhs;
+
+        native_lhs.split(native_split_fn_t(), native_rhs);
+
+        PB_DS_COND_COMPARE(lhs, native_lhs);
+        PB_DS_COND_COMPARE(rhs, native_rhs);
+
+        m_alloc.set_throw_prob(m_tp);
+
+        if (m_g.get_prob() < 0.5)
+	  lhs.swap(rhs);
+
+        lhs.join(rhs);
+
+        PB_DS_THROW_IF_FAILED(
+			      rhs.size() == 0,
+			      static_cast<unsigned long>(rhs.size()),
+			      m_p_c,
+			      & m_native_c);
+
+        PB_DS_THROW_IF_FAILED(
+			      rhs.empty(),
+			      static_cast<unsigned long>(rhs.size()),
+			      m_p_c,
+			      & m_native_c);
+      }
+    catch(forced_exception& )
+      {
+        done = false;
+
+        PB_DS_THROW_IF_FAILED(            pb_ds::container_traits<cntnr>::split_join_can_throw, pb_ds::container_traits<cntnr>::split_join_can_throw, m_p_c, & m_native_c);
+      }
+
+  PB_DS_COND_COMPARE(*m_p_c, m_native_c);
+
+  PB_DS_CANCEL_DESTRUCT_PRINT
+
+    return (done);
+}
diff --git a/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
new file mode 100644
index 000000000000..ebd6d33c8d25
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/rand/priority_queue/rand_regression_test.hpp
@@ -0,0 +1,210 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file rand_regression_test.hpp
+ * Contains a random-operation test.
+ */
+
+#include <iostream>
+#include <vector>
+#include <regression/rand/priority_queue/container_rand_regression_test.hpp>
+#include <io/verified_cmd_line_input.hpp>
+#include <common_type/priority_queue/common_type.hpp>
+#include <regression/basic_type.hpp>
+#include <regression/priority_queue/common_type.hpp>
+
+namespace pb_ds
+{
+namespace test
+{
+namespace detail
+{
+#ifndef PB_DS_REGRESSION
+#error "Must define PB_DS_REGRESSION"
+#endif
+
+  struct rand_reg_test
+  {
+  public:
+    rand_reg_test(size_t seed, size_t n, size_t m, double tp, double ip, 
+		  double dp, double ep, double cp, double mp, bool d) 
+    : m_sd(seed), m_n(n), m_m(m), m_tp(tp), m_ip(ip), m_dp(dp), m_ep(ep), 
+      m_cp(cp), m_mp(mp), m_disp(d)
+    { }
+
+    template<typename Cntnr>
+    void
+    operator()(pb_ds::detail::type_to_type<Cntnr>)
+    {
+      unsigned long ul = static_cast<unsigned long>(m_sd);
+      container_rand_regression_test<Cntnr> t(ul, m_n, m_n, m_tp, m_ip, m_dp, 
+					      m_ep, m_cp, m_mp, m_disp);
+      t();
+    }
+
+  private:
+    const size_t m_sd;
+    const size_t m_n;
+    const size_t m_m;
+    const double m_tp;
+    const double m_ip;
+    const double m_dp;
+    const double m_ep;
+    const double m_cp;
+    const double m_mp;
+    const bool m_disp;
+  };
+
+  void
+  usage(const std::string& r_name);
+
+  void
+  verify_params(size_t&, size_t&, size_t&, 
+		double&, double&, double&, double&, double&, double&, bool&);
+} // namespace detail
+
+  template<typename TL>
+  int
+  rand_regression_test(size_t iter, size_t keys, const std::string name, TL tl)
+  {
+    // Sane defaults.
+    size_t n = iter;
+    size_t m = keys;
+    size_t sd = 0; // 0 = time-determined arbitrary
+    double tp = 0.2;
+    double ip = 0.6;
+    double dp = 0.1;
+    double ep = 0.2; 
+    double cp = 0.001;
+    double mp = 1;
+    bool disp = false; // show progress
+
+    try
+      {
+	detail::verify_params(sd, n, m, tp, ip, dp, ep, cp, mp, disp);
+      }
+    catch(pb_ds::test::illegal_input_error&)
+      {
+	detail::usage(name);
+	return -1;
+      }
+    catch(...)
+      {
+	return -2;
+      };
+
+    xml_test_rand_regression_formatter* p_fmt = NULL;
+    if (sd == 0)
+      sd = twister_rand_gen::get_time_determined_seed();
+    if (disp)
+      p_fmt = new xml_test_rand_regression_formatter(sd, n, m, tp, ip, dp,
+						     ep, cp, mp);
+
+    try
+      {
+	detail::rand_reg_test tst(sd, n, m, tp, ip, dp, ep, cp, mp, disp);
+	pb_ds::detail::typelist_apply(tst, tl);
+      }
+    catch(...)
+      {
+	std::cerr << "Test failed with seed " << sd << std::endl;
+	if (disp)
+	  delete p_fmt;
+	return -1;
+      }
+
+    if (disp)
+      delete p_fmt;
+    return 0;
+  }
+
+namespace detail
+{
+  void
+  usage(const std::string& name)
+  {
+    using namespace std;
+    cerr << "usage: " << name << " <sd> <n> <m> <tp> <ip> <dp> <ep> <cp> <mp> ['t' | 'f']" <<
+      endl << endl;
+
+    cerr << "This test performs basic regression tests on various priority queues."
+      "For each container, it performs a sequence of operations. At each iteration, it does "
+      "the following: " << endl;
+    cerr << "*  Performs an operation on the container " << endl;
+    cerr << "*  Performs the same operation on an cntnr object" << endl;
+    cerr << "*  Possibly compares the container to the cntnr object" << endl;
+    cerr << "*  Checks that exceptions (thrown by an allocator) "
+      "do not violate exception guarantees";
+
+    cerr << endl << endl;
+
+    cerr << "sd = seed for random-number generator; 0 = "
+      "time determined value" << endl;
+    cerr << "n = number of iterations" << endl;
+    cerr << "m = number of distinct values" << endl;
+    cerr << "tp = probability that an exception will be actively thrown" << endl;
+    cerr << "ip = probability that an operation will be insert" << endl;
+    cerr << "dp = probability that an operation will be modify" << endl;
+    cerr << "ep = probability that an operation will be erase" << endl;
+    cerr << "cp = probability that an operation will be clear" << endl;
+    cerr << "(therefore, 1 - (ip + dp + ep + cp) = probability of any other operation)" << endl;
+    cerr << "mp = probability that the container will be compared to the cntnr object" << endl;
+    cerr << "'t' or 'f' determine whether progress will be displayed" << endl;
+  }
+
+  void
+  verify_params(size_t& r_seed, size_t& r_n, 
+		size_t& r_m, double& r_tp, double& r_ip, double& r_dp, 
+		double& r_ep, double& r_cp, double& r_mp, bool& r_d)
+  {
+    verify_prob(r_tp);
+    verify_prob(r_ip);
+    verify_prob(r_dp);
+    verify_prob(r_ep);
+    verify_prob(r_cp);
+    verify_prob(r_mp);
+    verify_prob(r_ip + r_dp + r_ep + r_cp);
+  }
+} // namespace detail
+} // namespace test
+} // namespace pb_ds
+
diff --git a/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator.hpp b/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator.hpp
new file mode 100644
index 000000000000..eedce6bed019
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator.hpp
@@ -0,0 +1,206 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file dbg_ex_allocator.hpp
+ * Contains a debugging, exception throwing, allocator used for tests.
+ */
+
+#ifndef PB_DS_DBG_EX_ALLOCATOR_HPP
+#define PB_DS_DBG_EX_ALLOCATOR_HPP
+
+#include <regression/res_mng/dbg_ex_allocator_base.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+#define PB_DS_CLASS_T_DEC			\
+    template<typename T>
+
+#define PB_DS_CLASS_C_DEC				\
+    dbg_ex_allocator<					\
+						T>
+
+    template<typename T>
+    class dbg_ex_allocator : public detail::dbg_ex_allocator_base
+    {
+    public:
+      typedef size_t size_type;
+      typedef ptrdiff_t difference_type;
+      typedef T* pointer;
+      typedef const T* const_pointer;
+      typedef T& reference;
+      typedef const T& const_reference;
+      typedef T value_type;
+
+      template<typename U>
+      struct rebind
+      {
+        typedef dbg_ex_allocator<U> other;
+      };
+
+      dbg_ex_allocator() throw();
+
+      dbg_ex_allocator(const PB_DS_CLASS_C_DEC& ) throw();
+
+      template <class U>
+      dbg_ex_allocator(const dbg_ex_allocator<U>& ) throw();
+
+      ~dbg_ex_allocator() throw();
+
+      size_type
+      max_size() const throw();
+
+      pointer
+      allocate(size_type num, std::allocator<void>::const_pointer hint = 0);
+
+      void
+      construct(pointer p, const T& r_val);
+
+      void
+      destroy(pointer p);
+
+      void
+      deallocate(pointer p, size_type num);
+
+      void
+      check_allocated(pointer p, size_type num);
+    };
+
+    PB_DS_CLASS_T_DEC
+    inline bool
+    operator==(const PB_DS_CLASS_C_DEC& , const PB_DS_CLASS_C_DEC& );
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    dbg_ex_allocator() throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    dbg_ex_allocator(const PB_DS_CLASS_C_DEC& ) throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    template<typename U>
+    PB_DS_CLASS_C_DEC::
+    dbg_ex_allocator(const dbg_ex_allocator<U>& ) throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    PB_DS_CLASS_C_DEC::
+    ~dbg_ex_allocator() throw()
+    { }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::size_type
+    PB_DS_CLASS_C_DEC::
+    max_size() const throw()
+    {
+      return (std::allocator<T>().max_size());
+    }
+
+    PB_DS_CLASS_T_DEC
+    typename PB_DS_CLASS_C_DEC::pointer
+    PB_DS_CLASS_C_DEC::
+    allocate(size_type num, std::allocator<void>::const_pointer hint/*= 0*/)
+    {
+      cond_throw();
+
+      T* const a_t = std::allocator<T>().allocate(num, hint);
+
+      insert(a_t, sizeof(T)*  num);
+
+      return (a_t);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    construct(pointer p, const T& r_val)
+    {
+      return (std::allocator<T>().construct(p, r_val));
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    destroy(pointer p)
+    {
+      std::allocator<T>().destroy(p);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    deallocate(pointer p, size_type num)
+    {
+      erase(p, sizeof(T)*  num);
+
+      std::allocator<T>().deallocate(p, num);
+    }
+
+    PB_DS_CLASS_T_DEC
+    void
+    PB_DS_CLASS_C_DEC::
+    check_allocated(pointer p, size_type num)
+    {
+      detail::dbg_ex_allocator_base::check_allocated(p, sizeof(T)*  num);
+    }
+
+    PB_DS_CLASS_T_DEC
+    inline bool
+    operator==(const PB_DS_CLASS_C_DEC& , const PB_DS_CLASS_C_DEC& )
+    {
+      return (true);
+    }
+
+#undef PB_DS_CLASS_T_DEC
+#undef PB_DS_CLASS_C_DEC
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_DBG_EX_ALLOCATOR_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.cc b/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.cc
new file mode 100644
index 000000000000..6038ab0c0c9e
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.cc
@@ -0,0 +1,210 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file dbg_ex_allocator_base.cpp
+ * Contains a debugging, exception throwing, allocator used for tests.
+ */
+
+#include <util/regression/res_mng/dbg_ex_allocator_base.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      twister_rand_gen dbg_ex_allocator_base::s_g;
+
+      dbg_ex_allocator_base::map_t
+      dbg_ex_allocator_base::s_map;
+
+      double dbg_ex_allocator_base::s_throw_prob;
+
+      size_t dbg_ex_allocator_base::s_label = 0;
+
+      dbg_ex_allocator_base::entry_t
+      dbg_ex_allocator_base::
+      make_entry(void* p_r, size_t size)
+      {
+	return std::make_pair(
+			      p_r,
+			      alloc_data_t(s_label, size));
+      }
+
+      void
+      dbg_ex_allocator_base::
+      init(unsigned long seed)
+      {
+	s_g.init(seed);
+      }
+
+      void
+      dbg_ex_allocator_base::
+      set_throw_prob(double throw_prob)
+      {
+	s_throw_prob = throw_prob;
+      }
+
+      double
+      dbg_ex_allocator_base::
+      get_throw_prob()
+      {
+	return (s_throw_prob);
+      }
+
+      void
+      dbg_ex_allocator_base::
+      set_label(size_t l)
+      {
+	s_label = l;
+      }
+
+      void
+      dbg_ex_allocator_base::
+      insert(void* p_r, size_t size)
+      {
+	const_iterator found_it = s_map.find(p_r);
+
+	if (found_it != s_map.end())
+	  {
+	    std::cerr << "Double insert! " << std::endl;
+	    print_to_ostream(std::cerr, make_entry(p_r, size));
+	    print_to_ostream(std::cerr, * found_it);
+
+	    throw std::logic_error("double insert");
+	  }
+
+	s_map.insert(make_entry(p_r, size));
+      }
+
+      bool
+      dbg_ex_allocator_base::
+      empty()
+      {
+	return (s_map.empty());
+      }
+
+      void
+      dbg_ex_allocator_base::
+      erase(void* p_r, size_t size)
+      {
+	check_allocated(p_r, size);
+
+	s_map.erase(p_r);
+      }
+
+      void
+      dbg_ex_allocator_base::
+      check_allocated(void* p_r, size_t size)
+      {
+	const_iterator found_it =
+	  s_map.find(p_r);
+
+	if (found_it == s_map.end())
+	  {
+	    std::cerr << "Null erase! " << std::endl;
+	    print_to_ostream(std::cerr, make_entry(p_r, size));
+
+	    throw std::logic_error("null erase");
+	  }
+
+	if (found_it->second.second != size)
+	  {
+	    std::cerr << "Wrong-size erase! " << std::endl;
+	    print_to_ostream(std::cerr, make_entry(p_r, size));
+	    print_to_ostream(std::cerr, * found_it);
+
+	    throw std::logic_error("wrong-size erase");
+	  }
+      }
+
+      void
+      dbg_ex_allocator_base::
+      cond_throw()
+      {
+	if (s_g.get_prob() < s_throw_prob)
+	  throw forced_exception();
+      }
+
+      void
+      dbg_ex_allocator_base::
+      print_to_ostream(std::ostream& r_os)
+      {
+	const_iterator it =
+	  dbg_ex_allocator_base::s_map.begin();
+
+	const_iterator end_it =
+	  dbg_ex_allocator_base::s_map.end();
+
+	for (; it != end_it; ++it)
+	  print_to_ostream(r_os, * it);
+
+	r_os << std::endl;
+      }
+
+      void
+      dbg_ex_allocator_base::
+      print_to_ostream(std::ostream& r_os, const_reference r_entry)
+      {
+	r_os << r_entry.first << ": ";
+	r_os << r_entry.second.first << ", ";
+	r_os << r_entry.second.second;
+
+	r_os << std::endl;
+      }
+
+      std::ostream& 
+      operator<<(std::ostream& r_os, const dbg_ex_allocator_base& /*r_dbg*/)
+      {
+	dbg_ex_allocator_base::print_to_ostream(r_os);
+
+	return r_os;
+      }
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
diff --git a/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.hpp b/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.hpp
new file mode 100644
index 000000000000..caedd36aa528
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/res_mng/dbg_ex_allocator_base.hpp
@@ -0,0 +1,187 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file dbg_ex_allocator_base.hpp
+ * Contains a debugging, exception throwing, allocator used for tests.
+ */
+
+#ifndef PB_DS_DBG_EX_ALLOCATOR_BASE_HPP
+#define PB_DS_DBG_EX_ALLOCATOR_BASE_HPP
+
+#include <math.h>
+#include <map>
+#include <set>
+#include <iostream>
+#include <stdexcept>
+#include <regression/res_mng/forced_exception.hpp>
+#include <rng/twister_rand_gen.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      class dbg_ex_allocator_base;
+
+      std::ostream& 
+      operator<<(std::ostream& r_os, const dbg_ex_allocator_base& r_dbg);
+
+      class dbg_ex_allocator_base
+      {
+      public:
+	typedef size_t label;
+
+      public:
+	void
+        init(unsigned long seed);
+
+	static void
+        set_throw_prob(double throw_prob);
+
+	static double
+        get_throw_prob();
+
+	static void
+        set_label(size_t l);
+
+	static bool
+        empty();
+
+	class group_throw_prob_adjustor
+	{
+	public:
+	  group_throw_prob_adjustor(size_t size) : m_orig_throw_prob(s_throw_prob)
+	  {
+            s_throw_prob =
+	      1 - ::pow((double)(
+				 1 - s_throw_prob),(double)(0.5 / (size + 1)));
+	  }
+
+	  ~group_throw_prob_adjustor()
+	  {
+            s_throw_prob = m_orig_throw_prob;
+	  }
+
+	private:
+	  const double m_orig_throw_prob;
+	};
+
+	class zero_throw_prob_adjustor
+	{
+	public:
+	  zero_throw_prob_adjustor() : m_orig_throw_prob(s_throw_prob)
+	  {
+            s_throw_prob = 0;
+	  }
+
+	  ~zero_throw_prob_adjustor()
+	  {
+            s_throw_prob = m_orig_throw_prob;
+	  }
+
+	private:
+	  const double m_orig_throw_prob;
+	};
+
+      protected:
+	static void
+        insert(void* p_r, size_t size);
+
+	static void
+        erase(void* p_r, size_t size);
+
+	static void
+        cond_throw();
+
+	static void
+        assert_allocatod(const void* p_r, size_t size);
+
+	static void
+        check_allocated(void* p_r, size_t size);
+
+      private:
+	typedef std::pair< label, size_t> alloc_data_t;
+
+	typedef std::map< void* , alloc_data_t> map_t;
+
+	typedef map_t::value_type entry_t;
+
+	typedef map_t::const_iterator const_iterator;
+
+	typedef map_t::const_reference const_reference;
+
+      private:
+	static void
+        print_to_ostream(std::ostream& r_os);
+
+	static void
+        print_to_ostream(std::ostream& r_os, const_reference r_entry);
+
+	static entry_t
+        make_entry(void* p_r, size_t size);
+
+      private:
+	static twister_rand_gen s_g;
+
+	static map_t s_map;
+
+	static double s_throw_prob;
+
+	static size_t s_label;
+
+	friend std::ostream& operator<<(std::ostream& r_os, const dbg_ex_allocator_base& r_dbg);
+      };
+
+      std::ostream& 
+      operator<<(std::ostream& r_os, const dbg_ex_allocator_base& r_dbg);
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_DBG_EX_ALLOCATOR_BASE_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/res_mng/forced_exception.hpp b/libstdc++-v3/testsuite/util/regression/res_mng/forced_exception.hpp
new file mode 100644
index 000000000000..a46ad2c06047
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/res_mng/forced_exception.hpp
@@ -0,0 +1,64 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file forced_exception.hpp
+ * Contains an exception thrown by the debugging allocator.
+ */
+
+#ifndef PB_DS_FORCED_EXCEPTION_HPP
+#define PB_DS_FORCED_EXCEPTION_HPP
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    struct forced_exception
+    { };
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_FORCED_EXCEPTION_HPP
+
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
new file mode 100644
index 000000000000..dac0c7f4719a
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_load_trait.hpp
@@ -0,0 +1,100 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file get_set_load_trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_SET_LOAD_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_SET_LOAD_TRAIT_HPP
+
+#include <ext/pb_ds/assoc_container.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr, class Tag>
+      struct regression_test_get_set_load_traits
+      {
+	enum
+	  {
+	    value = false
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_hash_get_set_load_traits
+      {
+	enum
+	  {
+	    value = Cntnr::resize_policy::trigger_policy::get_set_load
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_get_set_load_traits<
+        Cntnr,
+        pb_ds::cc_hash_tag> : public regression_test_hash_get_set_load_traits<
+        Cntnr>
+      { };
+
+      template<typename Cntnr>
+      struct regression_test_get_set_load_traits<
+        Cntnr,
+        pb_ds::gp_hash_tag> : public regression_test_hash_get_set_load_traits<
+        Cntnr>
+      { };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_SET_LOAD_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
new file mode 100644
index 000000000000..17c872ee83e2
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/get_set_loads_trait.hpp
@@ -0,0 +1,100 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file get_set_loads_trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_SET_LOADS_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_SET_LOADS_TRAIT_HPP
+
+#include <ext/pb_ds/assoc_container.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr, class Tag>
+      struct regression_test_get_set_loacontainer_traits
+      {
+	enum
+	  {
+	    value = false
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_hash_get_set_loacontainer_traits
+      {
+	enum
+	  {
+	    value = Cntnr::resize_policy::trigger_policy::get_set_loads
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_get_set_loacontainer_traits<
+        Cntnr,
+        pb_ds::cc_hash_tag> : public regression_test_hash_get_set_loacontainer_traits<
+        Cntnr>
+      { };
+
+      template<typename Cntnr>
+      struct regression_test_get_set_loacontainer_traits<
+        Cntnr,
+        pb_ds::gp_hash_tag> : public regression_test_hash_get_set_loacontainer_traits<
+        Cntnr>
+      { };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_SET_LOADS_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
new file mode 100644
index 000000000000..1c65c6c81f86
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/native_type_trait.hpp
@@ -0,0 +1,195 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file native_type_trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_NATIVE_TYPE_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_NATIVE_TYPE_TRAIT_HPP
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Key, class Allocator>
+      struct native_key_type;
+
+      template<typename Allocator>
+      struct native_key_type<
+	basic_type,
+	Allocator>
+      {
+	typedef std::string type;
+
+	static type
+        native_key(typename Allocator::template rebind<
+		   basic_type>::other::const_reference r_key)
+	{
+	  return (std::string(r_key));
+	}
+      };
+
+      template<typename Hd, class Tl, class Allocator>
+      struct native_key_type<
+	std::pair<
+        Hd,
+        Tl>,
+	Allocator>
+      {
+	typedef typename native_key_type< Hd, Allocator>::type hd_type;
+
+	typedef typename native_key_type< Tl, Allocator>::type tl_type;
+
+	typedef std::pair< hd_type, tl_type> type;
+
+	static type
+        native_key(typename Allocator::template rebind<            std::pair<Hd, Tl> >::other::const_reference r_key)
+	{
+	  return (std::make_pair(
+				 native_key_type<Hd, Allocator>::native_key(r_key.first),
+				 native_key_type<Tl, Allocator>::native_key(r_key.second)));
+	}
+      };
+
+      template<typename Native_Key_Type,
+	       class Key_Type,
+	       class Data_Type,
+	       class Allocator>
+      struct native_type_traits_base;
+
+      template<typename Native_Key_Type, class Key_Type, class Allocator>
+      struct native_type_traits_base<
+	Native_Key_Type,
+	Key_Type,
+	basic_type,
+	Allocator>
+      {
+      public:
+	typedef std::map< Native_Key_Type, std::string> type;
+
+      public:
+	static const typename type::key_type& 
+        extract_key(typename type::const_reference r_val)
+	{
+	  return (r_val.first);
+	}
+
+	static typename type::value_type
+        native_value(typename Allocator::template rebind<            std::pair<Key_Type, basic_type> >::other::const_reference r_val)
+	{
+	  return (std::make_pair(
+				 native_key_type<Key_Type, Allocator>::native_key(r_val.first),
+				 std::string(r_val.second)));
+	}
+      };
+
+      template<typename Native_Key_Type, class Key_Type, class Allocator>
+      struct native_type_traits_base<
+	Native_Key_Type,
+	Key_Type,
+	pb_ds::null_mapped_type,
+	Allocator>
+      {
+      public:
+	typedef std::set< Native_Key_Type> type;
+
+      public:
+	static const typename type::key_type& 
+        extract_key(typename type::const_reference r_val)
+	{
+	  return (r_val);
+	}
+
+	static typename type::value_type
+        native_value(typename Allocator::template rebind<
+		     Key_Type>::other::const_reference r_val)
+	{
+	  return (native_key_type<Key_Type, Allocator>::native_key(
+								   r_val));
+	}
+      };
+
+#define PB_DS_NATIVE_KEY_TYPE_C_DEC				\
+      native_key_type<						\
+						Key_Type,	\
+						Allocator>
+
+#define PB_DS_BASE_C_DEC						\
+      native_type_traits_base<						\
+									typename PB_DS_NATIVE_KEY_TYPE_C_DEC::type, \
+									Key_Type, \
+									Data_Type, \
+									Allocator>
+
+      template<typename Key_Type, class Data_Type, class Allocator>
+      struct native_type_traits : public PB_DS_BASE_C_DEC
+      {
+	typedef typename PB_DS_BASE_C_DEC::type type;
+
+	typedef typename type::key_type key_type;
+
+	static typename PB_DS_NATIVE_KEY_TYPE_C_DEC::type
+        native_key(typename Allocator::template rebind<
+		   Key_Type>::other::const_reference r_key)
+	{
+	  return (PB_DS_NATIVE_KEY_TYPE_C_DEC::native_key(r_key));
+	}
+      };
+
+#undef PB_DS_BASE_C_DEC
+
+#undef PB_DS_NATIVE_KEY_TYPE_C_DEC
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_NATIVE_TYPE_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
new file mode 100644
index 000000000000..9f235116ecb4
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/node_update_trait.hpp
@@ -0,0 +1,134 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file node_update_trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_NODE_UPDATOR_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_NODE_UPDATOR_TRAIT_HPP
+
+#include <ext/pb_ds/assoc_container.hpp>
+#include <common_type/assoc/detail/tree_supports_order_statistics.hpp>
+#include <common_type/assoc/detail/trie_supports_order_statistics.hpp>
+#include <common_type/assoc/detail/trie_supports_prefix_search.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr, class Tag>
+      struct regression_test_node_update_traits
+      {
+	enum
+	  {
+	    order_statistics = false,
+	    prefix_search = false
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_node_update_traits<
+	Cntnr,
+	pb_ds::pat_trie_tag>
+      {
+	enum
+	  {
+	    order_statistics =
+            trie_supports_order_statistics<Cntnr>::value,
+	    prefix_search =
+            trie_supports_prefix_search<Cntnr>::value
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_node_update_traits<
+	Cntnr,
+	pb_ds::rb_tree_tag>
+      {
+	enum
+	  {
+	    order_statistics =
+            tree_supports_order_statistics<Cntnr>::value,
+	    prefix_search = false
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_node_update_traits<
+	Cntnr,
+	pb_ds::splay_tree_tag>
+      {
+	enum
+	  {
+	    order_statistics =
+            tree_supports_order_statistics<Cntnr>::value,
+	    prefix_search = false
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_node_update_traits<
+	Cntnr,
+	pb_ds::ov_tree_tag>
+      {
+	enum
+	  {
+	    order_statistics =
+            tree_supports_order_statistics<Cntnr>::value,
+	    prefix_search = false
+	  };
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_NODE_UPDATOR_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
new file mode 100644
index 000000000000..24ee05b15c54
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/resize_trait.hpp
@@ -0,0 +1,100 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file resize_trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_RESIZE_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_RESIZE_TRAIT_HPP
+
+#include <ext/pb_ds/assoc_container.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr, class Tag>
+      struct regression_test_resize_traits
+      {
+	enum
+	  {
+	    value = false
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_hash_resize_traits
+      {
+	enum
+	  {
+	    value = Cntnr::resize_policy::external_size_access
+	  };
+      };
+
+      template<typename Cntnr>
+      struct regression_test_resize_traits<
+        Cntnr,
+        pb_ds::cc_hash_tag> : public regression_test_hash_resize_traits<
+        Cntnr>
+      { };
+
+      template<typename Cntnr>
+      struct regression_test_resize_traits<
+        Cntnr,
+        pb_ds::gp_hash_tag> : public regression_test_hash_resize_traits<
+        Cntnr>
+      { };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_RESIZE_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
new file mode 100644
index 000000000000..d07b330cadbc
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/to_string.hpp
@@ -0,0 +1,91 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file to_string.hpp
+ * Containsert classes for transforming stuff to strings.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_TO_STRING_HPP
+#define PB_DS_REGRESSION_TEST_TO_STRING_HPP
+
+#include <regression/basic_type.hpp>
+#include <string>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      std::string
+      to_string(const basic_type& r_t)
+      {
+	return (r_t);
+      }
+
+      std::string
+      to_string(const std::string& r_t)
+      {
+	return (r_t);
+      }
+
+      template<typename Hd, class Tl>
+      std::string
+      to_string(const std::pair<Hd, Tl>&r_t)
+      {
+	std::ostringstream ret;
+
+	ret << to_string(r_t.first) << " " << to_string(r_t.second);
+
+	return (ret.str());
+      }
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_TO_STRING_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
new file mode 100644
index 000000000000..8cf8c1271fcb
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/trait.hpp
@@ -0,0 +1,289 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_TRAIT_HPP
+
+#include <regression/trait/assoc/to_string.hpp>
+#include <regression/trait/assoc/type_trait.hpp>
+#include <regression/trait/assoc/native_type_trait.hpp>
+#include <regression/trait/assoc/resize_trait.hpp>
+#include <regression/trait/assoc/get_set_loads_trait.hpp>
+#include <regression/trait/assoc/get_set_load_trait.hpp>
+#include <regression/trait/assoc/node_update_trait.hpp>
+#include <regression/trait/erase_if_fn.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#define PB_DS_CLASS_T_DEC			\
+      template<typename Cntnr>
+
+#define PB_DS_CLASS_C_DEC				\
+      regression_test_traits<				\
+						Cntnr>
+
+#define PB_DS_TYPE_TRAITS_C_DEC				\
+      regression_test_type_traits<			\
+						Cntnr>
+
+#define PB_DS_NATIVE_TYPE_TRAITS_C_DEC					\
+      native_type_traits<						\
+									typename PB_DS_TYPE_TRAITS_C_DEC::key_type, \
+									typename PB_DS_TYPE_TRAITS_C_DEC::mapped_type, \
+									typename Cntnr::allocator>
+
+#define PB_DS_RESIZE_TRAITS_C_DEC					\
+      regression_test_resize_traits<					\
+									Cntnr, \
+									typename Cntnr::container_category>
+
+#define PB_DS_SET_LOADS_TRAITS_C_DEC					\
+      regression_test_get_set_loacontainer_traits<			\
+										Cntnr, \
+										typename Cntnr::container_category>
+
+#define PB_DS_SET_LOAD_TRAITS_C_DEC					\
+      regression_test_get_set_load_traits<				\
+									Cntnr, \
+									typename Cntnr::container_category>
+
+#define PB_DS_NODE_UPDATOR_TRAITS_C_DEC					\
+      regression_test_node_update_traits<				\
+									Cntnr, \
+									typename Cntnr::container_category>
+
+      template<typename Cntnr>
+      struct regression_test_traits : private PB_DS_TYPE_TRAITS_C_DEC,
+				      private PB_DS_NATIVE_TYPE_TRAITS_C_DEC,
+				      private PB_DS_RESIZE_TRAITS_C_DEC,
+				      private PB_DS_NODE_UPDATOR_TRAITS_C_DEC,
+				      private PB_DS_SET_LOADS_TRAITS_C_DEC,
+				      private PB_DS_SET_LOAD_TRAITS_C_DEC
+      {
+
+      private:
+	typedef PB_DS_NATIVE_TYPE_TRAITS_C_DEC native_type_traits_base;
+
+	typedef PB_DS_TYPE_TRAITS_C_DEC type_traits_base;
+
+      public:
+
+	typedef typename Cntnr::key_type key_type;
+
+	typedef typename Cntnr::const_key_reference const_key_reference;
+
+	typedef typename Cntnr::value_type value_type;
+
+	typedef typename Cntnr::const_reference const_reference;
+
+	typedef typename PB_DS_NATIVE_TYPE_TRAITS_C_DEC::type native_type;
+
+	typedef typename native_type::key_type native_key_type;
+
+	typedef typename native_type::value_type native_value_type;
+
+	enum
+	  {
+	    resize = PB_DS_RESIZE_TRAITS_C_DEC::value,
+	    get_set_loads = PB_DS_SET_LOADS_TRAITS_C_DEC::value,
+	    get_set_load = PB_DS_SET_LOAD_TRAITS_C_DEC::value,
+	    order_statistics =
+            PB_DS_NODE_UPDATOR_TRAITS_C_DEC::order_statistics,
+	    prefix_search =
+            PB_DS_NODE_UPDATOR_TRAITS_C_DEC::prefix_search
+	  };
+
+	template<typename T>
+	struct erase_if_fn : public regression_test_erase_if_fn<
+	  T>
+	{
+
+	};
+
+	static size_t
+        erase_if(native_type& r_native_c)
+	{
+	  typedef
+            regression_test_erase_if_fn<
+	    typename native_type::value_type>
+            erase_if_fn;
+
+	  typename native_type::iterator it = r_native_c.begin();
+
+	  size_t num_ersd = 0;
+
+	  while (it != r_native_c.end())
+            if (erase_if_fn()(*it))
+	      {
+                ++num_ersd;
+
+                r_native_c.erase(it);
+
+                it = r_native_c.begin();
+	      }
+            else
+	      ++it;
+
+	  return (num_ersd);
+	}
+
+	static void
+        print_container(const Cntnr& r_c, std::ostream& r_os)
+	{
+	  PB_DS_TYPE_TRAITS_C_DEC::print_container(r_c, r_os);
+	}
+
+      public:
+
+	template<typename Gen>
+	static key_type
+        generate_key(Gen& r_gen, size_t max)
+	{
+	  return (PB_DS_TYPE_TRAITS_C_DEC::generate_key(r_gen, max));
+	}
+
+	template<typename Gen>
+	static value_type
+        generate_value(Gen& r_gen, size_t max)
+	{
+	  return (PB_DS_TYPE_TRAITS_C_DEC::generate_value(r_gen, max));
+	}
+
+	static const_key_reference
+        extract_key(const_reference r_val)
+	{
+	  return type_traits_base::extract_key(r_val);
+	}
+
+	static native_key_type
+        native_key(const_key_reference r_key)
+	{
+	  return (native_type_traits_base::native_key(r_key));
+	}
+
+	static native_value_type
+        native_value(const_reference r_val)
+	{
+	  return (native_type_traits_base::native_value(r_val));
+	}
+
+	static const native_key_type& 
+        extract_native_key(const native_value_type& r_val)
+	{
+	  return (native_type_traits_base::extract_key(r_val));
+	}
+
+	static bool
+        cmp(const_reference r_val, const native_value_type& r_native_val)
+	{
+	  return (val_to_string(r_val) ==
+		  native_val_to_string(r_native_val));
+	}
+
+	static std::string
+        val_to_string(const_reference r_val)
+	{
+	  return (to_string(r_val));
+	}
+
+	static std::string
+        key_to_string(const_key_reference r_key)
+	{
+	  return (to_string(r_key));
+	}
+
+	static std::string
+        native_val_to_string(const native_value_type& r_native_val)
+	{
+	  return (to_string(r_native_val));
+	}
+
+	static bool
+        prefix_match(const_key_reference r_key, const std::string& r_native_key)
+	{
+	  const size_t native_substr_len = std::min(
+						    r_key.length(),
+						    r_native_key.length());
+
+	  const std::string native_substr =
+            r_native_key.substr(0, native_substr_len);
+
+	  return (native_substr == (const std::string& )r_key);
+	}
+
+      };
+
+#undef PB_DS_TYPE_TRAITS_C_DEC
+
+#undef PB_DS_NATIVE_TYPE_TRAITS_C_DEC
+
+#undef PB_DS_RESIZE_TRAITS_C_DEC
+
+#undef PB_DS_SET_LOADS_TRAITS_C_DEC
+
+#undef PB_DS_SET_LOAD_TRAITS_C_DEC
+
+#undef PB_DS_NODE_UPDATOR_TRAITS_C_DEC
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
new file mode 100644
index 000000000000..f0da95ed0dd3
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/assoc/type_trait.hpp
@@ -0,0 +1,161 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file type_trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_TYPE_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_TYPE_TRAIT_HPP
+
+#include <regression/basic_type.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename Cntnr>
+      struct regression_test_type_traits
+      {
+
+      public:
+
+	typedef Cntnr cntnr;
+
+	typedef typename cntnr::key_type key_type;
+
+	typedef typename cntnr::const_key_reference const_key_reference;
+
+	typedef typename cntnr::value_type value_type;
+
+	typedef typename cntnr::const_reference const_reference;
+
+	typedef typename cntnr::mapped_type mapped_type;
+
+	typedef typename cntnr::const_mapped_reference const_mapped_reference;
+
+      public:
+
+	template<typename Gen>
+	static key_type
+        generate_key(Gen& r_gen, size_t max)
+	{
+	  return (basic_type(r_gen, max));
+	}
+
+	template<typename Gen>
+	static value_type
+        generate_value(Gen& r_gen, size_t max)
+	{
+	  return (generate_value(r_gen, max,
+				 pb_ds::detail::type_to_type<value_type>()));
+	}
+
+	static const_key_reference
+        extract_key(const_reference r_val)
+	{
+	  return extract_key_imp(r_val);
+	}
+
+      private:
+	typedef
+        typename Cntnr::allocator::template rebind<
+	basic_type>::other::const_reference
+        basic_type_const_reference;
+
+	typedef
+        typename Cntnr::allocator::template rebind<
+	  std::pair<
+	  basic_type,
+	  basic_type> >::other::const_reference
+        basic_type_pair_const_reference;
+
+      private:
+	template<typename Gen>
+	static value_type
+        generate_value(Gen& r_gen, size_t max,  pb_ds::detail::type_to_type<pb_ds::null_mapped_type>)
+	{
+	  return (basic_type(r_gen, max));
+	}
+
+	template<typename Gen>
+	static value_type
+        generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type<basic_type>)
+	{
+	  return (basic_type(r_gen, max));
+	}
+
+	template<typename Gen>
+	static value_type
+        generate_value(Gen& r_gen, size_t max, pb_ds::detail::type_to_type<std::pair<const basic_type, basic_type> >)
+	{
+	  return (std::make_pair(basic_type(r_gen, max), basic_type(r_gen, max)));
+	}
+
+	static const_key_reference
+        extract_key_imp(basic_type_const_reference r_val)
+	{
+	  return r_val;
+	}
+
+	static const_key_reference
+        extract_key_imp(basic_type_pair_const_reference r_val)
+	{
+	  return r_val.first;
+	}
+      };
+
+#undef PB_DS_BASE_C_DEC
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_TYPE_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp b/libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
new file mode 100644
index 000000000000..adab6b015ecd
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/erase_if_fn.hpp
@@ -0,0 +1,111 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file erase_if_fn.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_ERASE_IF_FN_HPP
+#define PB_DS_REGRESSION_TEST_ERASE_IF_FN_HPP
+
+#include <functional>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      template<typename T>
+      struct regression_test_erase_if_fn : public std::unary_function<
+        T,
+        bool>
+      {
+      private:
+	typedef const T&  const_reference;
+
+      public:
+	bool
+        operator()(const_reference r_t) const
+	{
+	  return (r_t.length() == 0 ||
+		  static_cast<size_t>(*((r_t).begin())) % 2 == 1);
+	}
+      };
+
+      template<typename Hd, class Tl>
+      struct regression_test_erase_if_fn<
+        std::pair<
+	Hd,
+	Tl> > : public std::unary_function<
+        std::pair<
+	Hd,
+	Tl>,
+        bool>
+      {
+      private:
+	typedef const std::pair<Hd, Tl>&  const_reference;
+
+	typedef regression_test_erase_if_fn< Hd> hd_erase_if_fn;
+
+	typedef regression_test_erase_if_fn< Tl> tl_erase_if_fn;
+
+      public:
+	bool
+        operator()(const_reference r_t) const
+	{
+	  return (hd_erase_if_fn()(r_t.first)&& 
+		  tl_erase_if_fn()(r_t.second));
+	}
+      };
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_ERASE_IF_FN_HPP
diff --git a/libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp b/libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
new file mode 100644
index 000000000000..80ffe1f7836a
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/regression/trait/priority_queue/trait.hpp
@@ -0,0 +1,133 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file trait.hpp
+ * Containsert traits for a random regression test
+ *    for a specific container type.
+ */
+
+#ifndef PB_DS_REGRESSION_TEST_TRAIT_HPP
+#define PB_DS_REGRESSION_TEST_TRAIT_HPP
+
+#include <regression/trait/erase_if_fn.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#define PB_DS_CLASS_T_DEC			\
+      template<typename Cntnr>
+
+#define PB_DS_CLASS_C_DEC				\
+      regression_test_traits<				\
+						Cntnr>
+
+      template<typename Cntnr>
+      struct regression_test_traits
+      {
+
+      public:
+
+	typedef typename Cntnr::value_type value_type;
+
+	typedef typename Cntnr::const_reference const_reference;
+
+	typedef
+        pb_ds::test::native_priority_queue<
+	  std::string,
+	  true>
+        native_type;
+
+	typedef typename native_type::value_type native_value_type;
+
+	template<typename T>
+	struct erase_if_fn : public regression_test_erase_if_fn<
+	  T>
+	{
+
+	};
+
+      public:
+
+	template<typename Gen>
+	static value_type
+        generate_value(Gen& r_gen, size_t max)
+	{
+	  return basic_type(r_gen, max);
+	}
+
+	static native_value_type
+        native_value(const_reference r_val)
+	{
+	  return (native_value_type(r_val));
+	}
+
+	static bool
+        cmp(const_reference r_val, const native_value_type& r_native_val)
+	{
+	  return (val_to_string(r_val) == r_native_val);
+	}
+
+	static std::string
+        val_to_string(const_reference r_val)
+	{
+	  return (std::string(r_val));
+	}
+
+      };
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_REGRESSION_TEST_TRAIT_HPP
diff --git a/libstdc++-v3/testsuite/util/rng/twister_rand_gen.cc b/libstdc++-v3/testsuite/util/rng/twister_rand_gen.cc
new file mode 100644
index 000000000000..594a8008febb
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/rng/twister_rand_gen.cc
@@ -0,0 +1,203 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file twister_rand_gen.cpp
+ * Contains a random number generator invented and implemented by
+ *    Makoto Matsumoto
+ *    (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html)
+ */
+
+#include <util/rng/twister_rand_gen.hpp>
+#include <ctime>
+#include <iostream>
+
+namespace pb_ds
+{
+  namespace test
+  {
+#ifdef TWISTER_RAND_GEN_DEBUG
+#define PB_DS_DBG_ASSERT(X) assert(X)
+#define PB_DS_DBG_VERIFY(X) assert(X)
+#define PB_DS_DBG_ONLY(X) X
+#else // #ifdef TWISTER_RAND_GEN_DEBUG
+#define PB_DS_DBG_ASSERT(X)
+#define PB_DS_DBG_VERIFY(X) {if((X)==0);}
+#define PB_DS_DBG_ONLY(X) ;
+#endif // #ifdef TWISTER_RAND_GEN_DEBUG
+
+    enum
+      {
+	mers_n = 624,
+	mers_m = 397,
+	mers_r = 31,
+	mers_u = 11,
+	mers_s = 7,
+	mers_t = 15,
+	mers_l = 18,
+	mers_a = 0x9908B0DF,
+	mers_b = 0x9D2C5680,
+	mers_c = 0xEFC60000
+      };
+
+    twister_rand_gen::
+    twister_rand_gen(unsigned long seed)
+    { init(seed); }
+
+    void
+    twister_rand_gen::
+    init(unsigned long seed)
+    {
+      m_a_mt[0]= seed;
+
+      for (m_mti=1; m_mti < mers_n; ++m_mti)
+	m_a_mt[m_mti] = (1812433253UL* (m_a_mt[m_mti-1] ^ (m_a_mt[m_mti-1] >> 30)) + m_mti);
+
+      union
+      {
+	double m_f;
+	unsigned long m_a[2];
+      } u;
+
+      u.m_f = 1.0;
+
+      if (u.m_a[1] == 0x3FF00000)
+	m_endianess = little;
+      else if (u.m_a[0] == 0x3FF00000)
+	m_endianess = big;
+      else
+	m_endianess = none;
+    }
+
+    unsigned long
+    twister_rand_gen::
+    get_unsigned_long(unsigned long min, unsigned long max)
+    {
+      PB_DS_DBG_ASSERT(max >= min);
+      const double prob = get_prob();
+      const unsigned long rand_word =(unsigned long)((max - min+ 1)*  prob) + min;
+
+      PB_DS_DBG_ASSERT(rand_word <= max);
+      return rand_word;
+    }
+
+    double
+    twister_rand_gen::
+    get_prob()
+    {
+      union
+      {
+	double m_f;
+	unsigned long m_a[2];
+      } u;
+
+      unsigned long rand_word = get_unsigned_long_imp();
+
+      double ret;
+
+      switch(m_endianess)
+	{
+	case little:
+	  u.m_a[0] =    rand_word << 20;
+	  u.m_a[1] = (rand_word >> 12) | 0x3FF00000;
+	  ret = u.m_f - 1.0;
+	  break;
+	case big:
+	  u.m_a[1] =    rand_word << 20;
+	  u.m_a[0] = (rand_word >> 12) | 0x3FF00000;
+	  ret = u.m_f - 1.0;
+	  break;
+	case none:
+	default:
+	  break;
+	}
+
+      ret = (double)rand_word * (1./((double)(unsigned long)(-1L)+1.));
+
+      PB_DS_DBG_ASSERT(ret >= 0);
+      PB_DS_DBG_ASSERT(ret <= 1);
+
+      return ret;
+    }
+
+    unsigned long
+    twister_rand_gen::
+    get_unsigned_long_imp()
+    {
+      unsigned long y;
+      if (m_mti >= mers_n)
+	{
+	  const unsigned long LOWER_MASK = (1LU << mers_r) - 1;
+	  const unsigned long UPPER_MASK = static_cast<unsigned long>(-1L << mers_r);
+	  static const unsigned long m_a_mag01[2] = {0, mers_a};
+
+	  unsigned long kk;
+	  for (kk=0; kk < mers_n-mers_m; ++kk)
+	    {
+	      y = (m_a_mt[kk]&  UPPER_MASK) | (m_a_mt[kk+1]&  LOWER_MASK);
+	      m_a_mt[kk] = m_a_mt[kk+mers_m] ^ (y >> 1) ^ m_a_mag01[y&  1];
+	    }
+
+	  for (; kk < mers_n-1; ++kk)
+	    {
+	      y = (m_a_mt[kk]&  UPPER_MASK) | (m_a_mt[kk+1]&  LOWER_MASK);
+	      m_a_mt[kk] = m_a_mt[kk+(mers_m-mers_n)] ^ (y >> 1) ^ m_a_mag01[y&  1];
+	    }
+
+	  y = (m_a_mt[mers_n-1]&  UPPER_MASK) | (m_a_mt[0]&  LOWER_MASK);
+	  m_a_mt[mers_n-1] = m_a_mt[mers_m-1] ^ (y >> 1) ^ m_a_mag01[y&  1];
+	  m_mti = 0;
+	}
+
+      y = m_a_mt[m_mti++];
+
+      y ^=    y >> mers_u;
+      y ^= (y << mers_s)&  mers_b;
+      y ^= (y << mers_t)&  mers_c;
+      y ^=    y >> mers_l;
+      return y;
+    }
+
+#undef PB_DS_DBG_ASSERT
+#undef PB_DS_DBG_VERIFY
+#undef PB_DS_DBG_ONLY
+  } // namespace test
+} // namespace pb_ds
diff --git a/libstdc++-v3/testsuite/util/rng/twister_rand_gen.hpp b/libstdc++-v3/testsuite/util/rng/twister_rand_gen.hpp
new file mode 100644
index 000000000000..59396645b3ca
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/rng/twister_rand_gen.hpp
@@ -0,0 +1,110 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file twister_rand_gen.hpp
+ * Contains a random number generator invented and implemented by
+ *    Makoto Matsumoto
+ *    (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html)
+ */
+
+#ifndef PB_DS_TWISTER_RAND_GEN_HPP
+#define PB_DS_TWISTER_RAND_GEN_HPP
+
+#include <ctime>
+#include <limits.h>
+
+namespace pb_ds
+{
+  namespace test
+  {
+    class twister_rand_gen
+    {
+    private:
+      enum
+	{
+	  mers_n = 624,
+	  mers_m = 397,
+	  mers_r = 31,
+	  mers_u = 11,
+	  mers_s = 7,
+	  mers_t = 15,
+	  mers_l = 18,
+	  mers_a = 0x9908B0DF,
+	  mers_b = 0x9D2C5680,
+	  mers_c = 0xEFC60000
+	};
+
+      unsigned long m_a_mt[mers_n];
+      unsigned long m_mti;
+
+      enum endianess_type
+	{
+	  little,
+	  big,
+	  none
+	};
+
+      endianess_type m_endianess;
+
+      unsigned long
+      get_unsigned_long_imp();
+
+    public:
+      twister_rand_gen(unsigned long seed = static_cast<unsigned long>(std::time(0)));
+
+      void
+      init(unsigned long seed);
+
+      static unsigned long
+      get_time_determined_seed()
+      { return (static_cast<unsigned long>(std::time(0))); }
+
+      unsigned long
+      get_unsigned_long(unsigned long min = 0, unsigned long max = UINT_MAX - 1);
+
+      double
+      get_prob();
+    };
+  } // namespace test
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_TWISTER_RAND_GEN_HPP
diff --git a/libstdc++-v3/testsuite/util/statistic/res_recorder.hpp b/libstdc++-v3/testsuite/util/statistic/res_recorder.hpp
new file mode 100644
index 000000000000..98d169df8d4e
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/statistic/res_recorder.hpp
@@ -0,0 +1,143 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file res_recorder.hpp
+ * Contains a class for recording results
+ */
+
+#ifndef PB_DS_RES_RECORDER_HPP
+#define PB_DS_RES_RECORDER_HPP
+
+#include <statistic/sample_mean.hpp>
+#include <statistic/sample_var.hpp>
+#include <statistic/sample_mean_confidence_checker.hpp>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#define PB_DS_CLASS_T_DEC			\
+      template<typename Value_Type>
+
+#define PB_DS_CLASS_C_DEC					\
+      res_recorder<						\
+						Value_Type>
+
+      /*
+       * Records results until the probability that the sample mean is 10% away
+       *     from the true mean is ~ 0.05.
+       */
+      template<typename Value_Type = double>
+      class res_recorder
+      {
+      public:
+	typedef Value_Type value_type;
+
+      public:
+	res_recorder();
+
+	bool
+        add_res(value_type res);
+
+	inline value_type
+        sample_mean() const;
+
+      private:
+	typedef std::list< value_type> list_t;
+
+      private:
+	list_t m_l;
+
+	value_type m_sample_mean;
+
+	value_type m_sample_var;
+      };
+
+      PB_DS_CLASS_T_DEC
+      PB_DS_CLASS_C_DEC::
+      res_recorder() :
+        m_sample_mean(0)
+      { }
+
+      PB_DS_CLASS_T_DEC
+      inline typename PB_DS_CLASS_C_DEC::value_type
+      PB_DS_CLASS_C_DEC::
+      sample_mean() const
+      {
+	return (m_sample_mean);
+      }
+
+      PB_DS_CLASS_T_DEC
+      bool
+      PB_DS_CLASS_C_DEC::
+      add_res(value_type res)
+      {
+	m_l.push_back(res);
+
+	m_sample_mean = pb_ds::test::detail::sample_mean(m_l.begin(), m_l.end());
+
+	const value_type sample_var =
+	  pb_ds::test::detail::sample_var(m_l.begin(), m_l.end(), m_sample_mean);
+
+	return (pb_ds::test::detail::sample_mean_confidence_checker(m_sample_mean,
+								    sample_var,
+								    std::distance(m_l.begin(), m_l.end()),
+								    0.1));
+      }
+
+#undef PB_DS_CLASS_T_DEC
+
+#undef PB_DS_CLASS_C_DEC
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_RES_RECORDER_HPP
+
diff --git a/libstdc++-v3/testsuite/util/statistic/sample_mean.hpp b/libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
new file mode 100644
index 000000000000..26aa1f7b7a8f
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/statistic/sample_mean.hpp
@@ -0,0 +1,87 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_mean.hpp
+ * Contains a function for calculating a sample mean
+ */
+
+#ifndef PB_DS_SAMPLE_MEAN_HPP
+#define PB_DS_SAMPLE_MEAN_HPP
+
+#include <list>
+#include <numeric>
+#include <math.h>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#define PB_DS_VTYPE							\
+      typename std::iterator_traits<					\
+							It>::value_type
+
+      template<typename It>
+      PB_DS_VTYPE
+      sample_mean(It b, It e)
+      {
+	const PB_DS_VTYPE total = std::accumulate(b, e, PB_DS_VTYPE(0));
+	const size_t num = std::distance(b, e);
+
+	return (total / num);
+      }
+
+#undef PB_DS_VTYPE
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SAMPLE_MEAN_HPP
+
diff --git a/libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp b/libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
new file mode 100644
index 000000000000..5fa4607f2d21
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/statistic/sample_mean_confidence_checker.hpp
@@ -0,0 +1,98 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_mean_confidence_checker.hpp
+ * Contains a function for checking the confidence of a sample mean
+ */
+
+#ifndef PB_DS_SAMPLE_MEAN_CONFIDENCE_CHECKER_HPP
+#define PB_DS_SAMPLE_MEAN_CONFIDENCE_CHECKER_HPP
+
+#include <list>
+#include <numeric>
+#include <math.h>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+      /*
+       * Checks that a sample mean sm is in the relative interval
+       *     relative_interval of a true mean (assuming i.i.d. samples),
+       *     given a sample variance sv taken over num_samples samples,
+       *     with confidence ~ 0.95.
+       *
+       * See "Probability, Random Variables, and Stochastic Processes" (Third edition)
+       *     Athanasios Papoulis, Chapter 9.
+       */
+      template<typename Value_Type>
+      bool
+      sample_mean_confidence_checker(Value_Type sm, Value_Type sv, std::size_t num_samples, double relative_interval)
+      {
+	enum
+	  {
+	    // Ensures that the student-t distribution is approximately normal.
+	    min_num_samples = 30
+	  };
+
+	if (num_samples < min_num_samples)
+	  return (false);
+
+	// This is z_u (normal-dist percentile) for u = 0.975.
+	const Value_Type z = 1.976;
+
+	return (sv / ::sqrt(double(num_samples)) <= relative_interval*  sm / z);
+      }
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SAMPLE_MEAN_CONFIDENCE_CHECKER_HPP
+
diff --git a/libstdc++-v3/testsuite/util/statistic/sample_var.hpp b/libstdc++-v3/testsuite/util/statistic/sample_var.hpp
new file mode 100644
index 000000000000..f5a778170222
--- /dev/null
+++ b/libstdc++-v3/testsuite/util/statistic/sample_var.hpp
@@ -0,0 +1,102 @@
+// -*- C++ -*-
+
+// Copyright (C) 2005, 2006 Free Software Foundation, Inc.
+//
+// This file is part of the GNU ISO C++ Library.  This library 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 library 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 library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 59 Temple Place - Suite 330, Boston,
+// MA 02111-1307, USA.
+
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+// Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL.
+
+// Permission to use, copy, modify, sell, and distribute this software
+// is hereby granted without fee, provided that the above copyright
+// notice appears in all copies, and that both that copyright notice
+// and this permission notice appear in supporting documentation. None
+// of the above authors, nor IBM Haifa Research Laboratories, make any
+// representation about the suitability of this software for any
+// purpose. It is provided "as is" without express or implied
+// warranty.
+
+/**
+ * @file sample_var.hpp
+ * Contains a function for calculating a sample variance
+ */
+
+#ifndef PB_DS_SAMPLE_VAR_HPP
+#define PB_DS_SAMPLE_VAR_HPP
+
+#include <list>
+#include <numeric>
+#include <math.h>
+#include <iterator>
+
+namespace pb_ds
+{
+
+  namespace test
+  {
+
+    namespace detail
+    {
+
+#define PB_DS_VTYPE							\
+      typename std::iterator_traits<					\
+							It>::value_type
+
+      template<typename It>
+      PB_DS_VTYPE
+      sample_var(It b, It e, PB_DS_VTYPE sm)
+      {
+	PB_DS_VTYPE ss = 0;
+
+	size_t num_res = 0;
+
+	while (b != e)
+	  {
+	    const PB_DS_VTYPE d =* b - sm;
+
+	    ss += d*  d;
+
+	    ++num_res;
+
+	    ++b;
+	  }
+
+	if (num_res == 1)
+	  return (0);
+
+	return (::sqrt(ss / (num_res - 1)));
+      }
+
+#undef PB_DS_VTYPE
+
+    } // namespace detail
+
+  } // namespace test
+
+} // namespace pb_ds
+
+#endif // #ifndef PB_DS_SAMPLE_VAR_HPP
+
-- 
GitLab